// audio demo
// - rlyeh, public domain

#include "v4k.h"

int main() {
    // window (80% sized, MSAA x4 flag)
    window_create(80, WINDOW_MSAA4 | WINDOW_SQUARE);

    // audio (both streams & clips)
    audio_t stream1 = audio_stream( "larry.mid" );
    audio_t stream2 = audio_stream( "waterworld-map.fur" );
    audio_t BGM = stream1;
    audio_play(BGM, 0);

    audio_t SFX1 = audio_clip( "coin.wav" );
    audio_t SFX2 = audio_clip( "pew.sfxr" );
    audio_play(SFX1, 0);

    // demo loop
    while (window_swap() && !input_down(KEY_ESC)) {
        static int open = 1;
        if( ui_window("Audio", &open)) {
            static float bgm = 1, sfx = 1, master = 1;
            if( ui_slider2("BGM", &bgm, va("%.2f", bgm))) audio_volume_stream(bgm);
            if( ui_slider2("SFX", &sfx, va("%.2f", sfx))) audio_volume_clip(sfx);
            if( ui_slider2("Master", &master, va("%.2f", master))) audio_volume_master(master);
            if( ui_label2_toolbar("BGM: Leisure Suit Larry", ICON_MD_VOLUME_UP)) audio_stop(BGM), audio_play(BGM = stream1, AUDIO_SINGLE_INSTANCE);
            if( ui_label2_toolbar("BGM: Waterworld Map", ICON_MD_VOLUME_UP)) audio_stop(BGM), audio_play(BGM = stream2, AUDIO_SINGLE_INSTANCE);
            if( ui_label2_toolbar("SFX: Coin", ICON_MD_VOLUME_UP)) audio_play(SFX1, 0);
            if( ui_label2_toolbar("SFX: Pew", ICON_MD_VOLUME_UP)) audio_play(SFX2, 0);
            ui_window_end();
        }
    }
}