Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Defines | Functions | Variables
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 COP   current_output_plugin
#define REMOVE_SOURCE(s)
#define LOCK   g_mutex_lock (output_mutex)
#define UNLOCK   g_mutex_unlock (output_mutex)

Functions

static gboolean plugin_list_func (PluginHandle *plugin, GList **list)
GList * get_output_list (void)
void output_get_volume (gint *l, gint *r)
void output_set_volume (gint l, gint r)
static void write_buffers (void)
static void drain (void)
static void real_close (void)
void output_init (void)
void output_cleanup (void)
static gboolean output_open_audio (gint format, gint rate, gint channels)
static void output_close_audio (void)
static void output_flush (gint time)
static void output_pause (gboolean pause)
static gint get_written_time (void)
static gboolean output_buffer_playing (void)
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 do_write (void *data, gint samples)
static void output_write_audio (void *data, gint size)
static void abort_write (void)
gint get_output_time (void)
void output_drain (void)
void set_current_output_plugin (OutputPlugin *plugin)

Variables

OutputPlugin * current_output_plugin = NULL
static GMutex * output_mutex
static gboolean output_opened
static gboolean output_aborted
static gboolean output_leave_open
static gboolean output_paused
static gint decoder_format
static gint output_format
static gint decoder_channels
static gint decoder_rate
static gint effect_channels
static gint effect_rate
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 COP   current_output_plugin
#define LOCK   g_mutex_lock (output_mutex)
#define REMOVE_SOURCE (   s)
Value:
do { \
    if (s != 0) { \
        g_source_remove (s); \
        s = 0; \
    } \
} while (0)

Definition at line 99 of file output.c.

#define SW_VOLUME_RANGE   40

Definition at line 35 of file output.c.

Referenced by apply_software_volume().

#define UNLOCK   g_mutex_unlock (output_mutex)

Function Documentation

static void abort_write ( void  ) [static]

Definition at line 445 of file output.c.

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

Definition at line 280 of file output.c.

Referenced by output_write_audio().

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

Definition at line 313 of file output.c.

Referenced by do_write().

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

Definition at line 342 of file output.c.

Referenced by output_write_audio(), and write_buffers().

static void drain ( void  ) [static]

Definition at line 453 of file output.c.

Referenced by output_drain(), and output_open_audio().

GList* get_output_list ( void  )
gint get_output_time ( void  )

Definition at line 478 of file output.c.

Referenced by playback_get_time().

static gint get_written_time ( void  ) [static]

Definition at line 239 of file output.c.

static gboolean output_buffer_playing ( void  ) [static]

Definition at line 252 of file output.c.

void output_cleanup ( void  )

Definition at line 129 of file output.c.

Referenced by shut_down().

static void output_close_audio ( void  ) [static]

Definition at line 201 of file output.c.

void output_drain ( void  )

Definition at line 494 of file output.c.

Referenced by complete_stop().

static void output_flush ( gint  time) [static]

Definition at line 216 of file output.c.

void output_get_volume ( gint l,
gint r 
)

Definition at line 62 of file output.c.

Referenced by input_get_volume().

void output_init ( void  )

Definition at line 122 of file output.c.

Referenced by main().

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

Definition at line 141 of file output.c.

static void output_pause ( gboolean  pause) [static]

Definition at line 230 of file output.c.

static void output_set_replaygain_info ( ReplayGainInfo info) [static]

Definition at line 268 of file output.c.

void output_set_volume ( gint  l,
gint  r 
)

Definition at line 78 of file output.c.

Referenced by input_set_volume().

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

Definition at line 401 of file output.c.

static gboolean plugin_list_func ( PluginHandle plugin,
GList **  list 
) [static]

Definition at line 40 of file output.c.

Referenced by get_output_list().

static void real_close ( void  ) [static]

Definition at line 114 of file output.c.

Referenced by output_cleanup(), output_close_audio(), output_drain(), and output_open_audio().

void set_current_output_plugin ( OutputPlugin *  plugin)

Definition at line 510 of file output.c.

Referenced by effect_plugin_enable(), and on_output_plugin_cbox_changed().

static void write_buffers ( void  ) [static]

Definition at line 436 of file output.c.

Referenced by output_buffer_playing(), and output_drain().


Variable Documentation

OutputPlugin* current_output_plugin = NULL

Definition at line 93 of file output.c.

Referenced by output_open_audio(), and output_write_audio().

gint decoder_format [static]

Definition at line 92 of file output.c.

Referenced by output_open_audio(), and output_write_audio().

Definition at line 93 of file output.c.

Referenced by get_written_time(), output_flush(), and output_open_audio().

Definition at line 93 of file output.c.

Referenced by output_open_audio().

Definition at line 93 of file output.c.

Referenced by output_open_audio().

gint64 frames_written [static]

Definition at line 95 of file output.c.

Referenced by get_written_time(), output_flush(), output_open_audio(), and output_write_audio().

Definition at line 96 of file output.c.

Referenced by apply_replay_gain(), and output_set_replaygain_info().

Definition at line 90 of file output.c.

Referenced by abort_write(), do_write(), output_flush(), and output_open_audio().

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 = get_written_time,
    .buffer_playing = output_buffer_playing,
    .abort_write = abort_write,
}

Definition at line 464 of file output.c.

Referenced by playback_new().

Definition at line 93 of file output.c.

Referenced by do_write(), and output_open_audio().

Definition at line 92 of file output.c.

Referenced by do_write(), and output_open_audio().

GMutex* output_mutex [static]

Definition at line 89 of file output.c.

Referenced by output_cleanup(), and output_init().

Definition at line 90 of file output.c.

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

Definition at line 93 of file output.c.

Referenced by do_write(), and output_open_audio().

Definition at line 97 of file output.c.