Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Macros | Typedefs | Functions | Variables
audio.c File Reference
#include <glib.h>
#include <stdint.h>
#include <math.h>
#include "audio.h"

Go to the source code of this file.

Macros

#define INTERLACE_LOOP(TYPE)
#define FROM_INT_LOOP(NAME, TYPE, SWAP, OFFSET, RANGE)
#define TO_INT_LOOP(NAME, TYPE, SWAP, OFFSET, RANGE)

Typedefs

typedef void(* FromFunc )(const void *in, float *out, int samples)
typedef void(* ToFunc )(const float *in, void *out, int samples)

Functions

EXPORT void audio_interlace (const void *const *in, int format, int channels, void *out, int frames)
static int16_t SWAP16 (int16_t i)
static int32_t SWAP32 (int32_t i)
EXPORT void audio_from_int (const void *in, int format, float *out, int samples)
EXPORT void audio_to_int (const float *in, void *out, int format, int samples)
EXPORT void audio_amplify (float *data, int channels, int frames, float *factors)
EXPORT void audio_soft_clip (float *data, int samples)

Variables

struct {
   int   format
   FromFunc   from
   ToFunc   to
convert_table []

Macro Definition Documentation

#define FROM_INT_LOOP (   NAME,
  TYPE,
  SWAP,
  OFFSET,
  RANGE 
)
Value:
static void NAME (const TYPE * in, float * out, int samples) \
{ \
const TYPE * end = in + samples; \
while (in < end) \
* out ++ = (TYPE) (SWAP (* in ++) - OFFSET) * (1.0 / (RANGE + 1.0)); \
}

Definition at line 73 of file audio.c.

#define INTERLACE_LOOP (   TYPE)
Value:
for (int c = 0; c < channels; c ++) \
{ \
const TYPE * get = in[c]; \
const TYPE * end = get + frames; \
TYPE * set = (TYPE *) out + c; \
while (get < end) \
{ \
* set = * get ++; \
set += channels; \
} \
}

Definition at line 26 of file audio.c.

Referenced by audio_interlace().

#define TO_INT_LOOP (   NAME,
  TYPE,
  SWAP,
  OFFSET,
  RANGE 
)
Value:
static void NAME (const float * in, TYPE * out, int samples) \
{ \
const float * end = in + samples; \
while (in < end) \
{ \
double f = (* in ++) * (RANGE + 1.0); \
* out ++ = SWAP (OFFSET + (TYPE) round (CLAMP (f, -RANGE - 1, RANGE))); \
} \
}

Definition at line 81 of file audio.c.


Typedef Documentation

typedef void(* FromFunc)(const void *in, float *out, int samples)

Definition at line 127 of file audio.c.

typedef void(* ToFunc)(const float *in, void *out, int samples)

Definition at line 128 of file audio.c.


Function Documentation

EXPORT void audio_amplify ( float *  data,
int  channels,
int  frames,
float *  factors 
)

Definition at line 200 of file audio.c.

Referenced by apply_replay_gain(), and apply_software_volume().

EXPORT void audio_from_int ( const void *  in,
int  format,
float *  out,
int  samples 
)

Definition at line 172 of file audio.c.

Referenced by write_output().

EXPORT void audio_interlace ( const void *const *  in,
int  format,
int  channels,
void *  out,
int  frames 
)

Definition at line 39 of file audio.c.

EXPORT void audio_soft_clip ( float *  data,
int  samples 
)

Definition at line 217 of file audio.c.

Referenced by write_output_raw().

EXPORT void audio_to_int ( const float *  in,
void *  out,
int  format,
int  samples 
)

Definition at line 186 of file audio.c.

Referenced by write_output_raw().

static int16_t SWAP16 ( int16_t  i)
inlinestatic

Definition at line 110 of file audio.c.

static int32_t SWAP32 ( int32_t  i)
inlinestatic

Definition at line 111 of file audio.c.


Variable Documentation

struct { ... } convert_table[]

Referenced by audio_from_int(), and audio_to_int().

int format
FromFunc from

Definition at line 133 of file audio.c.

ToFunc to

Definition at line 134 of file audio.c.