Portability | unknown |
---|---|
Stability | unstable |
Maintainer | Conrad Parker <conrad@metadecks.org> |
ZoomCache packet and summary types and interfaces
- class ZoomReadable a where
- data SummaryData a :: *
- readRaw :: (Functor m, MonadIO m) => Iteratee [Word8] m a
- readSummary :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData a)
- prettyRaw :: a -> String
- prettySummaryData :: SummaryData a -> String
- class ZoomWritable a where
- data SummaryWork a :: *
- fromRaw :: a -> Builder
- fromSummaryData :: SummaryData a -> Builder
- initSummaryWork :: TimeStamp -> SummaryWork a
- updateSummaryData :: Int -> TimeStamp -> a -> SummaryWork a -> SummaryWork a
- toSummaryData :: Double -> SummaryWork a -> SummaryData a
- appendSummaryData :: Double -> SummaryData a -> Double -> SummaryData a -> SummaryData a
- data ZoomRaw = forall a . ZoomReadable a => ZoomRaw [a]
- data ZoomSummary = forall a . ZoomReadable a => ZoomSummary (Summary a)
- data ZoomWork = forall a . (Typeable a, ZoomWritable a) => ZoomWork {}
- data Packet = Packet {}
- data Summary a = Summary {}
- summaryDuration :: Summary a -> Int64
Classes
class ZoomReadable a whereSource
A codec instance must specify a SummaryData
type,
and implement all methods of this class.
data SummaryData a :: *Source
readRaw :: (Functor m, MonadIO m) => Iteratee [Word8] m aSource
An iteratee to read one value of type a
from a stream of '[Word8]'.
readSummary :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData a)Source
An iteratee to read one value of type 'SummaryData a' from a stream of '[Word8]'.
prettyRaw :: a -> StringSource
Pretty printing, used for dumping values of type a
.
prettySummaryData :: SummaryData a -> StringSource
Pretty printing for values of type 'SummaryData a'.
class ZoomWritable a whereSource
A codec instance must additionally specify a SummaryWork
type
data SummaryWork a :: *Source
Intermediate calculations
Serialize a value of type a
fromSummaryData :: SummaryData a -> BuilderSource
Serialize a 'SummaryData a'
initSummaryWork :: TimeStamp -> SummaryWork aSource
Generate a new 'SummaryWork a', given an initial timestamp.
updateSummaryData :: Int -> TimeStamp -> a -> SummaryWork a -> SummaryWork aSource
Update a SummaryData
with the value of a
occuring at the
given TimeStamp
.
toSummaryData :: Double -> SummaryWork a -> SummaryData aSource
Finalize a 'SummaryWork a', generating a 'SummaryData a'.
appendSummaryData :: Double -> SummaryData a -> Double -> SummaryData a -> SummaryData aSource
Append two SummaryData
forall a . ZoomReadable a => ZoomRaw [a] |
data ZoomSummary Source
forall a . ZoomReadable a => ZoomSummary (Summary a) |
forall a . (Typeable a, ZoomWritable a) => ZoomWork | |
Types
Packet | |
|
A recorded block of summary data
summaryDuration :: Summary a -> Int64Source
The duration covered by a summary, in units of 1 / the track's datarate