1
/* -*- Mode: C; ; c-basic-offset: 4 -*- */
3
* Copyright (C) 2005 Edward Hervey
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Library General Public
7
* License as published by the Free Software Foundation; either
8
* version 2 of the License, or (at your option) any later version.
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Library General Public License for more details.
15
* You should have received a copy of the GNU Library General Public
16
* License along with this library; if not, write to the
17
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18
* Boston, MA 02111-1307, USA.
20
* Author: Johan Dahlin <johan@gnome.org>
25
gst_controller_*_valist
26
gst_controller_remove_properties_list
29
override gst_controller_set args
31
_wrap_gst_controller_set (PyGObject *self, PyObject *args)
33
GstController *controller = (GstController *) self->obj;
35
GParamSpec *pspec = NULL;
36
GstClockTime timestamp;
37
GValue value = { 0, };
41
if (!PyArg_ParseTuple(args, "sLO:GstController.set",
42
¶m_name, ×tamp, &pvalue))
45
if (!(pspec = g_object_class_find_property(G_OBJECT_GET_CLASS (controller->object),
46
(const gchar*) param_name))) {
47
PyErr_SetString (PyExc_TypeError,
48
"The controlled object doesn't have the given property");
52
g_value_init (&value, pspec->value_type);
54
if (pyg_value_from_pyobject (&value, pvalue)) {
55
PyErr_SetString (PyExc_TypeError,
56
"Couldn't convert the given value to the good type");
60
res = gst_controller_set (controller, param_name, timestamp, &value);
69
override gst_controller_get kwargs
71
_wrap_gst_controller_get (PyGObject *self, PyObject *args, PyObject *kwargs)
73
GstController *controller = (GstController *) self->obj;
74
static char *kwlist[] = { "propertyname", "timestamp", NULL };
76
GstClockTime timestamp;
80
if (!PyArg_ParseTupleAndKeywords (args, kwargs,
81
"sL:GstController.get",
82
kwlist, &propertyname, ×tamp))
85
value = gst_controller_get (controller, propertyname, timestamp);
87
pyvalue = pyg_value_as_pyobject (value, FALSE);
94
override gst_controller_new_list args
96
_wrap_gst_controller_new_list(PyGObject *self, PyObject *args)
102
if ((len = PyTuple_Size(args)) < 1) {
103
PyErr_SetString(PyExc_TypeError, "Controller requires at least a target object");
106
target = (PyGObject *) PyTuple_GetItem(args, 0);
112
temp = PyTuple_GetItem(args, len);
113
str = PyString_AsString(temp);
114
GST_INFO("prepending %s [%d]", str, len);
115
list = g_list_prepend(list, PyString_AsString(temp));
118
self->obj = (GObject *) gst_controller_new_list(target->obj, list);
121
PyErr_SetString(PyExc_RuntimeError, "could not create GstController object");
125
pygobject_register_wrapper((PyObject *) self);
129
override gst_controller_remove_properties args
131
_wrap_gst_controller_remove_properties (PyGObject *self, PyObject *args)
133
GstController *controller = (GstController *) self->obj;
136
gboolean res = FALSE;
139
if ((len = PyTuple_Size(args)) < 1) {
140
PyErr_SetString(PyExc_TypeError, "Please give at least one property name to remove");
148
temp = PyTuple_GetItem(args, len);
149
str = PyString_AsString(temp);
150
GST_INFO("prepending %s [%d]", str, len);
151
list = g_list_prepend(list, PyString_AsString(temp));
154
res = gst_controller_remove_properties_list(controller, list);
166
override gst_controller_set_from_list args
168
_wrap_gst_controller_set_from_list (PyGObject *self, PyObject *args)
170
GstController *controller = (GstController *) self->obj;
175
GParamSpec *pspec = NULL;
176
gboolean res = FALSE;
179
if ((len = PyTuple_Size(args)) < 2) {
180
PyErr_SetString(PyExc_TypeError, "Please give a property name and a tuple of (time,value)");
184
temp = PyTuple_GetItem(args, 0);
185
if (!PyString_Check (temp)) {
186
PyErr_SetString(PyExc_TypeError, "First argument must be a string");
189
pname = PyString_AsString(temp);
191
if (!(pspec = g_object_class_find_property(G_OBJECT_GET_CLASS (controller->object),
192
(const gchar*) pname)))
199
temp2 = PyTuple_GetItem(args, len);
200
if (!PyTuple_Check (temp2)) {
201
PyErr_SetString (PyExc_TypeError, "Tuple doesn't contain tuples !");
204
tval = g_new0(GstTimedValue, 1);
205
tval->timestamp = PyLong_AsUnsignedLongLong(PyTuple_GetItem(temp2, 0));
206
g_value_init (&tval->value, pspec->value_type);
207
if ((pyg_value_from_pyobject (&tval->value, PyTuple_GetItem (temp2, 1))) < 0) {
208
PyErr_SetString (PyExc_TypeError, "Couldn't convert value to correct type");
212
list = g_slist_prepend(list, tval);
215
res = gst_controller_set_from_list(controller, pname, list);
229
list = g_slist_next(list);
235
override gst_dp_header_payload_length kwargs
237
_wrap_gst_dp_header_payload_length(PyObject *self, PyObject *args, PyObject *kwargs)
239
static char *kwlist[] = { "header", NULL };
243
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:dp_header_payload_length", kwlist, &header))
245
ret = gst_dp_header_payload_length((guint8*)header);
246
return PyLong_FromUnsignedLong(ret);
249
overrid gst_dp_header_payload_type kwargs
251
_wrap_gst_dp_header_payload_type(PyObject *self, PyObject *args, PyObject *kwargs)
253
static char *kwlist[] = { "header", NULL };
257
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:dp_header_payload_type", kwlist, &header))
259
ret = gst_dp_header_payload_type((guint8*)header);
260
return pyg_enum_from_gtype(G_TYPE_NONE, ret);
263
override gst_dp_buffer_from_header kwargs
265
_wrap_gst_dp_buffer_from_header(PyObject *self, PyObject *args, PyObject *kwargs)
267
static char *kwlist[] = { "header_length", "header", NULL };
272
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Is:dp_buffer_from_header", kwlist, &header_length, &header))
274
ret = gst_dp_buffer_from_header(header_length, (guint8*)header);
275
/* pygobject_new handles NULL checking */
276
return pygstminiobject_new((GstMiniObject *)ret);
279
override gst_dp_caps_from_packet kwargs
281
_wrap_gst_dp_caps_from_packet(PyObject *self, PyObject *args, PyObject *kwargs)
283
static char *kwlist[] = { "header_length", "header", "payload", NULL };
284
char *header, *payload;
288
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Iss:dp_caps_from_packet", kwlist, &header_length, &header, &payload))
290
ret = gst_dp_caps_from_packet(header_length,
293
return pyg_boxed_new (GST_TYPE_CAPS, ret, FALSE, TRUE);
296
override gst_dp_event_from_packet kwargs
298
_wrap_gst_dp_event_from_packet(PyObject *self, PyObject *args, PyObject *kwargs)
300
static char *kwlist[] = { "header_length", "header", "payload", NULL };
301
char *header, *payload;
305
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Iss:dp_event_from_packet", kwlist, &header_length, &header, &payload))
307
ret = gst_dp_event_from_packet(header_length,
310
/* pygobject_new handles NULL checking */
311
return pygstminiobject_new((GstMiniObject *)ret);
314
override gst_dp_validate_header kwargs
316
_wrap_gst_dp_validate_header(PyObject *self, PyObject *args, PyObject *kwargs)
318
static char *kwlist[] = { "header_length", "header", NULL };
323
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Is:dp_validate_header", kwlist, &header_length, &header))
325
ret = gst_dp_validate_header(header_length, (guint8*) header);
326
return PyBool_FromLong(ret);
330
override gst_dp_validate_payload kwargs
332
_wrap_gst_dp_validate_payload(PyObject *self, PyObject *args, PyObject *kwargs)
334
static char *kwlist[] = { "header_length", "header", "payload", NULL };
335
char *header, *payload;
339
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Iss:dp_validate_payload", kwlist, &header_length, &header, &payload))
341
ret = gst_dp_validate_payload(header_length,
344
return PyBool_FromLong(ret);
348
override gst_dp_validate_packet kwargs
350
_wrap_gst_dp_validate_packet(PyObject *self, PyObject *args, PyObject *kwargs)
352
static char *kwlist[] = { "header_length", "header", "payload", NULL };
353
char *header, *payload;
357
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Iss:dp_validate_packet", kwlist, &header_length, &header, &payload))
359
ret = gst_dp_validate_packet(header_length,
362
return PyBool_FromLong(ret);
366
override gst_dp_header_payload_type kwargs
368
_wrap_gst_dp_header_payload_type(PyObject *self, PyObject *args, PyObject *kwargs)
370
static char *kwlist[] = { "header", NULL };
374
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:dp_header_payload_type", kwlist, &header))
376
ret = gst_dp_header_payload_type((guint8*) header);
377
return pyg_enum_from_gtype(G_TYPE_NONE, ret);