38 #define GST_DEVSOUND_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DEVSOUND_SINK,GstDevsoundSink)) |
39 #define GST_DEVSOUND_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DEVSOUND_SINK,GstDevsoundSink)) |
39 #define GST_DEVSOUND_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DEVSOUND_SINK,GstDevsoundSinkClass)) |
40 #define GST_DEVSOUND_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DEVSOUND_SINK,GstDevsoundSinkClass)) |
40 #define GST_IS_DEVSOUND_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DEVSOUND_SINK)) |
41 #define GST_IS_DEVSOUND_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DEVSOUND_SINK)) |
41 #define GST_IS_DEVSOUND_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DEVSOUND_SINK)) |
42 #define GST_IS_DEVSOUND_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DEVSOUND_SINK)) |
42 |
43 |
43 //#define AV_SYNC |
44 |
44 |
45 |
45 typedef struct _GstDevsoundSink GstDevsoundSink; |
46 typedef struct _GstDevsoundSink GstDevsoundSink; |
46 typedef struct _GstDevsoundSinkClass GstDevsoundSinkClass; |
47 typedef struct _GstDevsoundSinkClass GstDevsoundSinkClass; |
47 |
48 |
48 typedef struct _GstDevsoundUpdate GstDevsoundUpdate; |
49 typedef struct _GstDevsoundUpdate GstDevsoundUpdate; |
49 |
50 |
50 struct _GstDevsoundUpdate{ |
51 struct _GstDevsoundUpdate{ |
51 gboolean channelsupdate; |
52 gboolean channelsupdate; |
52 gboolean rateupdate; |
53 gboolean rateupdate; |
53 gboolean volumeupdate; |
54 gboolean volumeupdate; |
54 gboolean volumerampupdate; |
55 gboolean volumerampupdate; |
55 gboolean leftbalanceupdate; |
56 gboolean leftbalanceupdate; |
56 gboolean rightbalanceupdate; |
57 gboolean rightbalanceupdate; |
57 gboolean preferenceupdate; |
58 gboolean preferenceupdate; |
58 gboolean priorityupdate; |
59 gboolean priorityupdate; |
59 gboolean fourccupdate; |
60 gboolean fourccupdate; |
60 gboolean outputupdate; |
61 gboolean outputupdate; |
61 }; |
62 }; |
62 |
63 |
63 struct _GstDevsoundSink { |
64 struct _GstDevsoundSink { |
64 GstBaseSink sink; |
65 GstBaseSink sink; |
|
66 |
|
67 void *handle; |
|
68 void *dataptr; |
|
69 gchar *device; |
|
70 gint bytes_per_sample; |
|
71 GstCaps *probed_caps; |
65 |
72 |
66 void *handle; |
73 GstDevsoundUpdate pending; |
67 void *dataptr; |
|
68 gchar *device; |
|
69 gint bytes_per_sample; |
|
70 GstCaps *probed_caps; |
|
71 |
74 |
72 GstDevsoundUpdate pending; |
75 //properties |
73 |
76 gint channels; |
74 //properties |
77 gint rate; |
75 gint channels; |
78 gint volume; |
76 gint rate; |
79 gint volumeramp; |
77 gint volume; |
80 gint maxvolume; |
78 gint volumeramp; |
81 gint leftbalance; |
79 gint maxvolume; |
82 gint rightbalance; |
80 gint leftbalance; |
83 gint priority; |
81 gint rightbalance; |
84 gint preference; |
82 gint priority; |
85 gint samplesplayed; |
83 gint preference; |
86 gint output; |
84 gint output; |
87 gulong fourcc; |
85 gulong fourcc; |
88 gchar *mimetype; |
86 gchar *mimetype; |
89 GList *fmt; |
87 GList *fmt; |
90 gboolean framemodereq; |
88 |
91 gboolean g711cng; |
89 gboolean eosreceived; |
92 gboolean ilbccng; |
90 |
|
91 #ifdef AV_SYNC |
|
92 gboolean timeplayedavailable; |
|
93 gulong time_or_samples_played; |
|
94 GstClock *clock; /* The clock for this element. */ |
|
95 #endif /*AV_SYNC*/ |
|
96 }; |
93 }; |
97 |
94 |
98 struct _GstDevsoundSinkClass { |
95 struct _GstDevsoundSinkClass { |
99 GstBaseSinkClass parent_class; |
96 GstBaseSinkClass parent_class; |
100 }; |
97 }; |
101 |
98 |
102 GType gst_devsound_sink_get_type(void); |
99 GType gst_devsound_sink_get_type(void); |
103 |
100 |
104 G_END_DECLS |
101 G_END_DECLS |
105 |
102 |
106 #endif /* __GST_DEVSOUNDSINK_H__ */ |
103 #endif /* __GST_DEVSOUNDSINK_H__ */ |
107 |
|