Go to the documentation of this file.00001
00002
00003
00004
00005 #pragma once
00006
00007 #if HAVE_CONFIG_H
00008 #include "config.h"
00009 #endif
00010
00011 #include <stdlib.h>
00012
00013 #if HAVE_STDINT_H
00014 #include <stdint.h>
00015 #elif _MSC_VER < 1300 || WIN32
00016 typedef char int8_t;
00017 typedef unsigned char uint8_t;
00018 typedef short int16_t;
00019 typedef unsigned short uint16_t;
00020 typedef int int32_t;
00021 typedef unsigned int uint32_t;
00022 #elif HAVE_BASETSD_H
00023 #include <basetsd.h>
00024 typedef INT8 int8_t;
00025 typedef UINT8 uint8_t;
00026 typedef INT16 int16_t;
00027 typedef UINT16 uint16_t;
00028 typedef INT32 int32_t;
00029 typedef UINT32 uint32_t;
00030 #else
00031 #error Do not know sized types on this platform
00032 #endif
00033
00034 typedef int16_t Int16BigEndian;
00035 typedef uint16_t UInt16LittleEndian;
00036 typedef int32_t Int32BigEndian;
00037 typedef uint32_t UInt32LittleEndian;
00038
00039 #if HAVE___ATTRIBUTE__
00040 #define UNUSED(x) x __attribute__((unused))
00041 #else
00042 #define UNUSED(x) x
00043 #endif
00044
00045 #include "alut.h"
00046
00047 #define AU_HEADER_SIZE 24
00048
00049
00050 enum AUEncoding
00051 {
00052 AU_ULAW_8 = 1,
00053 AU_PCM_8 = 2,
00054 AU_PCM_16 = 3,
00055 AU_PCM_24 = 4,
00056 AU_PCM_32 = 5,
00057 AU_FLOAT_32 = 6,
00058 AU_FLOAT_64 = 7,
00059 AU_ALAW_8 = 27
00060 };
00061
00062
00063 typedef ALvoid *Codec (ALvoid *data, size_t length, ALint numChannels,
00064 ALint bitsPerSample, ALfloat sampleFrequency);
00065 Codec _alutCodecLinear;
00066 Codec _alutCodecPCM8s;
00067 Codec _alutCodecPCM16;
00068 Codec _alutCodecULaw;
00069 Codec _alutCodecALaw;
00070
00071
00072 void _alutSetError (ALenum err);
00073
00074
00075 ALboolean _alutSanityCheck (void);
00076
00077
00078 typedef struct InputStream_struct InputStream;
00079 InputStream *_alutInputStreamConstructFromFile (const rchar *fileName);
00080 InputStream *_alutInputStreamConstructFromMemory (const ALvoid *data, size_t length);
00081 const rchar *_alutInputStreamGetFileName (const InputStream *stream);
00082 size_t _alutInputStreamGetRemainingLength (const InputStream *stream);
00083 ALboolean _alutInputStreamDestroy (InputStream *stream);
00084 ALboolean _alutInputStreamEOF (InputStream *stream);
00085 ALvoid *_alutInputStreamRead (InputStream *stream, size_t length);
00086 ALboolean _alutInputStreamSkip (InputStream *stream, size_t numBytesToSkip);
00087 ALboolean _alutInputStreamReadUInt16LE (InputStream *stream, UInt16LittleEndian *value);
00088 ALboolean _alutInputStreamReadInt32BE (InputStream *stream, Int32BigEndian *value);
00089 ALboolean _alutInputStreamReadUInt32LE (InputStream *stream, UInt32LittleEndian *value);
00090
00091
00092 ALuint _alutCreateBufferFromInputStream (InputStream *stream);
00093 void *_alutLoadMemoryFromInputStream (InputStream *stream, ALenum *format, ALsizei *size, ALfloat *frequency);
00094
00095
00096 typedef struct OutputStream_struct OutputStream;
00097 OutputStream *_alutOutputStreamConstruct (size_t maximumLength);
00098 ALboolean _alutOutputStreamDestroy (OutputStream *stream);
00099 void *_alutOutputStreamGetData (OutputStream *stream);
00100 size_t _alutOutputStreamGetLength (OutputStream *stream);
00101 ALboolean _alutOutputStreamWriteInt16BE (OutputStream *stream, Int16BigEndian value);
00102 ALboolean _alutOutputStreamWriteInt32BE (OutputStream *stream, Int32BigEndian value);
00103
00104
00105 ALvoid *_alutMalloc (size_t size);
00106 ALboolean _alutFormatConstruct (ALint numChannels, ALint bitsPerSample, ALenum *format);
00107 ALboolean _alutFormatGetNumChannels (ALenum format, ALint *numChannels);
00108 ALboolean _alutFormatGetBitsPerSample (ALenum format, ALint *bitsPerSample);
00109
00110
00111 typedef struct BufferData_struct BufferData;
00112 BufferData *_alutBufferDataConstruct (ALvoid *data, size_t length,
00113 ALint numChannels,
00114 ALint bitsPerSample,
00115 ALfloat sampleFrequency);
00116 ALboolean _alutBufferDataDestroy (BufferData *bufferData);
00117 void _alutBufferDataDetachData (BufferData *bufferData);
00118 ALvoid *_alutBufferDataGetData (const BufferData *bufferData);
00119 size_t _alutBufferDataGetLength (const BufferData *bufferData);
00120 ALfloat _alutBufferDataGetSampleFrequency (const BufferData *bufferData);
00121 ALboolean _alutGetFormat (const BufferData *bufferData, ALenum *format);
00122 ALuint _alutPassBufferData (BufferData *bufferData);
00123