1/* 2 * Copyright (C) 2011 Igalia S.L 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library 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 GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public License 15 * along with this library; see the file COPYING.LIB. If not, write to 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20#ifndef GRefPtrGStreamer_h 21#define GRefPtrGStreamer_h 22#if USE(GSTREAMER) 23 24#include <wtf/gobject/GRefPtr.h> 25 26typedef struct _GstElement GstElement; 27typedef struct _GstPad GstPad; 28typedef struct _GstPadTemplate GstPadTemplate; 29typedef struct _GstCaps GstCaps; 30typedef struct _GstTask GstTask; 31typedef struct _GstBus GstBus; 32typedef struct _GstElementFactory GstElementFactory; 33typedef struct _GstBuffer GstBuffer; 34typedef struct _GstSample GstSample; 35typedef struct _GstTagList GstTagList; 36typedef struct _GstEvent GstEvent; 37typedef struct _GstToc GstToc; 38 39namespace WTF { 40 41template<> GRefPtr<GstElement> adoptGRef(GstElement* ptr); 42template<> GstElement* refGPtr<GstElement>(GstElement* ptr); 43template<> void derefGPtr<GstElement>(GstElement* ptr); 44 45template<> GRefPtr<GstPad> adoptGRef(GstPad* ptr); 46template<> GstPad* refGPtr<GstPad>(GstPad* ptr); 47template<> void derefGPtr<GstPad>(GstPad* ptr); 48 49template<> GRefPtr<GstPadTemplate> adoptGRef(GstPadTemplate* ptr); 50template<> GstPadTemplate* refGPtr<GstPadTemplate>(GstPadTemplate* ptr); 51template<> void derefGPtr<GstPadTemplate>(GstPadTemplate* ptr); 52 53template<> GRefPtr<GstCaps> adoptGRef(GstCaps* ptr); 54template<> GstCaps* refGPtr<GstCaps>(GstCaps* ptr); 55template<> void derefGPtr<GstCaps>(GstCaps* ptr); 56 57template<> GRefPtr<GstTask> adoptGRef(GstTask* ptr); 58template<> GstTask* refGPtr<GstTask>(GstTask* ptr); 59template<> void derefGPtr<GstTask>(GstTask* ptr); 60 61template<> GRefPtr<GstBus> adoptGRef(GstBus* ptr); 62template<> GstBus* refGPtr<GstBus>(GstBus* ptr); 63template<> void derefGPtr<GstBus>(GstBus* ptr); 64 65template<> GRefPtr<GstElementFactory> adoptGRef(GstElementFactory* ptr); 66template<> GstElementFactory* refGPtr<GstElementFactory>(GstElementFactory* ptr); 67template<> void derefGPtr<GstElementFactory>(GstElementFactory* ptr); 68 69template<> GRefPtr<GstBuffer> adoptGRef(GstBuffer* ptr); 70template<> GstBuffer* refGPtr<GstBuffer>(GstBuffer* ptr); 71template<> void derefGPtr<GstBuffer>(GstBuffer* ptr); 72 73template<> GRefPtr<GstSample> adoptGRef(GstSample* ptr); 74template<> GstSample* refGPtr<GstSample>(GstSample* ptr); 75template<> void derefGPtr<GstSample>(GstSample* ptr); 76 77template<> GRefPtr<GstTagList> adoptGRef(GstTagList* ptr); 78template<> GstTagList* refGPtr<GstTagList>(GstTagList* ptr); 79template<> void derefGPtr<GstTagList>(GstTagList* ptr); 80 81template<> GRefPtr<GstEvent> adoptGRef(GstEvent* ptr); 82template<> GstEvent* refGPtr<GstEvent>(GstEvent* ptr); 83template<> void derefGPtr<GstEvent>(GstEvent* ptr); 84 85template<> GRefPtr<GstToc> adoptGRef(GstToc* ptr); 86template<> GstToc* refGPtr<GstToc>(GstToc* ptr); 87template<> void derefGPtr<GstToc>(GstToc* ptr); 88} 89 90#endif // USE(GSTREAMER) 91#endif 92