MPD
Data Structures | Enumerations | Functions | Variables
player_control.h File Reference
#include "notify.h"
#include "audio_format.h"
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  player_status
 
struct  player_control
 

Enumerations

enum  player_state { PLAYER_STATE_STOP = 0, PLAYER_STATE_PAUSE, PLAYER_STATE_PLAY }
 
enum  player_command {
  PLAYER_COMMAND_NONE = 0, PLAYER_COMMAND_EXIT, PLAYER_COMMAND_STOP, PLAYER_COMMAND_PAUSE,
  PLAYER_COMMAND_SEEK, PLAYER_COMMAND_CLOSE_AUDIO, PLAYER_COMMAND_UPDATE_AUDIO, PLAYER_COMMAND_QUEUE,
  PLAYER_COMMAND_CANCEL, PLAYER_COMMAND_REFRESH
}
 
enum  player_error {
  PLAYER_ERROR_NOERROR = 0, PLAYER_ERROR_FILE, PLAYER_ERROR_AUDIO, PLAYER_ERROR_SYSTEM,
  PLAYER_ERROR_UNKTYPE, PLAYER_ERROR_FILENOTFOUND
}
 

Functions

void pc_init (unsigned buffer_chunks, unsigned buffered_before_play)
 
void pc_deinit (void)
 
static void player_lock (void)
 Locks the player_control object.
 
static void player_unlock (void)
 Unlocks the player_control object.
 
static void player_wait (void)
 Waits for a signal on the player_control object.
 
void player_wait_decoder (struct decoder_control *dc)
 Waits for a signal on the player_control object.
 
static void player_signal (void)
 Signals the player_control object.
 
static void player_lock_signal (void)
 Signals the player_control object.
 
void pc_song_deleted (const struct song *song)
 Call this function when the specified song pointer is about to be invalidated.
 
void pc_play (struct song *song)
 
void pc_cancel (void)
 see PLAYER_COMMAND_CANCEL
 
void pc_set_pause (bool pause_flag)
 
void pc_pause (void)
 
void pc_kill (void)
 
void pc_get_status (struct player_status *status)
 
enum player_state pc_get_state (void)
 
void pc_clear_error (void)
 
char * pc_get_error_message (void)
 Returns the human-readable message describing the last error during playback, NULL if no error occurred.
 
enum player_error pc_get_error (void)
 
void pc_stop (void)
 
void pc_update_audio (void)
 
void pc_enqueue_song (struct song *song)
 
bool pc_seek (struct song *song, float seek_time)
 Makes the player thread seek the specified song to a position.
 
void pc_set_cross_fade (float cross_fade_seconds)
 
float pc_get_cross_fade (void)
 
void pc_set_mixramp_db (float mixramp_db)
 
float pc_get_mixramp_db (void)
 
void pc_set_mixramp_delay (float mixramp_delay_seconds)
 
float pc_get_mixramp_delay (void)
 
double pc_get_total_play_time (void)
 

Variables

struct player_control pc
 

Enumeration Type Documentation

Enumerator:
PLAYER_COMMAND_NONE 
PLAYER_COMMAND_EXIT 
PLAYER_COMMAND_STOP 
PLAYER_COMMAND_PAUSE 
PLAYER_COMMAND_SEEK 
PLAYER_COMMAND_CLOSE_AUDIO 
PLAYER_COMMAND_UPDATE_AUDIO 

At least one audio_output.enabled flag has been modified; commit those changes to the output threads.

PLAYER_COMMAND_QUEUE 

player_control.next_song has been updated

PLAYER_COMMAND_CANCEL 

cancel pre-decoding player_control.next_song; if the player has already started playing this song, it will completely stop

PLAYER_COMMAND_REFRESH 

Refresh status information in the player_control struct, e.g.

elapsed_time.

Definition at line 36 of file player_control.h.

Enumerator:
PLAYER_ERROR_NOERROR 
PLAYER_ERROR_FILE 
PLAYER_ERROR_AUDIO 
PLAYER_ERROR_SYSTEM 
PLAYER_ERROR_UNKTYPE 
PLAYER_ERROR_FILENOTFOUND 

Definition at line 67 of file player_control.h.

Enumerator:
PLAYER_STATE_STOP 
PLAYER_STATE_PAUSE 
PLAYER_STATE_PLAY 

Definition at line 30 of file player_control.h.

Function Documentation

void pc_cancel ( void  )

see PLAYER_COMMAND_CANCEL

void pc_clear_error ( void  )
void pc_deinit ( void  )
void pc_enqueue_song ( struct song song)
float pc_get_cross_fade ( void  )
enum player_error pc_get_error ( void  )
char* pc_get_error_message ( void  )

Returns the human-readable message describing the last error during playback, NULL if no error occurred.

The caller has to free the returned string.

float pc_get_mixramp_db ( void  )
float pc_get_mixramp_delay ( void  )
enum player_state pc_get_state ( void  )
void pc_get_status ( struct player_status status)
double pc_get_total_play_time ( void  )
void pc_init ( unsigned  buffer_chunks,
unsigned  buffered_before_play 
)
void pc_kill ( void  )
void pc_pause ( void  )
void pc_play ( struct song song)
bool pc_seek ( struct song song,
float  seek_time 
)

Makes the player thread seek the specified song to a position.

Returns
true on success, false on failure (e.g. if MPD isn't playing currently)
void pc_set_cross_fade ( float  cross_fade_seconds)
void pc_set_mixramp_db ( float  mixramp_db)
void pc_set_mixramp_delay ( float  mixramp_delay_seconds)
void pc_set_pause ( bool  pause_flag)
void pc_song_deleted ( const struct song song)

Call this function when the specified song pointer is about to be invalidated.

This makes sure that player_control.errored_song does not point to an invalid pointer.

void pc_stop ( void  )
void pc_update_audio ( void  )
static void player_lock ( void  )
inlinestatic

Locks the player_control object.

Definition at line 129 of file player_control.h.

static void player_lock_signal ( void  )
inlinestatic

Signals the player_control object.

The object is temporarily locked by this function.

Definition at line 179 of file player_control.h.

static void player_signal ( void  )
inlinestatic

Signals the player_control object.

The object should be locked prior to calling this function.

Definition at line 169 of file player_control.h.

static void player_unlock ( void  )
inlinestatic

Unlocks the player_control object.

Definition at line 138 of file player_control.h.

static void player_wait ( void  )
inlinestatic

Waits for a signal on the player_control object.

This function is only valid in the player thread. The object must be locked prior to calling this function.

Definition at line 149 of file player_control.h.

void player_wait_decoder ( struct decoder_control dc)

Waits for a signal on the player_control object.

This function is only valid in the player thread. The decoder_control object must be locked prior to calling this function.

Note the small difference to the player_wait() function!

Variable Documentation

struct player_control pc