gstmixer

gstmixer —

Synopsis


#include <gst/interfaces/mixer.h>


            GstMixer;
            GstMixerClass;
            GstMixerOptions;
            GstMixerTrack;
const GList* gst_mixer_list_tracks          (GstMixer *mixer);
void        gst_mixer_get_volume            (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gint *volumes);
void        gst_mixer_set_volume            (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gint *volumes);
void        gst_mixer_set_mute              (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean mute);
void        gst_mixer_set_record            (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean record);
void        gst_mixer_set_option            (GstMixer *mixer,
                                             GstMixerOptions *opts,
                                             gchar *value);
void        gst_mixer_mute_toggled          (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean mute);
void        gst_mixer_record_toggled        (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean record);
void        gst_mixer_volume_changed        (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gint *volumes);
void        gst_mixer_option_changed        (GstMixer *mixer,
                                             GstMixerOptions *opts,
                                             gchar *value);
GList*      gst_mixer_options_get_values    (GstMixerOptions *mixer_options);

Object Hierarchy


  GInterface
   +----GstMixer

  GObject
   +----GstMixerTrack
         +----GstMixerOptions

  GObject
   +----GstMixerTrack
         +----GstMixerOptions

Prerequisites

GstMixer requires GstImplementsInterface and GstElement.

Description

Details

GstMixer

typedef struct _GstMixer GstMixer;


GstMixerClass

typedef struct {
  GTypeInterface klass;

  GstMixerType mixer_type;
  
  /* virtual functions */
  const GList *  (* list_tracks)   (GstMixer      *mixer);

  void           (* set_volume)    (GstMixer      *mixer,
				    GstMixerTrack *track,
				    gint          *volumes);
  void           (* get_volume)    (GstMixer      *mixer,
				    GstMixerTrack *track,
				    gint          *volumes);

  void           (* set_mute)      (GstMixer      *mixer,
				    GstMixerTrack *track,
				    gboolean       mute);
  void           (* set_record)    (GstMixer      *mixer,
				    GstMixerTrack *track,
				    gboolean       record);

  /* signals */
  void (* mute_toggled)   (GstMixer      *mixer,
			   GstMixerTrack *channel,
			   gboolean       mute);
  void (* record_toggled) (GstMixer      *mixer,
			   GstMixerTrack *channel,
			   gboolean       record);
  void (* volume_changed) (GstMixer      *mixer,
			   GstMixerTrack *channel,
			   gint          *volumes);

  void		(* set_option)     (GstMixer      *mixer,
				    GstMixerOptions *opts,
				    gchar         *value);
  const gchar *	(* get_option)     (GstMixer      *mixer,
				    GstMixerOptions *opts);

  void (* option_changed) (GstMixer      *mixer,
			   GstMixerOptions *opts,
			   gchar         *option);
} GstMixerClass;


GstMixerOptions

typedef struct _GstMixerOptions GstMixerOptions;


GstMixerTrack

typedef struct _GstMixerTrack GstMixerTrack;


gst_mixer_list_tracks ()

const GList* gst_mixer_list_tracks          (GstMixer *mixer);

Returns a list of available tracks for this mixer/element. Note that it is allowed for sink (output) elements to only provide the output tracks in this list. Likewise, for sources (inputs), it is allowed to only provide input elements in this list.

mixer : the GstMixer (a GstElement) to get the tracks from.
Returns : A GList consisting of zero or more GstMixerTracks.

gst_mixer_get_volume ()

void        gst_mixer_get_volume            (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gint *volumes);

mixer :
track :
volumes :

gst_mixer_set_volume ()

void        gst_mixer_set_volume            (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gint *volumes);

Sets the volume on each channel in a track. Short note about naming: a track is defined as one separate stream owned by the mixer/element, such as 'Line-in' or 'Microphone'. A channel is said to be a mono-stream inside this track. A stereo track thus contains two channels.

mixer : The GstMixer (a GstElement) that owns the track.
track : The GstMixerTrack to set the volume on.
volumes : an array of integers (of size track->num_channels) that gives the wanted volume for each channel in this track.

gst_mixer_set_mute ()

void        gst_mixer_set_mute              (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean mute);

Mutes or unmutes the given channel. To find out whether a track is currently muted, use GST_MIXER_TRACK_HAS_FLAG().

mixer : the GstMixer (a GstElement) that owns the track.
track : the GstMixerTrack to operate on.
mute : a boolean value indicating whether to turn on or off muting.

gst_mixer_set_record ()

void        gst_mixer_set_record            (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean record);

Enables or disables recording on the given track. Note that this is only possible on input tracks, not on output tracks (see GST_MIXER_TRACK_HAS_FLAG() and the GST_MIXER_TRACK_INPUT flag).

mixer : The GstMixer (a GstElement) that owns the track.
track : the GstMixerTrack to operate on.
record : a boolean value that indicates whether to turn on or off recording.

gst_mixer_set_option ()

void        gst_mixer_set_option            (GstMixer *mixer,
                                             GstMixerOptions *opts,
                                             gchar *value);

Sets a name/value option in the mixer to the requested value.

mixer : The GstMixer (a GstElement) that owns the optionlist.
opts : The GstMixerOptions that we operate on.
value : The requested new option value.

gst_mixer_mute_toggled ()

void        gst_mixer_mute_toggled          (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean mute);

mixer :
track :
mute :

gst_mixer_record_toggled ()

void        gst_mixer_record_toggled        (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gboolean record);

mixer :
track :
record :

gst_mixer_volume_changed ()

void        gst_mixer_volume_changed        (GstMixer *mixer,
                                             GstMixerTrack *track,
                                             gint *volumes);

mixer :
track :
volumes :

gst_mixer_option_changed ()

void        gst_mixer_option_changed        (GstMixer *mixer,
                                             GstMixerOptions *opts,
                                             gchar *value);

mixer :
opts :
value :

gst_mixer_options_get_values ()

GList*      gst_mixer_options_get_values    (GstMixerOptions *mixer_options);

Get the values for the mixer option.

mixer_options : The GstMixerOptions item that owns the values.
Returns : A list of all the possible values for the mixer option.