{-# LINE 1 "src/Bindings/Codec2.hsc" #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LINE 2 "src/Bindings/Codec2.hsc" #-}

{-# LINE 3 "src/Bindings/Codec2.hsc" #-}

{-# LINE 4 "src/Bindings/Codec2.hsc" #-}
module Bindings.Codec2 where
import Foreign.Ptr
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 7 "src/Bindings/Codec2.hsc" #-}

{- struct CODEC2; -}
data C'CODEC2 = C'CODEC2

{-# LINE 10 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_create" c'codec2_create
  :: CInt -> IO (Ptr C'CODEC2)
foreign import ccall "&codec2_create" p'codec2_create
  :: FunPtr (CInt -> IO (Ptr C'CODEC2))

{-# LINE 11 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_destroy" c'codec2_destroy
  :: Ptr C'CODEC2 -> IO ()
foreign import ccall "&codec2_destroy" p'codec2_destroy
  :: FunPtr (Ptr C'CODEC2 -> IO ())

{-# LINE 12 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_encode" c'codec2_encode
  :: Ptr C'CODEC2 -> Ptr CUChar -> Ptr CShort -> IO ()
foreign import ccall "&codec2_encode" p'codec2_encode
  :: FunPtr (Ptr C'CODEC2 -> Ptr CUChar -> Ptr CShort -> IO ())

{-# LINE 13 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_decode" c'codec2_decode
  :: Ptr C'CODEC2 -> Ptr CShort -> Ptr CUChar -> IO ()
foreign import ccall "&codec2_decode" p'codec2_decode
  :: FunPtr (Ptr C'CODEC2 -> Ptr CShort -> Ptr CUChar -> IO ())

{-# LINE 14 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_samples_per_frame" c'codec2_samples_per_frame
  :: Ptr C'CODEC2 -> IO CInt
foreign import ccall "&codec2_samples_per_frame" p'codec2_samples_per_frame
  :: FunPtr (Ptr C'CODEC2 -> IO CInt)

{-# LINE 15 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_bits_per_frame" c'codec2_bits_per_frame
  :: Ptr C'CODEC2 -> IO CInt
foreign import ccall "&codec2_bits_per_frame" p'codec2_bits_per_frame
  :: FunPtr (Ptr C'CODEC2 -> IO CInt)

{-# LINE 16 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_set_lpc_post_filter" c'codec2_set_lpc_post_filter
  :: Ptr C'CODEC2 -> CInt -> CInt -> CFloat -> CFloat -> IO ()
foreign import ccall "&codec2_set_lpc_post_filter" p'codec2_set_lpc_post_filter
  :: FunPtr (Ptr C'CODEC2 -> CInt -> CInt -> CFloat -> CFloat -> IO ())

{-# LINE 17 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_get_spare_bit_index" c'codec2_get_spare_bit_index
  :: Ptr C'CODEC2 -> IO CInt
foreign import ccall "&codec2_get_spare_bit_index" p'codec2_get_spare_bit_index
  :: FunPtr (Ptr C'CODEC2 -> IO CInt)

{-# LINE 18 "src/Bindings/Codec2.hsc" #-}
foreign import ccall "codec2_rebuild_spare_bit" c'codec2_rebuild_spare_bit
  :: Ptr C'CODEC2 -> Ptr CInt -> IO CInt
foreign import ccall "&codec2_rebuild_spare_bit" p'codec2_rebuild_spare_bit
  :: FunPtr (Ptr C'CODEC2 -> Ptr CInt -> IO CInt)

{-# LINE 19 "src/Bindings/Codec2.hsc" #-}