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"
#include "config.h"

Go to the source code of this file.

Macros

#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

static int8_t NOOP8 (int8_t i)
static int16_t NOOP16 (int16_t i)
static int32_t NOOP32 (int32_t i)
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 27 of file audio.c.

#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 35 of file audio.c.


Typedef Documentation

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

Definition at line 85 of file audio.c.

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

Definition at line 86 of file audio.c.


Function Documentation

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

Definition at line 158 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 130 of file audio.c.

Referenced by write_output().

EXPORT void audio_soft_clip ( float *  data,
int  samples 
)

Definition at line 175 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 144 of file audio.c.

Referenced by write_output_raw().

static int16_t NOOP16 ( int16_t  i)
inlinestatic

Definition at line 47 of file audio.c.

static int32_t NOOP32 ( int32_t  i)
inlinestatic

Definition at line 48 of file audio.c.

static int8_t NOOP8 ( int8_t  i)
inlinestatic

Definition at line 46 of file audio.c.

static int16_t SWAP16 ( int16_t  i)
inlinestatic

Definition at line 68 of file audio.c.

static int32_t SWAP32 ( int32_t  i)
inlinestatic

Definition at line 69 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 91 of file audio.c.

ToFunc to

Definition at line 92 of file audio.c.