output.c File Reference

#include <math.h>
#include <libaudcore/audio.h>
#include "audconfig.h"
#include "debug.h"
#include "effect.h"
#include "equalizer.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 {g_static_mutex_lock (& mutex); locked = TRUE;} while (0)
#define UNLOCK   do {locked = FALSE; g_static_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 (gint *l, gint *r)
void output_set_volume (gint l, gint r)
static void reset_time (void)
static void drain (void)
static void real_close (void)
static gboolean open_audio (gint format, gint rate, gint channels)
static gboolean output_open_audio (gint format, gint rate, gint channels)
static void set_gain (ReplayGainInfo *info)
static void output_set_replaygain_info (ReplayGainInfo *info)
static void apply_replay_gain (gfloat *data, gint samples)
static void apply_software_volume (gfloat *data, gint channels, gint frames)
static void write_processed (void *data, gint samples)
static void write_audio (void *data, gint size)
static void output_write_audio (void *data, gint size)
static void close_audio (void)
static void output_close_audio (void)
static void do_pause (gboolean p)
static void output_pause (gboolean p)
static void flush (gint time)
static void output_flush (gint time)
static gint written_time (void)
static gint output_written_time (void)
static void write_buffers (void)
static void set_leave_open (void)
static gboolean output_buffer_playing (void)
static void abort_write (void)
static void output_abort_write (void)
static gint output_time (void)
gint get_output_time (void)
gint get_raw_output_time (void)
void output_drain (void)
static gboolean probe_cb (PluginHandle *p, PluginHandle **pp)
PluginHandleoutput_plugin_probe (void)
PluginHandleoutput_plugin_get_current (void)
gboolean output_plugin_set_current (PluginHandle *plugin)

Variables

static OutputPlugin * cop = NULL
static GStaticMutex mutex = G_STATIC_MUTEX_INIT
static gboolean locked = FALSE
static gboolean opened = FALSE
static gboolean leave_open = FALSE
static gboolean waiting
static gboolean aborted
static gboolean paused
static gint decoder_format
static gint decoder_channels
static gint decoder_rate
static gint effect_channels
static gint effect_rate
static gint output_format
static gint output_channels
static gint output_rate
static gint64 frames_written
static gboolean have_replay_gain
static ReplayGainInfo replay_gain_info
struct OutputAPI output_api

Define Documentation

#define LOCK   do {g_static_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 71 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 74 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 75 of file output.c.

Referenced by open_audio().

#define SW_VOLUME_RANGE   40

Definition at line 34 of file output.c.

Referenced by apply_software_volume().

#define UNLOCK   do {locked = FALSE; g_static_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 465 of file output.c.

Referenced by output_abort_write().

static void apply_replay_gain ( gfloat *  data,
gint  samples 
) [static]

Definition at line 193 of file output.c.

Referenced by write_audio().

static void apply_software_volume ( gfloat *  data,
gint  channels,
gint  frames 
) [static]

Definition at line 226 of file output.c.

Referenced by write_processed().

static void close_audio ( void   )  [static]

Definition at line 347 of file output.c.

Referenced by output_close_audio().

static void do_pause ( gboolean  p  )  [static]

Definition at line 368 of file output.c.

Referenced by output_pause().

static void drain ( void   )  [static]

Definition at line 95 of file output.c.

Referenced by open_audio(), and output_drain().

static void flush ( gint  time  )  [static]

Definition at line 385 of file output.c.

Referenced by output_flush().

gint get_output_time ( void   ) 

Definition at line 502 of file output.c.

Referenced by playback_get_time().

gint get_raw_output_time ( void   ) 

Definition at line 518 of file output.c.

Referenced by send_audio().

static gboolean open_audio ( gint  format,
gint  rate,
gint  channels 
) [static]

Definition at line 111 of file output.c.

Referenced by output_open_audio().

static void output_abort_write ( void   )  [static]

Definition at line 473 of file output.c.

static gboolean output_buffer_playing ( void   )  [static]

