gstreamer 0.90.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/ChangeLog +1157 -0
  2. data/README +33 -0
  3. data/Rakefile +15 -0
  4. data/ext/gstreamer/Makefile +162 -0
  5. data/ext/gstreamer/depend +5 -0
  6. data/ext/gstreamer/extconf.rb +63 -0
  7. data/ext/gstreamer/gst.so +0 -0
  8. data/ext/gstreamer/misc.c +62 -0
  9. data/ext/gstreamer/misc.o +0 -0
  10. data/ext/gstreamer/rbgst-bin.c +466 -0
  11. data/ext/gstreamer/rbgst-bin.o +0 -0
  12. data/ext/gstreamer/rbgst-buffer.c +365 -0
  13. data/ext/gstreamer/rbgst-buffer.o +0 -0
  14. data/ext/gstreamer/rbgst-bus.c +92 -0
  15. data/ext/gstreamer/rbgst-bus.o +0 -0
  16. data/ext/gstreamer/rbgst-caps.c +441 -0
  17. data/ext/gstreamer/rbgst-caps.o +0 -0
  18. data/ext/gstreamer/rbgst-child-proxy.c +33 -0
  19. data/ext/gstreamer/rbgst-child-proxy.o +0 -0
  20. data/ext/gstreamer/rbgst-clock.c +108 -0
  21. data/ext/gstreamer/rbgst-clock.o +0 -0
  22. data/ext/gstreamer/rbgst-element-factory.c +255 -0
  23. data/ext/gstreamer/rbgst-element-factory.o +0 -0
  24. data/ext/gstreamer/rbgst-element.c +1053 -0
  25. data/ext/gstreamer/rbgst-element.o +0 -0
  26. data/ext/gstreamer/rbgst-event.c +351 -0
  27. data/ext/gstreamer/rbgst-event.o +0 -0
  28. data/ext/gstreamer/rbgst-ghost-pad.c +42 -0
  29. data/ext/gstreamer/rbgst-ghost-pad.o +0 -0
  30. data/ext/gstreamer/rbgst-index-factory.c +67 -0
  31. data/ext/gstreamer/rbgst-index-factory.o +0 -0
  32. data/ext/gstreamer/rbgst-message.c +784 -0
  33. data/ext/gstreamer/rbgst-message.o +0 -0
  34. data/ext/gstreamer/rbgst-mini-object.c +220 -0
  35. data/ext/gstreamer/rbgst-mini-object.o +0 -0
  36. data/ext/gstreamer/rbgst-object.c +81 -0
  37. data/ext/gstreamer/rbgst-object.o +0 -0
  38. data/ext/gstreamer/rbgst-pad-template.c +124 -0
  39. data/ext/gstreamer/rbgst-pad-template.o +0 -0
  40. data/ext/gstreamer/rbgst-pad.c +338 -0
  41. data/ext/gstreamer/rbgst-pad.o +0 -0
  42. data/ext/gstreamer/rbgst-pipeline.c +90 -0
  43. data/ext/gstreamer/rbgst-pipeline.o +0 -0
  44. data/ext/gstreamer/rbgst-plugin-feature.c +134 -0
  45. data/ext/gstreamer/rbgst-plugin-feature.o +0 -0
  46. data/ext/gstreamer/rbgst-plugin.c +164 -0
  47. data/ext/gstreamer/rbgst-plugin.o +0 -0
  48. data/ext/gstreamer/rbgst-private.c +89 -0
  49. data/ext/gstreamer/rbgst-private.h +37 -0
  50. data/ext/gstreamer/rbgst-private.o +0 -0
  51. data/ext/gstreamer/rbgst-query.c +289 -0
  52. data/ext/gstreamer/rbgst-query.o +0 -0
  53. data/ext/gstreamer/rbgst-seek.c +36 -0
  54. data/ext/gstreamer/rbgst-seek.o +0 -0
  55. data/ext/gstreamer/rbgst-static-caps.c +49 -0
  56. data/ext/gstreamer/rbgst-static-caps.o +0 -0
  57. data/ext/gstreamer/rbgst-static-pad-template.c +64 -0
  58. data/ext/gstreamer/rbgst-static-pad-template.o +0 -0
  59. data/ext/gstreamer/rbgst-structure.c +300 -0
  60. data/ext/gstreamer/rbgst-structure.o +0 -0
  61. data/ext/gstreamer/rbgst-system-clock.c +45 -0
  62. data/ext/gstreamer/rbgst-system-clock.o +0 -0
  63. data/ext/gstreamer/rbgst-type-find-factory.c +124 -0
  64. data/ext/gstreamer/rbgst-type-find-factory.o +0 -0
  65. data/ext/gstreamer/rbgst-value.c +517 -0
  66. data/ext/gstreamer/rbgst-value.o +0 -0
  67. data/ext/gstreamer/rbgst-x-overlay.c +132 -0
  68. data/ext/gstreamer/rbgst-x-overlay.o +0 -0
  69. data/ext/gstreamer/rbgst.c +279 -0
  70. data/ext/gstreamer/rbgst.h +197 -0
  71. data/ext/gstreamer/rbgst.o +0 -0
  72. data/ext/gstreamer/rbgstclockentry.c +268 -0
  73. data/ext/gstreamer/rbgstclockentry.o +0 -0
  74. data/ext/gstreamer/rbgstformat.c +159 -0
  75. data/ext/gstreamer/rbgstformat.o +0 -0
  76. data/ext/gstreamer/rbgstindex.c +314 -0
  77. data/ext/gstreamer/rbgstindex.o +0 -0
  78. data/ext/gstreamer/rbgstindexentry.c +96 -0
  79. data/ext/gstreamer/rbgstindexentry.o +0 -0
  80. data/ext/gstreamer/rbgstparse.c +66 -0
  81. data/ext/gstreamer/rbgstparse.o +0 -0
  82. data/ext/gstreamer/rbgstquerytype.c +159 -0
  83. data/ext/gstreamer/rbgstquerytype.o +0 -0
  84. data/ext/gstreamer/rbgstregistry.c +278 -0
  85. data/ext/gstreamer/rbgstregistry.o +0 -0
  86. data/ext/gstreamer/rbgsttag.c +111 -0
  87. data/ext/gstreamer/rbgsttag.o +0 -0
  88. data/ext/gstreamer/rbgsttagsetter.c +50 -0
  89. data/ext/gstreamer/rbgsttagsetter.o +0 -0
  90. data/ext/gstreamer/rbgstxml.c +189 -0
  91. data/ext/gstreamer/rbgstxml.o +0 -0
  92. data/ext/gstreamer/ruby-gstreamer.pc +3 -0
  93. data/extconf.rb +49 -0
  94. data/lib/gst.rb +19 -0
  95. data/sample/audio-player.rb +54 -0
  96. data/sample/gst-inspect.rb +417 -0
  97. data/sample/media-type.rb +55 -0
  98. data/sample/media-type2.rb +268 -0
  99. data/sample/ogg-audio-player.rb +54 -0
  100. data/sample/type-find.rb +46 -0
  101. data/sample/video-player.rb +57 -0
  102. data/sample/xml-player.rb +60 -0
  103. data/test/gst-test-utils.rb +18 -0
  104. data/test/run-test.rb +25 -0
  105. data/test/test_bin.rb +167 -0
  106. data/test/test_buffer.rb +174 -0
  107. data/test/test_caps.rb +24 -0
  108. data/test/test_clock.rb +7 -0
  109. data/test/test_element.rb +87 -0
  110. data/test/test_element_factory.rb +28 -0
  111. data/test/test_event.rb +10 -0
  112. data/test/test_index_factory.rb +7 -0
  113. data/test/test_message.rb +191 -0
  114. data/test/test_mini_object.rb +38 -0
  115. data/test/test_object.rb +10 -0
  116. data/test/test_pad.rb +68 -0
  117. data/test/test_plugin.rb +6 -0
  118. data/test/test_plugin_feature.rb +20 -0
  119. data/test/test_seek.rb +17 -0
  120. data/test/test_static_caps.rb +18 -0
  121. data/test/test_static_pad_template.rb +16 -0
  122. data/test/test_structure.rb +159 -0
  123. data/test/test_thread_handling.rb +58 -0
  124. data/test/test_type_find_factory.rb +8 -0
  125. data/test/test_value.rb +69 -0
  126. metadata +208 -0
