Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Functions | Variables
playback.c File Reference
#include <glib.h>
#include <pthread.h>
#include <string.h>
#include <libaudcore/audstrings.h>
#include <libaudcore/hook.h>
#include "drct.h"
#include "i18n.h"
#include "interface.h"
#include "misc.h"
#include "output.h"
#include "playback.h"
#include "playlist.h"
#include "plugin.h"

Go to the source code of this file.

Functions

static void playback_restart (int seek_time, bool_t pause)
 
static void read_gain_from_tuple (const Tuple *tuple)
 
static bool_t update_from_playlist (void)
 
bool_t drct_get_ready (void)
 
static void set_pb_ready (InputPlayback *p)
 
static void wait_until_ready (void)
 
static void update_cb (void *hook_data, void *user_data)
 
int drct_get_time (void)
 
void drct_pause (void)
 
static void playback_finish (void)
 
static void playback_cleanup (void)
 
void playback_stop (void)
 
static void do_stop (int playlist)
 
static void do_next (int playlist)
 
static bool_t end_cb (void *unused)
 
static void * playback_thread (void *unused)
 
static void playback_start (int seek_time, bool_t pause)
 
void playback_play (int seek_time, bool_t pause)
 
bool_t drct_get_playing (void)
 
bool_t drct_get_paused (void)
 
void drct_seek (int time)
 
static void set_data (InputPlayback *p, void *data)
 
static void * get_data (InputPlayback *p)
 
static void set_params (InputPlayback *p, int bitrate, int samplerate, int channels)
 
static void set_tuple (InputPlayback *p, Tuple *tuple)
 
static void set_gain_from_playlist (InputPlayback *p)
 
char * drct_get_filename (void)
 
char * drct_get_title (void)
 
int drct_get_length (void)
 
void drct_get_info (int *bitrate, int *samplerate, int *channels)
 
void drct_get_volume (int *l, int *r)
 
void drct_set_volume (int l, int r)
 
void drct_set_ab_repeat (int a, int b)
 
void drct_get_ab_repeat (int *a, int *b)
 

Variables

static const struct OutputAPI output_api
 
static InputPlayback playback_api
 
static pthread_t playback_thread_handle
 
static int end_source = 0
 
static pthread_mutex_t ready_mutex = PTHREAD_MUTEX_INITIALIZER
 
static pthread_cond_t ready_cond = PTHREAD_COND_INITIALIZER
 
static bool_t playing = FALSE
 
static bool_t restart_flag = FALSE
 
static int time_offset = 0
 
static int initial_seek = 0
 
static bool_t paused = FALSE
 
static bool_t ready_flag = FALSE
 
static bool_t playback_error = FALSE
 
static bool_t song_finished = FALSE
 
static void * current_data = NULL
 
static int current_bitrate = -1
 
static int current_samplerate = -1
 
static int current_channels = -1
 
static int current_entry = -1
 
static char * current_filename = NULL
 
static char * current_title = NULL
 
static int current_length = -1
 
static InputPlugincurrent_decoder = NULL
 
static VFSFilecurrent_file = NULL
 
static ReplayGainInfo gain_from_playlist
 
static int repeat_a = -1
 
static int repeat_b = -1
 
static bool_t stopped = TRUE
 
static int failed_entries = 0
 

Function Documentation

static void do_next ( int  playlist)
static

Definition at line 313 of file playback.c.

Referenced by end_cb().

static void do_stop ( int  playlist)
static

Definition at line 307 of file playback.c.

Referenced by end_cb().

void drct_get_ab_repeat ( int a,
int b 
)

Definition at line 656 of file playback.c.

Referenced by drct_play().

char* drct_get_filename ( void  )

Definition at line 551 of file playback.c.

void drct_get_info ( int bitrate,
int samplerate,
int channels 
)

Definition at line 596 of file playback.c.

Referenced by audacious_rc_get_info(), and audacious_rc_info().

int drct_get_length ( void  )

Definition at line 588 of file playback.c.

