-- GENERATED by C->Haskell Compiler, version 0.13.13 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.chs" #-}
module Graphics.UI.Gtk.WebKit.DOM.AudioTrackList(
item,
getTrackById,
getLength,
change,
addTrack,
removeTrack,
AudioTrackList,
castToAudioTrackList,
gTypeAudioTrackList,
AudioTrackListClass,
toAudioTrackList,
) where
import Prelude hiding (drop, error, print)
import Data.Typeable (Typeable)
import Foreign.Marshal (maybePeek, maybeWith)
import System.Glib.FFI (maybeNull, withForeignPtr, nullForeignPtr, Ptr, nullPtr, castPtr, Word, Int64, Word64, CChar(..), CInt(..), CUInt(..), CLong(..), CULong(..), CLLong(..), CULLong(..), CShort(..), CUShort(..), CFloat(..), CDouble(..), toBool, fromBool)
import System.Glib.UTFString (GlibString(..), readUTFString)
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Monad.IO.Class (MonadIO(..))
import System.Glib.GError
import Graphics.UI.Gtk.WebKit.DOM.EventTargetClosures
import Graphics.UI.Gtk.WebKit.DOM.EventM
import Graphics.UI.Gtk.WebKit.Types
{-# LINE 28 "./Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.chs" #-}
import Graphics.UI.Gtk.WebKit.DOM.Enums

 
item ::
     (MonadIO m, AudioTrackListClass self) =>
       self -> Word -> m (Maybe AudioTrack)
item self index
  = liftIO
      (maybeNull (makeNewGObject mkAudioTrack)
         ((\(AudioTrackList arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_audio_track_list_item argPtr1 arg2)
{-# LINE 38 "./Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.chs" #-}
            (toAudioTrackList self)
            (fromIntegral index)))
 
getTrackById ::
             (MonadIO m, AudioTrackListClass self, GlibString string) =>
               self -> string -> m (Maybe AudioTrack)
getTrackById self id
  = liftIO
      (maybeNull (makeNewGObject mkAudioTrack)
         (withUTFString id $
            \ idPtr ->
              (\(AudioTrackList arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_audio_track_list_get_track_by_id argPtr1 arg2)
{-# LINE 50 "./Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.chs" #-}
                (toAudioTrackList self)
                idPtr))
 
getLength ::
          (MonadIO m, AudioTrackListClass self) => self -> m Word
getLength self
  = liftIO
      (fromIntegral <$>
         ((\(AudioTrackList arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_audio_track_list_get_length argPtr1)
{-# LINE 59 "./Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.chs" #-}
            (toAudioTrackList self)))
 
change :: (AudioTrackListClass self) => EventName self Event
change = EventName "change"
 
addTrack :: (AudioTrackListClass self) => EventName self Event
addTrack = EventName "addtrack"
 
removeTrack :: (AudioTrackListClass self) => EventName self Event
removeTrack = EventName "removetrack"

foreign import ccall safe "dist/build/Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.h webkit_dom_audio_track_list_item"
  webkit_dom_audio_track_list_item :: ((Ptr AudioTrackList) -> (CULong -> (IO (Ptr AudioTrack))))

foreign import ccall safe "dist/build/Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.h webkit_dom_audio_track_list_get_track_by_id"
  webkit_dom_audio_track_list_get_track_by_id :: ((Ptr AudioTrackList) -> ((Ptr CChar) -> (IO (Ptr AudioTrack))))

foreign import ccall safe "dist/build/Graphics/UI/Gtk/WebKit/DOM/AudioTrackList.h webkit_dom_audio_track_list_get_length"
  webkit_dom_audio_track_list_get_length :: ((Ptr AudioTrackList) -> (IO CULong))