• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

src/audio/src/util/alutInternal.h

Go to the documentation of this file.
00001 /*
00002  * This file should be #included as the first header in all *.c files.
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 /* see: http://en.wikipedia.org/wiki/Au_file_format, G.72x are missing */
00050 enum AUEncoding
00051 {
00052   AU_ULAW_8 = 1,                /* 8-bit ISDN u-law */
00053   AU_PCM_8 = 2,                 /* 8-bit linear PCM (signed) */
00054   AU_PCM_16 = 3,                /* 16-bit linear PCM (signed, big-endian) */
00055   AU_PCM_24 = 4,                /* 24-bit linear PCM */
00056   AU_PCM_32 = 5,                /* 32-bit linear PCM */
00057   AU_FLOAT_32 = 6,              /* 32-bit IEEE floating point */
00058   AU_FLOAT_64 = 7,              /* 64-bit IEEE floating point */
00059   AU_ALAW_8 = 27                /* 8-bit ISDN a-law */
00060 };
00061 
00062 /* in alutCodec.c */
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 /* in alutError.c */
00072 void _alutSetError (ALenum err);
00073 
00074 /* in alutInit.c */
00075 ALboolean _alutSanityCheck (void);
00076 
00077 /* in alutInputStream.c */
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 /* in alutLoader.c */
00092 ALuint _alutCreateBufferFromInputStream (InputStream *stream);
00093 void *_alutLoadMemoryFromInputStream (InputStream *stream, ALenum *format, ALsizei *size, ALfloat *frequency);
00094 
00095 /* in alutOutputStream.c */
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 /* in alutUtil.c */
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 /* in alutWaveform.c */
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 

Generated on Fri Jun 18 2010 17:48:39 for Cannonball by  doxygen 1.7.0