From: Duncan C. <dun...@wo...> - 2007-10-30 00:35:55
|
Thu Oct 25 08:34:04 PDT 2007 Peter Gavin <pg...@gm...> * gstreamer: add M.S.G.Audio.AudioClock hunk ./Makefile.am 1905 - gstreamer/Media/Streaming/GStreamer/Net/Hierarchy.chs + gstreamer/Media/Streaming/GStreamer/Net/Hierarchy.chs \ + gstreamer/Media/Streaming/GStreamer/Audio/Hierarchy.chs hunk ./Makefile.am 1964 + gstreamer/Media/Streaming/GStreamer/Audio/AudioClock.chs \ hunk ./Makefile.am 2073 +gstreamer/Media/Streaming/GStreamer/Audio/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-audio --lib=gstreamer --prefix=gst \ + --root=GObject \ + --modname=Media.Streaming.GStreamer.Audio.Hierarchy \ + --parentname=Media.Streaming.GStreamer.Core.Hierarchy) + hunk ./gstreamer/Media/Streaming/GStreamer/Audio/AudioClock.chs 29 -module Media.Streaming.GStreamer.Audio.AudioClock ( - ) where +module Media.Streaming.GStreamer.Audio.AudioClock + ( AudioClock + , [_$_] + ) where hunk ./gstreamer/Media/Streaming/GStreamer/Audio/AudioClock.chs 34 +import Control.Monad (liftM) +{#import Media.Streaming.GStreamer.Audio.Types#} +import Media.Streaming.GStreamer.Core +import System.Glib.FFI +import System.Glib.UTFString + +{# context lib = "gstreamer" prefix = "gst" #} + +type AudioClockGetTimeFunc = Clock -> IO ClockTime + +type CAudioClockGetTimeFunc = Ptr Clock + -> {# type gpointer #} + -> IO {# type GstClockTime #} +marshalAudioClockGetTimeFunc :: AudioClockGetTimeFunc + -> IO {# type GstAudioClockGetTimeFunc #} +marshalAudioClockGetTimeFunc func = + makeAudioClockGetTimeFunc cFunc + where cFunc :: CAudioClockGetTimeFunc + cFunc cClock _ = do + clock <- peekObject cClock + liftM fromIntegral $ func clock +foreign import ccall unsafe "wrapper" + makeAudioClockGetTimeFunc :: CAudioClockGetTimeFunc + -> IO {# type GstAudioClockGetTimeFunc #} + +audioClockNew :: String + -> AudioClockGetTimeFunc + -> IO Clock +audioClockNew name func = do + cFunc <- marshalAudioClockGetTimeFunc func + withUTFString name $ \cName -> + {# call audio_clock_new #} cName + cFunc + nullPtr >>= + takeObject hunk ./gstreamer/Media/Streaming/GStreamer/Audio/Types.chs 29 -module Media.Streaming.GStreamer.Audio.Types ( +module Media.Streaming.GStreamer.Audio.Types + ( module Media.Streaming.GStreamer.Core.Types + , module Media.Streaming.GStreamer.Audio.Hierarchy + , module Media.Streaming.GStreamer.Audio.Constants hunk ./gstreamer/Media/Streaming/GStreamer/Audio/Types.chs 34 - module Media.Streaming.GStreamer.Audio.Constants, - [_$_] - AudioFieldFlag(..), + , AudioFieldFlag(..) hunk ./gstreamer/Media/Streaming/GStreamer/Audio/Types.chs 39 +{#import Media.Streaming.GStreamer.Audio.Hierarchy#} +{#import Media.Streaming.GStreamer.Core.Types#} hunk ./gstreamer/hierarchy.list 23 + GstAudioClock as AudioClock, gst_audio_clock_get_type if gstreamer-audio hunk ./gstreamer/hsgstreamer.h 43 +#include <gst/audio/gstaudioclock.h> |