-----------------------------------------------------------------------------
-- |
-- Module      :  Graphics.UI.SDL.Mixer.Types
-- Copyright   :  (c) David Himmelstrup 2005
-- License     :  BSD-like
--
-- Maintainer  :  lemmih@gmail.com
-- Stability   :  provisional
-- Portability :  portable
--
-----------------------------------------------------------------------------
module Graphics.UI.SDL.Mixer.Types
    ( ChunkStruct
    , Chunk
    , MusicStruct
    , Music
    , Channel
    , MusicType (..)
    , Fading (..)
    ) where

import Foreign(ForeignPtr)

data ChunkStruct
type Chunk = ForeignPtr ChunkStruct

data MusicStruct
type Music = ForeignPtr MusicStruct

type Channel = Int

data MusicType
    = MusicNone
    | MusicCmd
    | MusicWav
    | MusicMod
    | MusicMid
    | MusicOgg
    | MusicMp3
      deriving (Int -> MusicType -> ShowS
[MusicType] -> ShowS
MusicType -> String
(Int -> MusicType -> ShowS)
-> (MusicType -> String)
-> ([MusicType] -> ShowS)
-> Show MusicType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MusicType] -> ShowS
$cshowList :: [MusicType] -> ShowS
show :: MusicType -> String
$cshow :: MusicType -> String
showsPrec :: Int -> MusicType -> ShowS
$cshowsPrec :: Int -> MusicType -> ShowS
Show,MusicType -> MusicType -> Bool
(MusicType -> MusicType -> Bool)
-> (MusicType -> MusicType -> Bool) -> Eq MusicType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MusicType -> MusicType -> Bool
$c/= :: MusicType -> MusicType -> Bool
== :: MusicType -> MusicType -> Bool
$c== :: MusicType -> MusicType -> Bool
Eq,Eq MusicType
Eq MusicType =>
(MusicType -> MusicType -> Ordering)
-> (MusicType -> MusicType -> Bool)
-> (MusicType -> MusicType -> Bool)
-> (MusicType -> MusicType -> Bool)
-> (MusicType -> MusicType -> Bool)
-> (MusicType -> MusicType -> MusicType)
-> (MusicType -> MusicType -> MusicType)
-> Ord MusicType
MusicType -> MusicType -> Bool
MusicType -> MusicType -> Ordering
MusicType -> MusicType -> MusicType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MusicType -> MusicType -> MusicType
$cmin :: MusicType -> MusicType -> MusicType
max :: MusicType -> MusicType -> MusicType
$cmax :: MusicType -> MusicType -> MusicType
>= :: MusicType -> MusicType -> Bool
$c>= :: MusicType -> MusicType -> Bool
> :: MusicType -> MusicType -> Bool
$c> :: MusicType -> MusicType -> Bool
<= :: MusicType -> MusicType -> Bool
$c<= :: MusicType -> MusicType -> Bool
< :: MusicType -> MusicType -> Bool
$c< :: MusicType -> MusicType -> Bool
compare :: MusicType -> MusicType -> Ordering
$ccompare :: MusicType -> MusicType -> Ordering
$cp1Ord :: Eq MusicType
Ord,Int -> MusicType
MusicType -> Int
MusicType -> [MusicType]
MusicType -> MusicType
MusicType -> MusicType -> [MusicType]
MusicType -> MusicType -> MusicType -> [MusicType]
(MusicType -> MusicType)
-> (MusicType -> MusicType)
-> (Int -> MusicType)
-> (MusicType -> Int)
-> (MusicType -> [MusicType])
-> (MusicType -> MusicType -> [MusicType])
-> (MusicType -> MusicType -> [MusicType])
-> (MusicType -> MusicType -> MusicType -> [MusicType])
-> Enum MusicType
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: MusicType -> MusicType -> MusicType -> [MusicType]
$cenumFromThenTo :: MusicType -> MusicType -> MusicType -> [MusicType]
enumFromTo :: MusicType -> MusicType -> [MusicType]
$cenumFromTo :: MusicType -> MusicType -> [MusicType]
enumFromThen :: MusicType -> MusicType -> [MusicType]
$cenumFromThen :: MusicType -> MusicType -> [MusicType]
enumFrom :: MusicType -> [MusicType]
$cenumFrom :: MusicType -> [MusicType]
fromEnum :: MusicType -> Int
$cfromEnum :: MusicType -> Int
toEnum :: Int -> MusicType
$ctoEnum :: Int -> MusicType
pred :: MusicType -> MusicType
$cpred :: MusicType -> MusicType
succ :: MusicType -> MusicType
$csucc :: MusicType -> MusicType
Enum,MusicType
MusicType -> MusicType -> Bounded MusicType
forall a. a -> a -> Bounded a
maxBound :: MusicType
$cmaxBound :: MusicType
minBound :: MusicType
$cminBound :: MusicType
Bounded)

