packages feed

xmms2-client-0.0.3.8: src/XMMS2/Client/Bindings/Playback.chs

-- -*-haskell-*-
--  XMMS2 client library.
--
--  Author:  Oleg Belozeorov
--  Created: 1 Sep. 2009
--
--  Copyright (C) 2009-2010 Oleg Belozeorov
--
--  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.
--

module XMMS2.Client.Bindings.Playback
  ( PlaybackStatus (..)
  , SeekMode (..)
  , playbackStop
  , playbackTickle
  , playbackStart
  , playbackPause
  , playbackCurrentId
  , playbackSeekMs
  , playbackSeekSamples
  , playbackPlaytime
  , playbackStatus
  , playbackVolumeSet
  , playbackVolumeGet
  , broadcastPlaybackVolumeChanged
  , broadcastPlaybackStatus
  , broadcastPlaybackCurrentId
  , signalPlaybackPlaytime
  ) where

#include <xmmsclient/xmmsclient.h>

{# context prefix = "xmmsc" #}

import XMMS2.Utils

{# import XMMS2.Client.Bindings.Connection #}
{# import XMMS2.Client.Bindings.Result #}


{# enum xmms_playback_status_t as PlaybackStatus
 { underscoreToCase }
 with prefix = "XMMS_PLAYBACK_"
 deriving (Eq, Show) #}

{# enum xmms_playback_seek_mode_t as SeekMode
 { underscoreToCase }
 with prefix = "XMMS_PLAYBACK_"
 deriving (Eq, Show) #}


{# fun playback_stop as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_tickle as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_start as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_pause as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_current_id as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_seek_ms as ^
 { withConnection* `Connection'
 , cIntConv        `Int32'
 , cFromEnum       `SeekMode'
 } -> `Result' takeResult* #}

{# fun playback_seek_samples as ^
 { withConnection* `Connection'
 , cIntConv        `Int32'
 , cFromEnum       `SeekMode'
 } -> `Result' takeResult* #}

{# fun playback_playtime as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_status as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun playback_volume_set as ^
 { withConnection* `Connection'
 , withCString*    `String'
 , cIntConv        `Int'
 } -> `Result' takeResult* #}

{# fun playback_volume_get as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}


{# fun broadcast_playback_volume_changed as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun broadcast_playback_status as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}

{# fun broadcast_playback_current_id as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}


{# fun signal_playback_playtime as ^
 { withConnection* `Connection'
 } -> `Result' takeResult* #}