static void gst_pulsesrc_class_init (GstPulseSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstAudioSrcClass *gstaudiosrc_class = GST_AUDIO_SRC_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_pulsesrc_finalize); gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_pulsesrc_set_property); gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_pulsesrc_get_property); gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_pulsesrc_change_state); gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_pulsesrc_negotiate); gstaudiosrc_class->open = GST_DEBUG_FUNCPTR (gst_pulsesrc_open); gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_pulsesrc_close); gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_pulsesrc_prepare); gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_pulsesrc_unprepare); gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_pulsesrc_read); gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_pulsesrc_delay); gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_pulsesrc_reset); /* Overwrite GObject fields */ g_object_class_install_property (gobject_class, PROP_SERVER, g_param_spec_string ("server", "Server", "The PulseAudio server to connect to", DEFAULT_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE, g_param_spec_string ("device", "Device", "The PulseAudio source device to connect to", DEFAULT_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device name", "Human-readable name of the sound device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); }
static void gst_openal_src_class_init (GstOpenalSrcClass * klass) { GObjectClass *gobject_class; GstAudioSrcClass *gstaudio_src_class; gobject_class = G_OBJECT_CLASS (klass); gstaudio_src_class = GST_AUDIO_SRC_CLASS (klass); GST_DEBUG_CATEGORY_INIT (openalsrc_debug, "openalsrc", 0, "OpenAL source capture audio from device"); gobject_class->set_property = gst_openal_src_set_property; gobject_class->get_property = gst_openal_src_get_property; gobject_class->finalize = gst_openal_src_finalize; gstaudio_src_class->open = GST_DEBUG_FUNCPTR (gst_openal_src_open); gstaudio_src_class->prepare = GST_DEBUG_FUNCPTR (gst_openal_src_prepare); gstaudio_src_class->unprepare = GST_DEBUG_FUNCPTR (gst_openal_src_unprepare); gstaudio_src_class->close = GST_DEBUG_FUNCPTR (gst_openal_src_close); gstaudio_src_class->read = GST_DEBUG_FUNCPTR (gst_openal_src_read); gstaudio_src_class->delay = GST_DEBUG_FUNCPTR (gst_openal_src_delay); gstaudio_src_class->reset = GST_DEBUG_FUNCPTR (gst_openal_src_reset); g_object_class_install_property (gobject_class, PROP_DEVICE, g_param_spec_string ("device", "Device", "Specific capture device to open, NULL indicate default device", DEFAULT_DEVICE, G_PARAM_READWRITE) ); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device name", "Readable name of device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE) ); }
static void gst_dasf_src_class_init (GstDasfSrcClass* klass) { GObjectClass* g_klass; GParamSpec* pspec; GstElementClass *gst_element_klass; GstBaseSrcClass* gst_base_klass; GstAudioSrcClass *gst_audio_klass; /* gobject */ g_klass = G_OBJECT_CLASS (klass); g_type_class_add_private (klass, sizeof (GstDasfSrcPrivate)); #if 0 g_klass->set_property = GST_DEBUG_FUNCPTR (gst_dasf_src_set_property); g_klass->get_property = GST_DEBUG_FUNCPTR (gst_dasf_src_get_property); pspec = g_param_spec_uint ("output-buffers", "output buffers", "The number of OMX output buffers", 1, 10, NUM_OUTPUT_BUFFERS_DEFAULT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_class_install_property (g_klass, PROP_NUM_OUTPUT_BUFFERS, pspec); #endif g_klass->dispose = GST_DEBUG_FUNCPTR (gst_dasf_src_dispose); /** GST ELEMENT **/ /** GST AUDIO SRC **/ gst_audio_klass = GST_AUDIO_SRC_CLASS (klass); gst_audio_klass->open = GST_DEBUG_FUNCPTR (gst_dasf_src_open_device); gst_audio_klass->prepare = GST_DEBUG_FUNCPTR (gst_dasf_src_prepare_device); gst_audio_klass->unprepare = GST_DEBUG_FUNCPTR (gst_dasf_src_unprepare_device); gst_audio_klass->close = GST_DEBUG_FUNCPTR (gst_dasf_src_close_device); gst_audio_klass->read = GST_DEBUG_FUNCPTR (gst_dasf_src_read_device); gst_audio_klass->delay = GST_DEBUG_FUNCPTR (gst_dasf_src_delay_device); gst_audio_klass->reset = GST_DEBUG_FUNCPTR (gst_dasf_src_reset_device); /** GST BASE SRC **/ gst_base_klass = GST_BASE_SRC_CLASS (klass); gst_base_klass->get_caps = GST_DEBUG_FUNCPTR (gst_dasf_src_getcaps); gst_base_klass->create = (void *) GST_DEBUG_FUNCPTR (gst_dasf_src_create); /** @todo When using seek functionality, consider using basesrc method **/ gst_base_klass->check_get_range = (void *) GST_DEBUG_FUNCPTR (gst_dasf_src_check_get_range); gst_base_klass->get_times = (void *) GST_DEBUG_FUNCPTR (gst_dasf_src_get_times); GST_ELEMENT_CLASS (klass)->change_state = GST_DEBUG_FUNCPTR (gst_dasf_src_change_state); return; }
static void gst_pulsesrc_class_init (GstPulseSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstAudioSrcClass *gstaudiosrc_class = GST_AUDIO_SRC_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); gobject_class->finalize = gst_pulsesrc_finalize; gobject_class->set_property = gst_pulsesrc_set_property; gobject_class->get_property = gst_pulsesrc_get_property; gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_pulsesrc_change_state); gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_pulsesrc_negotiate); gstaudiosrc_class->open = GST_DEBUG_FUNCPTR (gst_pulsesrc_open); gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_pulsesrc_close); gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_pulsesrc_prepare); gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_pulsesrc_unprepare); gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_pulsesrc_read); gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_pulsesrc_delay); gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_pulsesrc_reset); /* Overwrite GObject fields */ g_object_class_install_property (gobject_class, PROP_SERVER, g_param_spec_string ("server", "Server", "The PulseAudio server to connect to", DEFAULT_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE, g_param_spec_string ("device", "Device", "The PulseAudio source device to connect to", DEFAULT_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device name", "Human-readable name of the sound device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * GstPulseSrc:stream-properties * * List of pulseaudio stream properties. A list of defined properties can be * found in the <ulink href="http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html">pulseaudio api docs</ulink>. * * Below is an example for registering as a music application to pulseaudio. * |[ * GstStructure *props; * * props = gst_structure_from_string ("props,media.role=music", NULL); * g_object_set (pulse, "stream-properties", props, NULL); * gst_structure_free (props); * ]| * * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_STREAM_PROPERTIES, g_param_spec_boxed ("stream-properties", "stream properties", "list of pulseaudio stream properties", GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }
static void gst_pulsesrc_class_init (GstPulseSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstAudioSrcClass *gstaudiosrc_class = GST_AUDIO_SRC_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); gchar *clientname; gobject_class->finalize = gst_pulsesrc_finalize; gobject_class->set_property = gst_pulsesrc_set_property; gobject_class->get_property = gst_pulsesrc_get_property; gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_pulsesrc_change_state); gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_pulsesrc_negotiate); gstaudiosrc_class->open = GST_DEBUG_FUNCPTR (gst_pulsesrc_open); gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_pulsesrc_close); gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_pulsesrc_prepare); gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_pulsesrc_unprepare); gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_pulsesrc_read); gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_pulsesrc_delay); gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_pulsesrc_reset); /* Overwrite GObject fields */ g_object_class_install_property (gobject_class, PROP_SERVER, g_param_spec_string ("server", "Server", "The PulseAudio server to connect to", DEFAULT_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE, g_param_spec_string ("device", "Device", "The PulseAudio source device to connect to", DEFAULT_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device name", "Human-readable name of the sound device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); clientname = gst_pulse_client_name (); /** * GstPulseSrc:client-name * * The PulseAudio client name to use. */ g_object_class_install_property (gobject_class, PROP_CLIENT_NAME, g_param_spec_string ("client-name", "Client Name", "The PulseAudio client_name_to_use", clientname, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_MUTABLE_READY)); g_free (clientname); /** * GstPulseSrc:stream-properties * * List of pulseaudio stream properties. A list of defined properties can be * found in the <ulink href="http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html">pulseaudio api docs</ulink>. * * Below is an example for registering as a music application to pulseaudio. * |[ * GstStructure *props; * * props = gst_structure_from_string ("props,media.role=music", NULL); * g_object_set (pulse, "stream-properties", props, NULL); * gst_structure_free (props); * ]| * * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_STREAM_PROPERTIES, g_param_spec_boxed ("stream-properties", "stream properties", "list of pulseaudio stream properties", GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstPulseSrc:source-output-index * * The index of the PulseAudio source output corresponding to this element. * * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_SOURCE_OUTPUT_INDEX, g_param_spec_uint ("source-output-index", "source output index", "The index of the PulseAudio source output corresponding to this " "record stream", 0, G_MAXUINT, PA_INVALID_INDEX, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); gst_element_class_set_static_metadata (gstelement_class, "PulseAudio Audio Source", "Source/Audio", "Captures audio from a PulseAudio server", "Lennart Poettering"); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&pad_template)); /** * GstPulseSrc:volume * * The volume of the record stream. */ g_object_class_install_property (gobject_class, PROP_VOLUME, g_param_spec_double ("volume", "Volume", "Linear volume of this stream, 1.0=100%", 0.0, MAX_VOLUME, DEFAULT_VOLUME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstPulseSrc:mute * * Whether the stream is muted or not. */ g_object_class_install_property (gobject_class, PROP_MUTE, g_param_spec_boolean ("mute", "Mute", "Mute state of this stream", DEFAULT_MUTE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }