module Sound.Frame where
import Data.Word (Word8, Word16, Word32, )
import Data.Int (Int8, Int16, Int32, )
import Foreign.Storable (sizeOf, )
class C y where
numberOfChannels :: y -> Int
sizeOfElement :: y -> Int
instance C Word8 where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Int8 where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Word16 where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Int16 where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Word32 where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Int32 where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Float where
numberOfChannels _ = 1
sizeOfElement = sizeOf
instance C Double where
numberOfChannels _ = 1
sizeOfElement = sizeOf
withSignal :: (y -> a) -> (sig y -> a)
withSignal f _ = f undefined