diff options
Diffstat (limited to 'ext/pulse/pulsemixertrack.c')
-rw-r--r-- | ext/pulse/pulsemixertrack.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/ext/pulse/pulsemixertrack.c b/ext/pulse/pulsemixertrack.c new file mode 100644 index 00000000..be9de634 --- /dev/null +++ b/ext/pulse/pulsemixertrack.c @@ -0,0 +1,68 @@ +/* + * GStreamer pulseaudio plugin + * + * Copyright (c) 2004-2008 Lennart Poettering + * + * gst-pulse is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * gst-pulse is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with gst-pulse; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> + +#include "pulsemixertrack.h" + +GST_DEBUG_CATEGORY_EXTERN (pulse_debug); +#define GST_CAT_DEFAULT pulse_debug + +G_DEFINE_TYPE (GstPulseMixerTrack, gst_pulsemixer_track, GST_TYPE_MIXER_TRACK); + +static void +gst_pulsemixer_track_class_init (GstPulseMixerTrackClass * klass) +{ +} + +static void +gst_pulsemixer_track_init (GstPulseMixerTrack * track) +{ + track->control = NULL; +} + +GstMixerTrack * +gst_pulsemixer_track_new (GstPulseMixerCtrl * control) +{ + GstPulseMixerTrack *pulsetrack; + + GstMixerTrack *track; + + pulsetrack = g_object_new (GST_TYPE_PULSEMIXER_TRACK, NULL); + pulsetrack->control = control; + + track = GST_MIXER_TRACK (pulsetrack); + track->label = g_strdup ("Master"); + track->num_channels = control->channel_map.channels; + track->flags = + (control->type == + GST_PULSEMIXER_SINK ? GST_MIXER_TRACK_OUTPUT | GST_MIXER_TRACK_MASTER : + GST_MIXER_TRACK_INPUT | GST_MIXER_TRACK_RECORD) | (control->muted ? + GST_MIXER_TRACK_MUTE : 0); + track->min_volume = PA_VOLUME_MUTED; + track->max_volume = PA_VOLUME_NORM; + + return track; +} |