xmms2-client-0.0.4.0: src/XMMS2/Client/Playback.hs
-- -*-haskell-*-
-- XMMS2 client library.
--
-- Author: Oleg Belozeorov
-- Created: 15 Feb. 2010
--
-- 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.Playback
( PlaybackStatus (..)
, SeekMode (..)
, playbackStop
, playbackTickle
, playbackStart
, playbackPause
, playbackCurrentId
, playbackSeekMs
, playbackSeekSamples
, playbackPlaytime
, playbackStatus
, playbackVolumeSet
, playbackVolumeGet
, broadcastPlaybackVolumeChanged
, broadcastPlaybackStatus
, broadcastPlaybackCurrentId
, signalPlaybackPlaytime
) where
import Control.Applicative
import XMMS2.Client.Types
import XMMS2.Client.Result
import XMMS2.Client.Bindings.Connection
import XMMS2.Client.Bindings.Playback (PlaybackStatus (..), SeekMode (..))
import qualified XMMS2.Client.Bindings.Playback as B
instance ValueGet PlaybackStatus where
valueGet v = (toEnum . fromIntegral) <$> getInt v
playbackStop :: Connection -> IO (Result Default ())
playbackStop xmmsc =
liftResult $ B.playbackStop xmmsc
playbackTickle :: Connection -> IO (Result Default ())
playbackTickle xmmsc =
liftResult $ B.playbackTickle xmmsc
playbackStart :: Connection -> IO (Result Default ())
playbackStart xmmsc =
liftResult $ B.playbackStart xmmsc
playbackPause :: Connection -> IO (Result Default ())
playbackPause xmmsc =
liftResult $ B.playbackPause xmmsc
playbackCurrentId :: Connection -> IO (Result Default Int32)
playbackCurrentId xmmsc =
liftResult $ B.playbackCurrentId xmmsc
playbackSeekMs :: Connection -> Int32 -> SeekMode -> IO (Result Default ())
playbackSeekMs xmmsc pos whence
= liftResult $ B.playbackSeekMs xmmsc pos whence
playbackSeekSamples :: Connection -> Int32 -> SeekMode -> IO (Result Default ())
playbackSeekSamples xmmsc pos whence =
liftResult $ B.playbackSeekSamples xmmsc pos whence
playbackPlaytime :: Connection -> IO (Result Default Int32)
playbackPlaytime xmmsc =
liftResult $ B.playbackPlaytime xmmsc
playbackStatus :: Connection -> IO (Result Default PlaybackStatus)
playbackStatus xmmsc =
liftResult $ B.playbackStatus xmmsc
playbackVolumeSet :: Connection -> String -> Int -> IO (Result Default ())
playbackVolumeSet xmmsc chan vol =
liftResult $ B.playbackVolumeSet xmmsc chan vol
playbackVolumeGet :: Connection -> IO (Result Default (Dict Int32))
playbackVolumeGet xmmsc =
liftResult $ B.playbackVolumeGet xmmsc
broadcastPlaybackVolumeChanged :: Connection -> IO (Result Broadcast (Dict Int32))
broadcastPlaybackVolumeChanged =
liftResult . B.broadcastPlaybackVolumeChanged
broadcastPlaybackStatus :: Connection -> IO (Result Broadcast PlaybackStatus)
broadcastPlaybackStatus =
liftResult . B.broadcastPlaybackStatus
broadcastPlaybackCurrentId :: Connection -> IO (Result Broadcast Int32)
broadcastPlaybackCurrentId =
liftResult . B.broadcastPlaybackCurrentId
signalPlaybackPlaytime :: Connection -> IO (Result Signal Int32)
signalPlaybackPlaytime =
liftResult . B.signalPlaybackPlaytime