2 Copyright (C) 2009 George Kiagiadakis <kiagiadakis.george@gmail.com>
4 This library is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published
6 by the Free Software Foundation; either version 2.1 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #include "qgstelement.h"
18 #include <gst/gstelement.h>
19 #include <gst/gstutils.h>
21 namespace QtGstreamer {
23 QGstElement::QGstElement(GstElement *gstElement, QObject *parent)
24 : QGstObject(GST_OBJECT(gstElement), parent)
28 QGstElement::~QGstElement()
32 QGstElement::State QGstElement::currentState() const
35 gst_element_get_state(GST_ELEMENT(m_object), &s, NULL, 0);
36 return static_cast<State>(s);
39 void QGstElement::setState(State state)
41 gst_element_set_state(GST_ELEMENT(m_object), static_cast<GstState>(state));
45 bool QGstElement::link(QGstElement *element1, QGstElement *element2, QGstElement *element3,
46 QGstElement *element4, QGstElement *element5 , QGstElement *element6,
47 QGstElement *element7, QGstElement *element8, QGstElement *element9,
48 QGstElement *element10)
50 return gst_element_link_many(GST_ELEMENT(element1->m_object), GST_ELEMENT(element2->m_object),
51 element3 ? GST_ELEMENT(element3->m_object) : NULL,
52 element4 ? GST_ELEMENT(element4->m_object) : NULL,
53 element5 ? GST_ELEMENT(element5->m_object) : NULL,
54 element6 ? GST_ELEMENT(element6->m_object) : NULL,
55 element7 ? GST_ELEMENT(element7->m_object) : NULL,
56 element8 ? GST_ELEMENT(element8->m_object) : NULL,
57 element9 ? GST_ELEMENT(element9->m_object) : NULL,
58 element10 ? GST_ELEMENT(element10->m_object) : NULL, NULL);
62 void QGstElement::unlink(QGstElement *element1, QGstElement *element2, QGstElement *element3,
63 QGstElement *element4, QGstElement *element5 , QGstElement *element6,
64 QGstElement *element7, QGstElement *element8, QGstElement *element9,
65 QGstElement *element10)
67 gst_element_unlink_many(GST_ELEMENT(element1->m_object), GST_ELEMENT(element2->m_object),
68 element3 ? GST_ELEMENT(element3->m_object) : NULL,
69 element4 ? GST_ELEMENT(element4->m_object) : NULL,
70 element5 ? GST_ELEMENT(element5->m_object) : NULL,
71 element6 ? GST_ELEMENT(element6->m_object) : NULL,
72 element7 ? GST_ELEMENT(element7->m_object) : NULL,
73 element8 ? GST_ELEMENT(element8->m_object) : NULL,
74 element9 ? GST_ELEMENT(element9->m_object) : NULL,
75 element10 ? GST_ELEMENT(element10->m_object) : NULL, NULL);
80 #include "qgstelement.moc"