module Network.XMMS.Types where
import Foreign
import Foreign.Ptr
import Foreign.C.Types
import Foreign.C.String
import Foreign.ForeignPtr
import Foreign.Marshal.Alloc
import Data.Map (Map)
import Network.XMMS.Constants
--xmmsc_connection_t*
type C_xmmsc_connection = ()
type Connection = ForeignPtr C_xmmsc_connection
--xmmsc_result_t*
type C_xmmsc_result = ()
type Result = ForeignPtr C_xmmsc_result
--xmmsv_t*
type C_xmmsc_value = ()
data XMMSCV = XMMSNothing
| XMMSError { xmmsError :: String }
| XMMSInt { xmmsInt :: Int }
| XMMSString { xmmsString :: String }
| XMMSDict { xmmsDict :: (Map String XMMSCV) }
| XMMSList { xmmsList :: [XMMSCV] }
instance Show XMMSCV where
show XMMSNothing = "XMMSNothing"
show (XMMSError e) = "Error: " ++ e
show (XMMSInt i) = show i
show (XMMSString s) = s
show (XMMSList l) = show l
show (XMMSDict d) = show d
data SeekMode = SeekCur
| SeekSet
fromSeekMode SeekCur = playbackSeekCur
fromSeekMode SeekSet = playbackSeekSet