Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-3.0-or-later
2 : : // SPDX-FileCopyrightText: Andy Holmes <andrew.g.r.holmes@gmail.com>
3 : :
4 : : #pragma once
5 : :
6 : : #if !defined (VALENT_INSIDE) && !defined (VALENT_COMPILATION)
7 : : # error "Only <valent.h> can be included directly."
8 : : #endif
9 : :
10 : : #include "../core/valent-resource.h"
11 : :
12 : : G_BEGIN_DECLS
13 : :
14 : : /**
15 : : * ValentMixerDirection:
16 : : * @VALENT_MIXER_INPUT: An input stream or "source" (eg. microphone)
17 : : * @VALENT_MIXER_OUTPUT: An output stream or "sink" (eg. speakers)
18 : : *
19 : : * Enumeration of stream directions.
20 : : *
21 : : * Since: 1.0
22 : : */
23 : : typedef enum
24 : : {
25 : : VALENT_MIXER_INPUT,
26 : : VALENT_MIXER_OUTPUT,
27 : : } ValentMixerDirection;
28 : :
29 : :
30 : : #define VALENT_TYPE_MIXER_STREAM (valent_mixer_stream_get_type())
31 : :
32 : : VALENT_AVAILABLE_IN_1_0
33 [ + - + - : 663 : G_DECLARE_DERIVABLE_TYPE (ValentMixerStream, valent_mixer_stream, VALENT, MIXER_STREAM, ValentResource)
+ + + + +
+ ]
34 : :
35 : : struct _ValentMixerStreamClass
36 : : {
37 : : ValentResourceClass parent_class;
38 : :
39 : : /* virtual functions */
40 : : const char * (*get_name) (ValentMixerStream *stream);
41 : : const char * (*get_description) (ValentMixerStream *stream);
42 : : ValentMixerDirection (*get_direction) (ValentMixerStream *stream);
43 : : unsigned int (*get_level) (ValentMixerStream *stream);
44 : : void (*set_level) (ValentMixerStream *stream,
45 : : unsigned int level);
46 : : gboolean (*get_muted) (ValentMixerStream *stream);
47 : : void (*set_muted) (ValentMixerStream *stream,
48 : : gboolean state);
49 : :
50 : : /*< private >*/
51 : : gpointer padding[8];
52 : : };
53 : :
54 : : VALENT_AVAILABLE_IN_1_0
55 : : const char * valent_mixer_stream_get_name (ValentMixerStream *stream);
56 : : VALENT_AVAILABLE_IN_1_0
57 : : const char * valent_mixer_stream_get_description (ValentMixerStream *stream);
58 : : VALENT_AVAILABLE_IN_1_0
59 : : ValentMixerDirection valent_mixer_stream_get_direction (ValentMixerStream *stream);
60 : : VALENT_AVAILABLE_IN_1_0
61 : : unsigned int valent_mixer_stream_get_level (ValentMixerStream *stream);
62 : : VALENT_AVAILABLE_IN_1_0
63 : : void valent_mixer_stream_set_level (ValentMixerStream *stream,
64 : : unsigned int level);
65 : : VALENT_AVAILABLE_IN_1_0
66 : : gboolean valent_mixer_stream_get_muted (ValentMixerStream *stream);
67 : : VALENT_AVAILABLE_IN_1_0
68 : : void valent_mixer_stream_set_muted (ValentMixerStream *stream,
69 : : gboolean state);
70 : :
71 : : G_END_DECLS
72 : :
|