output.c File Reference

#include <glib.h>
#include <math.h>
#include <pthread.h>
#include <string.h>
#include "debug.h"
#include "effect.h"
#include "equalizer.h"
#include "misc.h"
#include "output.h"
#include "playback.h"
#include "plugins.h"
#include "vis_runner.h"

Go to the source code of this file.

Defines

#define SW_VOLUME_RANGE   40
#define LOCK   do {pthread_mutex_lock (& mutex); locked = TRUE;} while (0)
#define UNLOCK   do {locked = FALSE; pthread_mutex_unlock (& mutex);} while (0)
#define LOCKED   g_return_if_fail (locked)
#define LOCKED_RET(a)   g_return_val_if_fail (locked, a)
#define LOCK_VIS   do {vis_runner_lock (); LOCK;} while (0)
#define UNLOCK_VIS   do {UNLOCK; vis_runner_unlock ();} while (0)
#define LOCKED_VIS   g_return_if_fail (locked && vis_runner_locked ())
#define LOCKED_VIS_RET(a)   g_return_val_if_fail (locked && vis_runner_locked (), a)

Functions

void output_get_volume (int *l, int *r)
void output_set_volume (int l, int r)
static void reset_time (void)
static void drain (void)
static void real_close (void)
static bool_t open_audio (int format, int rate, int channels)
static bool_t output_open_audio (int format, int rate, int channels)
static void set_gain (ReplayGainInfo *info)
static void output_set_replaygain_info (ReplayGainInfo *info)
static void apply_replay_gain (float *data, int samples)
static void apply_software_volume (float *data, int channels, int frames)
static void write_processed (void *data, int samples)
static void write_audio (void *data, int size)
static void output_write_audio (void *data, int size)
static void close_audio (void)
static void output_close_audio (void)
static void do_pause (bool_t p)
static void output_pause (bool_t p)
static void flush (int time)
static void output_flush (int time)
static int written_time (void)
static int output_written_time (void)
static void write_buffers (void)
static void set_leave_open (void)
static bool_t output_buffer_playing (void)
static void abort_write (void)
static void output_abort_write (void)
static int output_time (void)
int get_output_time (void)
int get_raw_output_time (void)
void output_drain (void)
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 OutputPlugin * cop = NULL
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER
static bool_t locked = FALSE
static bool_t opened = FALSE
static bool_t leave_open = FALSE
static bool_t waiting
static bool_t aborted
static bool_t paused
static int decoder_format
static int decoder_channels
static int decoder_rate
static int effect_channels
static int effect_rate
static int output_format
static int output_channels
static int output_rate
static int64_t frames_written
static bool_t have_replay_gain
static ReplayGainInfo replay_gain_info
struct OutputAPI output_api

Define Documentation

#define LOCK   do {pthread_mutex_lock (& mutex); locked = TRUE;} while (0)
#define LOCK_VIS   do {vis_runner_lock (); LOCK;} while (0)
#define LOCKED   g_return_if_fail (locked)
#define LOCKED_RET ( a   )     g_return_val_if_fail (locked, a)

Definition at line 73 of file output.c.

Referenced by output_time(), and written_time().

#define LOCKED_VIS   g_return_if_fail (locked && vis_runner_locked ())

Definition at line 76 of file output.c.

Referenced by do_pause(), flush(), real_close(), reset_time(), and write_processed().

#define LOCKED_VIS_RET ( a   )     g_return_val_if_fail (locked && vis_runner_locked (), a)

Definition at line 77 of file output.c.

Referenced by open_audio().

#define SW_VOLUME_RANGE   40

Definition at line 36 of file output.c.

Referenced by apply_software_volume().

#define UNLOCK   do {locked = FALSE; pthread_mutex_unlock (& mutex);} while (0)
#define UNLOCK_VIS   do {UNLOCK; vis_runner_unlock ();} while (0)

Function Documentation

static void abort_write ( void   )  [static]

Definition at line 470 of file output.c.

Referenced by output_abort_write().

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

Definition at line 195 of file output.c.

Referenced by write_audio().

static void apply_software_volume ( float *  data,
int  channels,
int  frames 
) [static]

Definition at line 228 of file output.c.

Referenced by write_processed().

static void close_audio ( void   )  [static]

Definition at line 351 of file output.c.

Referenced by output_close_audio().

static void do_pause ( bool_t  p  )  [static]

Definition at line 372 of file output.c.

Referenced by output_pause().

static void drain ( void   )  [static]

Definition at line 97 of file output.c.

Referenced by open_audio(), and output_drain().

static void flush ( int  time  )  [static]

Definition at line 389 of file output.c.

Referenced by effect_flush(), and output_flush().

int get_output_time ( void   ) 

Definition at line 507 of file output.c.

Referenced by playback_get_time().

int get_raw_output_time ( void   ) 

Definition at line 523 of file output.c.

Referenced by send_audio().

static bool_t open_audio ( int  format,
int  rate,
int  channels 
) [static]

Definition at line 113 of file output.c.

Referenced by output_open_audio().

static void output_abort_write ( void   )  [static]

