#include <LibCore/AnonymousBuffer.h>

endpoint AudioServer
{
    // Mixer functions
    set_main_mix_muted(bool muted) => ()
    is_main_mix_muted() => (bool muted)
    set_self_muted(bool muted) => ()
    is_self_muted() => (bool muted)
    get_main_mix_volume() => (double volume)
    set_main_mix_volume(double volume) => ()
    get_self_volume() => (double volume)
    set_self_volume(double volume) => ()

    // Audio device
    set_sample_rate(u32 sample_rate) => ()
    get_sample_rate() => (u32 sample_rate)

    // Buffer playback
    enqueue_buffer(Core::AnonymousBuffer buffer, i32 buffer_id, int sample_count) => (bool success)
    set_paused(bool paused) => ()
    clear_buffer(bool paused) => ()

    //Buffer information
    get_remaining_samples() => (int remaining_samples)
    get_played_samples() => (int played_samples)
    get_playing_buffer() => (i32 buffer_id)
}