bool_t drct_get_paused ( void  )
bool_t drct_get_playing ( void  )
bool_t drct_get_ready ( void  )

Definition at line 131 of file playback.c.

Referenced by drct_get_volume(), drct_set_volume(), set_params(), and update_cb().

int drct_get_time ( void  )
char* drct_get_title ( void  )

Definition at line 559 of file playback.c.

void drct_get_volume ( int l,
int r 
)
void drct_pause ( void  )
void drct_seek ( int  time)

Definition at line 482 of file playback.c.

Referenced by audacious_rc_seek(), drct_play(), and mpris_player_position_set().

void drct_set_ab_repeat ( int  a,
int  b 
)

Definition at line 627 of file playback.c.

void drct_set_volume ( int  l,
int  r 
)
static bool_t end_cb ( void *  unused)
static

Definition at line 322 of file playback.c.

Referenced by playback_thread().

static void* get_data ( InputPlayback p)
static

Definition at line 509 of file playback.c.

static void playback_cleanup ( void  )
static

Definition at line 257 of file playback.c.

Referenced by playback_play(), and playback_stop().

static void playback_finish ( void  )
static

Definition at line 223 of file playback.c.

Referenced by playback_cleanup(), and playback_restart().

void playback_play ( int  seek_time,
bool_t  pause 
)

Definition at line 459 of file playback.c.

Referenced by change_playback(), and playlist_set_playing().

static void playback_restart ( int  seek_time,
bool_t  pause 
)
static

Definition at line 446 of file playback.c.

Referenced by drct_set_ab_repeat(), and end_cb().

static void playback_start ( int  seek_time,
bool_t  pause 
)
static

Definition at line 435 of file playback.c.

Referenced by playback_play(), and playback_restart().

void playback_stop ( void  )

Definition at line 290 of file playback.c.

Referenced by playlist_delete(), and playlist_set_playing().

static void* playback_thread ( void *  unused)
static

Definition at line 370 of file playback.c.

Referenced by playback_start().

static void read_gain_from_tuple ( const Tuple *  tuple)
static

Definition at line 84 of file playback.c.

Referenced by playback_cleanup(), playback_thread(), and set_tuple().

static void set_data ( InputPlayback p,
void *  data 
)
static

Definition at line 503 of file playback.c.

static void set_gain_from_playlist ( InputPlayback p)
static

Definition at line 535 of file playback.c.

static void set_params ( InputPlayback p,
int  bitrate,
int  samplerate,
int  channels 
)
static

Definition at line 515 of file playback.c.

static void set_pb_ready ( InputPlayback p)
static

Definition at line 145 of file playback.c.

Referenced by playback_thread().

static void set_tuple ( InputPlayback p,
Tuple *  tuple 
)
static

Definition at line 528 of file playback.c.

static void update_cb ( void *  hook_data,
void *  user_data 
)
static

Definition at line 175 of file playback.c.

Referenced by playback_finish(), and playback_start().

static bool_t update_from_playlist ( void  )
static

Definition at line 111 of file playback.c.

Referenced by set_pb_ready(), and update_cb().

static void wait_until_ready ( void  )
static

Variable Documentation

int current_bitrate = -1
static

Definition at line 65 of file playback.c.

Referenced by drct_get_info(), playback_finish(), and set_params().

int current_channels = -1
static

Definition at line 65 of file playback.c.

Referenced by drct_get_info(), playback_finish(), and set_params().

void* current_data = NULL
static

Definition at line 64 of file playback.c.

Referenced by get_data(), playback_finish(), and set_data().

InputPlugin* current_decoder = NULL
static

Definition at line 73 of file playback.c.

int current_entry = -1
static

Definition at line 68 of file playback.c.

Referenced by drct_get_title(), playback_cleanup(), and update_from_playlist().

VFSFile* current_file = NULL
static

Definition at line 74 of file playback.c.

char* current_filename = NULL
static
int current_length = -1
static
int current_samplerate = -1
static

