summaryrefslogtreecommitdiff
path: root/libmatemixer/matemixer-stream.h
diff options
context:
space:
mode:
authorMichal Ratajsky <[email protected]>2014-08-12 05:06:12 +0200
committerMichal Ratajsky <[email protected]>2014-08-12 05:06:12 +0200
commit1e1847069eb58c2b62f2b3c11e1e9adf3a17ebde (patch)
tree4bcd30db2bdf4032c4a49844570ce4227cf2510e /libmatemixer/matemixer-stream.h
parent7396148c328d9f2a0d933374547c7e93a46b8efa (diff)
parent6c6d4239ddc807e922df3874654f99eea291aadb (diff)
downloadlibmatemixer-1e1847069eb58c2b62f2b3c11e1e9adf3a17ebde.tar.bz2
libmatemixer-1e1847069eb58c2b62f2b3c11e1e9adf3a17ebde.tar.xz
Merge branch 'oss-alsa'
Diffstat (limited to 'libmatemixer/matemixer-stream.h')
-rw-r--r--libmatemixer/matemixer-stream.h171
1 files changed, 47 insertions, 124 deletions
diff --git a/libmatemixer/matemixer-stream.h b/libmatemixer/matemixer-stream.h
index e91a2a5..e73579e 100644
--- a/libmatemixer/matemixer-stream.h
+++ b/libmatemixer/matemixer-stream.h
@@ -18,164 +18,87 @@
#ifndef MATEMIXER_STREAM_H
#define MATEMIXER_STREAM_H
-#include <math.h>
#include <glib.h>
#include <glib-object.h>
-#include <libmatemixer/matemixer-device.h>
#include <libmatemixer/matemixer-enums.h>
-#include <libmatemixer/matemixer-port.h>
+#include <libmatemixer/matemixer-types.h>
G_BEGIN_DECLS
-#ifdef INFINITY
-#define MATE_MIXER_INFINITY INFINITY
-#else
-#define MATE_MIXER_INFINITY G_MAXDOUBLE
-#endif
-
#define MATE_MIXER_TYPE_STREAM \
(mate_mixer_stream_get_type ())
#define MATE_MIXER_STREAM(o) \
(G_TYPE_CHECK_INSTANCE_CAST ((o), MATE_MIXER_TYPE_STREAM, MateMixerStream))
#define MATE_MIXER_IS_STREAM(o) \
(G_TYPE_CHECK_INSTANCE_TYPE ((o), MATE_MIXER_TYPE_STREAM))
-#define MATE_MIXER_STREAM_GET_INTERFACE(o) \
- (G_TYPE_INSTANCE_GET_INTERFACE ((o), MATE_MIXER_TYPE_STREAM, MateMixerStreamInterface))
+#define MATE_MIXER_STREAM_CLASS(k) \
+ (G_TYPE_CHECK_CLASS_CAST ((k), MATE_MIXER_TYPE_STREAM, MateMixerStreamClass))
+#define MATE_MIXER_IS_STREAM_CLASS(k) \
+ (G_TYPE_CHECK_CLASS_TYPE ((k), MATE_MIXER_TYPE_STREAM))
+#define MATE_MIXER_STREAM_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), MATE_MIXER_TYPE_STREAM, MateMixerStreamClass))
-typedef struct _MateMixerStream MateMixerStream; /* dummy object */
-typedef struct _MateMixerStreamInterface MateMixerStreamInterface;
+typedef struct _MateMixerStreamClass MateMixerStreamClass;
+typedef struct _MateMixerStreamPrivate MateMixerStreamPrivate;
-struct _MateMixerStreamInterface
+struct _MateMixerStream
{
- GTypeInterface parent_iface;
+ GObject object;
/*< private >*/
- /* Virtual table */
- const gchar * (*get_name) (MateMixerStream *stream);
- const gchar * (*get_description) (MateMixerStream *stream);
- MateMixerDevice * (*get_device) (MateMixerStream *stream);
- MateMixerStreamFlags (*get_flags) (MateMixerStream *stream);
- MateMixerStreamState (*get_state) (MateMixerStream *stream);
- gboolean (*get_mute) (MateMixerStream *stream);
- gboolean (*set_mute) (MateMixerStream *stream,
- gboolean mute);
- guint (*get_num_channels) (MateMixerStream *stream);
- guint (*get_volume) (MateMixerStream *stream);
- gboolean (*set_volume) (MateMixerStream *stream,
- guint volume);
- gdouble (*get_decibel) (MateMixerStream *stream);
- gboolean (*set_decibel) (MateMixerStream *stream,
- gdouble decibel);
- MateMixerChannelPosition (*get_channel_position) (MateMixerStream *stream,
- guint channel);
- guint (*get_channel_volume) (MateMixerStream *stream,
- guint channel);
- gboolean (*set_channel_volume) (MateMixerStream *stream,
- guint channel,
- guint volume);
- gdouble (*get_channel_decibel) (MateMixerStream *stream,
- guint channel);
- gboolean (*set_channel_decibel) (MateMixerStream *stream,
- guint channel,
- gdouble decibel);
- gboolean (*has_channel_position) (MateMixerStream *stream,
- MateMixerChannelPosition position);
- gfloat (*get_balance) (MateMixerStream *stream);
- gboolean (*set_balance) (MateMixerStream *stream,
- gfloat balance);
- gfloat (*get_fade) (MateMixerStream *stream);
- gboolean (*set_fade) (MateMixerStream *stream,
- gfloat fade);
- gboolean (*suspend) (MateMixerStream *stream);
- gboolean (*resume) (MateMixerStream *stream);
- gboolean (*monitor_start) (MateMixerStream *stream);
- void (*monitor_stop) (MateMixerStream *stream);
- gboolean (*monitor_is_running) (MateMixerStream *stream);
- gboolean (*monitor_set_name) (MateMixerStream *stream,
- const gchar *name);
- const GList * (*list_ports) (MateMixerStream *stream);
- MateMixerPort * (*get_active_port) (MateMixerStream *stream);
- gboolean (*set_active_port) (MateMixerStream *stream,
- MateMixerPort *port);
- guint (*get_min_volume) (MateMixerStream *stream);
- guint (*get_max_volume) (MateMixerStream *stream);
- guint (*get_normal_volume) (MateMixerStream *stream);
- guint (*get_base_volume) (MateMixerStream *stream);
-
- /* Signals */
- void (*monitor_value) (MateMixerStream *stream,
- gdouble value);
+ MateMixerStreamPrivate *priv;
};
-GType mate_mixer_stream_get_type (void) G_GNUC_CONST;
-
-const gchar * mate_mixer_stream_get_name (MateMixerStream *stream);
-const gchar * mate_mixer_stream_get_description (MateMixerStream *stream);
-MateMixerDevice * mate_mixer_stream_get_device (MateMixerStream *stream);
-MateMixerStreamFlags mate_mixer_stream_get_flags (MateMixerStream *stream);
-MateMixerStreamState mate_mixer_stream_get_state (MateMixerStream *stream);
-
-gboolean mate_mixer_stream_get_mute (MateMixerStream *stream);
-gboolean mate_mixer_stream_set_mute (MateMixerStream *stream,
- gboolean mute);
-
-guint mate_mixer_stream_get_num_channels (MateMixerStream *stream);
+struct _MateMixerStreamClass
+{
+ GObjectClass parent_class;
-guint mate_mixer_stream_get_volume (MateMixerStream *stream);
-gboolean mate_mixer_stream_set_volume (MateMixerStream *stream,
- guint volume);
+ /*< private >*/
+ MateMixerStreamControl *(*get_control) (MateMixerStream *stream,
+ const gchar *name);
-gdouble mate_mixer_stream_get_decibel (MateMixerStream *stream);
-gboolean mate_mixer_stream_set_decibel (MateMixerStream *stream,
- gdouble decibel);
+ MateMixerStreamControl *(*get_default_control) (MateMixerStream *stream);
-MateMixerChannelPosition mate_mixer_stream_get_channel_position (MateMixerStream *stream,
- guint channel);
+ MateMixerSwitch *(*get_switch) (MateMixerStream *stream,
+ const gchar *name);
-guint mate_mixer_stream_get_channel_volume (MateMixerStream *stream,
- guint channel);
-gboolean mate_mixer_stream_set_channel_volume (MateMixerStream *stream,
- guint channel,
- guint volume);
+ GList *(*list_controls) (MateMixerStream *stream);
+ GList *(*list_switches) (MateMixerStream *stream);
-gdouble mate_mixer_stream_get_channel_decibel (MateMixerStream *stream,
- guint channel);
-gboolean mate_mixer_stream_set_channel_decibel (MateMixerStream *stream,
- guint channel,
- gdouble decibel);
+ gboolean (*suspend) (MateMixerStream *stream);
+ gboolean (*resume) (MateMixerStream *stream);
-gboolean mate_mixer_stream_has_channel_position (MateMixerStream *stream,
- MateMixerChannelPosition position);
+ gboolean (*monitor_start) (MateMixerStream *stream);
+ gboolean (*monitor_stop) (MateMixerStream *stream);
-gfloat mate_mixer_stream_get_balance (MateMixerStream *stream);
-gboolean mate_mixer_stream_set_balance (MateMixerStream *stream,
- gfloat balance);
+ /* Signals */
+ void (*monitor_value) (MateMixerStream *stream, gdouble value);
+};
-gfloat mate_mixer_stream_get_fade (MateMixerStream *stream);
-gboolean mate_mixer_stream_set_fade (MateMixerStream *stream,
- gfloat fade);
+GType mate_mixer_stream_get_type (void) G_GNUC_CONST;
-gboolean mate_mixer_stream_suspend (MateMixerStream *stream);
-gboolean mate_mixer_stream_resume (MateMixerStream *stream);
+const gchar * mate_mixer_stream_get_name (MateMixerStream *stream);
+MateMixerDevice * mate_mixer_stream_get_device (MateMixerStream *stream);
+MateMixerStreamFlags mate_mixer_stream_get_flags (MateMixerStream *stream);
+MateMixerStreamState mate_mixer_stream_get_state (MateMixerStream *stream);
-gboolean mate_mixer_stream_monitor_start (MateMixerStream *stream);
-void mate_mixer_stream_monitor_stop (MateMixerStream *stream);
+MateMixerStreamControl *mate_mixer_stream_get_control (MateMixerStream *stream,
+ const gchar *name);
+MateMixerSwitch * mate_mixer_stream_get_switch (MateMixerStream *stream,
+ const gchar *name);
-gboolean mate_mixer_stream_monitor_is_running (MateMixerStream *stream);
-gboolean mate_mixer_stream_monitor_set_name (MateMixerStream *stream,
- const gchar *name);
+MateMixerStreamControl *mate_mixer_stream_get_default_control (MateMixerStream *stream);
-const GList * mate_mixer_stream_list_ports (MateMixerStream *stream);
+const GList * mate_mixer_stream_list_controls (MateMixerStream *stream);
+const GList * mate_mixer_stream_list_switches (MateMixerStream *stream);
-MateMixerPort * mate_mixer_stream_get_active_port (MateMixerStream *stream);
-gboolean mate_mixer_stream_set_active_port (MateMixerStream *stream,
- MateMixerPort *port);
+gboolean mate_mixer_stream_suspend (MateMixerStream *stream);
+gboolean mate_mixer_stream_resume (MateMixerStream *stream);
-guint mate_mixer_stream_get_min_volume (MateMixerStream *stream);
-guint mate_mixer_stream_get_max_volume (MateMixerStream *stream);
-guint mate_mixer_stream_get_normal_volume (MateMixerStream *stream);
-guint mate_mixer_stream_get_base_volume (MateMixerStream *stream);
+gboolean mate_mixer_stream_monitor_get_enabled (MateMixerStream *stream);
+gboolean mate_mixer_stream_monitor_set_enabled (MateMixerStream *stream,
+ gboolean enabled);
G_END_DECLS