Definition at line 478 of file output.c.

static bool_t output_buffer_playing ( void   )  [static]

Definition at line 461 of file output.c.

static void output_close_audio ( void   )  [static]

Definition at line 364 of file output.c.

void output_drain ( void   ) 

Definition at line 532 of file output.c.

Referenced by complete_stop().

static void output_flush ( int  time  )  [static]

Definition at line 416 of file output.c.

void output_get_volume ( int l,
int r 
)

Definition at line 40 of file output.c.

Referenced by playback_get_volume().

static bool_t output_open_audio ( int  format,
int  rate,
int  channels 
) [static]

Definition at line 163 of file output.c.

static void output_pause ( bool_t  p  )  [static]

Definition at line 381 of file output.c.

PluginHandle* output_plugin_get_current ( void   ) 

Definition at line 569 of file output.c.

Referenced by output_do_about(), and output_do_config().

PluginHandle* output_plugin_probe ( void   ) 

Definition at line 562 of file output.c.

bool_t output_plugin_set_current ( PluginHandle plugin  ) 

Definition at line 574 of file output.c.

static void output_set_replaygain_info ( ReplayGainInfo info  )  [static]

Definition at line 187 of file output.c.

void output_set_volume ( int  l,
int  r 
)

Definition at line 56 of file output.c.

Referenced by playback_set_volume().

static int output_time ( void   )  [static]

Definition at line 500 of file output.c.

Referenced by get_output_time(), and get_raw_output_time().

static void output_write_audio ( void *  data,
int  size 
) [static]

Definition at line 343 of file output.c.

static int output_written_time ( void   )  [static]

Definition at line 431 of file output.c.

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

Definition at line 547 of file output.c.

Referenced by output_plugin_probe().

static void real_close ( void   )  [static]

Definition at line 104 of file output.c.

Referenced by close_audio(), open_audio(), and output_drain().

static void reset_time ( void   )  [static]

Definition at line 89 of file output.c.

Referenced by open_audio().

static void set_gain ( ReplayGainInfo info  )  [static]

Definition at line 172 of file output.c.

Referenced by output_set_replaygain_info().

static void set_leave_open ( void   )  [static]

Definition at line 449 of file output.c.

Referenced by output_buffer_playing().

static void write_audio ( void *  data,
int  size 
) [static]

Definition at line 309 of file output.c.

Referenced by output_write_audio().

static void write_buffers ( void   )  [static]

Definition at line 440 of file output.c.

Referenced by output_drain(), and set_leave_open().

static void write_processed ( void *  data,
int  samples 
) [static]

Definition at line 259 of file output.c.

Referenced by write_audio(), and write_buffers().

static int written_time ( void   )  [static]

Definition at line 424 of file output.c.

Referenced by output_written_time().


Variable Documentation

bool_t aborted [static]

Definition at line 82 of file output.c.

Referenced by abort_write(), flush(), open_audio(), and write_processed().

OutputPlugin* cop = NULL [static]

Definition at line 83 of file output.c.

Referenced by open_audio(), and write_audio().

int decoder_format [static]

Definition at line 83 of file output.c.

Referenced by open_audio(), and write_audio().

int decoder_rate [static]

Definition at line 83 of file output.c.

Referenced by flush(), open_audio(), and written_time().

int effect_channels [static]

Definition at line 83 of file output.c.

Referenced by open_audio().

int effect_rate [static]

Definition at line 83 of file output.c.

Referenced by open_audio().

int64_t frames_written [static]

Definition at line 85 of file output.c.

Referenced by flush(), open_audio(), write_audio(), and written_time().

Definition at line 86 of file output.c.

Referenced by apply_replay_gain(), open_audio(), and set_gain().

bool_t leave_open = FALSE [static]

Definition at line 80 of file output.c.

Referenced by close_audio(), open_audio(), output_drain(), output_time(), real_close(), and set_leave_open().

bool_t locked = FALSE [static]

Definition at line 68 of file output.c.

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER [static]

Definition at line 67 of file output.c.

bool_t opened = FALSE [static]
Initial value:
{
    .open_audio = output_open_audio,
    .set_replaygain_info = output_set_replaygain_info,
    .write_audio = output_write_audio,
    .close_audio = output_close_audio,

    .pause = output_pause,
    .flush = output_flush,
    .written_time = output_written_time,
    .buffer_playing = output_buffer_playing,
    .abort_write = output_abort_write,
}

Definition at line 486 of file output.c.

int output_channels [static]

Definition at line 83 of file output.c.

Referenced by open_audio(), and write_processed().

int output_format [static]

Definition at line 83 of file output.c.

Referenced by open_audio(), and write_processed().

int output_rate [static]

Definition at line 83 of file output.c.

Referenced by open_audio(), and write_processed().

bool_t paused [static]

Definition at line 82 of file output.c.

Referenced by do_pause(), effect_enable(), open_audio(), and set_leave_open().

Definition at line 87 of file output.c.

bool_t waiting [static]

Generated on 1 Aug 2012 for Audacious by  doxygen 1.6.1