#ifndef __GST_SUNAUDIO_ELEMENT_H__ #define __GST_SUNAUDIO_ELEMENT_H__ #include G_BEGIN_DECLS #define GST_TYPE_SUNAUDIOELEMENT \ (gst_sunaudioelement_get_type()) #define GST_SUNAUDIOELEMENT(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SUNAUDIOELEMENT,GstSunAudioElement)) #define GST_SUNAUDIOELEMENT_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SUNAUDIOELEMENT,GstSunAudioElementClass)) #define GST_IS_SUNAUDIOELEMENT(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SUNAUDIOELEMENT)) #define GST_IS_SUNAUDIOELEMENT_CLASS(obj) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SUNAUDIOELEMENT)) #define GST_SUNAUDIOELEMENT_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_SUNAUDIOELEMENT, GstSunAudioElementClass)) typedef enum { GST_SUNAUDIOELEMENT_READ, GST_SUNAUDIOELEMENT_WRITE, } GstSunAudioOpenMode; struct _GstSunAudioElement { /* yes, we're a gstelement too */ GstElement parent; gchar *device, *mixer_dev; /* device state */ int fd; GstSunAudioOpenMode mode; /* mixer stuff */ GList *tracklist; gint mixer_fd; gchar *device_name; }; struct _GstSunAudioElementClass { GstElementClass klass; GList *device_combinations; }; typedef struct _GstSunAudioDeviceCombination { gchar *mixer; dev_t dev; } GstSunAudioDeviceCombination; typedef struct _GstSunAudioElement GstSunAudioElement; typedef struct _GstSunAudioElementClass GstSunAudioElementClass; GType gst_sunaudioelement_get_type (void); G_END_DECLS #endif