data Fading
    = NoFading
    | FadingOut
    | FadingIn
      deriving (Int -> Fading -> ShowS
[Fading] -> ShowS
Fading -> String
(Int -> Fading -> ShowS)
-> (Fading -> String) -> ([Fading] -> ShowS) -> Show Fading
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Fading] -> ShowS
$cshowList :: [Fading] -> ShowS
show :: Fading -> String
$cshow :: Fading -> String
showsPrec :: Int -> Fading -> ShowS
$cshowsPrec :: Int -> Fading -> ShowS
Show,Fading -> Fading -> Bool
(Fading -> Fading -> Bool)
-> (Fading -> Fading -> Bool) -> Eq Fading
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Fading -> Fading -> Bool
$c/= :: Fading -> Fading -> Bool
== :: Fading -> Fading -> Bool
$c== :: Fading -> Fading -> Bool
Eq,Eq Fading
Eq Fading =>
(Fading -> Fading -> Ordering)
-> (Fading -> Fading -> Bool)
-> (Fading -> Fading -> Bool)
-> (Fading -> Fading -> Bool)
-> (Fading -> Fading -> Bool)
-> (Fading -> Fading -> Fading)
-> (Fading -> Fading -> Fading)
-> Ord Fading
Fading -> Fading -> Bool
Fading -> Fading -> Ordering
Fading -> Fading -> Fading
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Fading -> Fading -> Fading
$cmin :: Fading -> Fading -> Fading
max :: Fading -> Fading -> Fading
$cmax :: Fading -> Fading -> Fading
>= :: Fading -> Fading -> Bool
$c>= :: Fading -> Fading -> Bool
> :: Fading -> Fading -> Bool
$c> :: Fading -> Fading -> Bool
<= :: Fading -> Fading -> Bool
$c<= :: Fading -> Fading -> Bool
< :: Fading -> Fading -> Bool
$c< :: Fading -> Fading -> Bool
compare :: Fading -> Fading -> Ordering
$ccompare :: Fading -> Fading -> Ordering
$cp1Ord :: Eq Fading
Ord,Int -> Fading
Fading -> Int
Fading -> [Fading]
Fading -> Fading
Fading -> Fading -> [Fading]
Fading -> Fading -> Fading -> [Fading]
(Fading -> Fading)
-> (Fading -> Fading)
-> (Int -> Fading)
-> (Fading -> Int)
-> (Fading -> [Fading])
-> (Fading -> Fading -> [Fading])
-> (Fading -> Fading -> [Fading])
-> (Fading -> Fading -> Fading -> [Fading])
-> Enum Fading
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Fading -> Fading -> Fading -> [Fading]
$cenumFromThenTo :: Fading -> Fading -> Fading -> [Fading]
enumFromTo :: Fading -> Fading -> [Fading]
$cenumFromTo :: Fading -> Fading -> [Fading]
enumFromThen :: Fading -> Fading -> [Fading]
$cenumFromThen :: Fading -> Fading -> [Fading]
enumFrom :: Fading -> [Fading]
$cenumFrom :: Fading -> [Fading]
fromEnum :: Fading -> Int
$cfromEnum :: Fading -> Int
toEnum :: Int -> Fading
$ctoEnum :: Int -> Fading
pred :: Fading -> Fading
$cpred :: Fading -> Fading
succ :: Fading -> Fading
$csucc :: Fading -> Fading
Enum,Fading
Fading -> Fading -> Bounded Fading
forall a. a -> a -> Bounded a
maxBound :: Fading
$cmaxBound :: Fading
minBound :: Fading
$cminBound :: Fading
Bounded)