From: Duncan C. <dun...@wo...> - 2007-08-26 23:29:36
|
Mon Jul 23 15:34:41 PDT 2007 Peter Gavin <pg...@gm...> * gstreamer: use the new hierarchyGenGst; rename Object marshallers to better denote their semantics; start wrapping base libraries adddir ./gstreamer/Media/Streaming/GStreamer/Base hunk ./Makefile.am 25 - gtk/Graphics/UI/Gtk/ModelView/Gtk2HsStore.h \ - gstreamer/hsgstreamer.h + gtk/Graphics/UI/Gtk/ModelView/Gtk2HsStore.h hunk ./Makefile.am 1875 -libHSgstreamer_a_GENERATEDSOURCES = \ - gstreamer/Media/Streaming/GStreamer/Core/Hierarchy.chs \ +libHSgstreamer_a_GENERATEDSOURCES = \ + gstreamer/Media/Streaming/GStreamer/Core/Hierarchy.chs \ + gstreamer/Media/Streaming/GStreamer/Core/MiniHierarchy.chs \ + gstreamer/Media/Streaming/GStreamer/Core/GObjectHierarchy.chs \ + gstreamer/Media/Streaming/GStreamer/Base/Hierarchy.chs \ + gstreamer/Media/Streaming/GStreamer/Base/GObjectHierarchy.chs \ hunk ./Makefile.am 1914 + gstreamer/Media/Streaming/GStreamer/Base/Types.chs \ + gstreamer/Media/Streaming/GStreamer/Base/BaseSrc.chs \ + gstreamer/Media/Streaming/GStreamer/Base.hs \ + gstreamer/Media/Streaming/GStreamer.hs \ hunk ./Makefile.am 1920 -htmldoc_HSFILES_HIDDEN += $(libHSgstreamer_a_GENERATEDSOURCES:.chs=.hs) +htmldoc_HSFILES_HIDDEN += \ + $(libHSgstreamer_a_GENERATEDSOURCES:.chs=.hs) \ + gstreamer/Media/Streaming/GStreamer/Core/Types.hs \ + gstreamer/Media/Streaming/GStreamer/Base/Types.hs \ + gnomevfs/System/Gnome/VFS/Marshal.hs + +EXTRA_DIST += \ + gstreamer/hsgstreamer.h \ + gstreamer/hierarchy.list \ + gstreamer/mini-hierarchy.list \ + gstreamer/gobject-hierarchy.list hunk ./Makefile.am 1941 -gstreamer/Media/Streaming/GStreamer/Core/Hierarchy.chs : \ - $(srcdir)/tools/hierarchyGen/hierarchy.list \ - $(srcdir)/tools/hierarchyGen/TypeGenerator$(EXEEXT) \ - $(srcdir)/tools/hierarchyGen/Hierarchy.chs.template - $(strip $(srcdir)/tools/hierarchyGen/TypeGenerator$(EXEEXT) \ - $(srcdir)/tools/hierarchyGen/hierarchy.list \ - $(srcdir)/tools/hierarchyGen/Hierarchy.chs.template \ - $@ --tag=gstreamer-core --lib=gstreamer --prefix=gstreamer \ - --modname=Media.Streaming.GStreamer.Core.Hierarchy --parentname=System.Glib.GObject) +gstreamer/Media/Streaming/GStreamer/Core/Hierarchy.chs : \ + $(srcdir)/gstreamer/hierarchy.list \ + $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/Hierarchy.chs.template + $(strip $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/hierarchy.list \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/Hierarchy.chs.template \ + $@ --tag=gstreamer-core --lib=gstreamer --prefix=gstreamer \ + --root=GObject \ + --modname=Media.Streaming.GStreamer.Core.Hierarchy) hunk ./Makefile.am 1952 -gstreamer/Media/Streaming/GStreamer/Base/Hierarchy.chs : \ - $(srcdir)/tools/hierarchyGen/hierarchy.list \ - $(srcdir)/tools/hierarchyGen/TypeGenerator$(EXEEXT) \ - $(srcdir)/tools/hierarchyGen/Hierarchy.chs.template - $(strip $(srcdir)/tools/hierarchyGen/TypeGenerator$(EXEEXT) \ - $(srcdir)/tools/hierarchyGen/hierarchy.list \ - $(srcdir)/tools/hierarchyGen/Hierarchy.chs.template \ - $@ --tag=gstreamer-base --lib=gstreamer --prefix=gstreamer \ - --modname=Media.Streaming.GStreamer.Base.Hierarchy --parentname=Media.Streaming.GStreamer.Base.Hierarchy) +gstreamer/Media/Streaming/GStreamer/Core/MiniHierarchy.chs : \ + $(srcdir)/gstreamer/mini-hierarchy.list \ + $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/MiniHierarchy.chs.template + $(strip $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/mini-hierarchy.list \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/MiniHierarchy.chs.template \ + $@ --tag=gstreamer-core --lib=gstreamer --prefix=gstreamer \ + --root=MiniObject \ + --modname=Media.Streaming.GStreamer.Core.MiniHierarchy) + +gstreamer/Media/Streaming/GStreamer/Core/GObjectHierarchy.chs : \ + $(srcdir)/gstreamer/gobject-hierarchy.list \ + $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/GObjectHierarchy.chs.template + $(strip $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/gobject-hierarchy.list \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/GObjectHierarchy.chs.template \ + $@ --tag=gstreamer-core --lib=gstreamer --prefix=gstreamer \ + --root=GObject \ + --modname=Media.Streaming.GStreamer.Core.GObjectHierarchy) + +gstreamer/Media/Streaming/GStreamer/Base/Hierarchy.chs : \ + $(srcdir)/gstreamer/hierarchy.list \ + $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/Hierarchy.chs.template + $(strip $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/hierarchy.list \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/Hierarchy.chs.template \ + $@ --tag=gstreamer-base --lib=gstreamer --prefix=gstreamer \ + --root=GObject \ + --modname=Media.Streaming.GStreamer.Base.Hierarchy --parentname=Media.Streaming.GStreamer.Core.Types) + +gstreamer/Media/Streaming/GStreamer/Base/GObjectHierarchy.chs : \ + $(srcdir)/gstreamer/gobject-hierarchy.list \ + $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/GObjectHierarchy.chs.template + $(strip $(srcdir)/tools/hierarchyGenGst/TypeGenerator$(EXEEXT) \ + $(srcdir)/gstreamer/gobject-hierarchy.list \ + $(srcdir)/gstreamer/Media/Streaming/GStreamer/GObjectHierarchy.chs.template \ + $@ --tag=gstreamer-base --lib=gstreamer --prefix=gstreamer \ + --root=GObject \ + --modname=Media.Streaming.GStreamer.Base.GObjectHierarchy --parentname=Media.Streaming.GStreamer.Core.Types) hunk ./gnomevfs/System/Gnome/VFS/Types.chs 32 --- [_$_] --- Types used by GnomeVFS. hunk ./gstreamer/Media/Streaming/GStreamer.hs 20 - module Media.Streaming.GStreamer.Core + module Media.Streaming.GStreamer.Core, + module Media.Streaming.GStreamer.Base hunk ./gstreamer/Media/Streaming/GStreamer.hs 26 +import Media.Streaming.GStreamer.Base addfile ./gstreamer/Media/Streaming/GStreamer/Base.hs hunk ./gstreamer/Media/Streaming/GStreamer/Base.hs 1 +-- GIMP Toolkit (GTK) Binding for Haskell: binding to gstreamer -*-haskell-*- +-- +-- Author : Peter Gavin +-- Created: 1-Apr-2007 +-- +-- Version $Revision$ from $Date$ +-- +-- Copyright (c) 2007 Peter Gavin +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Library General Public +-- License as published by the Free Software Foundation; either +-- version 2 of the License, or (at your option) any later version. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Library General Public License for more details. +-- +module Media.Streaming.GStreamer.Base ( + [_$_] + module Media.Streaming.GStreamer.Base.BaseSrc + [_$_] + ) where + +import Media.Streaming.GStreamer.Base.BaseSrc addfile ./gstreamer/Media/Streaming/GStreamer/Base/BaseSrc.chs hunk ./gstreamer/Media/Streaming/GStreamer/Base/BaseSrc.chs 1 +-- GIMP Toolkit (GTK) Binding for Haskell: binding to gstreamer -*-haskell-*- +-- +-- Author : Peter Gavin +-- Created: 1-Apr-2007 +-- +-- Version $Revision$ from $Date$ +-- +-- Copyright (c) 2007 Peter Gavin +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Library General Public +-- License as published by the Free Software Foundation; either +-- version 2 of the License, or (at your option) any later version. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Library General Public License for more details. +-- +module Media.Streaming.GStreamer.Base.BaseSrc ( + [_$_] + BaseSrc, + BaseSrcClass, + [_$_] + ) where + +{#import Media.Streaming.GStreamer.Base.Types#} addfile ./gstreamer/Media/Streaming/GStreamer/Base/Types.chs hunk ./gstreamer/Media/Streaming/GStreamer/Base/Types.chs 1 +-- GIMP Toolkit (GTK) Binding for Haskell: binding to libgnomevfs -*-haskell-*- +-- +-- Author : Peter Gavin +-- Created: 1-Apr-2007 +-- +-- Copyright (c) 2007 Peter Gavin +-- +-- This library is free software: you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public License +-- as published by the Free Software Foundation, either version 3 of +-- the License, or (at your option) any later version. +-- [_$_] +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- [_$_] +-- You should have received a copy of the GNU Lesser General Public +-- License along with this program. If not, see +-- <http://www.gnu.org/licenses/>. +-- [_$_] +-- GnomeVFS, the C library which this Haskell library depends on, is +-- available under LGPL Version 2. The documentation included with +-- this library is based on the original GnomeVFS documentation, +-- Copyright (c) 2001 Seth Nickell <sni...@st...>. The +-- documentation is covered by the GNU Free Documentation License, +-- version 1.2. +-- [_$_] +-- | Maintainer : gtk...@li... +-- Stability : alpha +-- Portability : portable (depends on GHC) +module Media.Streaming.GStreamer.Base.Types ( + [_$_] + module Media.Streaming.GStreamer.Base.Hierarchy, + [_$_] + ) where + +{#import Media.Streaming.GStreamer.Core.Types#} +{#import Media.Streaming.GStreamer.Base.Hierarchy#} +{#import System.Glib.GObject#} + hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 80 - withUTFString name ({# call bin_get_by_name #} (toBin bin)) >>= maybePeek newElement + withUTFString name ({# call bin_get_by_name #} (toBin bin)) >>= maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 88 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 96 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 103 - maybePeek newIterator + maybePeek takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 110 - maybePeek newIterator + maybePeek takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 117 - maybePeek newIterator + maybePeek takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 124 - maybePeek newIterator + maybePeek takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 131 - maybePeek newIterator + maybePeek takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 139 - maybePeek newIterator + maybePeek takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bin.chs 147 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 58 - {# call bus_new #} >>= newBus + {# call bus_new #} >>= takeBus hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 75 - {# call bus_peek #} bus >>= maybePeek newMessage + {# call bus_peek #} bus >>= maybePeek takeMessage hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 80 - {# call bus_pop #} bus >>= maybePeek newMessage + {# call bus_pop #} bus >>= maybePeek takeMessage hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 87 - maybePeek newMessage + maybePeek takeMessage hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 113 - do bus <- newBus_ busPtr - message <- newMessage_ messagePtr + do bus <- peekBus busPtr + message <- peekMessage messagePtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 154 - newMessage + takeMessage hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 161 - connect_BOXED__NONE "message" newMessage_ False + connect_BOXED__NONE "message" peekMessage False hunk ./gstreamer/Media/Streaming/GStreamer/Core/Bus.chs 163 - connect_BOXED__NONE "message" newMessage_ True + connect_BOXED__NONE "message" peekMessage True hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 52 +import Control.Monad (liftM) hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 59 - unsafePerformIO $ {# call caps_new_empty #} >>= newCaps + unsafePerformIO $ {# call caps_new_empty #} >>= takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 63 - unsafePerformIO $ {# call caps_new_any #} >>= newCaps + unsafePerformIO $ {# call caps_new_any #} >>= takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 76 - maybePeek newStructure_ + maybePeek peekStructure hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 127 - newCaps + takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 135 - newCaps + takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 143 - newCaps + takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 149 - {# call caps_normalize #} caps >>= newCaps + {# call caps_normalize #} caps >>= takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 162 - newCaps + takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 181 - caps <- newCaps_ ptr + caps <- liftM Caps $ newForeignPtr_ ptr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 183 - caps' <- newCaps ptr + caps' <- takeCaps ptr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 205 - {# call caps_copy #} caps2 >>= newCaps_ >>= + {# call caps_copy #} caps2 >>= takeCaps >>= hunk ./gstreamer/Media/Streaming/GStreamer/Core/Caps.chs 212 - {# call caps_copy #} caps2 >>= newCaps_ >>= + {# call caps_copy #} caps2 >>= takeCaps >>= hunk ./gstreamer/Media/Streaming/GStreamer/Core/Clock.chs 85 - {# call clock_get_master #} (toClock clock) >>= maybePeek newClock + {# call clock_get_master #} (toClock clock) >>= maybePeek takeClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/Clock.chs 117 - newClockID . castPtr + takeClockID . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Clock.chs 128 - newClockID . castPtr + takeClockID . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 113 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 122 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 130 - maybePeek newPadTemplate + maybePeek takePadTemplate hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 139 - maybePeek newPad_ -- no finalizer; use elementReleaseRequestPad + maybePeek peekPad -- no finalizer; use elementReleaseRequestPad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 147 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 173 - {# call element_iterate_pads #} (toElement element) >>= newIterator + {# call element_iterate_pads #} (toElement element) >>= takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 179 - {# call element_iterate_sink_pads #} (toElement element) >>= newIterator + {# call element_iterate_sink_pads #} (toElement element) >>= takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 185 - {# call element_iterate_sink_pads #} (toElement element) >>= newIterator + {# call element_iterate_sink_pads #} (toElement element) >>= takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 269 - {# call element_get_bus #} (toElement element) >>= newBus + {# call element_get_bus #} (toElement element) >>= takeBus hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 275 - {# call element_get_factory #} (toElement element) >>= newElementFactory_ + {# call element_get_factory #} (toElement element) >>= peekElementFactory hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 288 - {# call element_get_index #} (toElement element) >>= maybePeek newIndex + {# call element_get_index #} (toElement element) >>= maybePeek takeIndex hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 313 - {# call element_get_clock #} (toElement element) >>= maybePeek newClock + {# call element_get_clock #} (toElement element) >>= maybePeek takeClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 325 - {# call element_provide_clock #} (toElement element) >>= maybePeek newClock + {# call element_provide_clock #} (toElement element) >>= maybePeek takeClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/Element.chs 401 - then liftM (Just . unsafeCoerce#) $ withForeignPtr query' $ newQuery . castPtr + then liftM (Just . unsafeCoerce#) $ withForeignPtr query' $ takeQuery . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/ElementFactory.chs 55 - withUTFString name {# call element_factory_find #} >>= newElementFactory + withUTFString name {# call element_factory_find #} >>= takeElementFactory hunk ./gstreamer/Media/Streaming/GStreamer/Core/ElementFactory.chs 122 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/ElementFactory.chs 131 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Format.chs 86 - {# call format_iterate_definitions #} >>= newIterator + {# call format_iterate_definitions #} >>= takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/GhostPad.chs 50 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/GhostPad.chs 58 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/GhostPad.chs 67 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/GhostPad.chs 75 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/GhostPad.chs 86 - {# call ghost_pad_get_target #} gpad >>= newPad + {# call ghost_pad_get_target #} gpad >>= takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 56 - {# call index_new #} >>= newIndex + {# call index_new #} >>= takeIndex hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 101 - do index <- newIndex_ cIndex - indexEntry <- newIndexEntry_ cIndexEntry + do index <- peekIndex cIndex + indexEntry <- peekIndexEntry cIndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 137 - newIndexEntry_ + peekIndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 152 - newIndexEntry_ + peekIndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 162 - newIndexEntry_ + peekIndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 179 - maybePeek newIndexEntry_ + maybePeek peekIndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 198 - connect_BOXED__NONE "entry-added" newIndexEntry_ False + connect_BOXED__NONE "entry-added" peekIndexEntry False hunk ./gstreamer/Media/Streaming/GStreamer/Core/Index.chs 200 - connect_BOXED__NONE "entry-added" newIndexEntry_ True + connect_BOXED__NONE "entry-added" peekIndexEntry True hunk ./gstreamer/Media/Streaming/GStreamer/Core/IndexFactory.chs 40 - maybePeek newIndexFactory + maybePeek takeIndexFactory hunk ./gstreamer/Media/Streaming/GStreamer/Core/IndexFactory.chs 46 - newIndex + takeIndex hunk ./gstreamer/Media/Streaming/GStreamer/Core/IndexFactory.chs 52 - newIndex + takeIndex hunk ./gstreamer/Media/Streaming/GStreamer/Core/Iterator.chs 80 - newIterator + takeIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 74 - newObject_ + peekObject hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 98 - unsafePerformIO $ {# call message_get_structure #} message >>= newStructure_ + unsafePerformIO $ {# call message_get_structure #} message >>= peekStructure hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 105 - newMessage + takeMessage hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 113 - liftM Just $ peek clockPtr >>= newClock_ + liftM Just $ peek clockPtr >>= peekClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 123 - clock <- peek clockPtr >>= maybePeek newClock_ + clock <- peek clockPtr >>= maybePeek peekClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 165 - peek clockPtr >>= maybePeek newClock_ + peek clockPtr >>= maybePeek peekClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/Message.chs 211 - peek tagListPtr >>= newTagList + peek tagListPtr >>= takeTagList hunk ./gstreamer/Media/Streaming/GStreamer/Core/Object.chs 93 - maybePeek newObject + maybePeek takeObject hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 100 - newPad + takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 114 - newElement + peekElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 151 - {# call pad_get_caps #} (toPad pad) >>= newCaps + {# call pad_get_caps #} (toPad pad) >>= takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 158 - maybePeek newCaps + maybePeek takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 165 - maybePeek newCaps + maybePeek takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 174 - {# call caps_copy #} >>= newCaps + {# call caps_copy #} >>= takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 188 - {# call pad_get_peer #} (toPad pad) >>= maybePeek newPad + {# call pad_get_peer #} (toPad pad) >>= maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 194 - {# call pad_peer_get_caps #} (toPad pad) >>= maybePeek newCaps + {# call pad_peer_get_caps #} (toPad pad) >>= maybePeek takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 229 - maybePeek newPad + maybePeek takePad hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 242 - {# call pad_proxy_getcaps #} (toPad pad) >>= newCaps + {# call pad_proxy_getcaps #} (toPad pad) >>= takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 251 - withForeignPtr caps' newCaps + withForeignPtr caps' takeCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pad.chs 277 - then liftM (Just . unsafeCoerce#) $ withForeignPtr query' $ newQuery . castPtr + then liftM (Just . unsafeCoerce#) $ withForeignPtr query' $ takeQuery . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/PadTemplate.chs 61 - newPadTemplate + takePadTemplate hunk ./gstreamer/Media/Streaming/GStreamer/Core/PadTemplate.chs 68 - newCaps_ + peekCaps hunk ./gstreamer/Media/Streaming/GStreamer/Core/Parse.chs 37 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Parse.chs 47 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Parse.chs 60 - maybePeek newElement + maybePeek takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pipeline.chs 52 - newElement + takeElement hunk ./gstreamer/Media/Streaming/GStreamer/Core/Pipeline.chs 58 - {# call pipeline_get_bus #} (toPipeline pipeline) >>= newBus + {# call pipeline_get_bus #} (toPipeline pipeline) >>= takeBus hunk ./gstreamer/Media/Streaming/GStreamer/Core/Plugin.chs 148 - newPlugin + takePlugin hunk ./gstreamer/Media/Streaming/GStreamer/Core/Plugin.chs 154 - newPlugin + takePlugin hunk ./gstreamer/Media/Streaming/GStreamer/Core/PluginFeature.chs 41 - newPluginFeature + takePluginFeature hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 70 - unsafePerformIO $ {# call registry_get_default #} >>= newRegistry_ + unsafePerformIO $ {# call registry_get_default #} >>= peekRegistry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 78 - fromGList >>= mapM newPluginFeature + fromGList >>= mapM takePluginFeature hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 87 - fromGList >>= mapM newPluginFeature + fromGList >>= mapM takePluginFeature hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 101 - fromGList >>= mapM newPlugin + fromGList >>= mapM takePlugin hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 126 - liftM fromBool $ newPlugin_ pluginPtr >>= pluginFilter + liftM fromBool $ peekPlugin pluginPtr >>= pluginFilter hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 142 - fromGList >>= mapM newPlugin + fromGList >>= mapM takePlugin hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 154 - liftM fromBool $ newPluginFeature_ pluginFeaturePtr >>= pluginFeatureFilter + liftM fromBool $ peekPluginFeature pluginFeaturePtr >>= pluginFeatureFilter hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 170 - fromGList >>= mapM newPluginFeature + fromGList >>= mapM takePluginFeature hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 179 - maybePeek newPlugin + maybePeek takePlugin hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 191 - maybePeek newPluginFeature + maybePeek takePluginFeature hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 199 - maybePeek newPluginFeature + maybePeek takePluginFeature hunk ./gstreamer/Media/Streaming/GStreamer/Core/Registry.chs 235 - newPlugin + takePlugin hunk ./gstreamer/Media/Streaming/GStreamer/Core/Structure.chs 72 - newStructure + takeStructure hunk ./gstreamer/Media/Streaming/GStreamer/Core/Structure.chs 88 - maybePeek newStructure + maybePeek takeStructure hunk ./gstreamer/Media/Streaming/GStreamer/Core/Structure.chs 193 - structure <- newStructure_ ptr + structure <- liftM Structure $ newForeignPtr_ ptr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Structure.chs 195 - structure' <- newStructure ptr + structure' <- takeStructure ptr hunk ./gstreamer/Media/Streaming/GStreamer/Core/SystemClock.chs 34 - {# call system_clock_obtain #} >>= newClock + {# call system_clock_obtain #} >>= takeClock hunk ./gstreamer/Media/Streaming/GStreamer/Core/TagList.chs 184 - unsafePerformIO $ {# call tag_list_new #} >>= newTagList . castPtr + unsafePerformIO $ {# call tag_list_new #} >>= takeTagList . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/TagList.chs 201 - newTagList . castPtr + takeTagList . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/TagList.chs 219 - tagList' <- newTagList tagListPtr + tagList' <- takeTagList tagListPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/TagList.chs 230 - tagList'' <- newTagList $ castPtr tagListPtr + tagList'' <- takeTagList $ castPtr tagListPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 21 + module Media.Streaming.GStreamer.Core.MiniHierarchy, + module Media.Streaming.GStreamer.Core.GObjectHierarchy, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 33 - withObject, - isObject, - newObject, - newObject_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 43 - withPad, - isPad, - newPad, - newPad_, - [_$_] - withGhostPad, - isGhostPad, - newGhostPad, - newGhostPad_, - - withPluginFeature, - isPluginFeature, - newPluginFeature, - newPluginFeature_, - - withElementFactory, - isElementFactory, - newElementFactory, - newElementFactory_, - [_$_] - withTypeFindFactory, - isTypeFindFactory, - newTypeFindFactory, - newTypeFindFactory_, - [_$_] - withIndexFactory, - isIndexFactory, - newIndexFactory, - newIndexFactory_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 52 - withElement, - isElement, - newElement, - newElement_, - [_$_] - withImplementsInterface, - isImplementsInterface, - newImplementsInterface, - newImplementsInterface_, - [_$_] - withTagSetter, - isTagSetter, - newTagSetter, - newTagSetter_, - [_$_] - withBin, - isBin, - newBin, - newBin_, - [_$_] - withPipeline, - isPipeline, - newPipeline, - newPipeline_, - [_$_] - withPlugin, - isPlugin, - newPlugin, - newPlugin_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 55 - withRegistry, - isRegistry, - newRegistry, - newRegistry_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 59 - withBus, - isBus, - newBus, - newBus_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 66 - withClock, - isClock, - newClock, - newClock_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 68 - newClockID, - newClockID_, - [_$_] - withSystemClock, - isSystemClock, - newSystemClock, - newSystemClock_, + takeClockID, + peekClockID, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 72 - withIndex, - isIndex, - newIndex, - newIndex_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 76 - newIndexEntry, - newIndexEntry_, + takeIndexEntry, + peekIndexEntry, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 86 - StaticPadTemplate(..), - withPadTemplate, - isPadTemplate, - newPadTemplate, - newPadTemplate_, - [_$_] - withTask, - isTask, - newTask, - newTask_, - [_$_] - withXML, - isXML, - newXML, - newXML_, - [_$_] - withChildProxy, - isChildProxy, - newChildProxy, - newChildProxy_, - [_$_] - withURIHandler, - isURIHandler, - [_$_] - MiniObject(..), - MiniObjectClass, - mkMiniObject, - unMiniObject, - withMiniObject, - isMiniObject, - toMiniObject, - fromMiniObject, - castToMiniObject, - newMiniObject, - newMiniObject_, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 88 - Buffer(..), - BufferClass, - mkBuffer, - unBuffer, - withBuffer, - isBuffer, - toBuffer, - fromBuffer, - newBuffer, - newBuffer_, - castToBuffer, - [_$_] - Event(..), - EventClass, - mkEvent, - unEvent, - withEvent, - isEvent, - toEvent, - fromEvent, - newEvent, - newEvent_, - castToEvent, - [_$_] - Message(..), - MessageClass, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 89 - mkMessage, - unMessage, - withMessage, - isMessage, - toMessage, - fromMessage, - newMessage, - newMessage_, - castToMessage, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 90 - Query(..), hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 91 - QueryClass, - mkQuery, - unQuery, - withQuery, - isQuery, - toQuery, - fromQuery, - newQuery, - newQuery_, - castToQuery, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 100 - newIterator, - newIterator_, + takeIterator, + peekIterator, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 107 - newCaps, - newCaps_, + takeCaps, + peekCaps, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 114 - newStructure, - newStructure_, + takeStructure, + peekStructure, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 122 - newTagList, - newTagList_, + takeTagList, + peekTagList, hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 151 +{#import Media.Streaming.GStreamer.Core.MiniHierarchy#} +{#import Media.Streaming.GStreamer.Core.GObjectHierarchy#} hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 187 -withObject :: Object - -> (Ptr Object -> IO a) - -> IO a -withObject = withForeignPtr . unObject - -mkIsObject :: GObjectClass obj - => GType - -> obj - -> Bool -mkIsObject gType obj = - unsafePerformIO $ - withForeignPtr (unGObject $ toGObject obj) $ \objPtr -> - return $ typeInstanceIsA (castPtr objPtr) gType - -mkNewObject, mkNewObject_ :: (ObjectClass obj, ObjectClass obj') - => (ForeignPtr obj' -> obj') - -> Ptr obj - -> IO obj' -mkNewObject_ cons cObject = - liftM (cons . castForeignPtr) $ do - cObjectTakeOwnership $ castPtr cObject - newForeignPtr (castPtr cObject) objectFinalizer -foreign import ccall unsafe "&gst_object_unref" - objectFinalizer :: FunPtr (Ptr () -> IO ()) -foreign import ccall unsafe "_hs_gst_object_take_ownership" - cObjectTakeOwnership :: Ptr () - -> IO () - -mkNewObject cons cObject = - liftM (cons . castForeignPtr) $ - newForeignPtr (castPtr cObject) objectFinalizer - -isObject :: ObjectClass obj - => obj - -> Bool -isObject = mkIsObject {# call fun unsafe gst_object_get_type #} - --- | Use 'newObject' when a function returns an object that must be --- unreffed when you're done with it; i.e., the object is owned by --- the caller. -newObject, newObject_ :: Ptr Object - -> IO Object -newObject = mkNewObject Object - --- | Use 'newObject_' when a function returns an object that is owned --- elsewhere, or objects with floating references. -newObject_ = mkNewObject_ Object - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 208 -withPad :: Pad - -> (Ptr Pad -> IO a) - -> IO a -withPad = withForeignPtr . unPad - -isPad :: ObjectClass obj - => obj - -> Bool -isPad = mkIsObject {# call fun unsafe gst_pad_get_type #} - -newPad, newPad_ :: Ptr Pad - -> IO Pad -newPad = mkNewObject Pad -newPad_ = mkNewObject_ Pad - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 238 - peekIteratable = newPad . castPtr + peekIteratable = peekPad . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 243 -withGhostPad :: GhostPad - -> (Ptr GhostPad -> IO a) - -> IO a -withGhostPad = withForeignPtr . unGhostPad - -isGhostPad :: ObjectClass obj - => obj - -> Bool -isGhostPad = mkIsObject {# call fun unsafe gst_ghost_pad_get_type #} - -newGhostPad, newGhostPad_ :: Ptr GhostPad - -> IO GhostPad -newGhostPad = mkNewObject GhostPad -newGhostPad_ = mkNewObject_ GhostPad - --------------------------------------------------------------------- - -withPluginFeature :: PluginFeature - -> (Ptr PluginFeature -> IO a) - -> IO a -withPluginFeature = withForeignPtr . unPluginFeature - -isPluginFeature :: ObjectClass obj - => obj - -> Bool -isPluginFeature = mkIsObject {# call fun unsafe gst_plugin_feature_get_type #} - -newPluginFeature, newPluginFeature_ :: Ptr PluginFeature - -> IO PluginFeature -newPluginFeature = mkNewObject PluginFeature -newPluginFeature_ = mkNewObject_ PluginFeature - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 247 -withElementFactory :: ElementFactory - -> (Ptr ElementFactory -> IO a) - -> IO a -withElementFactory = withForeignPtr . unElementFactory - -isElementFactory :: ObjectClass obj - => obj - -> Bool -isElementFactory = mkIsObject {# call fun unsafe gst_element_factory_get_type #} - -newElementFactory, newElementFactory_ :: Ptr ElementFactory - -> IO ElementFactory -newElementFactory = mkNewObject ElementFactory -newElementFactory_ = mkNewObject_ ElementFactory - --------------------------------------------------------------------- - -withTypeFindFactory :: TypeFindFactory - -> (Ptr TypeFindFactory -> IO a) - -> IO a -withTypeFindFactory = withForeignPtr . unTypeFindFactory - -isTypeFindFactory :: ObjectClass obj - => obj - -> Bool -isTypeFindFactory = mkIsObject {# call fun unsafe gst_type_find_factory_get_type #} - -newTypeFindFactory, newTypeFindFactory_ :: Ptr TypeFindFactory - -> IO TypeFindFactory -newTypeFindFactory = mkNewObject TypeFindFactory -newTypeFindFactory_ = mkNewObject_ TypeFindFactory - --------------------------------------------------------------------- - -withIndexFactory :: IndexFactory - -> (Ptr IndexFactory -> IO a) - -> IO a -withIndexFactory = withForeignPtr . unIndexFactory - -isIndexFactory :: ObjectClass obj - => obj - -> Bool -isIndexFactory = mkIsObject {# call fun unsafe gst_index_factory_get_type #} - -newIndexFactory, newIndexFactory_ :: Ptr IndexFactory - -> IO IndexFactory -newIndexFactory = mkNewObject IndexFactory -newIndexFactory_ = mkNewObject_ IndexFactory - --------------------------------------------------------------------- - -withElement :: Element - -> (Ptr Element -> IO a) - -> IO a -withElement (Element cElement) = withForeignPtr cElement - -isElement :: ObjectClass obj - => obj - -> Bool -isElement = mkIsObject {# call fun unsafe gst_element_get_type #} - -newElement, newElement_ :: Ptr Element - -> IO Element -newElement = mkNewObject Element -newElement_ = mkNewObject_ Element - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 296 - peekIteratable = newElement . castPtr + peekIteratable = peekElement . castPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 301 -withImplementsInterface :: ImplementsInterface - -> (Ptr ImplementsInterface -> IO a) - -> IO a -withImplementsInterface = withForeignPtr . unImplementsInterface - -isImplementsInterface :: ObjectClass obj - => obj - -> Bool -isImplementsInterface = mkIsObject {# call fun unsafe gst_implements_interface_get_type #} - -newImplementsInterface, newImplementsInterface_ :: Ptr ImplementsInterface - -> IO ImplementsInterface -newImplementsInterface = mkNewObject ImplementsInterface -newImplementsInterface_ = mkNewObject_ ImplementsInterface - --------------------------------------------------------------------- - -withTagSetter :: TagSetter - -> (Ptr TagSetter -> IO a) - -> IO a -withTagSetter = withForeignPtr . unTagSetter - -isTagSetter :: ObjectClass obj - => obj - -> Bool -isTagSetter = mkIsObject {# call fun unsafe gst_tag_setter_get_type #} - -newTagSetter, newTagSetter_ :: Ptr TagSetter - -> IO TagSetter -newTagSetter = mkNewObject TagSetter -newTagSetter_ = mkNewObject_ TagSetter - --------------------------------------------------------------------- - -withBin :: Bin - -> (Ptr Bin -> IO a) - -> IO a -withBin = withForeignPtr . unBin - -isBin :: ObjectClass obj - => obj - -> Bool -isBin = mkIsObject {# call fun unsafe gst_bin_get_type #} - -newBin, newBin_ :: Ptr Bin - -> IO Bin -newBin = mkNewObject Bin -newBin_ = mkNewObject_ Bin - --------------------------------------------------------------------- - -withPipeline :: Pipeline - -> (Ptr Pipeline -> IO a) - -> IO a -withPipeline = withForeignPtr . unPipeline - -isPipeline :: ObjectClass obj - => obj - -> Bool -isPipeline = mkIsObject {# call fun unsafe gst_index_factory_get_type #} - -newPipeline, newPipeline_ :: Ptr Pipeline - -> IO Pipeline -newPipeline = mkNewObject Pipeline -newPipeline_ = mkNewObject_ Pipeline - --------------------------------------------------------------------- - -withPlugin :: Plugin - -> (Ptr Plugin -> IO a) - -> IO a -withPlugin = withForeignPtr . unPlugin - -isPlugin :: ObjectClass obj - => obj - -> Bool -isPlugin = mkIsObject {# call fun unsafe gst_plugin_get_type #} - -newPlugin, newPlugin_ :: Ptr Plugin - -> IO Plugin -newPlugin = mkNewObject Plugin -newPlugin_ = mkNewObject_ Plugin - --------------------------------------------------------------------- - -withRegistry :: Registry - -> (Ptr Registry -> IO a) - -> IO a -withRegistry = withForeignPtr . unRegistry - -isRegistry :: ObjectClass obj - => obj - -> Bool -isRegistry = mkIsObject {# call fun unsafe gst_registry_get_type #} - -newRegistry, newRegistry_ :: Ptr Registry - -> IO Registry -newRegistry = mkNewObject Registry -newRegistry_ = mkNewObject_ Registry - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 319 -withBus :: Bus - -> (Ptr Bus -> IO a) - -> IO a -withBus = withForeignPtr . unBus - -isBus :: ObjectClass obj - => obj - -> Bool -isBus = mkIsObject {# call fun unsafe gst_bus_get_type #} - -newBus, newBus_ :: Ptr Bus - -> IO Bus -newBus = mkNewObject Bus -newBus_ = mkNewObject_ Bus - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 321 -withClock :: Clock - -> (Ptr Clock -> IO a) - -> IO a -withClock = withForeignPtr . unClock - -isClock :: ObjectClass obj - => obj - -> Bool -isClock = mkIsObject {# call fun unsafe gst_clock_get_type #} - -newClock, newClock_ :: Ptr Clock - -> IO Clock -newClock = mkNewObject Clock -newClock_ = mkNewObject_ Clock - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 356 -newClockID, newClockID_ :: Ptr ClockID +takeClockID, peekClockID :: Ptr ClockID hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 358 -newClockID clockIDPtr = +takeClockID clockIDPtr = hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 360 -newClockID_ clockIDPtr = +peekClockID clockIDPtr = hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 362 - newClockID clockIDPtr + takeClockID clockIDPtr hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 369 -withSystemClock :: SystemClock - -> (Ptr SystemClock -> IO a) - -> IO a -withSystemClock = withForeignPtr . unSystemClock -newSystemClock, newSystemClock_ :: Ptr SystemClock - -> IO SystemClock - -isSystemClock :: ObjectClass obj - => obj - -> Bool -isSystemClock = mkIsObject {# call fun unsafe gst_system_clock_get_type #} - -newSystemClock = mkNewObject SystemClock -newSystemClock_ = mkNewObject_ SystemClock - --------------------------------------------------------------------- - -withIndex :: Index - -> (Ptr Index -> IO a) - -> IO a -withIndex = withForeignPtr . unIndex - -isIndex :: ObjectClass obj - => obj - -> Bool -isIndex = mkIsObject {# call fun unsafe gst_index_get_type #} - -newIndex, newIndex_ :: Ptr Index - -> IO Index -newIndex = mkNewObject Index -newIndex_ = mkNewObject_ Index - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 390 -newIndexEntry :: Ptr IndexEntry +takeIndexEntry :: Ptr IndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 392 -newIndexEntry ptr = +takeIndexEntry ptr = hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 396 -newIndexEntry_ :: Ptr IndexEntry +peekIndexEntry :: Ptr IndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 398 -newIndexEntry_ ptr = +peekIndexEntry ptr = hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 401 - newIndexEntry + takeIndexEntry hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 424 -{# pointer *GstStaticPadTemplate as StaticPadTemplate newtype #} - -withPadTemplate :: PadTemplate - -> (Ptr PadTemplate -> IO a) - -> IO a -withPadTemplate = withForeignPtr . unPadTemplate - -isPadTemplate :: ObjectClass obj - => obj - -> Bool -isPadTemplate = mkIsObject {# call fun unsafe gst_pad_template_get_type #} - -newPadTemplate, newPadTemplate_ :: Ptr PadTemplate - -> IO PadTemplate -newPadTemplate = mkNewObject PadTemplate -newPadTemplate_ = mkNewObject_ PadTemplate - --------------------------------------------------------------------- - -withTask :: Task - -> (Ptr Task -> IO a) - -> IO a -withTask = withForeignPtr . unTask - -isTask :: ObjectClass obj - => obj - -> Bool -isTask = mkIsObject {# call fun unsafe gst_task_get_type #} - -newTask, newTask_ :: Ptr Task - -> IO Task -newTask = mkNewObject Task -newTask_ = mkNewObject_ Task - --------------------------------------------------------------------- - -withXML :: XML - -> (Ptr XML -> IO a) - -> IO a -withXML = withForeignPtr . unXML - -isXML :: ObjectClass obj - => obj - -> Bool -isXML = mkIsObject {# call fun unsafe gst_xml_get_type #} - -newXML, newXML_ :: Ptr XML - -> IO XML -newXML = mkNewObject XML -newXML_ = mkNewObject_ XML - --------------------------------------------------------------------- - -withChildProxy :: ChildProxy - -> (Ptr ChildProxy -> IO a) - -> IO a -withChildProxy = withForeignPtr . unChildProxy - -isChildProxy :: ObjectClass obj - => obj - -> Bool -isChildProxy = mkIsObject {# call fun unsafe gst_child_proxy_get_type #} - -newChildProxy, newChildProxy_ :: Ptr ChildProxy - -> IO ChildProxy -newChildProxy = mkNewObject ChildProxy -newChildProxy_ = mkNewObject_ ChildProxy - --------------------------------------------------------------------- - -withURIHandler :: URIHandler - -> (Ptr URIHandler -> IO a) - -> IO a -withURIHandler = withForeignPtr . unURIHandler - -isURIHandler :: ObjectClass obj - => obj - -> Bool -isURIHandler = mkIsObject {# call fun unsafe gst_uri_handler_get_type #} - --------------------------------------------------------------------- - -{# pointer *GstMiniObject as MiniObject foreign newtype #} - -mkMiniObject = MiniObject -unMiniObject (MiniObject o) = o - -withMiniObject :: MiniObject - -> (Ptr MiniObject -> IO a) - -> IO a -withMiniObject = withForeignPtr . unMiniObject - -class MiniObjectClass o - -mkIsMiniObject :: MiniObjectClass obj - => GType - -> obj - -> Bool -mkIsMiniObject gType obj = - unsafePerformIO $ withMiniObject (toMiniObject obj) $ \objPtr -> - return $ typeInstanceIsA (castPtr objPtr) gType - -isMiniObject :: MiniObjectClass obj - => obj - -> Bool -isMiniObject = mkIsMiniObject {# call fun unsafe gst_mini_object_get_type #} - -toMiniObject :: MiniObjectClass o => o -> MiniObject -toMiniObject = unsafeCoerce# -fromMiniObject :: MiniObjectClass o => MiniObject -> o -fromMiniObject = unsafeCoerce# - -instance MiniObjectClass MiniObject - -castToMini :: (MiniObjectClass obj, MiniObjectClass obj') - => GType - -> String - -> obj - -> obj' -castToMini gtype objTypeName obj = - case toMiniObject obj of - mobj@(MiniObject objFPtr) - | typeInstanceIsA ((unsafeForeignPtrToPtr . castForeignPtr) objFPtr) gtype -> - fromMiniObject mobj - | otherwise -> - error $ "Cannot cast object to " ++ objTypeName - -castToMiniObject :: MiniObjectClass obj - => obj - -> MiniObject -castToMiniObject = - castToMini {# call fun unsafe gst_mini_object_get_type #} "MiniObject" - -mkNewMiniObject, mkNewMiniObject_ :: (MiniObjectClass obj, MiniObjectClass obj') - => (ForeignPtr obj' -> obj') - -> Ptr obj - -> IO obj' -mkNewMiniObject_ cons cObject = - liftM (cons . castForeignPtr) $ do - cMiniObjectRef $ castPtr cObject - newForeignPtr (castPtr cObject) miniObjectFinalizer -foreign import ccall unsafe "&gst_object_unref" - miniObjectFinalizer :: FunPtr (Ptr () -> IO ()) -foreign import ccall unsafe "gst_mini_object_ref" - cMiniObjectRef :: Ptr () - -> IO (Ptr ()) - -mkNewMiniObject cons cObject = - liftM (cons . castForeignPtr) $ - newForeignPtr (castPtr cObject) miniObjectFinalizer - -newMiniObject, newMiniObject_ :: Ptr MiniObject - -> IO MiniObject - --- | Use 'newMiniObject' when a function returns an object that must be --- unreffed when you're done with it; i.e., the object is owned by --- the caller. -newMiniObject = mkNewMiniObject MiniObject - --- | Use 'newMiniObject_' when a function returns an object that is owned --- elsewhere. -newMiniObject_ = mkNewMiniObject_ MiniObject - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 436 -{#pointer *GstBuffer as Buffer foreign newtype #} - -mkBuffer = Buffer -unBuffer (Buffer o) = o - -withBuffer :: Buffer - -> (Ptr Buffer -> IO a) - -> IO a -withBuffer = withForeignPtr . unBuffer - -isBuffer :: MiniObjectClass obj - => obj - -> Bool -isBuffer = mkIsMiniObject {# call fun unsafe gst_buffer_get_type #} - -class MiniObjectClass o => BufferClass o -toBuffer :: BufferClass o => o -> Buffer -toBuffer = unsafeCoerce# -fromBuffer :: BufferClass o => Buffer -> o -fromBuffer = unsafeCoerce# - -instance BufferClass Buffer -instance MiniObjectClass Buffer - -newBuffer, newBuffer_ :: Ptr Buffer - -> IO Buffer -newBuffer = mkNewMiniObject Buffer -newBuffer_ = mkNewMiniObject_ Buffer - -castToBuffer :: MiniObjectClass obj - => obj - -> Buffer -castToBuffer = - castToMini {# call fun unsafe gst_buffer_get_type #} "Buffer" - --------------------------------------------------------------------- - -{#pointer *GstEvent as Event foreign newtype #} - -mkEvent = Event -unEvent (Event o) = o - -withEvent :: Event - -> (Ptr Event -> IO a) - -> IO a -withEvent = withForeignPtr . unEvent - -isEvent :: MiniObjectClass obj - => obj - -> Bool -isEvent = mkIsMiniObject {# call fun unsafe gst_event_get_type #} - -class MiniObjectClass o => EventClass o -toEvent :: EventClass o => o -> Event -toEvent = unsafeCoerce# -fromEvent :: EventClass o => Event -> o -fromEvent = unsafeCoerce# - -instance EventClass Event -instance MiniObjectClass Event - -newEvent, newEvent_ :: Ptr Event - -> IO Event -newEvent = mkNewMiniObject Event -newEvent_ = mkNewMiniObject_ Event - -castToEvent :: MiniObjectClass obj - => obj - -> Event -castToEvent = - castToMini {# call fun unsafe gst_event_get_type #} "Event" - --------------------------------------------------------------------- - -{# pointer *GstMessage as Message foreign newtype #} hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 506 -mkMessage = Message -unMessage (Message o) = o - -withMessage :: Message - -> (Ptr Message -> IO a) - -> IO a -withMessage = withForeignPtr . unMessage - -isMessage :: MiniObjectClass obj - => obj - -> Bool -isMessage = mkIsMiniObject {# call fun unsafe gst_message_get_type #} - -class MiniObjectClass o => MessageClass o -toMessage :: MessageClass o => o -> Message -toMessage = unsafeCoerce# -fromMessage :: MessageClass o => Message -> o -fromMessage = unsafeCoerce# - -instance MessageClass Message -instance MiniObjectClass Message - -newMessage, newMessage_ :: Ptr Message - -> IO Message -newMessage = mkNewMiniObject Message -newMessage_ = mkNewMiniObject_ Message - -castToMessage :: MiniObjectClass obj - => obj - -> Message -castToMessage = - castToMini {# call fun unsafe gst_message_get_type #} "Message" - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 508 -{#pointer *GstQuery as Query foreign newtype #} hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 510 -mkQuery = Query -unQuery (Query o) = o - -withQuery :: Query - -> (Ptr Query -> IO a) - -> IO a -withQuery = withForeignPtr . unQuery - -isQuery :: MiniObjectClass obj - => obj - -> Bool -isQuery = mkIsMiniObject {# call fun unsafe gst_query_get_type #} - -class MiniObjectClass o => QueryClass o -toQuery :: QueryClass o => o -> Query -toQuery = unsafeCoerce# -fromQuery :: QueryClass o => Query -> o -fromQuery = unsafeCoerce# - -instance QueryClass Query -instance MiniObjectClass Query - -newQuery, newQuery_ :: Ptr Query - -> IO Query -newQuery = mkNewMiniObject Query -newQuery_ = mkNewMiniObject_ Query - -castToQuery :: MiniObjectClass obj - => obj - -> Query -castToQuery = - castToMini {# call fun unsafe gst_query_get_type #} "Query" - hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 519 -newPtrIterator, newPtrIterator_ :: Ptr PtrIterator +takePtrIterator, peekPtrIterator :: Ptr PtrIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 521 -newPtrIterator ptrIteratorPtr = +takePtrIterator ptrIteratorPtr = hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 523 -newPtrIterator_ ptrIteratorPtr = +peekPtrIterator ptrIteratorPtr = hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 543 -newIterator, newIterator_ :: Ptr PtrIterator +takeIterator, peekIterator :: Ptr PtrIterator hunk ./gstreamer/Media/Streaming/GStreamer/Core/Types.chs 545 -newIterator cPtrIterator = mkIterator newPtrIterator cPtrIterator -newIterator_ cPtrIterator = mkIterator newPtrIterator_ cPtrIter... [truncated message content] |