Changeset 2073:9032ae5f36c7 in roaraudio for plugins/gstreamer0.10/roarmixer.h
- Timestamp:
- 07/19/09 04:01:35 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/gstreamer0.10/roarmixer.h
r2072 r2073 39 39 G_BEGIN_DECLS 40 40 41 #define GST_ROAR_MIXER_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ROAR_MIXER_ELEMENT,GstRoarMixerElement)) 42 #define GST_ROAR_MIXER_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ROAR_MIXER_ELEMENT,GstRoarMixerElementClass)) 43 #define GST_IS_ROAR_MIXER_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ROAR_MIXER_ELEMENT)) 44 #define GST_IS_ROAR_MIXER_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ROAR_MIXER_ELEMENT)) 45 #define GST_TYPE_ROAR_MIXER_ELEMENT (gst_roar_mixer_element_get_type()) 46 47 48 typedef struct _GstRoarMixerElement GstRoarMixerElement; 49 typedef struct _GstRoarMixerElementClass GstRoarMixerElementClass; 50 typedef struct _GstRoarMixer GstRoarMixer; 51 52 struct _GstRoarMixerElement { 53 GstElement parent; 54 55 GstRoarMixer *mixer; 56 }; 57 58 struct _GstRoarMixerElementClass { 59 GstElementClass parent; 60 }; 61 62 63 GType gst_roar_mixer_element_get_type (void); 64 41 65 typedef enum { 42 66 GST_ROAR_MIXER_CAPTURE = 1<<0, … … 45 69 } GstRoarMixerDirection; 46 70 47 typedef struct _GstRoarMixer GstRoarMixer;48 71 49 72 #define GST_ROAR_MIXER(obj) ((GstRoarMixer*)(obj)) 73 74 #define GST_TYPE_ROARMIXER \ 75 (gst_roarmixer_get_type()) 50 76 51 77 struct _GstRoarMixer { … … 74 100 } GstRoarMixerTrackClass; 75 101 102 GType gst_roarmixer_get_type(void); 103 gboolean gst_roarmixer_factory_init (GstPlugin *plugin); 76 104 77 105 GstRoarMixer* gst_roarmixer_new (const gchar *device, … … 93 121 gboolean mute); 94 122 123 #define GST_IMPLEMENT_ROAR_MIXER_METHODS(Type, interface_as_function) \ 124 static gboolean \ 125 interface_as_function ## _supported (Type *this, GType iface_type) \ 126 { \ 127 g_assert (iface_type == GST_TYPE_MIXER); \ 128 \ 129 return (this->mixer != NULL); \ 130 } \ 131 \ 132 static const GList* \ 133 interface_as_function ## _list_tracks (GstMixer * mixer) \ 134 { \ 135 Type *this = (Type*) mixer; \ 136 \ 137 g_return_val_if_fail (this != NULL, NULL); \ 138 g_return_val_if_fail (this->mixer != NULL, NULL); \ 139 \ 140 return gst_roarmixer_list_tracks (this->mixer); \ 141 } \ 142 \ 143 static void \ 144 interface_as_function ## _set_volume (GstMixer * mixer, GstMixerTrack * track, \ 145 gint * volumes) \ 146 { \ 147 Type *this = (Type*) mixer; \ 148 \ 149 g_return_if_fail (this != NULL); \ 150 g_return_if_fail (this->mixer != NULL); \ 151 \ 152 gst_roarmixer_set_volume (this->mixer, track, volumes); \ 153 } \ 154 \ 155 static void \ 156 interface_as_function ## _get_volume (GstMixer * mixer, GstMixerTrack * track, \ 157 gint * volumes) \ 158 { \ 159 Type *this = (Type*) mixer; \ 160 \ 161 g_return_if_fail (this != NULL); \ 162 g_return_if_fail (this->mixer != NULL); \ 163 \ 164 gst_roarmixer_get_volume (this->mixer, track, volumes); \ 165 } \ 166 \ 167 static void \ 168 interface_as_function ## _set_record (GstMixer * mixer, GstMixerTrack * track, \ 169 gboolean record) \ 170 { \ 171 Type *this = (Type*) mixer; \ 172 \ 173 g_return_if_fail (this != NULL); \ 174 g_return_if_fail (this->mixer != NULL); \ 175 \ 176 gst_roarmixer_set_record (this->mixer, track, record); \ 177 } \ 178 \ 179 static void \ 180 interface_as_function ## _set_mute (GstMixer * mixer, GstMixerTrack * track, \ 181 gboolean mute) \ 182 { \ 183 Type *this = (Type*) mixer; \ 184 \ 185 g_return_if_fail (this != NULL); \ 186 g_return_if_fail (this->mixer != NULL); \ 187 \ 188 gst_roarmixer_set_mute (this->mixer, track, mute); \ 189 } \ 190 \ 191 static void \ 192 interface_as_function ## _interface_init (GstMixerClass * klass) \ 193 { \ 194 GST_MIXER_TYPE (klass) = GST_MIXER_HARDWARE; \ 195 \ 196 /* set up the interface hooks */ \ 197 klass->list_tracks = interface_as_function ## _list_tracks; \ 198 klass->set_volume = interface_as_function ## _set_volume; \ 199 klass->get_volume = interface_as_function ## _get_volume; \ 200 klass->set_mute = interface_as_function ## _set_mute; \ 201 klass->set_record = interface_as_function ## _set_record; \ 202 } 203 204 95 205 G_END_DECLS 96 206
Note: See TracChangeset
for help on using the changeset viewer.