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 OutputPlugin * cop
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 OutputPlugin * new_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 301 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 379 of file output.c.

void output_close_audio ( void  )

Definition at line 477 of file output.c.

Referenced by playback_finish().

void output_drain ( void  )

Definition at line 492 of file output.c.

Referenced by playback_stop().

int output_get_raw_time ( void  )

Definition at line 465 of file output.c.

Referenced by send_audio().

int output_get_time ( void  )

Definition at line 446 of file output.c.

Referenced by drct_get_time().

void output_get_volume ( int left,
int right 
)

Definition at line 540 of file output.c.

Referenced by drct_get_volume().

bool_t output_is_open ( void  )

Definition at line 438 of file output.c.

Referenced by drct_seek().

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

Definition at line 310 of file output.c.

void output_pause ( bool_t  pause)

Definition at line 394 of file output.c.

PluginHandle* output_plugin_get_current ( void  )

Definition at line 593 of file output.c.

Referenced by output_do_about(), and output_do_config().

PluginHandle* output_plugin_probe ( void  )

Definition at line 586 of file output.c.

bool_t output_plugin_set_current ( PluginHandle plugin)

Definition at line 598 of file output.c.

void output_reset ( int  type)

Definition at line 505 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 340 of file output.c.

void output_set_time ( int  time)

Definition at line 421 of file output.c.

void output_set_volume ( int  left,
int  right 
)

Definition at line 557 of file output.c.

Referenced by drct_set_volume().

void output_write_audio ( void *  data,
int  size 
)

Definition at line 359 of file output.c.

int output_written_time ( void  )

Definition at line 409 of file output.c.

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

Definition at line 572 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
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