Definition at line 65 of file playback.c.

Referenced by drct_get_info(), playback_finish(), and set_params().

char* current_title = NULL
static

Definition at line 70 of file playback.c.

Referenced by drct_get_title(), playback_cleanup(), and update_from_playlist().

int end_source = 0
static

Definition at line 50 of file playback.c.

Referenced by playback_finish(), and playback_thread().

int failed_entries = 0
static

Definition at line 81 of file playback.c.

Referenced by end_cb(), and playback_stop().

ReplayGainInfo gain_from_playlist
static

Definition at line 75 of file playback.c.

int initial_seek = 0
static

Definition at line 58 of file playback.c.

Referenced by playback_finish(), playback_start(), and playback_thread().

const struct OutputAPI output_api
static
Initial value:
= {
.open_audio = output_open_audio,
.set_replaygain_info = output_set_replaygain_info,
.write_audio = output_write_audio,
.abort_write = output_abort_write,
.pause = output_pause,
.written_time = output_written_time,
.flush = output_set_time}
void output_set_replaygain_info(const ReplayGainInfo *info)
Definition: output.c:343
void output_abort_write(void)
Definition: output.c:381
bool_t output_open_audio(int format, int rate, int channels)
Definition: output.c:313
int output_written_time(void)
Definition: output.c:411
void output_write_audio(void *data, int size)
Definition: output.c:362
void output_set_time(int time)
Definition: output.c:423
void output_pause(bool_t pause)
Definition: output.c:396

Definition at line 38 of file playback.c.

bool_t paused = FALSE
static
static InputPlayback playback_api
static
Initial value:
= {
.output = & output_api,
.set_data = set_data,
.get_data = get_data,
.set_pb_ready = set_pb_ready,
.set_params = set_params,
.set_tuple = set_tuple,
.set_gain_from_playlist = set_gain_from_playlist,
}
static void set_gain_from_playlist(InputPlayback *p)
Definition: playback.c:535
static void * get_data(InputPlayback *p)
Definition: playback.c:509
static const struct OutputAPI output_api
Definition: playback.c:38
static void set_tuple(InputPlayback *p, Tuple *tuple)
Definition: playback.c:528
static void set_pb_ready(InputPlayback *p)
Definition: playback.c:145
static void set_params(InputPlayback *p, int bitrate, int samplerate, int channels)
Definition: playback.c:515
static void set_data(InputPlayback *p, void *data)
Definition: playback.c:503

Definition at line 47 of file playback.c.

bool_t playback_error = FALSE
static

Definition at line 61 of file playback.c.

Referenced by end_cb(), playback_finish(), and playback_thread().

pthread_t playback_thread_handle
static

Definition at line 49 of file playback.c.

Referenced by playback_finish(), and playback_start().

bool_t playing = FALSE
static
pthread_cond_t ready_cond = PTHREAD_COND_INITIALIZER
static

Definition at line 53 of file playback.c.

Referenced by set_pb_ready(), and wait_until_ready().

bool_t ready_flag = FALSE
static
pthread_mutex_t ready_mutex = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 52 of file playback.c.

Referenced by drct_get_ready(), set_pb_ready(), and wait_until_ready().

int repeat_a = -1
static

Definition at line 77 of file playback.c.

Referenced by drct_get_ab_repeat(), drct_set_ab_repeat(), end_cb(), and playback_cleanup().

int repeat_b = -1
static
bool_t restart_flag = FALSE
static

Definition at line 57 of file playback.c.

Referenced by drct_get_ready(), playback_finish(), playback_restart(), and set_pb_ready().

bool_t song_finished = FALSE
static

Definition at line 62 of file playback.c.

Referenced by end_cb(), and playback_finish().

bool_t stopped = TRUE
static

Definition at line 80 of file playback.c.

Referenced by playback_start(), and playback_stop().

int time_offset = 0
static

Definition at line 58 of file playback.c.

Referenced by drct_get_time(), drct_seek(), playback_finish(), and playback_thread().