{-# LANGUAGE CPP #-}
module Codec.Audio.FLAC.Metadata.Internal.Types
( MetaChain (..),
MetaIterator (..),
Metadata (..),
MetadataType (..),
MetaChainStatus (..),
MetaException (..),
ApplicationId,
mkApplicationId,
unApplicationId,
SeekPoint (..),
CueSheetData (..),
CueTrack (..),
PictureType (..),
PictureData (..),
)
where
import Control.Exception (Exception)
import Data.ByteString (ByteString)
import qualified Data.ByteString as B
import qualified Data.ByteString.Char8 as B8
import Data.List.NonEmpty (NonEmpty (..))
import Data.String (IsString (..))
import Data.Text (Text)
import Data.Void
import Foreign
#if !MIN_VERSION_base(4,13,0)
import Data.Semigroup ((<>))
#endif
newtype MetaChain = MetaChain (Ptr Void)
newtype MetaIterator = MetaIterator (Ptr Void)
newtype Metadata = Metadata (Ptr Void)
data MetadataType
=
StreamInfoBlock
|
PaddingBlock
|
ApplicationBlock
|
SeekTableBlock
|
|
CueSheetBlock
|
PictureBlock
|
UndefinedBlock
deriving (Int -> MetadataType -> ShowS
[MetadataType] -> ShowS
MetadataType -> String
(Int -> MetadataType -> ShowS)
-> (MetadataType -> String)
-> ([MetadataType] -> ShowS)
-> Show MetadataType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MetadataType] -> ShowS
$cshowList :: [MetadataType] -> ShowS
show :: MetadataType -> String
$cshow :: MetadataType -> String
showsPrec :: Int -> MetadataType -> ShowS
$cshowsPrec :: Int -> MetadataType -> ShowS
Show, ReadPrec [MetadataType]
ReadPrec MetadataType
Int -> ReadS MetadataType
ReadS [MetadataType]
(Int -> ReadS MetadataType)
-> ReadS [MetadataType]
-> ReadPrec MetadataType
-> ReadPrec [MetadataType]
-> Read MetadataType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MetadataType]
$creadListPrec :: ReadPrec [MetadataType]
readPrec :: ReadPrec MetadataType
$creadPrec :: ReadPrec MetadataType
readList :: ReadS [MetadataType]
$creadList :: ReadS [MetadataType]
readsPrec :: Int -> ReadS MetadataType
$creadsPrec :: Int -> ReadS MetadataType
Read, MetadataType -> MetadataType -> Bool
(MetadataType -> MetadataType -> Bool)
-> (MetadataType -> MetadataType -> Bool) -> Eq MetadataType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MetadataType -> MetadataType -> Bool
$c/= :: MetadataType -> MetadataType -> Bool
== :: MetadataType -> MetadataType -> Bool
$c== :: MetadataType -> MetadataType -> Bool
Eq, Eq MetadataType
Eq MetadataType =>
(MetadataType -> MetadataType -> Ordering)
-> (MetadataType -> MetadataType -> Bool)
-> (MetadataType -> MetadataType -> Bool)
-> (MetadataType -> MetadataType -> Bool)
-> (MetadataType -> MetadataType -> Bool)
-> (MetadataType -> MetadataType -> MetadataType)
-> (MetadataType -> MetadataType -> MetadataType)
-> Ord MetadataType
MetadataType -> MetadataType -> Bool
MetadataType -> MetadataType -> Ordering
MetadataType -> MetadataType -> MetadataType
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 :: MetadataType -> MetadataType -> MetadataType
$cmin :: MetadataType -> MetadataType -> MetadataType
max :: MetadataType -> MetadataType -> MetadataType
$cmax :: MetadataType -> MetadataType -> MetadataType
>= :: MetadataType -> MetadataType -> Bool
$c>= :: MetadataType -> MetadataType -> Bool
> :: MetadataType -> MetadataType -> Bool
$c> :: MetadataType -> MetadataType -> Bool
<= :: MetadataType -> MetadataType -> Bool
$c<= :: MetadataType -> MetadataType -> Bool
< :: MetadataType -> MetadataType -> Bool
$c< :: MetadataType -> MetadataType -> Bool
compare :: MetadataType -> MetadataType -> Ordering
$ccompare :: MetadataType -> MetadataType -> Ordering
$cp1Ord :: Eq MetadataType
Ord, MetadataType
MetadataType -> MetadataType -> Bounded MetadataType
forall a. a -> a -> Bounded a
maxBound :: MetadataType
$cmaxBound :: MetadataType
minBound :: MetadataType
$cminBound :: MetadataType
Bounded, Int -> MetadataType
MetadataType -> Int
MetadataType -> [MetadataType]
MetadataType -> MetadataType
MetadataType -> MetadataType -> [MetadataType]
MetadataType -> MetadataType -> MetadataType -> [MetadataType]
(MetadataType -> MetadataType)
-> (MetadataType -> MetadataType)
-> (Int -> MetadataType)
-> (MetadataType -> Int)
-> (MetadataType -> [MetadataType])
-> (MetadataType -> MetadataType -> [MetadataType])
-> (MetadataType -> MetadataType -> [MetadataType])
-> (MetadataType -> MetadataType -> MetadataType -> [MetadataType])
-> Enum MetadataType
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 :: MetadataType -> MetadataType -> MetadataType -> [MetadataType]
$cenumFromThenTo :: MetadataType -> MetadataType -> MetadataType -> [MetadataType]
enumFromTo :: MetadataType -> MetadataType -> [MetadataType]
$cenumFromTo :: MetadataType -> MetadataType -> [MetadataType]
enumFromThen :: MetadataType -> MetadataType -> [MetadataType]
$cenumFromThen :: MetadataType -> MetadataType -> [MetadataType]
enumFrom :: MetadataType -> [MetadataType]
$cenumFrom :: MetadataType -> [MetadataType]
fromEnum :: MetadataType -> Int
$cfromEnum :: MetadataType -> Int
toEnum :: Int -> MetadataType
$ctoEnum :: Int -> MetadataType
pred :: MetadataType -> MetadataType
$cpred :: MetadataType -> MetadataType
succ :: MetadataType -> MetadataType
$csucc :: MetadataType -> MetadataType
Enum)
data MetaChainStatus
=
MetaChainStatusOK
|
MetaChainStatusIllegalInput
|
MetaChainStatusErrorOpeningFile
|
MetaChainStatusNotFlacFile
|
MetaChainStatusNotWritable
|
MetaChainStatusBadMetadata
|
MetaChainStatusReadError
|
MetaChainStatusSeekError
|
MetaChainStatusWriteError
|
MetaChainStatusRenameError
|
MetaChainStatusUnlinkError
|
MetaChainStatusMemoryAllocationError
|
MetaChainStatusInternalError
|
MetaChainStatusInvalidCallbacks
|
MetaChainStatusReadWriteMismatch
|
MetaChainStatusWrongWriteCall
deriving (Int -> MetaChainStatus -> ShowS
[MetaChainStatus] -> ShowS
MetaChainStatus -> String
(Int -> MetaChainStatus -> ShowS)
-> (MetaChainStatus -> String)
-> ([MetaChainStatus] -> ShowS)
-> Show MetaChainStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MetaChainStatus] -> ShowS
$cshowList :: [MetaChainStatus] -> ShowS
show :: MetaChainStatus -> String
$cshow :: MetaChainStatus -> String
showsPrec :: Int -> MetaChainStatus -> ShowS
$cshowsPrec :: Int -> MetaChainStatus -> ShowS
Show, ReadPrec [MetaChainStatus]
ReadPrec MetaChainStatus
Int -> ReadS MetaChainStatus
ReadS [MetaChainStatus]
(Int -> ReadS MetaChainStatus)
-> ReadS [MetaChainStatus]
-> ReadPrec MetaChainStatus
-> ReadPrec [MetaChainStatus]
-> Read MetaChainStatus
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MetaChainStatus]
$creadListPrec :: ReadPrec [MetaChainStatus]
readPrec :: ReadPrec MetaChainStatus
$creadPrec :: ReadPrec MetaChainStatus
readList :: ReadS [MetaChainStatus]
$creadList :: ReadS [MetaChainStatus]
readsPrec :: Int -> ReadS MetaChainStatus
$creadsPrec :: Int -> ReadS MetaChainStatus
Read, MetaChainStatus -> MetaChainStatus -> Bool
(MetaChainStatus -> MetaChainStatus -> Bool)
-> (MetaChainStatus -> MetaChainStatus -> Bool)
-> Eq MetaChainStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MetaChainStatus -> MetaChainStatus -> Bool
$c/= :: MetaChainStatus -> MetaChainStatus -> Bool
== :: MetaChainStatus -> MetaChainStatus -> Bool
$c== :: MetaChainStatus -> MetaChainStatus -> Bool
Eq, Eq MetaChainStatus
Eq MetaChainStatus =>
(MetaChainStatus -> MetaChainStatus -> Ordering)
-> (MetaChainStatus -> MetaChainStatus -> Bool)
-> (MetaChainStatus -> MetaChainStatus -> Bool)
-> (MetaChainStatus -> MetaChainStatus -> Bool)
-> (MetaChainStatus -> MetaChainStatus -> Bool)
-> (MetaChainStatus -> MetaChainStatus -> MetaChainStatus)
-> (MetaChainStatus -> MetaChainStatus -> MetaChainStatus)
-> Ord MetaChainStatus
MetaChainStatus -> MetaChainStatus -> Bool
MetaChainStatus -> MetaChainStatus -> Ordering
MetaChainStatus -> MetaChainStatus -> MetaChainStatus
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 :: MetaChainStatus -> MetaChainStatus -> MetaChainStatus
$cmin :: MetaChainStatus -> MetaChainStatus -> MetaChainStatus
max :: MetaChainStatus -> MetaChainStatus -> MetaChainStatus
$cmax :: MetaChainStatus -> MetaChainStatus -> MetaChainStatus
>= :: MetaChainStatus -> MetaChainStatus -> Bool
$c>= :: MetaChainStatus -> MetaChainStatus -> Bool
> :: MetaChainStatus -> MetaChainStatus -> Bool
$c> :: MetaChainStatus -> MetaChainStatus -> Bool
<= :: MetaChainStatus -> MetaChainStatus -> Bool
$c<= :: MetaChainStatus -> MetaChainStatus -> Bool
< :: MetaChainStatus -> MetaChainStatus -> Bool
$c< :: MetaChainStatus -> MetaChainStatus -> Bool
compare :: MetaChainStatus -> MetaChainStatus -> Ordering
$ccompare :: MetaChainStatus -> MetaChainStatus -> Ordering
$cp1Ord :: Eq MetaChainStatus
Ord, MetaChainStatus
MetaChainStatus -> MetaChainStatus -> Bounded MetaChainStatus
forall a. a -> a -> Bounded a
maxBound :: MetaChainStatus
$cmaxBound :: MetaChainStatus
minBound :: MetaChainStatus
$cminBound :: MetaChainStatus
Bounded, Int -> MetaChainStatus
MetaChainStatus -> Int
MetaChainStatus -> [MetaChainStatus]
MetaChainStatus -> MetaChainStatus
MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
MetaChainStatus
-> MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
(MetaChainStatus -> MetaChainStatus)
-> (MetaChainStatus -> MetaChainStatus)
-> (Int -> MetaChainStatus)
-> (MetaChainStatus -> Int)
-> (MetaChainStatus -> [MetaChainStatus])
-> (MetaChainStatus -> MetaChainStatus -> [MetaChainStatus])
-> (MetaChainStatus -> MetaChainStatus -> [MetaChainStatus])
-> (MetaChainStatus
-> MetaChainStatus -> MetaChainStatus -> [MetaChainStatus])
-> Enum MetaChainStatus
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 :: MetaChainStatus
-> MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
$cenumFromThenTo :: MetaChainStatus
-> MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
enumFromTo :: MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
$cenumFromTo :: MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
enumFromThen :: MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
$cenumFromThen :: MetaChainStatus -> MetaChainStatus -> [MetaChainStatus]
enumFrom :: MetaChainStatus -> [MetaChainStatus]
$cenumFrom :: MetaChainStatus -> [MetaChainStatus]
fromEnum :: MetaChainStatus -> Int
$cfromEnum :: MetaChainStatus -> Int
toEnum :: Int -> MetaChainStatus
$ctoEnum :: Int -> MetaChainStatus
pred :: MetaChainStatus -> MetaChainStatus
$cpred :: MetaChainStatus -> MetaChainStatus
succ :: MetaChainStatus -> MetaChainStatus
$csucc :: MetaChainStatus -> MetaChainStatus
Enum)
data MetaException
=
MetaGeneralProblem MetaChainStatus
|
MetaInvalidSeekTable
|
MetaInvalidCueSheet Text
|
MetaInvalidPicture Text
deriving (MetaException -> MetaException -> Bool
(MetaException -> MetaException -> Bool)
-> (MetaException -> MetaException -> Bool) -> Eq MetaException
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MetaException -> MetaException -> Bool
$c/= :: MetaException -> MetaException -> Bool
== :: MetaException -> MetaException -> Bool
$c== :: MetaException -> MetaException -> Bool
Eq, Int -> MetaException -> ShowS
[MetaException] -> ShowS
MetaException -> String
(Int -> MetaException -> ShowS)
-> (MetaException -> String)
-> ([MetaException] -> ShowS)
-> Show MetaException
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MetaException] -> ShowS
$cshowList :: [MetaException] -> ShowS
show :: MetaException -> String
$cshow :: MetaException -> String
showsPrec :: Int -> MetaException -> ShowS
$cshowsPrec :: Int -> MetaException -> ShowS
Show, ReadPrec [MetaException]
ReadPrec MetaException
Int -> ReadS MetaException
ReadS [MetaException]
(Int -> ReadS MetaException)
-> ReadS [MetaException]
-> ReadPrec MetaException
-> ReadPrec [MetaException]
-> Read MetaException
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MetaException]
$creadListPrec :: ReadPrec [MetaException]
readPrec :: ReadPrec MetaException
$creadPrec :: ReadPrec MetaException
readList :: ReadS [MetaException]
$creadList :: ReadS [MetaException]
readsPrec :: Int -> ReadS MetaException
$creadsPrec :: Int -> ReadS MetaException
Read)
instance Exception MetaException
newtype ApplicationId = ApplicationId ByteString
deriving (ApplicationId -> ApplicationId -> Bool
(ApplicationId -> ApplicationId -> Bool)
-> (ApplicationId -> ApplicationId -> Bool) -> Eq ApplicationId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApplicationId -> ApplicationId -> Bool
$c/= :: ApplicationId -> ApplicationId -> Bool
== :: ApplicationId -> ApplicationId -> Bool
$c== :: ApplicationId -> ApplicationId -> Bool
Eq, Eq ApplicationId
Eq ApplicationId =>
(ApplicationId -> ApplicationId -> Ordering)
-> (ApplicationId -> ApplicationId -> Bool)
-> (ApplicationId -> ApplicationId -> Bool)
-> (ApplicationId -> ApplicationId -> Bool)
-> (ApplicationId -> ApplicationId -> Bool)
-> (ApplicationId -> ApplicationId -> ApplicationId)
-> (ApplicationId -> ApplicationId -> ApplicationId)
-> Ord ApplicationId
ApplicationId -> ApplicationId -> Bool
ApplicationId -> ApplicationId -> Ordering
ApplicationId -> ApplicationId -> ApplicationId
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 :: ApplicationId -> ApplicationId -> ApplicationId
$cmin :: ApplicationId -> ApplicationId -> ApplicationId
max :: ApplicationId -> ApplicationId -> ApplicationId
$cmax :: ApplicationId -> ApplicationId -> ApplicationId
>= :: ApplicationId -> ApplicationId -> Bool
$c>= :: ApplicationId -> ApplicationId -> Bool
> :: ApplicationId -> ApplicationId -> Bool
$c> :: ApplicationId -> ApplicationId -> Bool
<= :: ApplicationId -> ApplicationId -> Bool
$c<= :: ApplicationId -> ApplicationId -> Bool
< :: ApplicationId -> ApplicationId -> Bool
$c< :: ApplicationId -> ApplicationId -> Bool
compare :: ApplicationId -> ApplicationId -> Ordering
$ccompare :: ApplicationId -> ApplicationId -> Ordering
$cp1Ord :: Eq ApplicationId
Ord)
instance Show ApplicationId where
show :: ApplicationId -> String
show (ApplicationId appId :: ByteString
appId) = ByteString -> String
forall a. Show a => a -> String
show ByteString
appId
instance IsString ApplicationId where
fromString :: String -> ApplicationId
fromString = ByteString -> ApplicationId
mkApplicationId (ByteString -> ApplicationId)
-> (String -> ByteString) -> String -> ApplicationId
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
B8.pack
mkApplicationId :: ByteString -> ApplicationId
mkApplicationId :: ByteString -> ApplicationId
mkApplicationId appId :: ByteString
appId =
ByteString -> ApplicationId
ApplicationId (ByteString -> ApplicationId) -> ByteString -> ApplicationId
forall a b. (a -> b) -> a -> b
$
Int -> ByteString -> ByteString
B.take 4 (ByteString
appId ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> Int -> Word8 -> ByteString
B.replicate 4 0x00)
unApplicationId :: ApplicationId -> ByteString
unApplicationId :: ApplicationId -> ByteString
unApplicationId (ApplicationId appId :: ByteString
appId) = ByteString
appId
data SeekPoint = SeekPoint
{
SeekPoint -> Word64
seekPointSampleNumber :: !Word64,
SeekPoint -> Word64
seekPointStreamOffset :: !Word64,
SeekPoint -> Word32
seekPointFrameSamples :: !Word32
}
deriving (SeekPoint -> SeekPoint -> Bool
(SeekPoint -> SeekPoint -> Bool)
-> (SeekPoint -> SeekPoint -> Bool) -> Eq SeekPoint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SeekPoint -> SeekPoint -> Bool
$c/= :: SeekPoint -> SeekPoint -> Bool
== :: SeekPoint -> SeekPoint -> Bool
$c== :: SeekPoint -> SeekPoint -> Bool
Eq, Eq SeekPoint
Eq SeekPoint =>
(SeekPoint -> SeekPoint -> Ordering)
-> (SeekPoint -> SeekPoint -> Bool)
-> (SeekPoint -> SeekPoint -> Bool)
-> (SeekPoint -> SeekPoint -> Bool)
-> (SeekPoint -> SeekPoint -> Bool)
-> (SeekPoint -> SeekPoint -> SeekPoint)
-> (SeekPoint -> SeekPoint -> SeekPoint)
-> Ord SeekPoint
SeekPoint -> SeekPoint -> Bool
SeekPoint -> SeekPoint -> Ordering
SeekPoint -> SeekPoint -> SeekPoint
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 :: SeekPoint -> SeekPoint -> SeekPoint
$cmin :: SeekPoint -> SeekPoint -> SeekPoint
max :: SeekPoint -> SeekPoint -> SeekPoint
$cmax :: SeekPoint -> SeekPoint -> SeekPoint
>= :: SeekPoint -> SeekPoint -> Bool
$c>= :: SeekPoint -> SeekPoint -> Bool
> :: SeekPoint -> SeekPoint -> Bool
$c> :: SeekPoint -> SeekPoint -> Bool
<= :: SeekPoint -> SeekPoint -> Bool
$c<= :: SeekPoint -> SeekPoint -> Bool
< :: SeekPoint -> SeekPoint -> Bool
$c< :: SeekPoint -> SeekPoint -> Bool
compare :: SeekPoint -> SeekPoint -> Ordering
$ccompare :: SeekPoint -> SeekPoint -> Ordering
$cp1Ord :: Eq SeekPoint
Ord, Int -> SeekPoint -> ShowS
[SeekPoint] -> ShowS
SeekPoint -> String
(Int -> SeekPoint -> ShowS)
-> (SeekPoint -> String)
-> ([SeekPoint] -> ShowS)
-> Show SeekPoint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SeekPoint] -> ShowS
$cshowList :: [SeekPoint] -> ShowS
show :: SeekPoint -> String
$cshow :: SeekPoint -> String
showsPrec :: Int -> SeekPoint -> ShowS
$cshowsPrec :: Int -> SeekPoint -> ShowS
Show, ReadPrec [SeekPoint]
ReadPrec SeekPoint
Int -> ReadS SeekPoint
ReadS [SeekPoint]
(Int -> ReadS SeekPoint)
-> ReadS [SeekPoint]
-> ReadPrec SeekPoint
-> ReadPrec [SeekPoint]
-> Read SeekPoint
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SeekPoint]
$creadListPrec :: ReadPrec [SeekPoint]
readPrec :: ReadPrec SeekPoint
$creadPrec :: ReadPrec SeekPoint
readList :: ReadS [SeekPoint]
$creadList :: ReadS [SeekPoint]
readsPrec :: Int -> ReadS SeekPoint
$creadsPrec :: Int -> ReadS SeekPoint
Read)
data CueSheetData = CueSheetData
{
CueSheetData -> ByteString
cueCatalog :: !ByteString,
CueSheetData -> Word64
cueLeadIn :: !Word64,
CueSheetData -> Bool
cueIsCd :: !Bool,
CueSheetData -> [CueTrack]
cueTracks :: ![CueTrack],
CueSheetData -> CueTrack
cueLeadOutTrack :: !CueTrack
}
deriving (CueSheetData -> CueSheetData -> Bool
(CueSheetData -> CueSheetData -> Bool)
-> (CueSheetData -> CueSheetData -> Bool) -> Eq CueSheetData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CueSheetData -> CueSheetData -> Bool
$c/= :: CueSheetData -> CueSheetData -> Bool
== :: CueSheetData -> CueSheetData -> Bool
$c== :: CueSheetData -> CueSheetData -> Bool
Eq, Eq CueSheetData
Eq CueSheetData =>
(CueSheetData -> CueSheetData -> Ordering)
-> (CueSheetData -> CueSheetData -> Bool)
-> (CueSheetData -> CueSheetData -> Bool)
-> (CueSheetData -> CueSheetData -> Bool)
-> (CueSheetData -> CueSheetData -> Bool)
-> (CueSheetData -> CueSheetData -> CueSheetData)
-> (CueSheetData -> CueSheetData -> CueSheetData)
-> Ord CueSheetData
CueSheetData -> CueSheetData -> Bool
CueSheetData -> CueSheetData -> Ordering
CueSheetData -> CueSheetData -> CueSheetData
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 :: CueSheetData -> CueSheetData -> CueSheetData
$cmin :: CueSheetData -> CueSheetData -> CueSheetData
max :: CueSheetData -> CueSheetData -> CueSheetData
$cmax :: CueSheetData -> CueSheetData -> CueSheetData
>= :: CueSheetData -> CueSheetData -> Bool
$c>= :: CueSheetData -> CueSheetData -> Bool
> :: CueSheetData -> CueSheetData -> Bool
$c> :: CueSheetData -> CueSheetData -> Bool
<= :: CueSheetData -> CueSheetData -> Bool
$c<= :: CueSheetData -> CueSheetData -> Bool
< :: CueSheetData -> CueSheetData -> Bool
$c< :: CueSheetData -> CueSheetData -> Bool
compare :: CueSheetData -> CueSheetData -> Ordering
$ccompare :: CueSheetData -> CueSheetData -> Ordering
$cp1Ord :: Eq CueSheetData
Ord, Int -> CueSheetData -> ShowS
[CueSheetData] -> ShowS
CueSheetData -> String
(Int -> CueSheetData -> ShowS)
-> (CueSheetData -> String)
-> ([CueSheetData] -> ShowS)
-> Show CueSheetData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CueSheetData] -> ShowS
$cshowList :: [CueSheetData] -> ShowS
show :: CueSheetData -> String
$cshow :: CueSheetData -> String
showsPrec :: Int -> CueSheetData -> ShowS
$cshowsPrec :: Int -> CueSheetData -> ShowS
Show, ReadPrec [CueSheetData]
ReadPrec CueSheetData
Int -> ReadS CueSheetData
ReadS [CueSheetData]
(Int -> ReadS CueSheetData)
-> ReadS [CueSheetData]
-> ReadPrec CueSheetData
-> ReadPrec [CueSheetData]
-> Read CueSheetData
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CueSheetData]
$creadListPrec :: ReadPrec [CueSheetData]
readPrec :: ReadPrec CueSheetData
$creadPrec :: ReadPrec CueSheetData
readList :: ReadS [CueSheetData]
$creadList :: ReadS [CueSheetData]
readsPrec :: Int -> ReadS CueSheetData
$creadsPrec :: Int -> ReadS CueSheetData
Read)
data CueTrack = CueTrack
{
CueTrack -> Word64
cueTrackOffset :: !Word64,
CueTrack -> ByteString
cueTrackIsrc :: !ByteString,
CueTrack -> Bool
cueTrackAudio :: !Bool,
CueTrack -> Bool
cueTrackPreEmphasis :: !Bool,
CueTrack -> Maybe Word64
cueTrackPregapIndex :: !(Maybe Word64),
CueTrack -> NonEmpty Word64
cueTrackIndices :: !(NonEmpty Word64)
}
deriving (CueTrack -> CueTrack -> Bool
(CueTrack -> CueTrack -> Bool)
-> (CueTrack -> CueTrack -> Bool) -> Eq CueTrack
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CueTrack -> CueTrack -> Bool
$c/= :: CueTrack -> CueTrack -> Bool
== :: CueTrack -> CueTrack -> Bool
$c== :: CueTrack -> CueTrack -> Bool
Eq, Eq CueTrack
Eq CueTrack =>
(CueTrack -> CueTrack -> Ordering)
-> (CueTrack -> CueTrack -> Bool)
-> (CueTrack -> CueTrack -> Bool)
-> (CueTrack -> CueTrack -> Bool)
-> (CueTrack -> CueTrack -> Bool)
-> (CueTrack -> CueTrack -> CueTrack)
-> (CueTrack -> CueTrack -> CueTrack)
-> Ord CueTrack
CueTrack -> CueTrack -> Bool
CueTrack -> CueTrack -> Ordering
CueTrack -> CueTrack -> CueTrack
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 :: CueTrack -> CueTrack -> CueTrack
$cmin :: CueTrack -> CueTrack -> CueTrack
max :: CueTrack -> CueTrack -> CueTrack
$cmax :: CueTrack -> CueTrack -> CueTrack
>= :: CueTrack -> CueTrack -> Bool
$c>= :: CueTrack -> CueTrack -> Bool
> :: CueTrack -> CueTrack -> Bool
$c> :: CueTrack -> CueTrack -> Bool
<= :: CueTrack -> CueTrack -> Bool
$c<= :: CueTrack -> CueTrack -> Bool
< :: CueTrack -> CueTrack -> Bool
$c< :: CueTrack -> CueTrack -> Bool
compare :: CueTrack -> CueTrack -> Ordering
$ccompare :: CueTrack -> CueTrack -> Ordering
$cp1Ord :: Eq CueTrack
Ord, Int -> CueTrack -> ShowS
[CueTrack] -> ShowS
CueTrack -> String
(Int -> CueTrack -> ShowS)
-> (CueTrack -> String) -> ([CueTrack] -> ShowS) -> Show CueTrack
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CueTrack] -> ShowS
$cshowList :: [CueTrack] -> ShowS
show :: CueTrack -> String
$cshow :: CueTrack -> String
showsPrec :: Int -> CueTrack -> ShowS
$cshowsPrec :: Int -> CueTrack -> ShowS
Show, ReadPrec [CueTrack]
ReadPrec CueTrack
Int -> ReadS CueTrack
ReadS [CueTrack]
(Int -> ReadS CueTrack)
-> ReadS [CueTrack]
-> ReadPrec CueTrack
-> ReadPrec [CueTrack]
-> Read CueTrack
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CueTrack]
$creadListPrec :: ReadPrec [CueTrack]
readPrec :: ReadPrec CueTrack
$creadPrec :: ReadPrec CueTrack
readList :: ReadS [CueTrack]
$creadList :: ReadS [CueTrack]
readsPrec :: Int -> ReadS CueTrack
$creadsPrec :: Int -> ReadS CueTrack
Read)
data PictureType
=
PictureOther
|
PictureFileIconStandard
|
PictureFileIcon
|
PictureFrontCover
|
PictureBackCover
|
PictureLeafletPage
|
PictureMedia
|
PictureLeadArtist
|
PictureArtist
|
PictureConductor
|
PictureBand
|
PictureComposer
|
PictureLyricist
|
PictureRecordingLocation
|
PictureDuringRecording
|
PictureDuringPerformance
|
PictureVideoScreenCapture
|
PictureFish
|
PictureIllustration
|
PictureBandLogotype
|
PicturePublisherLogotype
deriving (Int -> PictureType -> ShowS
[PictureType] -> ShowS
PictureType -> String
(Int -> PictureType -> ShowS)
-> (PictureType -> String)
-> ([PictureType] -> ShowS)
-> Show PictureType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PictureType] -> ShowS
$cshowList :: [PictureType] -> ShowS
show :: PictureType -> String
$cshow :: PictureType -> String
showsPrec :: Int -> PictureType -> ShowS
$cshowsPrec :: Int -> PictureType -> ShowS
Show, ReadPrec [PictureType]
ReadPrec PictureType
Int -> ReadS PictureType
ReadS [PictureType]
(Int -> ReadS PictureType)
-> ReadS [PictureType]
-> ReadPrec PictureType
-> ReadPrec [PictureType]
-> Read PictureType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PictureType]
$creadListPrec :: ReadPrec [PictureType]
readPrec :: ReadPrec PictureType
$creadPrec :: ReadPrec PictureType
readList :: ReadS [PictureType]
$creadList :: ReadS [PictureType]
readsPrec :: Int -> ReadS PictureType
$creadsPrec :: Int -> ReadS PictureType
Read, PictureType -> PictureType -> Bool
(PictureType -> PictureType -> Bool)
-> (PictureType -> PictureType -> Bool) -> Eq PictureType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PictureType -> PictureType -> Bool
$c/= :: PictureType -> PictureType -> Bool
== :: PictureType -> PictureType -> Bool
$c== :: PictureType -> PictureType -> Bool
Eq, Eq PictureType
Eq PictureType =>
(PictureType -> PictureType -> Ordering)
-> (PictureType -> PictureType -> Bool)
-> (PictureType -> PictureType -> Bool)
-> (PictureType -> PictureType -> Bool)
-> (PictureType -> PictureType -> Bool)
-> (PictureType -> PictureType -> PictureType)
-> (PictureType -> PictureType -> PictureType)
-> Ord PictureType
PictureType -> PictureType -> Bool
PictureType -> PictureType -> Ordering
PictureType -> PictureType -> PictureType
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 :: PictureType -> PictureType -> PictureType
$cmin :: PictureType -> PictureType -> PictureType
max :: PictureType -> PictureType -> PictureType
$cmax :: PictureType -> PictureType -> PictureType
>= :: PictureType -> PictureType -> Bool
$c>= :: PictureType -> PictureType -> Bool
> :: PictureType -> PictureType -> Bool
$c> :: PictureType -> PictureType -> Bool
<= :: PictureType -> PictureType -> Bool
$c<= :: PictureType -> PictureType -> Bool
< :: PictureType -> PictureType -> Bool
$c< :: PictureType -> PictureType -> Bool
compare :: PictureType -> PictureType -> Ordering
$ccompare :: PictureType -> PictureType -> Ordering
$cp1Ord :: Eq PictureType
Ord, PictureType
PictureType -> PictureType -> Bounded PictureType
forall a. a -> a -> Bounded a
maxBound :: PictureType
$cmaxBound :: PictureType
minBound :: PictureType
$cminBound :: PictureType
Bounded, Int -> PictureType
PictureType -> Int
PictureType -> [PictureType]
PictureType -> PictureType
PictureType -> PictureType -> [PictureType]
PictureType -> PictureType -> PictureType -> [PictureType]
(PictureType -> PictureType)
-> (PictureType -> PictureType)
-> (Int -> PictureType)
-> (PictureType -> Int)
-> (PictureType -> [PictureType])
-> (PictureType -> PictureType -> [PictureType])
-> (PictureType -> PictureType -> [PictureType])
-> (PictureType -> PictureType -> PictureType -> [PictureType])
-> Enum PictureType
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 :: PictureType -> PictureType -> PictureType -> [PictureType]
$cenumFromThenTo :: PictureType -> PictureType -> PictureType -> [PictureType]
enumFromTo :: PictureType -> PictureType -> [PictureType]
$cenumFromTo :: PictureType -> PictureType -> [PictureType]
enumFromThen :: PictureType -> PictureType -> [PictureType]
$cenumFromThen :: PictureType -> PictureType -> [PictureType]
enumFrom :: PictureType -> [PictureType]
$cenumFrom :: PictureType -> [PictureType]
fromEnum :: PictureType -> Int
$cfromEnum :: PictureType -> Int
toEnum :: Int -> PictureType
$ctoEnum :: Int -> PictureType
pred :: PictureType -> PictureType
$cpred :: PictureType -> PictureType
succ :: PictureType -> PictureType
$csucc :: PictureType -> PictureType
Enum)
data PictureData = PictureData
{
PictureData -> Text
pictureMimeType :: !Text,
PictureData -> Text
pictureDescription :: !Text,
PictureData -> Word32
pictureWidth :: !Word32,
PictureData -> Word32
pictureHeight :: !Word32,
PictureData -> Word32
pictureDepth :: !Word32,
PictureData -> Word32
pictureColors :: !Word32,
PictureData -> ByteString
pictureData :: !ByteString
}
deriving (PictureData -> PictureData -> Bool
(PictureData -> PictureData -> Bool)
-> (PictureData -> PictureData -> Bool) -> Eq PictureData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PictureData -> PictureData -> Bool
$c/= :: PictureData -> PictureData -> Bool
== :: PictureData -> PictureData -> Bool
$c== :: PictureData -> PictureData -> Bool
Eq, Eq PictureData
Eq PictureData =>
(PictureData -> PictureData -> Ordering)
-> (PictureData -> PictureData -> Bool)
-> (PictureData -> PictureData -> Bool)
-> (PictureData -> PictureData -> Bool)
-> (PictureData -> PictureData -> Bool)
-> (PictureData -> PictureData -> PictureData)
-> (PictureData -> PictureData -> PictureData)
-> Ord PictureData
PictureData -> PictureData -> Bool
PictureData -> PictureData -> Ordering
PictureData -> PictureData -> PictureData
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 :: PictureData -> PictureData -> PictureData
$cmin :: PictureData -> PictureData -> PictureData
max :: PictureData -> PictureData -> PictureData
$cmax :: PictureData -> PictureData -> PictureData
>= :: PictureData -> PictureData -> Bool
$c>= :: PictureData -> PictureData -> Bool
> :: PictureData -> PictureData -> Bool
$c> :: PictureData -> PictureData -> Bool
<= :: PictureData -> PictureData -> Bool
$c<= :: PictureData -> PictureData -> Bool
< :: PictureData -> PictureData -> Bool
$c< :: PictureData -> PictureData -> Bool
compare :: PictureData -> PictureData -> Ordering
$ccompare :: PictureData -> PictureData -> Ordering
$cp1Ord :: Eq PictureData
Ord, Int -> PictureData -> ShowS
[PictureData] -> ShowS
PictureData -> String
(Int -> PictureData -> ShowS)
-> (PictureData -> String)
-> ([PictureData] -> ShowS)
-> Show PictureData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PictureData] -> ShowS
$cshowList :: [PictureData] -> ShowS
show :: PictureData -> String
$cshow :: PictureData -> String
showsPrec :: Int -> PictureData -> ShowS
$cshowsPrec :: Int -> PictureData -> ShowS
Show, ReadPrec [PictureData]
ReadPrec PictureData
Int -> ReadS PictureData
ReadS [PictureData]
(Int -> ReadS PictureData)
-> ReadS [PictureData]
-> ReadPrec PictureData
-> ReadPrec [PictureData]
-> Read PictureData
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PictureData]
$creadListPrec :: ReadPrec [PictureData]
readPrec :: ReadPrec PictureData
$creadPrec :: ReadPrec PictureData
readList :: ReadS [PictureData]
$creadList :: ReadS [PictureData]
readsPrec :: Int -> ReadS PictureData
$creadsPrec :: Int -> ReadS PictureData
Read)