Definition at line 456 of file output.c.

static void output_close_audio ( void   )  [static]

Definition at line 360 of file output.c.

void output_drain ( void   ) 

Definition at line 527 of file output.c.

Referenced by complete_stop().

static void output_flush ( gint  time  )  [static]

Definition at line 411 of file output.c.

void output_get_volume ( gint l,
gint r 
)

Definition at line 38 of file output.c.

Referenced by playback_get_volume().

static gboolean output_open_audio ( gint  format,
gint  rate,
gint  channels 
) [static]

Definition at line 161 of file output.c.

static void output_pause ( gboolean  p  )  [static]

Definition at line 377 of file output.c.

PluginHandle* output_plugin_get_current ( void   ) 

Definition at line 564 of file output.c.

Referenced by output_do_about(), and output_do_config().

PluginHandle* output_plugin_probe ( void   ) 

Definition at line 557 of file output.c.

gboolean output_plugin_set_current ( PluginHandle plugin  ) 

Definition at line 569 of file output.c.

static void output_set_replaygain_info ( ReplayGainInfo info  )  [static]

Definition at line 185 of file output.c.

void output_set_volume ( gint  l,
gint  r 
)

Definition at line 54 of file output.c.

Referenced by playback_set_volume().

static gint output_time ( void   )  [static]

Definition at line 495 of file output.c.

Referenced by get_output_time(), and get_raw_output_time().

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

Definition at line 339 of file output.c.

static gint output_written_time ( void   )  [static]

Definition at line 426 of file output.c.

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

Definition at line 542 of file output.c.

Referenced by output_plugin_probe().

static void real_close ( void   )  [static]

Definition at line 102 of file output.c.

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

static void reset_time ( void   )  [static]

Definition at line 87 of file output.c.

Referenced by open_audio().

static void set_gain ( ReplayGainInfo info  )  [static]

Definition at line 170 of file output.c.

Referenced by output_set_replaygain_info().

static void set_leave_open ( void   )  [static]

Definition at line 444 of file output.c.

Referenced by output_buffer_playing().

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

Definition at line 305 of file output.c.

Referenced by output_write_audio().

static void write_buffers ( void   )  [static]

Definition at line 435 of file output.c.

Referenced by output_drain(), and set_leave_open().

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

Definition at line 255 of file output.c.

Referenced by write_audio(), and write_buffers().

static gint written_time ( void   )  [static]

Definition at line 419 of file output.c.

Referenced by output_written_time().


Variable Documentation

gboolean aborted [static]

Definition at line 80 of file output.c.

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

OutputPlugin* cop = NULL [static]

Definition at line 81 of file output.c.

Referenced by open_audio(), and write_audio().

gint decoder_format [static]

Definition at line 81 of file output.c.

Referenced by open_audio(), and write_audio().

gint decoder_rate [static]

Definition at line 81 of file output.c.

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

Definition at line 81 of file output.c.

Referenced by open_audio().

gint effect_rate [static]

Definition at line 81 of file output.c.

Referenced by open_audio().

gint64 frames_written [static]

Definition at line 83 of file output.c.

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

Definition at line 84 of file output.c.

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

gboolean leave_open = FALSE [static]

Definition at line 78 of file output.c.

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

gboolean locked = FALSE [static]

Definition at line 66 of file output.c.

GStaticMutex mutex = G_STATIC_MUTEX_INIT [static]

Definition at line 65 of file output.c.

gboolean 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 481 of file output.c.

Definition at line 81 of file output.c.

Referenced by open_audio(), and write_processed().

gint output_format [static]

Definition at line 81 of file output.c.

Referenced by open_audio(), and write_processed().

gint output_rate [static]

Definition at line 81 of file output.c.

Referenced by open_audio(), and write_processed().

gboolean paused [static]

Definition at line 80 of file output.c.

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

Definition at line 85 of file output.c.

gboolean waiting [static]

Generated on 27 Aug 2011 for Audacious by  doxygen 1.6.1