module Data.ZoomCache.PCM.Types (
PCM(..)
, ZoomPCM(..)
) where
import Blaze.ByteString.Builder
import Data.Typeable
import Data.ZoomCache.Codec
data PCM a = PCM { unPCM :: !a }
deriving (Typeable)
class (Ord a, Real a, ZoomReadable (PCM a), ZoomWritable (PCM a)) => ZoomPCM a where
pcmFromRaw :: a -> Builder
pcmMin :: SummaryData (PCM a) -> a
pcmMax :: SummaryData (PCM a) -> a
pcmAvg :: SummaryData (PCM a) -> Double
pcmRMS :: SummaryData (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 :: SampleOffset -> a -> a -> a -> Double -> Double
-> SummaryWork (PCM a)