Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Macros | Functions | Variables
output.c File Reference
#include <math.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <libaudcore/hook.h>
#include "debug.h"
#include "effect.h"
#include "equalizer.h"
#include "misc.h"
#include "output.h"
#include "plugin.h"
#include "plugins.h"
#include "vis_runner.h"

Go to the source code of this file.

Macros

#define SW_VOLUME_RANGE   40 /* decibels */
 
#define LOCK_MAJOR   pthread_mutex_lock (& mutex_major)
 
#define UNLOCK_MAJOR   pthread_mutex_unlock (& mutex_major)
 
#define LOCK_MINOR   pthread_mutex_lock (& mutex_minor)
 
#define UNLOCK_MINOR   pthread_mutex_unlock (& mutex_minor)
 
#define LOCK_ALL   do { LOCK_MAJOR; LOCK_MINOR; } while (0)
 
#define UNLOCK_ALL   do { UNLOCK_MINOR; UNLOCK_MAJOR; } while (0)
 

Functions

static int FR2MS (int64_t f, int r)
 
static int get_format (void)
 
static void cleanup_output (void)
 
static void apply_pause (void)
 
static void setup_output (void)
 
static void flush_output (void)
 
static void apply_replay_gain (float *data, int samples)
 
static void apply_software_volume (float *data, int channels, int samples)
 
static void write_output_raw (void *data, int samples)
 
static void write_output (void *data, int size)
 
static void finish_effects (void)
 
bool_t output_open_audio (int format, int rate, int channels)
 
void output_set_replaygain_info (const ReplayGainInfo *info)
 
void output_write_audio (void *data, int size)
 
void output_abort_write (void)
 
void output_pause (bool_t pause)
 
int output_written_time (void)
 
void output_set_time (int time)
 
bool_t output_is_open (void)
 
int output_get_time (void)
 
int output_get_raw_time (void)
 
void output_close_audio (void)
 
void output_drain (void)
 
void output_reset (int type)
 
void output_get_volume (int *left, int *right)
 
void output_set_volume (int left, int right)
 
static bool_t probe_cb (PluginHandle *p, PluginHandle **pp)
 
PluginHandleoutput_plugin_probe (void)
 
PluginHandleoutput_plugin_get_current (void)
 
bool_t output_plugin_set_current (PluginHandle *plugin)
 

Variables

static pthread_mutex_t mutex_major = PTHREAD_MUTEX_INITIALIZER
 
static pthread_mutex_t mutex_minor = PTHREAD_MUTEX_INITIALIZER
 
static bool_t s_input
 
static bool_t s_output
 
static bool_t s_gain
 
static bool_t s_paused
 
static bool_t s_aborted
 
static bool_t s_resetting
 
static OutputPlugincop
 
static int seek_time
 
static int in_format
 
static int in_channels
 
static int in_rate
 
static int out_format
 
static int out_channels
 
static int out_rate
 
static int64_t in_frames
 
static int64_t out_frames
 
static ReplayGainInfo gain_info
 
static bool_t change_op
 
static OutputPluginnew_op
 

Macro Definition Documentation

#define LOCK_ALL   do { LOCK_MAJOR; LOCK_MINOR; } while (0)
#define LOCK_MAJOR   pthread_mutex_lock (& mutex_major)

Definition at line 43 of file output.c.

#define LOCK_MINOR   pthread_mutex_lock (& mutex_minor)
#define SW_VOLUME_RANGE   40 /* decibels */

Definition at line 38 of file output.c.

Referenced by apply_software_volume().

#define UNLOCK_ALL   do { UNLOCK_MINOR; UNLOCK_MAJOR; } while (0)
#define UNLOCK_MAJOR   pthread_mutex_unlock (& mutex_major)

Definition at line 44 of file output.c.

#define UNLOCK_MINOR   pthread_mutex_unlock (& mutex_minor)

Function Documentation

static void apply_pause ( void  )
static

Definition at line 105 of file output.c.

Referenced by output_open_audio(), output_pause(), and setup_output().

static void apply_replay_gain ( float *  data,
int  samples 
)
static

Definition at line 156 of file output.c.

Referenced by write_output().

static void apply_software_volume ( float *  data,
int  channels,
int  samples 
)
static

Definition at line 188 of file output.c.

Referenced by write_output_raw().

static void cleanup_output ( void  )
static

Definition at line 86 of file output.c.

Referenced by output_drain(), output_reset(), and setup_output().

static void finish_effects ( void  )
static

Definition at line 304 of file output.c.

Referenced by output_close_audio(), and output_drain().

static void flush_output ( void  )
static

Definition at line 144 of file output.c.

