{-# LANGUAGE ExistentialQuantification #-}moduleSound.Iteratee.Codecs(moduleSound.Iteratee.Codecs.Wave,getWriter,Codec(..),getCodec)whereimportSound.Iteratee.BaseimportSound.Iteratee.Codecs.WaveimportSound.Iteratee.Codecs.RawimportData.MutableIterimportqualifiedData.MutableIter.IOBufferasIB-- |Get a writer iteratee for a SupportedFileFormatgetWriter::SupportedFileFormat->FilePath->AudioFormat->MIteratee(IB.IOBufferrDouble)AudioMonad()getWriterWave=writeWavegetWriterRaw=error"No writer defined for Raw format"-- |An existentially-wrapped codec. This exists in order to get an arbitrary-- codec (and associated information, such as bit depths)-- from a SupportedFileFormat.dataCodec=foralla.WritableAudioa=>CodecainstanceWritableAudioCodecwhereemptyState(Codeca)=emptyStateainitState(Codeca)=initStateasupportedBitDepths(Codeca)=supportedBitDepthsafileType(Codeca)=fileTypeagetCodec::SupportedFileFormat->CodecgetCodecWave=CodecWaveCodecgetCodecRaw=CodecRawCodec