zoom-cache-pcm 0.2.0.1 → 0.2.1.0
raw patch · 5 files changed
+94/−64 lines, 5 filesdep ~zoom-cachePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: zoom-cache
API changes (from Hackage documentation)
- Data.ZoomCache.PCM.IEEE754: instance ZoomWrite (TimeStamp, PCM Double)
- Data.ZoomCache.PCM.IEEE754: instance ZoomWrite (TimeStamp, PCM Float)
- Data.ZoomCache.PCM.Int: instance ZoomWrite (TimeStamp, PCM Int)
- Data.ZoomCache.PCM.Int: instance ZoomWrite (TimeStamp, PCM Int16)
- Data.ZoomCache.PCM.Int: instance ZoomWrite (TimeStamp, PCM Int32)
- Data.ZoomCache.PCM.Int: instance ZoomWrite (TimeStamp, PCM Int64)
- Data.ZoomCache.PCM.Int: instance ZoomWrite (TimeStamp, PCM Int8)
- Data.ZoomCache.PCM.Types: pcmWorkTime :: ZoomPCM a => SummaryWork (PCM a) -> TimeStamp
+ Data.ZoomCache.PCM.IEEE754: instance ZoomWrite (SampleOffset, PCM Double)
+ Data.ZoomCache.PCM.IEEE754: instance ZoomWrite (SampleOffset, PCM Float)
+ Data.ZoomCache.PCM.Int: instance ZoomWrite (SampleOffset, PCM Int)
+ Data.ZoomCache.PCM.Int: instance ZoomWrite (SampleOffset, PCM Int16)
+ Data.ZoomCache.PCM.Int: instance ZoomWrite (SampleOffset, PCM Int32)
+ Data.ZoomCache.PCM.Int: instance ZoomWrite (SampleOffset, PCM Int64)
+ Data.ZoomCache.PCM.Int: instance ZoomWrite (SampleOffset, PCM Int8)
+ Data.ZoomCache.PCM.Types: pcmWorkSO :: ZoomPCM a => SummaryWork (PCM a) -> SampleOffset
- Data.ZoomCache.PCM.Internal: appendSummaryPCM :: ZoomPCM a => TimeStampDiff -> SummaryData (PCM a) -> TimeStampDiff -> SummaryData (PCM a) -> SummaryData (PCM a)
+ Data.ZoomCache.PCM.Internal: appendSummaryPCM :: ZoomPCM a => SampleOffsetDiff -> SummaryData (PCM a) -> SampleOffsetDiff -> SummaryData (PCM a) -> SummaryData (PCM a)
- Data.ZoomCache.PCM.Internal: initSummaryPCMBounded :: (Bounded a, ZoomPCM a) => TimeStamp -> SummaryWork (PCM a)
+ Data.ZoomCache.PCM.Internal: initSummaryPCMBounded :: (Bounded a, ZoomPCM a) => SampleOffset -> SummaryWork (PCM a)
- Data.ZoomCache.PCM.Internal: mkSummaryPCM :: ZoomPCM a => TimeStampDiff -> SummaryWork (PCM a) -> SummaryData (PCM a)
+ Data.ZoomCache.PCM.Internal: mkSummaryPCM :: ZoomPCM a => SampleOffsetDiff -> SummaryWork (PCM a) -> SummaryData (PCM a)
- Data.ZoomCache.PCM.Internal: updateSummaryPCM :: ZoomPCM a => TimeStamp -> PCM a -> SummaryWork (PCM a) -> SummaryWork (PCM a)
+ Data.ZoomCache.PCM.Internal: updateSummaryPCM :: ZoomPCM a => SampleOffset -> PCM a -> SummaryWork (PCM a) -> SummaryWork (PCM a)
- Data.ZoomCache.PCM.Types: pcmMkSummaryWork :: ZoomPCM a => TimeStamp -> a -> a -> a -> Double -> Double -> SummaryWork (PCM a)
+ Data.ZoomCache.PCM.Types: pcmMkSummaryWork :: ZoomPCM a => SampleOffset -> a -> a -> a -> Double -> Double -> SummaryWork (PCM a)
Files
- Data/ZoomCache/PCM/IEEE754.hs +22/−13
- Data/ZoomCache/PCM/Int.hs +56/−35
- Data/ZoomCache/PCM/Internal.hs +8/−8
- Data/ZoomCache/PCM/Types.hs +6/−6
- zoom-cache-pcm.cabal +2/−2
Data/ZoomCache/PCM/IEEE754.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE BangPatterns #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-}@@ -100,17 +101,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Float)) #-}+#endif instance ZoomWrite (PCM Float) where write = writeData -instance ZoomWrite (TimeStamp, PCM Float) where+instance ZoomWrite (SampleOffset, PCM Float) where write = writeDataVBR instance ZoomWritable (PCM Float) where data SummaryWork (PCM Float) = SummaryWorkPCMFloat- { swPCMFloatTime :: {-# UNPACK #-}!TimeStamp+ { swPCMFloatTime :: {-# UNPACK #-}!SampleOffset , swPCMFloatLast :: {-# UNPACK #-}!Float , swPCMFloatMin :: {-# UNPACK #-}!Float , swPCMFloatMax :: {-# UNPACK #-}!Float@@ -134,7 +137,7 @@ pcmAvg = summaryPCMFloatAvg pcmRMS = summaryPCMFloatRMS - pcmWorkTime = swPCMFloatTime+ pcmWorkSO = swPCMFloatTime pcmWorkLast = swPCMFloatLast pcmWorkMin = swPCMFloatMin pcmWorkMax = swPCMFloatMax@@ -144,10 +147,12 @@ pcmMkSummary = SummaryPCMFloat pcmMkSummaryWork = SummaryWorkPCMFloat +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Float) -> Builder #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Float) -> SummaryData (PCM Float) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Float) -> TimeStampDiff -> SummaryData (PCM Float) -> SummaryData (PCM Float) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Float -> SummaryWork (PCM Float) -> SummaryWork (PCM Float) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Float) -> SummaryData (PCM Float) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Float) -> SampleOffsetDiff -> SummaryData (PCM Float) -> SummaryData (PCM Float) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Float -> SummaryWork (PCM Float) -> SummaryWork (PCM Float) #-}+#endif ---------------------------------------------------------------------- -- Double@@ -170,17 +175,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Double)) #-}+#endif instance ZoomWrite (PCM Double) where write = writeData -instance ZoomWrite (TimeStamp, PCM Double) where+instance ZoomWrite (SampleOffset, PCM Double) where write = writeDataVBR instance ZoomWritable (PCM Double) where data SummaryWork (PCM Double) = SummaryWorkPCMDouble- { swPCMDoubleTime :: {-# UNPACK #-}!TimeStamp+ { swPCMDoubleTime :: {-# UNPACK #-}!SampleOffset , swPCMDoubleLast :: {-# UNPACK #-}!Double , swPCMDoubleMin :: {-# UNPACK #-}!Double , swPCMDoubleMax :: {-# UNPACK #-}!Double@@ -204,7 +211,7 @@ pcmAvg = summaryPCMDoubleAvg pcmRMS = summaryPCMDoubleRMS - pcmWorkTime = swPCMDoubleTime+ pcmWorkSO = swPCMDoubleTime pcmWorkLast = swPCMDoubleLast pcmWorkMin = swPCMDoubleMin pcmWorkMax = swPCMDoubleMax@@ -214,10 +221,12 @@ pcmMkSummary = SummaryPCMDouble pcmMkSummaryWork = SummaryWorkPCMDouble +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Double) -> Builder #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Double) -> SummaryData (PCM Double) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Double) -> TimeStampDiff -> SummaryData (PCM Double) -> SummaryData (PCM Double) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Double -> SummaryWork (PCM Double) -> SummaryWork (PCM Double) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Double) -> SummaryData (PCM Double) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Double) -> SampleOffsetDiff -> SummaryData (PCM Double) -> SummaryData (PCM Double) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Double -> SummaryWork (PCM Double) -> SummaryWork (PCM Double) #-}+#endif ---------------------------------------------------------------------- -- Helpers for float and double@@ -233,7 +242,7 @@ ] initSummaryPCMFloat :: (RealFloat a, ZoomPCM a)- => TimeStamp -> SummaryWork (PCM a)+ => SampleOffset -> SummaryWork (PCM a) initSummaryPCMFloat entry = pcmMkSummaryWork entry 0.0
Data/ZoomCache/PCM/Int.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE BangPatterns #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-}@@ -126,17 +127,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int)) #-}+#endif instance ZoomWrite (PCM Int) where write = writeData -instance ZoomWrite (TimeStamp, (PCM Int)) where+instance ZoomWrite (SampleOffset, (PCM Int)) where write = writeDataVBR instance ZoomWritable (PCM Int) where data SummaryWork (PCM Int) = SummaryWorkPCMInt- { swPCMIntTime :: {-# UNPACK #-}!TimeStamp+ { swPCMIntTime :: {-# UNPACK #-}!SampleOffset , swPCMIntLast :: {-# UNPACK #-}!Int , swPCMIntMin :: {-# UNPACK #-}!Int , swPCMIntMax :: {-# UNPACK #-}!Int@@ -161,7 +164,7 @@ pcmAvg = summaryIntAvg pcmRMS = summaryIntRMS - pcmWorkTime = swPCMIntTime+ pcmWorkSO = swPCMIntTime pcmWorkLast = swPCMIntLast pcmWorkMin = swPCMIntMin pcmWorkMax = swPCMIntMax@@ -171,11 +174,13 @@ pcmMkSummary = SummaryPCMInt pcmMkSummaryWork = SummaryWorkPCMInt +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Int) -> Builder #-}-{-# SPECIALIZE initSummaryPCMBounded :: TimeStamp -> SummaryWork (PCM Int) #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Int) -> SummaryData (PCM Int) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Int) -> TimeStampDiff -> SummaryData (PCM Int) -> SummaryData (PCM Int) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Int -> SummaryWork (PCM Int) -> SummaryWork (PCM Int) #-}+{-# SPECIALIZE initSummaryPCMBounded :: SampleOffset -> SummaryWork (PCM Int) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Int) -> SummaryData (PCM Int) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Int) -> SampleOffsetDiff -> SummaryData (PCM Int) -> SummaryData (PCM Int) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Int -> SummaryWork (PCM Int) -> SummaryWork (PCM Int) #-}+#endif ---------------------------------------------------------------------- -- Int8@@ -198,17 +203,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int8)) #-}+#endif instance ZoomWrite (PCM Int8) where write = writeData -instance ZoomWrite (TimeStamp, (PCM Int8)) where+instance ZoomWrite (SampleOffset, (PCM Int8)) where write = writeDataVBR instance ZoomWritable (PCM Int8) where data SummaryWork (PCM Int8) = SummaryWorkPCMInt8- { swPCMInt8Time :: {-# UNPACK #-}!TimeStamp+ { swPCMInt8Time :: {-# UNPACK #-}!SampleOffset , swPCMInt8Last :: {-# UNPACK #-}!Int8 , swPCMInt8Min :: {-# UNPACK #-}!Int8 , swPCMInt8Max :: {-# UNPACK #-}!Int8@@ -233,7 +240,7 @@ pcmAvg = summaryInt8Avg pcmRMS = summaryInt8RMS - pcmWorkTime = swPCMInt8Time+ pcmWorkSO = swPCMInt8Time pcmWorkLast = swPCMInt8Last pcmWorkMin = swPCMInt8Min pcmWorkMax = swPCMInt8Max@@ -243,11 +250,13 @@ pcmMkSummary = SummaryPCMInt8 pcmMkSummaryWork = SummaryWorkPCMInt8 +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Int8) -> Builder #-}-{-# SPECIALIZE initSummaryPCMBounded :: TimeStamp -> SummaryWork (PCM Int8) #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Int8) -> SummaryData (PCM Int8) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Int8) -> TimeStampDiff -> SummaryData (PCM Int8) -> SummaryData (PCM Int8) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Int8 -> SummaryWork (PCM Int8) -> SummaryWork (PCM Int8) #-}+{-# SPECIALIZE initSummaryPCMBounded :: SampleOffset -> SummaryWork (PCM Int8) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Int8) -> SummaryData (PCM Int8) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Int8) -> SampleOffsetDiff -> SummaryData (PCM Int8) -> SummaryData (PCM Int8) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Int8 -> SummaryWork (PCM Int8) -> SummaryWork (PCM Int8) #-}+#endif ---------------------------------------------------------------------- -- Int16@@ -270,17 +279,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int16)) #-}+#endif instance ZoomWrite (PCM Int16) where write = writeData -instance ZoomWrite (TimeStamp, (PCM Int16)) where+instance ZoomWrite (SampleOffset, (PCM Int16)) where write = writeDataVBR instance ZoomWritable (PCM Int16) where data SummaryWork (PCM Int16) = SummaryWorkPCMInt16- { swPCMInt16Time :: {-# UNPACK #-}!TimeStamp+ { swPCMInt16Time :: {-# UNPACK #-}!SampleOffset , swPCMInt16Last :: {-# UNPACK #-}!Int16 , swPCMInt16Min :: {-# UNPACK #-}!Int16 , swPCMInt16Max :: {-# UNPACK #-}!Int16@@ -305,7 +316,7 @@ pcmAvg = summaryInt16Avg pcmRMS = summaryInt16RMS - pcmWorkTime = swPCMInt16Time+ pcmWorkSO = swPCMInt16Time pcmWorkLast = swPCMInt16Last pcmWorkMin = swPCMInt16Min pcmWorkMax = swPCMInt16Max@@ -315,11 +326,13 @@ pcmMkSummary = SummaryPCMInt16 pcmMkSummaryWork = SummaryWorkPCMInt16 +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Int16) -> Builder #-}-{-# SPECIALIZE initSummaryPCMBounded :: TimeStamp -> SummaryWork (PCM Int16) #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Int16) -> SummaryData (PCM Int16) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Int16) -> TimeStampDiff -> SummaryData (PCM Int16) -> SummaryData (PCM Int16) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Int16 -> SummaryWork (PCM Int16) -> SummaryWork (PCM Int16) #-}+{-# SPECIALIZE initSummaryPCMBounded :: SampleOffset -> SummaryWork (PCM Int16) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Int16) -> SummaryData (PCM Int16) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Int16) -> SampleOffsetDiff -> SummaryData (PCM Int16) -> SummaryData (PCM Int16) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Int16 -> SummaryWork (PCM Int16) -> SummaryWork (PCM Int16) #-}+#endif ---------------------------------------------------------------------- -- Int32@@ -342,17 +355,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int32)) #-}+#endif instance ZoomWrite (PCM Int32) where write = writeData -instance ZoomWrite (TimeStamp, (PCM Int32)) where+instance ZoomWrite (SampleOffset, (PCM Int32)) where write = writeDataVBR instance ZoomWritable (PCM Int32) where data SummaryWork (PCM Int32) = SummaryWorkPCMInt32- { swPCMInt32Time :: {-# UNPACK #-}!TimeStamp+ { swPCMInt32Time :: {-# UNPACK #-}!SampleOffset , swPCMInt32Last :: {-# UNPACK #-}!Int32 , swPCMInt32Min :: {-# UNPACK #-}!Int32 , swPCMInt32Max :: {-# UNPACK #-}!Int32@@ -377,7 +392,7 @@ pcmAvg = summaryInt32Avg pcmRMS = summaryInt32RMS - pcmWorkTime = swPCMInt32Time+ pcmWorkSO = swPCMInt32Time pcmWorkLast = swPCMInt32Last pcmWorkMin = swPCMInt32Min pcmWorkMax = swPCMInt32Max@@ -387,11 +402,13 @@ pcmMkSummary = SummaryPCMInt32 pcmMkSummaryWork = SummaryWorkPCMInt32 +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Int32) -> Builder #-}-{-# SPECIALIZE initSummaryPCMBounded :: TimeStamp -> SummaryWork (PCM Int32) #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Int32) -> SummaryData (PCM Int32) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Int32) -> TimeStampDiff -> SummaryData (PCM Int32) -> SummaryData (PCM Int32) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Int32 -> SummaryWork (PCM Int32) -> SummaryWork (PCM Int32) #-}+{-# SPECIALIZE initSummaryPCMBounded :: SampleOffset -> SummaryWork (PCM Int32) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Int32) -> SummaryData (PCM Int32) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Int32) -> SampleOffsetDiff -> SummaryData (PCM Int32) -> SummaryData (PCM Int32) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Int32 -> SummaryWork (PCM Int32) -> SummaryWork (PCM Int32) #-}+#endif ---------------------------------------------------------------------- -- Int64@@ -414,17 +431,19 @@ deltaDecodeRaw = deltaDecodePCM +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int64)) #-}+#endif instance ZoomWrite (PCM Int64) where write = writeData -instance ZoomWrite (TimeStamp, (PCM Int64)) where+instance ZoomWrite (SampleOffset, (PCM Int64)) where write = writeDataVBR instance ZoomWritable (PCM Int64) where data SummaryWork (PCM Int64) = SummaryWorkPCMInt64- { swPCMInt64Time :: {-# UNPACK #-}!TimeStamp+ { swPCMInt64Time :: {-# UNPACK #-}!SampleOffset , swPCMInt64Last :: {-# UNPACK #-}!Int64 , swPCMInt64Min :: {-# UNPACK #-}!Int64 , swPCMInt64Max :: {-# UNPACK #-}!Int64@@ -449,7 +468,7 @@ pcmAvg = summaryInt64Avg pcmRMS = summaryInt64RMS - pcmWorkTime = swPCMInt64Time+ pcmWorkSO = swPCMInt64Time pcmWorkLast = swPCMInt64Last pcmWorkMin = swPCMInt64Min pcmWorkMax = swPCMInt64Max@@ -459,11 +478,13 @@ pcmMkSummary = SummaryPCMInt64 pcmMkSummaryWork = SummaryWorkPCMInt64 +#if __GLASGOW_HASKELL__ >= 702 {-# SPECIALIZE fromSummaryPCM :: SummaryData (PCM Int64) -> Builder #-}-{-# SPECIALIZE initSummaryPCMBounded :: TimeStamp -> SummaryWork (PCM Int64) #-}-{-# SPECIALIZE mkSummaryPCM :: TimeStampDiff -> SummaryWork (PCM Int64) -> SummaryData (PCM Int64) #-}-{-# SPECIALIZE appendSummaryPCM :: TimeStampDiff -> SummaryData (PCM Int64) -> TimeStampDiff -> SummaryData (PCM Int64) -> SummaryData (PCM Int64) #-}-{-# SPECIALIZE updateSummaryPCM :: TimeStamp -> PCM Int64 -> SummaryWork (PCM Int64) -> SummaryWork (PCM Int64) #-}+{-# SPECIALIZE initSummaryPCMBounded :: SampleOffset -> SummaryWork (PCM Int64) #-}+{-# SPECIALIZE mkSummaryPCM :: SampleOffsetDiff -> SummaryWork (PCM Int64) -> SummaryData (PCM Int64) #-}+{-# SPECIALIZE appendSummaryPCM :: SampleOffsetDiff -> SummaryData (PCM Int64) -> SampleOffsetDiff -> SummaryData (PCM Int64) -> SummaryData (PCM Int64) #-}+{-# SPECIALIZE updateSummaryPCM :: SampleOffset -> PCM Int64 -> SummaryWork (PCM Int64) -> SummaryWork (PCM Int64) #-}+#endif ----------------------------------------------------------------------
Data/ZoomCache/PCM/Internal.hs view
@@ -42,24 +42,24 @@ {-# INLINABLE fromSummaryPCM #-} initSummaryPCMBounded :: (Bounded a, ZoomPCM a)- => TimeStamp -> SummaryWork (PCM a)+ => SampleOffset -> SummaryWork (PCM a) initSummaryPCMBounded entry = pcmMkSummaryWork entry 0 maxBound minBound 0.0 0.0 {-# INLINEABLE initSummaryPCMBounded #-} mkSummaryPCM :: ZoomPCM a- => TimeStampDiff -> SummaryWork (PCM a)+ => SampleOffsetDiff -> SummaryWork (PCM a) -> SummaryData (PCM a)-mkSummaryPCM (TSDiff dur) sw =+mkSummaryPCM (SODiff dur) sw = pcmMkSummary (pcmWorkMin sw) (pcmWorkMax sw) (pcmWorkSum sw / fromIntegral dur) (sqrt $ (pcmWorkSumSq sw) / fromIntegral dur) {-# INLINEABLE mkSummaryPCM #-} appendSummaryPCM :: ZoomPCM a- => TimeStampDiff -> SummaryData (PCM a)- -> TimeStampDiff -> SummaryData (PCM a)+ => SampleOffsetDiff -> SummaryData (PCM a)+ -> SampleOffsetDiff -> SummaryData (PCM a) -> SummaryData (PCM a)-appendSummaryPCM (TSDiff dur1) s1 (TSDiff dur2) s2 = pcmMkSummary+appendSummaryPCM (SODiff dur1) s1 (SODiff dur2) s2 = pcmMkSummary (min (pcmMin s1) (pcmMin s2)) (max (pcmMax s1) (pcmMax s2)) (((pcmAvg s1 * fromIntegral dur1) + (pcmAvg s2 * fromIntegral dur2)) / fromIntegral durSum)@@ -71,7 +71,7 @@ {-# INLINEABLE appendSummaryPCM #-} updateSummaryPCM :: ZoomPCM a- => TimeStamp -> PCM a+ => SampleOffset -> PCM a -> SummaryWork (PCM a) -> SummaryWork (PCM a) updateSummaryPCM t (PCM d) sw =@@ -81,7 +81,7 @@ ((pcmWorkSum sw) + realToFrac (d * dur)) ((pcmWorkSumSq sw) + realToFrac (d*d * dur)) where- !dur = fromIntegral $ (unTS t) - (unTS (pcmWorkTime sw))+ !dur = fromIntegral $ (unSO t) - (unSO (pcmWorkSO sw)) {-# INLINEABLE updateSummaryPCM #-} deltaDecodePCM :: ZoomPCM a => [PCM a] -> [PCM a]
Data/ZoomCache/PCM/Types.hs view
@@ -31,14 +31,14 @@ pcmAvg :: SummaryData (PCM a) -> Double pcmRMS :: SummaryData (PCM a) -> Double - pcmWorkTime :: SummaryWork (PCM a) -> TimeStamp- pcmWorkLast :: SummaryWork (PCM a) -> a- pcmWorkMin :: SummaryWork (PCM a) -> a- pcmWorkMax :: SummaryWork (PCM a) -> a- pcmWorkSum :: SummaryWork (PCM a) -> Double+ pcmWorkSO :: SummaryWork (PCM a) -> SampleOffset+ pcmWorkLast :: SummaryWork (PCM a) -> a+ pcmWorkMin :: SummaryWork (PCM a) -> a+ pcmWorkMax :: SummaryWork (PCM a) -> a+ pcmWorkSum :: SummaryWork (PCM a) -> Double pcmWorkSumSq :: SummaryWork (PCM a) -> Double pcmMkSummary :: a -> a -> Double -> Double -> SummaryData (PCM a)- pcmMkSummaryWork :: TimeStamp -> a -> a -> a -> Double -> Double+ pcmMkSummaryWork :: SampleOffset -> a -> a -> a -> Double -> Double -> SummaryWork (PCM a)
zoom-cache-pcm.cabal view
@@ -3,7 +3,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version: 0.2.0.1+Version: 0.2.1.0 Synopsis: Library for zoom-cache PCM audio codecs @@ -48,7 +48,7 @@ containers >= 0.2 && < 0.5, iteratee >= 0.8.6.0 && < 0.9, ListLike >= 1.0 && < 4,- zoom-cache >= 0.7.0.0 && < 0.9+ zoom-cache >= 0.7.0.0 && < 0.10 Exposed-modules: Data.ZoomCache.PCM