summaryrefslogtreecommitdiff
path: root/csrc/services/audio-service.h
blob: a833c209d2839fc3e0f8b53a2454eb7e8ff47b1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#pragma once

#include <glib-object.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define FOOBAR_TYPE_AUDIO_DEVICE_KIND foobar_audio_device_kind_get_type( )
#define FOOBAR_TYPE_AUDIO_DEVICE      foobar_audio_device_get_type( )
#define FOOBAR_TYPE_AUDIO_SERVICE     foobar_audio_service_get_type( )

typedef enum
{
	FOOBAR_AUDIO_DEVICE_INPUT = 0,
	FOOBAR_AUDIO_DEVICE_OUTPUT,
} FoobarAudioDeviceKind;

GType foobar_audio_device_kind_get_type( void );

G_DECLARE_FINAL_TYPE( FoobarAudioDevice, foobar_audio_device, FOOBAR, AUDIO_DEVICE, GObject )

FoobarAudioDeviceKind foobar_audio_device_get_kind       ( FoobarAudioDevice* self );
guint                 foobar_audio_device_get_id         ( FoobarAudioDevice* self );
gchar const*          foobar_audio_device_get_name       ( FoobarAudioDevice* self );
gchar const*          foobar_audio_device_get_description( FoobarAudioDevice* self );
gint                  foobar_audio_device_get_volume     ( FoobarAudioDevice* self );
gboolean              foobar_audio_device_is_muted       ( FoobarAudioDevice* self );
gboolean              foobar_audio_device_is_default     ( FoobarAudioDevice* self );
gboolean              foobar_audio_device_is_available   ( FoobarAudioDevice* self );
void                  foobar_audio_device_set_volume     ( FoobarAudioDevice* self,
                                                           gint               value );
void                  foobar_audio_device_set_muted      ( FoobarAudioDevice* self,
                                                           gboolean           value );
void                  foobar_audio_device_make_default   ( FoobarAudioDevice* self );

G_DECLARE_FINAL_TYPE( FoobarAudioService, foobar_audio_service, FOOBAR, AUDIO_SERVICE, GObject )

FoobarAudioService* foobar_audio_service_new               ( void );
FoobarAudioDevice*  foobar_audio_service_get_default_input ( FoobarAudioService* self );
FoobarAudioDevice*  foobar_audio_service_get_default_output( FoobarAudioService* self );
GListModel*         foobar_audio_service_get_inputs        ( FoobarAudioService* self );
GListModel*         foobar_audio_service_get_outputs       ( FoobarAudioService* self );

G_END_DECLS