1
/* -*- Mode: C; ; c-file-style: "python" -*- */
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>
24
gst_query_set_formatsv
26
override gst_query_parse_position noargs
28
_wrap_gst_query_parse_position (PyGstMiniObject *self)
34
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_POSITION) {
35
PyErr_SetString(PyExc_TypeError, "Query is not a 'Position' query");
39
gst_query_parse_position (GST_QUERY(self->obj), &format, &cur);
42
PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format));
43
PyList_SetItem(ret, 1, PyLong_FromLongLong(cur));
48
override gst_query_parse_duration noargs
50
_wrap_gst_query_parse_duration (PyGstMiniObject *self)
56
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_DURATION) {
57
PyErr_SetString(PyExc_TypeError, "Query is not a 'Duration' query");
61
gst_query_parse_duration (GST_QUERY(self->obj), &format, &cur);
64
PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format));
65
PyList_SetItem(ret, 1, PyLong_FromLongLong(cur));
70
override gst_query_parse_convert noargs
72
_wrap_gst_query_parse_convert (PyGstMiniObject *self)
74
GstFormat srcformat, destformat;
75
gint64 srcvalue, destvalue;
78
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_CONVERT) {
79
PyErr_SetString(PyExc_TypeError, "Query is not a 'Convert' query");
83
gst_query_parse_convert (GST_QUERY(self->obj),
84
&srcformat, &srcvalue,
85
&destformat, &destvalue);
88
PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, srcformat));
89
PyList_SetItem(ret, 1, PyLong_FromLongLong(srcvalue));
90
PyList_SetItem(ret, 2, pyg_enum_from_gtype(GST_TYPE_FORMAT, destformat));
91
PyList_SetItem(ret, 3, PyLong_FromLongLong(destvalue));
96
override gst_query_parse_segment noargs
98
_wrap_gst_query_parse_segment (PyGstMiniObject *self)
106
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_SEGMENT) {
107
PyErr_SetString(PyExc_TypeError, "Query is not a 'Segment' query");
111
gst_query_parse_segment (GST_QUERY(self->obj),
113
&start_value, &stop_value);
116
PyList_SetItem (ret, 0, PyFloat_FromDouble(rate));
117
PyList_SetItem (ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format));
118
PyList_SetItem (ret, 2, PyLong_FromUnsignedLongLong(start_value));
119
PyList_SetItem (ret, 3, PyLong_FromUnsignedLongLong(stop_value));
124
override gst_query_parse_seeking noargs
126
_wrap_gst_query_parse_seeking (PyGstMiniObject *self)
131
gint64 segment_start, segment_end;
133
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_SEEKING) {
134
PyErr_SetString(PyExc_TypeError, "Query is not a 'Seeking' query");
138
gst_query_parse_seeking (GST_QUERY(self->obj),
140
&segment_start, &segment_end);
143
PyList_SetItem (ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, format));
144
PyList_SetItem (ret, 1, PyBool_FromLong (seekable));
145
PyList_SetItem (ret, 2, PyLong_FromLongLong(segment_start));
146
PyList_SetItem (ret, 3, PyLong_FromLongLong(segment_end));
151
override gst_query_parse_formats_length noargs
153
_wrap_gst_query_parse_formats_length (PyGstMiniObject *self)
158
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_FORMATS) {
159
PyErr_SetString(PyExc_TypeError, "Query is not a 'Formats' query");
163
gst_query_parse_formats_length (GST_QUERY (self->obj),
166
ret = PyInt_FromLong(n_formats);
171
override gst_query_parse_formats_nth kwargs
173
_wrap_gst_query_parse_formats_nth (PyGstMiniObject *self, PyObject *args, PyObject *kwargs)
175
static char *kwlist[] = {"nth", NULL};
179
if (GST_QUERY_TYPE (self->obj) != GST_QUERY_FORMATS) {
180
PyErr_SetString(PyExc_TypeError, "Query is not a 'Formats' query");
184
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "I:GstQuery.parse_formats_nth", kwlist, &nth))
187
gst_query_parse_formats_nth (GST_QUERY (self->obj),
190
return pyg_enum_from_gtype (GST_TYPE_FORMAT, format);
193
override gst_query_set_formats args
195
_wrap_gst_query_set_formats (PyGstMiniObject *self, PyObject *args)
197
PyObject *ret = NULL;
201
if (GST_QUERY_TYPE (self->obj) != GST_QUERY_FORMATS) {
202
PyErr_SetString(PyExc_TypeError, "Query is not a 'Formats' query");
206
if ((len = PyTuple_Size(args)) < 1) {
207
PyErr_SetString(PyExc_TypeError, "You need to supply at least one gst.Format");
211
formats = g_new0(GstFormat, len);
213
for (i = 0; i < len; i++) {
214
if (pyg_enum_get_value(GST_TYPE_FORMAT,
215
PyTuple_GetItem(args, i),
216
(gint *) &formats[i]))
220
gst_query_set_formatsv (GST_QUERY(self->obj), len, formats);