packages feed

zoom-cache-pcm 0.1.1.0 → 0.2.0.0

raw patch · 5 files changed

+59/−24 lines, 5 filesdep ~zoom-cachePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: zoom-cache

API changes (from Hackage documentation)

+ Data.ZoomCache.PCM.Internal: deltaDecodePCM :: ZoomPCM a => [PCM a] -> [PCM a]
+ Data.ZoomCache.PCM.Internal: deltaEncodePCM :: ZoomPCM a => SummaryWork (PCM a) -> PCM a -> PCM a
+ Data.ZoomCache.PCM.Types: pcmWorkLast :: ZoomPCM a => SummaryWork (PCM a) -> a
- Data.ZoomCache.PCM.Internal: readSummaryPCM :: (Nullable s, ListLike s Word8, Functor m, Monad m, ZoomPCM a) => Iteratee s m (SummaryData (PCM a))
+ Data.ZoomCache.PCM.Internal: readSummaryPCM :: (Functor m, Monad m, ZoomPCM a) => Iteratee ByteString m (SummaryData (PCM a))
- Data.ZoomCache.PCM.Types: pcmMkSummaryWork :: ZoomPCM a => TimeStamp -> a -> a -> Double -> Double -> SummaryWork (PCM a)
+ Data.ZoomCache.PCM.Types: pcmMkSummaryWork :: ZoomPCM a => TimeStamp -> a -> a -> a -> Double -> Double -> SummaryWork (PCM a)

Files