@@ -0,0 +1,37 @@
1
+ /*
2
+ *
3
+ * Copyright (C) 2008 Ruby-GNOME2 Project
4
+ *
5
+ * This file is part of Ruby/GStreamer.
6
+ *
7
+ * Ruby/GStreamer is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * Ruby/GStreamer is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with Ruby/GStreamer; if not, write to the Free Software
19
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
+ */
21
+
22
+ #ifndef __RBGST_PRIVATE_H_
23
+ #define __RBGST_PRIVATE_H_
24
+
25
+ #include <ruby.h>
26
+
27
+ char *_rbgst_inspect(VALUE object);
28
+ void _rbgst_define_class_if_need(VALUE klass, GType type, const gchar *prefix);
29
+ VALUE _rbgst_collect_elements(GstIterator *iter);
30
+
31
+ void _rbgst_mini_object_free(void *ptr);
32
+
33
+ /* implemented in rbgst-object.c */
34
+ VALUE rbgst_object_instance2robj(gpointer instance);
35
+
36
+
37
+ #endif /* __RBGST_PRIVATE_H_ */
Binary file
@@ -0,0 +1,289 @@
1
+ /*
2
+ * Copyright (C) 2006 Sjoerd Simons <sjoerd@luon.net>
3
+ * Copyright (C) 2003, 2004 Laurent Sansonetti <lrz@gnome.org>
4
+ * Copyright (C) 2006 Zaheer Abbas Merali <zaheerabbas at merali dot org>
5
+ * Copyright (C) 2007 Ruby-GNOME2 Project Team
6
+ *
7
+ * This file is part of Ruby/GStreamer.
8
+ *
9
+ * Ruby/GStreamer is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 2.1 of the License, or (at your option) any later version.
13
+ *
14
+ * Ruby/GStreamer is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with Ruby/GStreamer; if not, write to the Free Software
21
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
+ */
23
+
24
+ #include "rbgst.h"
25
+ #include "rbgst-private.h"
26
+
27
+ /* Document-class: Gst::Query
28
+ * Queries.
29
+ */
30
+
31
+ static RGConvertTable table = {0};
32
+
33
+ static VALUE rb_cGstQueryPosition;
34
+ static VALUE rb_cGstQueryDuration;
35
+ static VALUE rb_cGstQueryLatency;
36
+ static VALUE rb_cGstQuerySeeking;
37
+ static VALUE rb_cGstQuerySegment;
38
+ static VALUE rb_cGstQueryConvert;
39
+ static VALUE rb_cGstQueryFormats;
40
+ static VALUE rb_cGstQuery;
41
+
42
+ static VALUE
43
+ get_superclass(void)
44
+ {
45
+ return rb_cGstMiniObject;
46
+ }
47
+
48
+ static VALUE
49
+ instance2robj(gpointer instance)
50
+ {
51
+ VALUE klass;
52
+ GstQuery *query;
53
+
54
+ query = instance;
55
+
56
+ switch (GST_QUERY_TYPE(query)) {
57
+ case GST_QUERY_POSITION:
58
+ klass = rb_cGstQueryPosition;
59
+ break;
60
+ case GST_QUERY_DURATION:
61
+ klass = rb_cGstQueryDuration;
62
+ break;
63
+ case GST_QUERY_LATENCY:
64
+ klass = rb_cGstQueryLatency;
65
+ break;
66
+ case GST_QUERY_SEEKING:
67
+ klass = rb_cGstQuerySeeking;
68
+ break;
69
+ case GST_QUERY_SEGMENT:
70
+ klass = rb_cGstQuerySegment;
71
+ break;
72
+ case GST_QUERY_CONVERT:
73
+ klass = rb_cGstQueryConvert;
74
+ break;
75
+ case GST_QUERY_FORMATS:
76
+ klass = rb_cGstQueryFormats;
77
+ break;
78
+ default:
79
+ klass = rb_cGstQuery;
80
+ break;
81
+ }
82
+
83
+ gst_mini_object_ref(instance);
84
+ return Data_Wrap_Struct(klass, NULL, _rbgst_mini_object_free, instance);
85
+ }
86
+
87
+ static VALUE
88
+ position_initialize(VALUE self, VALUE format)
89
+ {
90
+ GstQuery *query;
91
+
92
+ query = gst_query_new_position(RVAL2GST_FORMAT(format));
93
+
94
+ G_INITIALIZE(self, query);
95
+ return Qnil;
96
+ }
97
+
98
+ static VALUE
99
+ position_parse(VALUE self)
100
+ {
101
+ GstFormat format;
102
+ gint64 cur;
103
+
104
+ gst_query_parse_position(RVAL2GST_QUERY(self), &format, &cur);
105
+
106
+ return rb_ary_new3(2, GST_FORMAT2RVAL(format), LL2NUM(cur));
107
+ }
108
+
109
+ static VALUE
110
+ duration_initialize(VALUE self, VALUE format)
111
+ {
112
+ GstQuery *query;
113
+
114
+ query = gst_query_new_duration(RVAL2GST_FORMAT(format));
115
+
116
+ G_INITIALIZE(self, query);
117
+ return Qnil;
118
+ }
119
+
120
+ static VALUE
121
+ duration_parse(VALUE self)
122
+ {
123
+ GstFormat format;
124
+ gint64 cur;
125
+
126
+ gst_query_parse_duration(RVAL2GST_QUERY(self), &format, &cur);
127
+
128
+ return rb_ary_new3(2, GST_FORMAT2RVAL(format), LL2NUM(cur));
129
+ }
130
+
131
+ static VALUE
132
+ latency_initialize(VALUE self)
133
+ {
134
+ GstQuery *query;
135
+
136
+ query = gst_query_new_latency();
137
+
138
+ G_INITIALIZE(self, query);
139
+ return Qnil;
140
+ }
141
+
142
+ static VALUE
143
+ latency_parse(VALUE self)
144
+ {
145
+ GstClockTime min_latency;
146
+ GstClockTime max_latency;
147
+ gboolean live;
148
+
149
+ gst_query_parse_latency(RVAL2GST_QUERY(self), &live, &min_latency,
150
+ &max_latency);
151
+
152
+ return rb_ary_new3(3, CBOOL2RVAL(live), ULL2NUM(min_latency),
153
+ ULL2NUM(max_latency));
154
+ }
155
+
156
+
157
+ static VALUE
158
+ seeking_initialize(VALUE self, VALUE format)
159
+ {
160
+ GstQuery *query;
161
+
162
+ query = gst_query_new_seeking(RVAL2GST_FORMAT(format));
163
+
164
+ G_INITIALIZE(self, query);
165
+ return Qnil;
166
+ }
167
+
168
+ static VALUE
169
+ seeking_parse(VALUE self)
170
+ {
171
+ GstFormat format;
172
+ gboolean seekable;
173
+ gint64 segment_start, segment_end;
174
+
175
+ gst_query_parse_seeking(RVAL2GST_QUERY(self), &format, &seekable,
176
+ &segment_start, &segment_end);
177
+
178
+ return rb_ary_new3(4, GST_FORMAT2RVAL(format), CBOOL2RVAL(seekable),
179
+ LL2NUM(segment_start), LL2NUM(segment_end));
180
+ }
181
+
182
+
183
+ static VALUE
184
+ segment_initialize(VALUE self, VALUE format)
185
+ {
186
+ GstQuery *query;
187
+
188
+ query = gst_query_new_segment(RVAL2GST_FORMAT(format));
189
+
190
+ G_INITIALIZE(self, query);
191
+ return Qnil;
192
+ }
193
+
194
+ static VALUE
195
+ segment_parse(VALUE self)
196
+ {
197
+ GstFormat format;
198
+ gdouble rate;
199
+ gint64 start_value, stop_value;
200
+
201
+ gst_query_parse_segment(RVAL2GST_QUERY(self), &rate, &format,
202
+ &start_value, &stop_value);
203
+
204
+ return rb_ary_new3(4, rb_dbl2big(rate), GST_FORMAT2RVAL(format),
205
+ LL2NUM(start_value), LL2NUM(stop_value));
206
+ }
207
+
208
+ static VALUE
209
+ convert_initialize(VALUE self, VALUE src_format, VALUE value, VALUE dest_format)
210
+ {
211
+ GstQuery *query;
212
+
213
+ query = gst_query_new_convert(GST_FORMAT2RVAL(src_format),
214
+ NUM2LL(value), GST_FORMAT2RVAL(dest_format));
215
+
216
+ G_INITIALIZE(self, query);
217
+ return Qnil;
218
+ }
219
+
220
+ static VALUE
221
+ convert_parse(VALUE self)
222
+ {
223
+ GstFormat src_format, dest_format;
224
+ gint64 src_value, dest_value;
225
+
226
+ gst_query_parse_convert(RVAL2GST_QUERY(self), &src_format, &src_value,
227
+ &dest_format, &dest_value);
228
+
229
+ return rb_ary_new3(4, GST_FORMAT2RVAL(src_format), LL2NUM(src_value),
230
+ RVAL2GST_FORMAT(dest_format), LL2NUM(dest_value));
231
+ }
232
+
233
+
234
+ static VALUE
235
+ formats_initialize(VALUE self, VALUE format)
236
+ {
237
+ GstQuery *query;
238
+
239
+ query = gst_query_new_formats();
240
+
241
+ G_INITIALIZE (self, query);
242
+ return Qnil;
243
+ }
244
+
245
+ static VALUE
246
+ formats_parse(VALUE self)
247
+ {
248
+ VALUE ret;
249
+ guint n_formats;
250
+ guint i;
251
+
252
+ gst_query_parse_formats_length(RVAL2GST_QUERY(self), &n_formats);
253
+ ret = rb_ary_new2(n_formats);
254
+ for (i = 0 ; i< n_formats; i++) {
255
+ GstFormat format;
256
+ gst_query_parse_formats_nth(RVAL2GST_QUERY(self), i, &format);
257
+ rb_ary_push(ret, GST_FORMAT2RVAL(format));
258
+ }
259
+
260
+ return ret;
261
+ }
262
+
263
+ void
264
+ Init_gst_query (void)
265
+ {
266
+ table.type = GST_TYPE_QUERY;
267
+ table.get_superclass = get_superclass;
268
+ table.instance2robj = instance2robj;
269
+ RG_DEF_CONVERSION(&table);
270
+
271
+ rb_cGstQuery = G_DEF_CLASS (GST_TYPE_QUERY, "Query", mGst);
272
+
273
+ #define DEFINE_QUERY(type, lctype, arguments) \
274
+ rb_cGstQuery ## type = \
275
+ rb_define_class_under(mGst, "Query" #type, rb_cGstQuery); \
276
+ rb_define_method(rb_cGstQuery ## type, "initialize", \
277
+ lctype ## _initialize, arguments); \
278
+ rb_define_method(rb_cGstQuery ## type, "parse", \
279
+ lctype ## _parse, 0) \
280
+
281
+ DEFINE_QUERY(Position, position, 1);
282
+ DEFINE_QUERY(Duration, duration, 1);
283
+ DEFINE_QUERY(Latency, latency, 0);
284
+ DEFINE_QUERY(Seeking, seeking, 1);
285
+ DEFINE_QUERY(Segment, segment, 1);
286
+ DEFINE_QUERY(Convert, convert, 2);
287
+ DEFINE_QUERY(Formats, formats, 0);
288
+ #undef DEFINE_QUERY
289
+ }
Binary file
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (C) 2003, 2004 Laurent Sansonetti <lrz@gnome.org>
3
+ *
4
+ * This file is part of Ruby/GStreamer.
5
+ *
6
+ * Ruby/GStreamer is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * Ruby/GStreamer is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with Ruby/GStreamer; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "rbgst.h"
22
+
23
+ /* Class: Gst::Seek
24
+ */
25
+
26
+ void
27
+ Init_gst_seek (void)
28
+ {
29
+ VALUE c = rb_define_module_under(mGst, "Seek");
30
+
31
+ G_DEF_CLASS(GST_TYPE_SEEK_TYPE, "SeekType", mGst);
32
+ G_DEF_CONSTANTS(c, GST_TYPE_SEEK_TYPE, "GST_SEEK_");
33
+
34
+ G_DEF_CLASS(GST_TYPE_SEEK_FLAGS, "SeekFlags", mGst);
35
+ G_DEF_CONSTANTS(c, GST_TYPE_SEEK_FLAGS, "GST_SEEK_");
36
+ }
Binary file
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright (C) 2008 Ruby-GNOME2 Project Team
3
+ *
4
+ * This file is part of Ruby/GStreamer.
5
+ *
6
+ * Ruby/GStreamer is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * Ruby/GStreamer is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with Ruby/GStreamer; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "rbgst.h"
22
+
23
+ #define SELF(obj) (RVAL2GST_STATIC_CAPS(obj))
24
+
25
+ static VALUE
26
+ get_description(VALUE self)
27
+ {
28
+ return CSTR2RVAL(SELF(self)->string);
29
+ }
30
+
31
+ static VALUE
32
+ get(VALUE self)
33
+ {
34
+ return GST_CAPS2RVAL(gst_static_caps_get(SELF(self)));
35
+ }
36
+
37
+ void
38
+ Init_gst_static_caps(void)
39
+ {
40
+ VALUE rb_cGstStaticCaps;
41
+
42
+ rb_cGstStaticCaps = G_DEF_CLASS(GST_TYPE_STATIC_CAPS, "StaticCaps", mGst);
43
+
44
+ rb_define_method(rb_cGstStaticCaps, "description", get_description, 0);
45
+ rb_define_method(rb_cGstStaticCaps, "get", get, 0);
46
+ rb_define_alias(rb_cGstStaticCaps, "to_caps", "get");
47
+
48
+ G_DEF_SETTERS(rb_cGstStaticCaps);
49
+ }
Binary file
@@ -0,0 +1,64 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2007 Ruby-GNOME2 Project Team
4
+ *
5
+ * This file is part of Ruby/GStreamer.
6
+ *
7
+ * Ruby/GStreamer is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * Ruby/GStreamer is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with Ruby/GStreamer; if not, write to the Free Software
19
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
+ */
21
+
22
+ #include "rbgst.h"
23
+
24
+ /* Class: Gst::StaticPadTemplate
25
+ */
26
+
27
+ #define SELF(self) RVAL2GST_STATIC_PAD_TEMPLATE(self)
28
+
29
+ static VALUE
30
+ get_name(VALUE self)
31
+ {
32
+ return CSTR2RVAL(SELF(self)->name_template);
33
+ }
34
+
35
+ static VALUE
36
+ get_presence(VALUE self)
37
+ {
38
+ return GENUM2RVAL(SELF(self)->presence, GST_TYPE_PAD_PRESENCE);
39
+ }
40
+
41
+ static VALUE
42
+ get_direction(VALUE self)
43
+ {
44
+ return GENUM2RVAL(SELF(self)->direction, GST_TYPE_PAD_DIRECTION);
45
+ }
46
+
47
+ static VALUE
48
+ get_caps(VALUE self)
49
+ {
50
+ return GST_STATIC_CAPS2RVAL(gst_static_pad_template_get_caps(SELF(self)));
51
+ }
52
+
53
+ void
54
+ Init_gst_static_pad_template (void)
55
+ {
56
+ VALUE cGstStaticPadTemplate;
57
+
58
+ cGstStaticPadTemplate = G_DEF_CLASS(GST_TYPE_STATIC_PAD_TEMPLATE,
59
+ "StaticPadTemplate", mGst);
60
+ rb_define_method(cGstStaticPadTemplate, "name", get_name, 0);
61
+ rb_define_method(cGstStaticPadTemplate, "presence", get_presence, 0);
62
+ rb_define_method(cGstStaticPadTemplate, "direction", get_direction, 0);
63
+ rb_define_method(cGstStaticPadTemplate, "caps", get_caps, 0);
64
+ }