alure-0.1: source/Sound/UI/ALURE/Internal.hs
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE EmptyDataDecls #-}
module Sound.UI.ALURE.Internal
(
c_alureGetVersion,
c_alureGetErrorString,
c_alureGetDeviceNames,
c_alureFreeDeviceNames,
c_alureInitDevice,
c_alureShutdownDevice,
c_alureGetSampleFormat,
c_alureSleep,
c_alureCreateBufferFromFile,
c_alureCreateBufferFromMemory,
c_alureBufferDataFromFile,
c_alureBufferDataFromMemory,
AlureStreamStruct,
c_alureCreateStreamFromFile,
c_alureCreateStreamFromMemory,
c_alureCreateStreamFromStaticMemory,
c_alureBufferDataFromStream,
c_alureRewindStream,
c_alureDestroyStream,
CALUInt,
CALChar,
CALBoolean,
CALEnum,
CALFloat,
CALUByte,
CALSizei,
CALCBoolean,
CALCSizei,
CALCChar,
CALCInt,
) where
import Foreign
import Foreign.C.Types
type CALUInt = CUInt
type CALChar = CChar
type CALBoolean = CChar
type CALEnum = CInt
type CALFloat = CFloat
type CALUByte = CChar
type CALSizei = CInt
type CALCBoolean = CChar
type CALCSizei = CInt
type CALCChar = CChar
type CALCInt = CInt
--------------------------------------------------------------------------------
-- Main and Miscellanious
foreign import ccall unsafe "alure.h alureGetVersion"
c_alureGetVersion :: Ptr CALUInt -> Ptr CALUInt -> IO ()
foreign import ccall unsafe "alure.h alureGetErrorString"
c_alureGetErrorString :: IO (Ptr CALChar)
foreign import ccall unsafe "alure.h alureGetDeviceNames"
c_alureGetDeviceNames :: CALCBoolean -> Ptr CALCSizei -> IO (Ptr (Ptr CALCChar))
foreign import ccall unsafe "alure.h alureFreeDeviceNames"
c_alureFreeDeviceNames :: Ptr (Ptr CALCChar) -> IO ()
foreign import ccall unsafe "alure.h alureInitDevice"
c_alureInitDevice :: Ptr CALCChar -> Ptr CALCInt -> IO CALBoolean
foreign import ccall unsafe "alure.h alureShutdownDevice"
c_alureShutdownDevice :: IO CALBoolean
foreign import ccall unsafe "alure.h alureGetSampleFormat"
c_alureGetSampleFormat :: CALUInt -> CALUInt -> CALUInt -> IO CALEnum
--foreign import ccall unsafe "alure.h alureInstallDecodeCallbacks"
-- c_alureInstallDecodeCallbacks :: CALInt ->
foreign import ccall unsafe "alure.h alureSleep"
c_alureSleep :: CALFloat -> CFloat -> IO CALBoolean
--------------------------------------------------------------------------------
-- File Loading
foreign import ccall unsafe "alure.h alureCreateBufferFromFile"
c_alureCreateBufferFromFile :: Ptr CALChar -> IO CALUInt
foreign import ccall unsafe "alure.h alureCreateBufferFromMemory"
c_alureCreateBufferFromMemory :: Ptr CALUByte -> CALSizei -> IO CALUInt
foreign import ccall unsafe "alure.h alureBufferDataFromFile"
c_alureBufferDataFromFile :: Ptr CALChar -> CALUInt -> IO CALBoolean
foreign import ccall unsafe "alure.h alureBufferDataFromMemory"
c_alureBufferDataFromMemory :: Ptr CALUByte -> CALSizei -> CALUInt -> IO CALBoolean
--------------------------------------------------------------------------------
-- Streaming
data AlureStreamStruct
foreign import ccall unsafe "alure.h alureCreateStreamFromFile"
c_alureCreateStreamFromFile :: Ptr CALChar -> CALSizei -> CALSizei -> Ptr CALUInt -> IO (Ptr AlureStreamStruct)
foreign import ccall unsafe "alure.h alureCreateStreamFromMemory"
c_alureCreateStreamFromMemory :: Ptr CALUByte -> CALUInt -> CALSizei -> CALSizei -> Ptr CALUInt -> IO (Ptr AlureStreamStruct)
foreign import ccall unsafe "alure.h alureCreateStreamFromStaticMemory"
c_alureCreateStreamFromStaticMemory :: Ptr CALUByte -> CALUInt -> CALSizei -> CALSizei -> CALUInt -> IO (Ptr AlureStreamStruct)
--foreign import ccall unsafe "alure.h alureCreateStreamFromCallback"
-- c_alureCreateStreamFromCallback ::
foreign import ccall unsafe "alure.h alureBufferDataFromStream"
c_alureBufferDataFromStream :: Ptr AlureStreamStruct -> CALSizei -> CALUInt -> IO CALSizei
foreign import ccall unsafe "alure.h alureRewindStream"
c_alureRewindStream :: Ptr AlureStreamStruct -> IO CALBoolean
foreign import ccall unsafe "alure.h alureDestroyStream"
c_alureDestroyStream :: Ptr AlureStreamStruct -> CALSizei -> Ptr CALUInt -> CALBoolean