Data/ZoomCache/PCM/IEEE754.hs view
@@ -73,7 +73,6 @@ import Control.Applicative ((<$>)) import Data.ByteString (ByteString) import Data.Iteratee (Iteratee)-import Data.Word import Text.Printf  import Data.ZoomCache.Codec@@ -99,7 +98,8 @@     prettyRaw         = prettyPacketPCMFloat     prettySummaryData = prettySummaryPCMFloat -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Float)) #-}+    deltaDecodeRaw    = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Float)) #-}  instance ZoomWrite (PCM Float) where@@ -111,6 +111,7 @@ instance ZoomWritable (PCM Float) where     data SummaryWork (PCM Float) = SummaryWorkPCMFloat         { swPCMFloatTime  :: {-# UNPACK #-}!TimeStamp+        , swPCMFloatLast  :: {-# UNPACK #-}!Float         , swPCMFloatMin   :: {-# UNPACK #-}!Float         , swPCMFloatMax   :: {-# UNPACK #-}!Float         , swPCMFloatSum   :: {-# UNPACK #-}!Double@@ -123,6 +124,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Float where     pcmFromRaw = fromFloat@@ -133,6 +135,7 @@     pcmRMS = summaryPCMFloatRMS      pcmWorkTime = swPCMFloatTime+    pcmWorkLast = swPCMFloatLast     pcmWorkMin = swPCMFloatMin     pcmWorkMax = swPCMFloatMax     pcmWorkSum = swPCMFloatSum@@ -165,7 +168,8 @@     prettyRaw         = prettyPacketPCMFloat     prettySummaryData = prettySummaryPCMFloat -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Double)) #-}+    deltaDecodeRaw    = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Double)) #-}  instance ZoomWrite (PCM Double) where@@ -177,6 +181,7 @@ instance ZoomWritable (PCM Double) where     data SummaryWork (PCM Double) = SummaryWorkPCMDouble         { swPCMDoubleTime  :: {-# UNPACK #-}!TimeStamp+        , swPCMDoubleLast  :: {-# UNPACK #-}!Double         , swPCMDoubleMin   :: {-# UNPACK #-}!Double         , swPCMDoubleMax   :: {-# UNPACK #-}!Double         , swPCMDoubleSum   :: {-# UNPACK #-}!Double@@ -189,6 +194,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Double where     pcmFromRaw = fromDouble@@ -199,6 +205,7 @@     pcmRMS = summaryPCMDoubleRMS      pcmWorkTime = swPCMDoubleTime+    pcmWorkLast = swPCMDoubleLast     pcmWorkMin = swPCMDoubleMin     pcmWorkMax = swPCMDoubleMax     pcmWorkSum = swPCMDoubleSum@@ -229,6 +236,7 @@                     => TimeStamp -> SummaryWork (PCM a) initSummaryPCMFloat entry = pcmMkSummaryWork     entry+    0.0     floatMax     (negate floatMax)     0.0
Data/ZoomCache/PCM/Int.hs view
@@ -99,7 +99,6 @@ import Data.ByteString (ByteString) import Data.Int import Data.Iteratee (Iteratee)-import Data.Word import Text.Printf  import Data.ZoomCache.Codec@@ -125,7 +124,8 @@     prettyRaw         = prettyPacketPCMInt     prettySummaryData = prettySummaryPCMInt -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int)) #-}+    deltaDecodeRaw = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int)) #-}  instance ZoomWrite (PCM Int) where@@ -137,6 +137,7 @@ instance ZoomWritable (PCM Int) where     data SummaryWork (PCM Int) = SummaryWorkPCMInt         { swPCMIntTime  :: {-# UNPACK #-}!TimeStamp+        , swPCMIntLast  :: {-# UNPACK #-}!Int         , swPCMIntMin   :: {-# UNPACK #-}!Int         , swPCMIntMax   :: {-# UNPACK #-}!Int         , swPCMIntSum   :: {-# UNPACK #-}!Double@@ -150,6 +151,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Int where     pcmFromRaw = fromIntegral32be@@ -160,6 +162,7 @@     pcmRMS = summaryIntRMS      pcmWorkTime = swPCMIntTime+    pcmWorkLast = swPCMIntLast     pcmWorkMin = swPCMIntMin     pcmWorkMax = swPCMIntMax     pcmWorkSum = swPCMIntSum@@ -193,7 +196,8 @@     prettyRaw         = prettyPacketPCMInt     prettySummaryData = prettySummaryPCMInt -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int8)) #-}+    deltaDecodeRaw = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int8)) #-}  instance ZoomWrite (PCM Int8) where@@ -205,6 +209,7 @@ instance ZoomWritable (PCM Int8) where     data SummaryWork (PCM Int8) = SummaryWorkPCMInt8         { swPCMInt8Time  :: {-# UNPACK #-}!TimeStamp+        , swPCMInt8Last  :: {-# UNPACK #-}!Int8         , swPCMInt8Min   :: {-# UNPACK #-}!Int8         , swPCMInt8Max   :: {-# UNPACK #-}!Int8         , swPCMInt8Sum   :: {-# UNPACK #-}!Double@@ -218,6 +223,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Int8 where     pcmFromRaw = fromInt8@@ -228,6 +234,7 @@     pcmRMS = summaryInt8RMS      pcmWorkTime = swPCMInt8Time+    pcmWorkLast = swPCMInt8Last     pcmWorkMin = swPCMInt8Min     pcmWorkMax = swPCMInt8Max     pcmWorkSum = swPCMInt8Sum@@ -261,7 +268,8 @@     prettyRaw         = prettyPacketPCMInt     prettySummaryData = prettySummaryPCMInt -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int16)) #-}+    deltaDecodeRaw = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int16)) #-}  instance ZoomWrite (PCM Int16) where@@ -273,6 +281,7 @@ instance ZoomWritable (PCM Int16) where     data SummaryWork (PCM Int16) = SummaryWorkPCMInt16         { swPCMInt16Time  :: {-# UNPACK #-}!TimeStamp+        , swPCMInt16Last  :: {-# UNPACK #-}!Int16         , swPCMInt16Min   :: {-# UNPACK #-}!Int16         , swPCMInt16Max   :: {-# UNPACK #-}!Int16         , swPCMInt16Sum   :: {-# UNPACK #-}!Double@@ -286,6 +295,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Int16 where     pcmFromRaw = fromInt16be@@ -296,6 +306,7 @@     pcmRMS = summaryInt16RMS      pcmWorkTime = swPCMInt16Time+    pcmWorkLast = swPCMInt16Last     pcmWorkMin = swPCMInt16Min     pcmWorkMax = swPCMInt16Max     pcmWorkSum = swPCMInt16Sum@@ -329,7 +340,8 @@     prettyRaw         = prettyPacketPCMInt     prettySummaryData = prettySummaryPCMInt -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int32)) #-}+    deltaDecodeRaw = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int32)) #-}  instance ZoomWrite (PCM Int32) where@@ -341,6 +353,7 @@ instance ZoomWritable (PCM Int32) where     data SummaryWork (PCM Int32) = SummaryWorkPCMInt32         { swPCMInt32Time  :: {-# UNPACK #-}!TimeStamp+        , swPCMInt32Last  :: {-# UNPACK #-}!Int32         , swPCMInt32Min   :: {-# UNPACK #-}!Int32         , swPCMInt32Max   :: {-# UNPACK #-}!Int32         , swPCMInt32Sum   :: {-# UNPACK #-}!Double@@ -354,6 +367,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Int32 where     pcmFromRaw = fromIntegral32be@@ -364,6 +378,7 @@     pcmRMS = summaryInt32RMS      pcmWorkTime = swPCMInt32Time+    pcmWorkLast = swPCMInt32Last     pcmWorkMin = swPCMInt32Min     pcmWorkMax = swPCMInt32Max     pcmWorkSum = swPCMInt32Sum@@ -397,7 +412,8 @@     prettyRaw         = prettyPacketPCMInt     prettySummaryData = prettySummaryPCMInt -{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int64)) #-}+    deltaDecodeRaw = deltaDecodePCM+ {-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int64)) #-}  instance ZoomWrite (PCM Int64) where@@ -409,6 +425,7 @@ instance ZoomWritable (PCM Int64) where     data SummaryWork (PCM Int64) = SummaryWorkPCMInt64         { swPCMInt64Time  :: {-# UNPACK #-}!TimeStamp+        , swPCMInt64Last  :: {-# UNPACK #-}!Int64         , swPCMInt64Min   :: {-# UNPACK #-}!Int64         , swPCMInt64Max   :: {-# UNPACK #-}!Int64         , swPCMInt64Sum   :: {-# UNPACK #-}!Double@@ -422,6 +439,7 @@     toSummaryData     = mkSummaryPCM     updateSummaryData = updateSummaryPCM     appendSummaryData = appendSummaryPCM+    deltaEncodeRaw    = deltaEncodePCM  instance ZoomPCM Int64 where     pcmFromRaw = fromInt64be@@ -432,6 +450,7 @@     pcmRMS = summaryInt64RMS      pcmWorkTime = swPCMInt64Time+    pcmWorkLast = swPCMInt64Last     pcmWorkMin = swPCMInt64Min     pcmWorkMax = swPCMInt64Max     pcmWorkSum = swPCMInt64Sum
Data/ZoomCache/PCM/Internal.hs view
@@ -10,26 +10,24 @@     , mkSummaryPCM     , appendSummaryPCM     , updateSummaryPCM+    , deltaDecodePCM+    , deltaEncodePCM ) where  import Blaze.ByteString.Builder import Control.Applicative ((<$>)) import Control.Monad (replicateM)+import Data.ByteString (ByteString) import Data.Iteratee (Iteratee)-import qualified Data.Iteratee as I-import qualified Data.ListLike as LL import Data.Monoid-import Data.Word  import Data.ZoomCache.Codec import Data.ZoomCache.PCM.Types  ---------------------------------------------------------------------- -readSummaryPCM :: (I.Nullable s, LL.ListLike s Word8,-                   Functor m, Monad m,-                   ZoomPCM a)-               => Iteratee s m (SummaryData (PCM a))+readSummaryPCM :: (Functor m, Monad m, ZoomPCM a)+               => Iteratee ByteString m (SummaryData (PCM a)) readSummaryPCM = do     [mn,mx] <- replicateM 2 (unPCM <$> readRaw)     [avg,rms] <- replicateM 2 readDouble64be@@ -45,7 +43,7 @@  initSummaryPCMBounded :: (Bounded a, ZoomPCM a)                       => TimeStamp -> SummaryWork (PCM a)-initSummaryPCMBounded entry = pcmMkSummaryWork entry maxBound minBound 0.0 0.0+initSummaryPCMBounded entry = pcmMkSummaryWork entry 0 maxBound minBound 0.0 0.0 {-# INLINEABLE initSummaryPCMBounded #-}  mkSummaryPCM :: ZoomPCM a@@ -77,10 +75,19 @@                  -> SummaryWork (PCM a)                  -> SummaryWork (PCM a) updateSummaryPCM t (PCM d) sw =-    pcmMkSummaryWork t (min (pcmWorkMin sw) d)-                       (max (pcmWorkMax sw) d)-                       ((pcmWorkSum sw) + realToFrac (d * dur))-                       ((pcmWorkSumSq sw) + realToFrac (d*d * dur))+    pcmMkSummaryWork t d+                     (min (pcmWorkMin sw) d)+                     (max (pcmWorkMax sw) d)+                     ((pcmWorkSum sw) + realToFrac (d * dur))+                     ((pcmWorkSumSq sw) + realToFrac (d*d * dur))     where         !dur = fromIntegral $ (unTS t) - (unTS (pcmWorkTime sw)) {-# INLINEABLE updateSummaryPCM #-}++deltaDecodePCM :: ZoomPCM a => [PCM a] -> [PCM a]+deltaDecodePCM = map PCM . deltaDecode . map unPCM+{-# INLINE deltaDecodePCM #-}++deltaEncodePCM :: ZoomPCM a => SummaryWork (PCM a) -> PCM a -> PCM a+deltaEncodePCM sw (PCM d) = PCM (d - pcmWorkLast sw)+{-# INLINE deltaEncodePCM #-}
Data/ZoomCache/PCM/Types.hs view
@@ -32,12 +32,13 @@     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     pcmWorkSumSq :: SummaryWork (PCM a) -> Double      pcmMkSummary :: a -> a -> Double -> Double -> SummaryData (PCM a)-    pcmMkSummaryWork :: TimeStamp -> a -> a -> Double -> Double+    pcmMkSummaryWork :: TimeStamp -> 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.1.1.0+Version:             0.2.0.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.6.0.0 && < 0.7+    zoom-cache                >= 0.7.0.0 && < 0.8    Exposed-modules:     Data.ZoomCache.PCM