| Portability | unknown |
|---|---|
| Stability | unstable |
| Maintainer | Conrad Parker <conrad@metadecks.org> |
Data.Iteratee.ZoomCache
Contents
Description
Iteratee reading of ZoomCache files.
A typical usage, using the iteratee iter to process the level 3 summaries
from the track called "rainfall":
I.fileDriverRandom (enumCacheFile standardIdentifiers .
I.joinI . filterTracksByName ["rainfall"] .
I.joinI . enumSummaryLevel 3 $ iter) filename
Similarly, using the iteratee rawIter to process the raw data from the
track called "rainfall":
I.fileDriverRandom (enumCacheFile standardIdentifiers .
I.joinI . filterTracksByName ["rainfall"] .
I.joinI . enumPackets $ rawIter) filename
- data Stream
- = StreamPacket { }
- | StreamSummary { }
- enumCacheFile :: (Functor m, MonadIO m) => [IdentifyCodec] -> Enumeratee ByteString [Stream] m a
- wholeTrackSummary :: (Functor m, MonadIO m) => [IdentifyCodec] -> TrackNo -> Iteratee ByteString m (TrackSpec, ZoomSummary)
- wholeTrackSummaryUTC :: (Functor m, MonadIO m) => [IdentifyCodec] -> TrackNo -> Iteratee ByteString m (TrackSpec, Maybe ZoomSummaryUTC)
- iterHeaders :: (Functor m, Monad m) => [IdentifyCodec] -> Iteratee ByteString m CacheFile
- enumStream :: (Functor m, MonadIO m) => CacheFile -> Enumeratee ByteString [Stream] m a
- enumStreamIncomplete :: (Functor m, MonadIO m) => CacheFile -> Enumeratee ByteString [Stream] m a
- enumStreamTrackNo :: (Functor m, MonadIO m) => CacheFile -> TrackNo -> Enumeratee ByteString [Stream] m a
- seekTimeStamp :: (ListLike s el, Nullable s, NullPoint s, Timestampable el, Monad m) => Maybe TimeStamp -> Iteratee s m ()
- seekUTCTime :: (ListLike s el, Nullable s, NullPoint s, UTCTimestampable el, Monad m) => Maybe UTCTime -> Iteratee s m ()
- enumPackets :: (Functor m, Monad m) => Enumeratee [Stream] [Packet] m a
- enumPacketsUTC :: (Functor m, Monad m) => Enumeratee [Stream] [PacketUTC] m a
- enumSummaryLevel :: (Functor m, Monad m) => Int -> Enumeratee [Stream] [ZoomSummary] m a
- enumSummaries :: (Functor m, Monad m) => Enumeratee [Stream] [ZoomSummary] m a
- enumSummaryUTCLevel :: (Functor m, Monad m) => Int -> Enumeratee [Stream] [ZoomSummaryUTC] m a
- enumSummariesUTC :: (Functor m, Monad m) => Enumeratee [Stream] [ZoomSummaryUTC] m a
- filterTracksByName :: (Functor m, Monad m) => CacheFile -> [ByteString] -> Enumeratee [Stream] [Stream] m a
- filterTracks :: (Functor m, Monad m) => [TrackNo] -> Enumeratee [Stream] [Stream] m a
- enumPacketSOs :: (Functor m, Monad m) => Enumeratee [Stream] [PacketSO] m a
- enumSummarySOLevel :: (Functor m, Monad m) => Int -> Enumeratee [Stream] [ZoomSummarySO] m a
- enumSummarySOs :: (Functor m, Monad m) => Enumeratee [Stream] [ZoomSummarySO] m a
- enumCTPSO :: (Functor m, Monad m) => Enumeratee [Stream] [(CacheFile, TrackNo, PacketSO)] m a
- enumCTSO :: (Functor m, Monad m) => Enumeratee [Stream] [(CacheFile, TrackNo, ZoomSummarySO)] m a
Types
Constructors
| StreamPacket | |
| StreamSummary | |
Fields | |
Instances
Reading zoom-cache files and ByteStrings
enumCacheFile :: (Functor m, MonadIO m) => [IdentifyCodec] -> Enumeratee ByteString [Stream] m aSource
wholeTrackSummary :: (Functor m, MonadIO m) => [IdentifyCodec] -> TrackNo -> Iteratee ByteString m (TrackSpec, ZoomSummary)Source
Read the summary of an entire track.
wholeTrackSummaryUTC :: (Functor m, MonadIO m) => [IdentifyCodec] -> TrackNo -> Iteratee ByteString m (TrackSpec, Maybe ZoomSummaryUTC)Source
Read the summary of an entire track.
iterHeaders :: (Functor m, Monad m) => [IdentifyCodec] -> Iteratee ByteString m CacheFileSource
Parse only the global and track headers of a zoom-cache file, returning
a CacheFile
enumStream :: (Functor m, MonadIO m) => CacheFile -> Enumeratee ByteString [Stream] m aSource
An iteratee of zoom-cache data, after global and track headers
have been read, or if the CacheFile has been acquired elsewhere.
enumStreamIncomplete :: (Functor m, MonadIO m) => CacheFile -> Enumeratee ByteString [Stream] m aSource
A version of enumStream which won't fail with an EofException if the last bit is incomplete (perhaps still being written to).
enumStreamTrackNo :: (Functor m, MonadIO m) => CacheFile -> TrackNo -> Enumeratee ByteString [Stream] m aSource
An enumeratee of zoom-cache data, after global and track headers
have been read, or if the CacheFile has been acquired elsewhere.
This version skips parsing of all tracks other than the specified TrackNo.
This function should only be used in applications where only one track is
used from a file; if you need to process multiple tracks independently then
give each an iteratee filtered by filterTracks or filterTracksByName, and
run these in parallel on the output of enumCacheFile or enumStream.
Using this function multiple times in parallel will duplicate some parsing.
Seeking
seekTimeStamp :: (ListLike s el, Nullable s, NullPoint s, Timestampable el, Monad m) => Maybe TimeStamp -> Iteratee s m ()Source
seekUTCTime :: (ListLike s el, Nullable s, NullPoint s, UTCTimestampable el, Monad m) => Maybe UTCTime -> Iteratee s m ()Source
Stream enumeratees
enumPackets :: (Functor m, Monad m) => Enumeratee [Stream] [Packet] m aSource
Filter just the raw data
enumPacketsUTC :: (Functor m, Monad m) => Enumeratee [Stream] [PacketUTC] m aSource
Filter just the raw data, timestamped by UTC
enumSummaryLevel :: (Functor m, Monad m) => Int -> Enumeratee [Stream] [ZoomSummary] m aSource
Filter summaries at a particular summary level
enumSummaries :: (Functor m, Monad m) => Enumeratee [Stream] [ZoomSummary] m aSource
Filter summaries at all levels
enumSummaryUTCLevel :: (Functor m, Monad m) => Int -> Enumeratee [Stream] [ZoomSummaryUTC] m aSource
Filter summaries at a particular summary level
enumSummariesUTC :: (Functor m, Monad m) => Enumeratee [Stream] [ZoomSummaryUTC] m aSource
Filter summaries at all levels
filterTracksByName :: (Functor m, Monad m) => CacheFile -> [ByteString] -> Enumeratee [Stream] [Stream] m aSource
Filter to a given list of track names
filterTracks :: (Functor m, Monad m) => [TrackNo] -> Enumeratee [Stream] [Stream] m aSource
Filter to a given list of track numbers
Low-level access to SampleOffsets
enumPacketSOs :: (Functor m, Monad m) => Enumeratee [Stream] [PacketSO] m aSource
Filter just the raw data
enumSummarySOLevel :: (Functor m, Monad m) => Int -> Enumeratee [Stream] [ZoomSummarySO] m aSource
Filter summaries at a particular summary level
enumSummarySOs :: (Functor m, Monad m) => Enumeratee [Stream] [ZoomSummarySO] m aSource
Filter summaries at all levels
enumCTPSO :: (Functor m, Monad m) => Enumeratee [Stream] [(CacheFile, TrackNo, PacketSO)] m aSource
Filter raw data
enumCTSO :: (Functor m, Monad m) => Enumeratee [Stream] [(CacheFile, TrackNo, ZoomSummarySO)] m aSource
Filter summaries