00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AUDACIOUS_AUDIO_H
00023 #define AUDACIOUS_AUDIO_H
00024
00025 #include <glib.h>
00026
00027
00028 enum {
00029 FMT_FLOAT,
00030 FMT_S8, FMT_U8,
00031 FMT_S16_LE, FMT_S16_BE, FMT_U16_LE, FMT_U16_BE,
00032 FMT_S24_LE, FMT_S24_BE, FMT_U24_LE, FMT_U24_BE,
00033 FMT_S32_LE, FMT_S32_BE, FMT_U32_LE, FMT_U32_BE};
00034
00035 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
00036 #define FMT_S16_NE FMT_S16_LE
00037 #define FMT_U16_NE FMT_U16_LE
00038 #define FMT_S24_NE FMT_S24_LE
00039 #define FMT_U24_NE FMT_U24_LE
00040 #define FMT_S32_NE FMT_S32_LE
00041 #define FMT_U32_NE FMT_U32_LE
00042 #else
00043 #define FMT_S16_NE FMT_S16_BE
00044 #define FMT_U16_NE FMT_U16_BE
00045 #define FMT_S24_NE FMT_S24_BE
00046 #define FMT_U24_NE FMT_U24_BE
00047 #define FMT_S32_NE FMT_S32_BE
00048 #define FMT_U32_NE FMT_U32_BE
00049 #endif
00050
00051 #define FMT_SIZEOF(f) \
00052 (f == FMT_FLOAT ? sizeof (gfloat) : f <= FMT_U8 ? 1 : f <= FMT_U16_BE ? 2 : 4)
00053
00054 void audio_from_int (void * in, gint format, gfloat * out, gint samples);
00055 void audio_to_int (gfloat * in, void * out, gint format, gint samples);
00056 void audio_amplify (gfloat * data, gint channels, gint frames, gfloat * factors);
00057
00058 #endif