summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/mixer
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/mixer')
-rw-r--r--gst-libs/gst/mixer/mixer.c2
-rw-r--r--gst-libs/gst/mixer/mixer.h10
-rw-r--r--gst-libs/gst/mixer/mixertrack.h3
3 files changed, 14 insertions, 1 deletions
diff --git a/gst-libs/gst/mixer/mixer.c b/gst-libs/gst/mixer/mixer.c
index cbdfdad4..7412ca28 100644
--- a/gst-libs/gst/mixer/mixer.c
+++ b/gst-libs/gst/mixer/mixer.c
@@ -96,6 +96,8 @@ gst_mixer_class_init (GstMixerClass *klass)
initialized = TRUE;
}
+ klass->mixer_type = GST_MIXER_SOFTWARE;
+
/* default virtual functions */
klass->list_tracks = NULL;
klass->set_volume = NULL;
diff --git a/gst-libs/gst/mixer/mixer.h b/gst-libs/gst/mixer/mixer.h
index cfc16875..3af55ab7 100644
--- a/gst-libs/gst/mixer/mixer.h
+++ b/gst-libs/gst/mixer/mixer.h
@@ -40,11 +40,21 @@ G_BEGIN_DECLS
#define GST_MIXER_GET_CLASS(inst) \
(G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_MIXER, GstMixerClass))
+#define GST_MIXER_TYPE(klass) (klass->mixer_type)
+
typedef struct _GstMixer GstMixer;
+typedef enum
+{
+ GST_MIXER_HARDWARE,
+ GST_MIXER_SOFTWARE
+} GstMixerType;
+
typedef struct _GstMixerClass {
GTypeInterface klass;
+ GstMixerType mixer_type;
+
/* virtual functions */
const GList * (* list_tracks) (GstMixer *mixer);
diff --git a/gst-libs/gst/mixer/mixertrack.h b/gst-libs/gst/mixer/mixertrack.h
index 94304cf2..0e05d9cb 100644
--- a/gst-libs/gst/mixer/mixertrack.h
+++ b/gst-libs/gst/mixer/mixertrack.h
@@ -60,7 +60,8 @@ typedef enum {
GST_MIXER_TRACK_OUTPUT = (1<<1),
GST_MIXER_TRACK_MUTE = (1<<2),
GST_MIXER_TRACK_RECORD = (1<<3),
- GST_MIXER_TRACK_MASTER = (1<<4)
+ GST_MIXER_TRACK_MASTER = (1<<4),
+ GST_MIXER_TRACK_SOFTWARE = (1<<5)
} GstMixerTrackFlags;
#define GST_MIXER_TRACK_HAS_FLAG(channel, flag) \