Referenced by output_abort_write(), output_open_audio(), and output_reset().

static int FR2MS ( int64_t  f,
int  r 
)
inlinestatic

Definition at line 71 of file output.c.

Referenced by output_get_time(), output_written_time(), and write_output_raw().

static int get_format ( void  )
inlinestatic

Definition at line 74 of file output.c.

Referenced by setup_output().

void output_abort_write ( void  )

Definition at line 381 of file output.c.

void output_close_audio ( void  )

Definition at line 479 of file output.c.

Referenced by playback_finish().

void output_drain ( void  )

Definition at line 494 of file output.c.

Referenced by playback_stop().

int output_get_raw_time ( void  )

Definition at line 467 of file output.c.

Referenced by send_audio().

int output_get_time ( void  )

Definition at line 448 of file output.c.

Referenced by drct_get_time().

void output_get_volume ( int left,
int right 
)

Definition at line 542 of file output.c.

Referenced by drct_get_volume().

bool_t output_is_open ( void  )

Definition at line 440 of file output.c.

Referenced by drct_seek().

bool_t output_open_audio ( int  format,
int  rate,
int  channels 
)

Definition at line 313 of file output.c.

void output_pause ( bool_t  pause)

Definition at line 396 of file output.c.

PluginHandle* output_plugin_get_current ( void  )

Definition at line 595 of file output.c.

Referenced by output_do_about(), and output_do_config().

PluginHandle* output_plugin_probe ( void  )

Definition at line 588 of file output.c.

bool_t output_plugin_set_current ( PluginHandle plugin)

Definition at line 600 of file output.c.

void output_reset ( int  type)

Definition at line 507 of file output.c.

Referenced by effect_enable(), output_bit_depth_changed(), and output_plugin_set_current().

void output_set_replaygain_info ( const ReplayGainInfo info)

Definition at line 343 of file output.c.

void output_set_time ( int  time)

Definition at line 423 of file output.c.

void output_set_volume ( int  left,
int  right 
)

Definition at line 559 of file output.c.

Referenced by drct_set_volume().

void output_write_audio ( void *  data,
int  size 
)

Definition at line 362 of file output.c.

int output_written_time ( void  )

Definition at line 411 of file output.c.

static bool_t probe_cb ( PluginHandle p,
PluginHandle **  pp 
)
static

Definition at line 574 of file output.c.

Referenced by output_plugin_probe().

static void setup_output ( void  )
static

Definition at line 114 of file output.c.

Referenced by output_open_audio(), and output_reset().

static void write_output ( void *  data,
int  size 
)
static

Definition at line 278 of file output.c.

Referenced by output_write_audio().

static void write_output_raw ( void *  data,
int  samples 
)
static

Definition at line 218 of file output.c.

Referenced by finish_effects(), and write_output().

Variable Documentation

bool_t change_op
static

Definition at line 68 of file output.c.

Referenced by output_plugin_set_current(), and output_reset().

OutputPlugin* cop
static

Definition at line 61 of file output.c.

ReplayGainInfo gain_info
static

Definition at line 66 of file output.c.

int in_channels
static

Definition at line 63 of file output.c.

Referenced by output_open_audio(), setup_output(), and write_output().

int in_format
static

Definition at line 63 of file output.c.

Referenced by output_open_audio(), and write_output().

int64_t in_frames
static
int in_rate
static

Definition at line 63 of file output.c.

Referenced by output_get_time(), output_open_audio(), output_written_time(), and setup_output().

pthread_mutex_t mutex_major = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 40 of file output.c.

pthread_mutex_t mutex_minor = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 41 of file output.c.

OutputPlugin* new_op
static

Definition at line 69 of file output.c.

Referenced by output_plugin_set_current(), and output_reset().

int out_channels
static

Definition at line 64 of file output.c.

Referenced by setup_output(), and write_output_raw().

int out_format
static

Definition at line 64 of file output.c.

Referenced by setup_output(), and write_output_raw().

int64_t out_frames
static

Definition at line 65 of file output.c.

Referenced by flush_output(), output_get_time(), setup_output(), and write_output_raw().

int out_rate
static

Definition at line 64 of file output.c.

Referenced by output_get_time(), setup_output(), and write_output_raw().

bool_t s_aborted
static
bool_t s_gain
static

Definition at line 56 of file output.c.

Referenced by apply_replay_gain(), output_open_audio(), and output_set_replaygain_info().

bool_t s_input
static
bool_t s_output
static
bool_t s_paused
static
bool_t s_resetting
static

Definition at line 59 of file output.c.

Referenced by output_close_audio(), output_reset(), output_write_audio(), and write_output_raw().

int seek_time
static