Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Classes | Macros | Typedefs | Enumerations | Functions | Variables
playlist-new.c File Reference
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <glib.h>
#include <libaudcore/audstrings.h>
#include <libaudcore/hook.h>
#include <libaudcore/tuple.h>
#include "config.h"
#include "i18n.h"
#include "misc.h"
#include "playback.h"
#include "playlist.h"
#include "plugins.h"
#include "util.h"

Go to the source code of this file.

Classes

struct  Update
 
struct  Entry
 
struct  Playlist
 
struct  ScanItem
 
struct  CompareData
 

Macros

#define SCAN_THREADS   2
 
#define STATE_FILE   "playlist-state"
 
#define ENTER   pthread_mutex_lock (& mutex)
 
#define LEAVE   pthread_mutex_unlock (& mutex)
 
#define LEAVE_RET_VOID
 
#define LEAVE_RET(ret)
 
#define DECLARE_PLAYLIST   Playlist * playlist
 
#define DECLARE_PLAYLIST_ENTRY
 
#define LOOKUP_PLAYLIST
 
#define LOOKUP_PLAYLIST_RET(ret)
 
#define LOOKUP_PLAYLIST_ENTRY
 
#define LOOKUP_PLAYLIST_ENTRY_RET(ret)
 

Typedefs

typedef int(* CompareFunc )(const void *a, const void *b)
 

Enumerations

enum  { RESUME_STOP, RESUME_PLAY, RESUME_PAUSE }
 
enum  { COMPARE_TYPE_FILENAME, COMPARE_TYPE_TUPLE, COMPARE_TYPE_TITLE }
 

Functions

static void * scanner (void *unused)
 
static void scan_trigger (void)
 
static char * title_from_tuple (Tuple *tuple)
 
static void entry_set_tuple_real (Entry *entry, Tuple *tuple)
 
static void entry_set_tuple (Playlist *playlist, Entry *entry, Tuple *tuple)
 
static void entry_set_failed (Playlist *playlist, Entry *entry)
 
static void entry_cancel_scan (Entry *entry)
 
static Entryentry_new (char *filename, Tuple *tuple, PluginHandle *decoder)
 
static void entry_free (Entry *entry)
 
static int new_unique_id (int preferred)
 
static Playlistplaylist_new (int id)
 
static void playlist_free (Playlist *playlist)
 
static void number_playlists (int at, int length)
 
static Playlistlookup_playlist (int playlist_num)
 
static void number_entries (Playlist *playlist, int at, int length)
 
static Entrylookup_entry (Playlist *playlist, int entry_num)
 
static bool_t update (void *unused)
 
static void queue_update (int level, int list, int at, int count)
 
bool_t playlist_update_pending (void)
 
int playlist_updated_range (int playlist_num, int *at, int *count)
 
bool_t playlist_scan_in_progress (int playlist_num)
 
static bool_t entry_scan_is_queued (Entry *entry)
 
static void entry_queue_scan (Playlist *playlist, Entry *entry)
 
static void check_scan_complete (Playlist *p)
 
static ScanItementry_find_to_scan (void)
 
static Entryget_entry (int playlist_num, int entry_num, bool_t need_decoder, bool_t need_tuple)
 
static Entryget_playback_entry (bool_t need_decoder, bool_t need_tuple)
 
static void get_resume_state (int *state, int *time)
 
static void resume (int state, int time)
 
void playlist_init (void)
 
void playlist_end (void)
 
int playlist_count (void)
 
void playlist_insert_with_id (int at, int id)
 
void playlist_insert (int at)
 
void playlist_reorder (int from, int to, int count)
 
void playlist_delete (int playlist_num)
 
int playlist_get_unique_id (int playlist_num)
 
int playlist_by_unique_id (int id)
 
void playlist_set_filename (int playlist_num, const char *filename)
 
char * playlist_get_filename (int playlist_num)
 
void playlist_set_title (int playlist_num, const char *title)
 
char * playlist_get_title (int playlist_num)
 
void playlist_set_modified (int playlist_num, bool_t modified)
 
bool_t playlist_get_modified (int playlist_num)
 
void playlist_set_active (int playlist_num)
 
int playlist_get_active (void)
 
void playlist_set_playing (int playlist_num)
 
int playlist_get_playing (void)
 
int playlist_get_blank (void)
 
int playlist_get_temporary (void)
 
static void set_position (Playlist *playlist, Entry *entry, bool_t update_shuffle)
 
int playlist_entry_count (int playlist_num)
 
void playlist_entry_insert_batch_raw (int playlist_num, int at, Index *filenames, Index *tuples, Index *decoders)
 
void playlist_entry_delete (int playlist_num, int at, int number)
 
char * playlist_entry_get_filename (int playlist_num, int entry_num)
 
PluginHandleplaylist_entry_get_decoder (int playlist_num, int entry_num, bool_t fast)
 
Tuple * playlist_entry_get_tuple (int playlist_num, int entry_num, bool_t fast)
 
char * playlist_entry_get_title (int playlist_num, int entry_num, bool_t fast)
 
void playlist_entry_describe (int playlist_num, int entry_num, char **title, char **artist, char **album, bool_t fast)
 
int playlist_entry_get_length (int playlist_num, int entry_num, bool_t fast)
 
void playlist_set_position (int playlist_num, int entry_num)
 
int playlist_get_position (int playlist_num)
 
void playlist_entry_set_selected (int playlist_num, int entry_num, bool_t selected)
 
bool_t playlist_entry_get_selected (int playlist_num, int entry_num)
 
int playlist_selected_count (int playlist_num)
 
void playlist_select_all (int playlist_num, bool_t selected)
 
int playlist_shift (int playlist_num, int entry_num, int distance)
 
void playlist_delete_selected (int playlist_num)
 
void playlist_reverse (int playlist_num)
 
void playlist_randomize (int playlist_num)
 
static int compare_cb (const void *_a, const void *_b, void *_data)
 
static void sort (Playlist *playlist, CompareData *data)
 
static void sort_selected (Playlist *playlist, CompareData *data)
 
static bool_t entries_are_scanned (Playlist *playlist, bool_t selected)
 
void playlist_sort_by_filename (int playlist_num, int(*compare)(const char *a, const char *b))
 
void playlist_sort_by_tuple (int playlist_num, int(*compare)(const Tuple *a, const Tuple *b))
 
void playlist_sort_by_title (int playlist_num, int(*compare)(const char *a, const char *b))
 
void playlist_sort_selected_by_filename (int playlist_num, int(*compare)(const char *a, const char *b))
 
void playlist_sort_selected_by_tuple (int playlist_num, int(*compare)(const Tuple *a, const Tuple *b))
 
void playlist_sort_selected_by_title (int playlist_num, int(*compare)(const char *a, const char *b))
 
void playlist_reformat_titles (void)
 
void playlist_trigger_scan (void)
 
static void playlist_rescan_real (int playlist_num, bool_t selected)
 
void playlist_rescan (int playlist_num)
 
void playlist_rescan_selected (int playlist_num)
 
void playlist_rescan_file (const char *filename)
 
int64_t playlist_get_total_length (int playlist_num)
 
int64_t playlist_get_selected_length (int playlist_num)
 
int playlist_queue_count (int playlist_num)
 
void playlist_queue_insert (int playlist_num, int at, int entry_num)
 
void playlist_queue_insert_selected (int playlist_num, int at)
 
int playlist_queue_get_entry (int playlist_num, int at)
 
int playlist_queue_find_entry (int playlist_num, int entry_num)
 
void playlist_queue_delete (int playlist_num, int at, int number)
 
void playlist_queue_delete_selected (int playlist_num)
 
static bool_t shuffle_prev (Playlist *playlist)
 
bool_t playlist_prev_song (int playlist_num)
 
static bool_t shuffle_next (Playlist *playlist)
 
static void shuffle_reset (Playlist *playlist)
 
bool_t playlist_next_song (int playlist_num, bool_t repeat)
 
int playback_entry_get_position (void)
 
PluginHandleplayback_entry_get_decoder (void)
 
Tuple * playback_entry_get_tuple (void)
 
char * playback_entry_get_title (void)
 
int playback_entry_get_length (void)
 
void playback_entry_set_tuple (Tuple *tuple)
 
int playback_entry_get_start_time (void)
 
int playback_entry_get_end_time (void)
 
void playlist_save_state (void)
 
static void parse_next (FILE *handle)
 
static bool_t parse_integer (const char *key, int *value)
 
static char * parse_string (const char *key)
 
void playlist_load_state (void)
 
void playlist_resume (void)
 

Variables

static const char *const default_title = N_("New Playlist")
 
static const char *const temp_title = N_("Now Playing")
 
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER
 
static pthread_cond_t cond = PTHREAD_COND_INITIALIZER
 
static GHashTable * unique_id_table = NULL
 
static int next_unique_id = 1000
 
static Index * playlists = NULL
 
static Playlistactive_playlist = NULL
 
static Playlistplaying_playlist = NULL
 
static int update_source = 0
 
static int update_level
 
static pthread_t scan_threads [SCAN_THREADS]
 
static bool_t scan_quit
 
static int scan_playlist
 
static int scan_row
 
static GQueue scan_queue = G_QUEUE_INIT
 
static ScanItemscan_items [SCAN_THREADS]
 
static char * title_format
 
static char parse_key [512]
 
static char * parse_value
 

Macro Definition Documentation

#define DECLARE_PLAYLIST   Playlist * playlist
#define DECLARE_PLAYLIST_ENTRY
#define ENTER   pthread_mutex_lock (& mutex)

Definition at line 45 of file playlist-new.c.

Referenced by playback_entry_get_decoder(), playback_entry_get_end_time(), playback_entry_get_length(), playback_entry_get_position(), playback_entry_get_start_time(), playback_entry_get_title(), playback_entry_get_tuple(), playback_entry_set_tuple(), playlist_by_unique_id(), playlist_count(), playlist_delete(), playlist_delete_selected(), playlist_end(), playlist_entry_count(), playlist_entry_delete(), playlist_entry_describe(), playlist_entry_get_decoder(), playlist_entry_get_filename(), playlist_entry_get_length(), playlist_entry_get_selected(), playlist_entry_get_title(), playlist_entry_get_tuple(), playlist_entry_insert_batch_raw(), playlist_entry_set_selected(), playlist_get_active(), playlist_get_filename(), playlist_get_modified(), playlist_get_playing(), playlist_get_position(), playlist_get_selected_length(), playlist_get_title(), playlist_get_total_length(), playlist_get_unique_id(), playlist_init(), playlist_insert_with_id(), playlist_load_state(), playlist_next_song(), playlist_prev_song(), playlist_queue_count(), playlist_queue_delete(), playlist_queue_delete_selected(), playlist_queue_find_entry(), playlist_queue_get_entry(), playlist_queue_insert(), playlist_queue_insert_selected(), playlist_randomize(), playlist_reformat_titles(), playlist_reorder(), playlist_rescan_file(), playlist_rescan_real(), playlist_resume(), playlist_reverse(), playlist_save_state(), playlist_scan_in_progress(), playlist_select_all(), playlist_selected_count(), playlist_set_active(), playlist_set_filename(), playlist_set_modified(), playlist_set_playing(), playlist_set_position(), playlist_set_title(), playlist_shift(), playlist_sort_by_filename(), playlist_sort_by_title(), playlist_sort_by_tuple(), playlist_sort_selected_by_filename(), playlist_sort_selected_by_title(), playlist_sort_selected_by_tuple(), playlist_trigger_scan(), playlist_update_pending(), playlist_updated_range(), scanner(), and update().

#define LEAVE   pthread_mutex_unlock (& mutex)
#define LEAVE_RET (   ret)
#define LEAVE_RET_VOID
Value:
do { \
pthread_mutex_unlock (& mutex); \
return; \
} while (0)

Definition at line 48 of file playlist-new.c.

Referenced by playback_entry_set_tuple(), playlist_delete_selected(), playlist_entry_set_selected(), playlist_load_state(), playlist_queue_insert(), playlist_reorder(), and playlist_save_state().

#define LOOKUP_PLAYLIST
#define LOOKUP_PLAYLIST_ENTRY
Value:
do { \
LOOKUP_PLAYLIST; \
if (! (entry = lookup_entry (playlist, entry_num))) \
LEAVE_RET_VOID; \
} while (0)

Definition at line 75 of file playlist-new.c.

Referenced by playlist_entry_set_selected(), playlist_queue_insert(), and playlist_set_position().

#define LOOKUP_PLAYLIST_ENTRY_RET (   ret)
Value:
do { \
LOOKUP_PLAYLIST_RET(ret); \
if (! (entry = lookup_entry (playlist, entry_num))) \
LEAVE_RET(ret); \
} while (0)

Definition at line 81 of file playlist-new.c.

Referenced by playlist_entry_get_filename(), playlist_entry_get_selected(), playlist_queue_find_entry(), and playlist_shift().

#define LOOKUP_PLAYLIST_RET (   ret)
#define SCAN_THREADS   2
#define STATE_FILE   "playlist-state"

Definition at line 43 of file playlist-new.c.

Referenced by playlist_load_state(), and playlist_save_state().

Typedef Documentation

typedef int(* CompareFunc)(const void *a, const void *b)

Definition at line 1572 of file playlist-new.c.

Enumeration Type Documentation

anonymous enum
Enumerator
RESUME_STOP 
RESUME_PLAY 
RESUME_PAUSE 

Definition at line 40 of file playlist-new.c.

anonymous enum
Enumerator
COMPARE_TYPE_FILENAME 
COMPARE_TYPE_TUPLE 
COMPARE_TYPE_TITLE 

Definition at line 1567 of file playlist-new.c.

Function Documentation

static void check_scan_complete ( Playlist p)
static

Definition at line 518 of file playlist-new.c.

Referenced by entry_find_to_scan(), and scanner().

static int compare_cb ( const void *  _a,
const void *  _b,
void *  _data 
)
static

Definition at line 1579 of file playlist-new.c.

Referenced by sort(), and sort_selected().

static bool_t entries_are_scanned ( Playlist playlist,
bool_t  selected 
)
static
static void entry_cancel_scan ( Entry entry)
static

Definition at line 239 of file playlist-new.c.

Referenced by entry_free(), and playback_entry_set_tuple().

static ScanItem* entry_find_to_scan ( void  )
static

Definition at line 542 of file playlist-new.c.

Referenced by scanner().

static void entry_free ( Entry entry)
static

Definition at line 288 of file playlist-new.c.

Referenced by playlist_delete_selected(), playlist_entry_delete(), and playlist_free().

static Entry* entry_new ( char *  filename,
Tuple *  tuple,
PluginHandle decoder 
)
static

Definition at line 264 of file playlist-new.c.

Referenced by playlist_entry_insert_batch_raw().

static void entry_queue_scan ( Playlist playlist,
Entry entry 
)
static

Definition at line 505 of file playlist-new.c.

Referenced by get_entry(), and get_playback_entry().

static bool_t entry_scan_is_queued ( Entry entry)
static

Definition at line 487 of file playlist-new.c.

Referenced by entry_find_to_scan(), and entry_queue_scan().

static void entry_set_failed ( Playlist playlist,
Entry entry 
)
static

Definition at line 233 of file playlist-new.c.

Referenced by scanner().

static void entry_set_tuple ( Playlist playlist,
Entry entry,
Tuple *  tuple 
)
static
static void entry_set_tuple_real ( Entry entry,
Tuple *  tuple 
)
static

Definition at line 162 of file playlist-new.c.

Referenced by entry_new(), and entry_set_tuple().

static Entry* get_entry ( int  playlist_num,
int  entry_num,
bool_t  need_decoder,
bool_t  need_tuple 
)
static
static Entry* get_playback_entry ( bool_t  need_decoder,
bool_t  need_tuple 
)
static
static void get_resume_state ( int state,
int time 
)
static

Definition at line 696 of file playlist-new.c.

Referenced by playlist_save_state(), and playlist_set_playing().

static Entry* lookup_entry ( Playlist playlist,
int  entry_num 
)
static

Definition at line 383 of file playlist-new.c.

Referenced by get_entry().

static Playlist* lookup_playlist ( int  playlist_num)
static

Definition at line 368 of file playlist-new.c.

Referenced by get_entry(), playlist_load_state(), and queue_update().

static int new_unique_id ( int  preferred)
static

Definition at line 303 of file playlist-new.c.

Referenced by playlist_new().

static void number_entries ( Playlist playlist,
int  at,
int  length 
)
static
static void number_playlists ( int  at,
int  length 
)
static

Definition at line 359 of file playlist-new.c.

Referenced by playlist_delete(), playlist_insert_with_id(), and playlist_reorder().

static bool_t parse_integer ( const char *  key,
int value 
)
static

Definition at line 2344 of file playlist-new.c.

Referenced by playlist_load_state().

static void parse_next ( FILE *  handle)
static

Definition at line 2325 of file playlist-new.c.

Referenced by playlist_load_state().

static char* parse_string ( const char *  key)
static

Definition at line 2349 of file playlist-new.c.

Referenced by playlist_load_state().

PluginHandle* playback_entry_get_decoder ( void  )

Definition at line 2202 of file playlist-new.c.

Referenced by playback_thread().

int playback_entry_get_end_time ( void  )

Definition at line 2269 of file playlist-new.c.

Referenced by playback_thread().

int playback_entry_get_length ( void  )

Definition at line 2235 of file playlist-new.c.

Referenced by playback_thread(), and update_from_playlist().

int playback_entry_get_position ( void  )

Definition at line 2192 of file playlist-new.c.

Referenced by update_from_playlist().

int playback_entry_get_start_time ( void  )

Definition at line 2259 of file playlist-new.c.

Referenced by playback_thread().

char* playback_entry_get_title ( void  )

Definition at line 2225 of file playlist-new.c.

Referenced by update_from_playlist().

Tuple* playback_entry_get_tuple ( void  )

Definition at line 2212 of file playlist-new.c.

Referenced by playback_thread().

void playback_entry_set_tuple ( Tuple *  tuple)

Definition at line 2245 of file playlist-new.c.

Referenced by set_tuple().

int playlist_by_unique_id ( int  id)

Definition at line 870 of file playlist-new.c.

Referenced by add_finish().

int playlist_count ( void  )
void playlist_delete ( int  playlist_num)

Definition at line 832 of file playlist-new.c.

void playlist_delete_selected ( int  playlist_num)
void playlist_end ( void  )

Definition at line 736 of file playlist-new.c.

Referenced by shut_down().

int playlist_entry_count ( int  playlist_num)
void playlist_entry_delete ( int  playlist_num,
int  at,
int  number 
)
void playlist_entry_describe ( int  playlist_num,
int  entry_num,
char **  title,
char **  artist,
char **  album,
bool_t  fast 
)

Definition at line 1233 of file playlist-new.c.

PluginHandle* playlist_entry_get_decoder ( int  playlist_num,
int  entry_num,
bool_t  fast 
)

Definition at line 1200 of file playlist-new.c.

char* playlist_entry_get_filename ( int  playlist_num,
int  entry_num 
)
int playlist_entry_get_length ( int  playlist_num,
int  entry_num,
bool_t  fast 
)

Definition at line 1250 of file playlist-new.c.

bool_t playlist_entry_get_selected ( int  playlist_num,
int  entry_num 
)
char* playlist_entry_get_title ( int  playlist_num,
int  entry_num,
bool_t  fast 
)

Definition at line 1223 of file playlist-new.c.

Tuple* playlist_entry_get_tuple ( int  playlist_num,
int  entry_num,
bool_t  fast 
)
void playlist_entry_insert_batch_raw ( int  playlist_num,
int  at,
Index *  filenames,
Index *  tuples,
Index *  decoders 
)

Definition at line 1095 of file playlist-new.c.

Referenced by add_finish(), and playlist_insert_playlist_raw().

void playlist_entry_set_selected ( int  playlist_num,
int  entry_num,
bool_t  selected 
)
static void playlist_free ( Playlist playlist)
static

Definition at line 344 of file playlist-new.c.

Referenced by playlist_delete(), and playlist_end().

int playlist_get_active ( void  )
int playlist_get_blank ( void  )

Definition at line 1034 of file playlist-new.c.

Referenced by playlist_get_temporary().

char* playlist_get_filename ( int  playlist_num)

Definition at line 894 of file playlist-new.c.

bool_t playlist_get_modified ( int  playlist_num)

Definition at line 941 of file playlist-new.c.

Referenced by save_playlists_real().

int playlist_get_playing ( void  )
int playlist_get_position ( int  playlist_num)
int64_t playlist_get_selected_length ( int  playlist_num)

Definition at line 1853 of file playlist-new.c.

int playlist_get_temporary ( void  )

Definition at line 1049 of file playlist-new.c.

Referenced by add_list().

char* playlist_get_title ( int  playlist_num)
int64_t playlist_get_total_length ( int  playlist_num)

Definition at line 1842 of file playlist-new.c.

int playlist_get_unique_id ( int  playlist_num)
void playlist_init ( void  )

Definition at line 716 of file playlist-new.c.

Referenced by init_two().

void playlist_insert ( int  at)

Definition at line 794 of file playlist-new.c.

Referenced by load_playlists_real(), and playlist_get_blank().

void playlist_insert_with_id ( int  at,
int  id 
)

Definition at line 780 of file playlist-new.c.

Referenced by load_playlists_real(), and playlist_insert().

void playlist_load_state ( void  )

Definition at line 2354 of file playlist-new.c.

Referenced by load_playlists().

static Playlist* playlist_new ( int  id)
static

Definition at line 316 of file playlist-new.c.

Referenced by playlist_delete(), and playlist_insert_with_id().

bool_t playlist_next_song ( int  playlist_num,
bool_t  repeat 
)
bool_t playlist_prev_song ( int  playlist_num)

Definition at line 2048 of file playlist-new.c.

Referenced by drct_pl_prev().

int playlist_queue_count ( int  playlist_num)
void playlist_queue_delete ( int  playlist_num,
int  at,
int  number 
)
void playlist_queue_delete_selected ( int  playlist_num)

Definition at line 1995 of file playlist-new.c.

int playlist_queue_find_entry ( int  playlist_num,
int  entry_num 
)
int playlist_queue_get_entry ( int  playlist_num,
int  at 
)

Definition at line 1927 of file playlist-new.c.

Referenced by audacious_rc_queue_get_list_pos().

void playlist_queue_insert ( int  playlist_num,
int  at,
int  entry_num 
)

Definition at line 1875 of file playlist-new.c.

Referenced by audacious_rc_playqueue_add().

void playlist_queue_insert_selected ( int  playlist_num,
int  at 
)

Definition at line 1895 of file playlist-new.c.

void playlist_randomize ( int  playlist_num)

Definition at line 1545 of file playlist-new.c.

void playlist_reformat_titles ( void  )

Definition at line 1741 of file playlist-new.c.

Referenced by leading_zero_cb(), on_titlestring_entry_changed(), and show_numbers_cb().

void playlist_reorder ( int  from,
int  to,
int  count 
)

Definition at line 799 of file playlist-new.c.

void playlist_rescan ( int  playlist_num)

Definition at line 1804 of file playlist-new.c.

void playlist_rescan_file ( const char *  filename)

Definition at line 1814 of file playlist-new.c.

Referenced by file_write_tuple().

static void playlist_rescan_real ( int  playlist_num,
bool_t  selected 
)
static

Definition at line 1782 of file playlist-new.c.

Referenced by playlist_rescan(), and playlist_rescan_selected().

void playlist_rescan_selected ( int  playlist_num)

Definition at line 1809 of file playlist-new.c.

void playlist_resume ( void  )

Definition at line 2430 of file playlist-new.c.

Referenced by do_commands().

void playlist_reverse ( int  playlist_num)

Definition at line 1523 of file playlist-new.c.

void playlist_save_state ( void  )

Definition at line 2279 of file playlist-new.c.

Referenced by save_playlists().

bool_t playlist_scan_in_progress ( int  playlist_num)

Definition at line 476 of file playlist-new.c.

void playlist_select_all ( int  playlist_num,
bool_t  selected 
)
int playlist_selected_count ( int  playlist_num)

Definition at line 1332 of file playlist-new.c.

void playlist_set_active ( int  playlist_num)

Definition at line 952 of file playlist-new.c.

Referenced by add_list(), and load_playlists_real().

void playlist_set_filename ( int  playlist_num,
const char *  filename 
)

Definition at line 880 of file playlist-new.c.

void playlist_set_modified ( int  playlist_num,
bool_t  modified 
)

Definition at line 930 of file playlist-new.c.

Referenced by load_playlists_real(), and save_playlists_real().

void playlist_set_playing ( int  playlist_num)

Definition at line 979 of file playlist-new.c.

Referenced by add_finish(), drct_pl_next(), drct_pl_prev(), and drct_play_playlist().

void playlist_set_position ( int  playlist_num,
int  entry_num 
)

Definition at line 1260 of file playlist-new.c.

Referenced by add_finish(), audacious_rc_jump(), and end_cb().

void playlist_set_title ( int  playlist_num,
const char *  title 
)

Definition at line 905 of file playlist-new.c.

Referenced by playlist_get_temporary(), and playlist_insert_playlist_raw().

int playlist_shift ( int  playlist_num,
int  entry_num,
int  distance 
)

Definition at line 1381 of file playlist-new.c.

void playlist_sort_by_filename ( int  playlist_num,
int(*)(const char *a, const char *b compare 
)
void playlist_sort_by_title ( int  playlist_num,
int(*)(const char *a, const char *b compare 
)

Definition at line 1686 of file playlist-new.c.

Referenced by playlist_sort_by_scheme().

void playlist_sort_by_tuple ( int  playlist_num,
int(*)(const Tuple *a, const Tuple *b compare 
)
void playlist_sort_selected_by_filename ( int  playlist_num,
int(*)(const char *a, const char *b compare 
)

Definition at line 1700 of file playlist-new.c.

Referenced by playlist_sort_selected_by_scheme().

void playlist_sort_selected_by_title ( int  playlist_num,
int(*)(const char *a, const char *b compare 
)

Definition at line 1727 of file playlist-new.c.

Referenced by playlist_sort_selected_by_scheme().

void playlist_sort_selected_by_tuple ( int  playlist_num,
int(*)(const Tuple *a, const Tuple *b compare 
)

Definition at line 1713 of file playlist-new.c.

Referenced by playlist_sort_selected_by_scheme().

void playlist_trigger_scan ( void  )

Definition at line 1767 of file playlist-new.c.

bool_t playlist_update_pending ( void  )

Definition at line 454 of file playlist-new.c.

int playlist_updated_range ( int  playlist_num,
int at,
int count 
)

Definition at line 461 of file playlist-new.c.

static void queue_update ( int  level,
int  list,
int  at,
int  count 
)
static
static void resume ( int  state,
int  time 
)
static

Definition at line 710 of file playlist-new.c.

Referenced by do_commands(), playlist_resume(), and playlist_set_playing().

static void scan_trigger ( void  )
static

Definition at line 645 of file playlist-new.c.

Referenced by playlist_trigger_scan(), and queue_update().

static void * scanner ( void *  unused)
static

Definition at line 581 of file playlist-new.c.

Referenced by playlist_init().

static void set_position ( Playlist playlist,
Entry entry,
bool_t  update_shuffle 
)
static
static bool_t shuffle_next ( Playlist playlist)
static

Definition at line 2078 of file playlist-new.c.

Referenced by playlist_next_song().

static bool_t shuffle_prev ( Playlist playlist)
static

Definition at line 2026 of file playlist-new.c.

Referenced by playlist_prev_song().

static void shuffle_reset ( Playlist playlist)
static

Definition at line 2123 of file playlist-new.c.

Referenced by playlist_next_song().

static void sort ( Playlist playlist,
CompareData data 
)
static
static void sort_selected ( Playlist playlist,
CompareData data 
)
static
static char* title_from_tuple ( Tuple *  tuple)
static

Definition at line 154 of file playlist-new.c.

Referenced by entry_set_tuple_real(), and playlist_reformat_titles().

static bool_t update ( void *  unused)
static

Definition at line 389 of file playlist-new.c.

Referenced by queue_update().

Variable Documentation

Playlist* active_playlist = NULL
static

Definition at line 133 of file playlist-new.c.

pthread_cond_t cond = PTHREAD_COND_INITIALIZER
static
const char* const default_title = N_("New Playlist")
static

Definition at line 121 of file playlist-new.c.

Referenced by playlist_get_blank(), and playlist_new().

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 124 of file playlist-new.c.

Referenced by get_entry(), get_playback_entry(), and scanner().

int next_unique_id = 1000
static

Definition at line 130 of file playlist-new.c.

Referenced by new_unique_id().

char parse_key[512]
static

Definition at line 2322 of file playlist-new.c.

char* parse_value
static

Definition at line 2323 of file playlist-new.c.

Playlist* playing_playlist = NULL
static

Definition at line 134 of file playlist-new.c.

Index* playlists = NULL
static
ScanItem* scan_items[SCAN_THREADS]
static

Definition at line 147 of file playlist-new.c.

int scan_playlist
static

Definition at line 145 of file playlist-new.c.

Referenced by entry_find_to_scan(), playlist_init(), and scan_trigger().

GQueue scan_queue = G_QUEUE_INIT
static
bool_t scan_quit
static

Definition at line 144 of file playlist-new.c.

Referenced by playlist_end(), playlist_init(), and scanner().

int scan_row
static

Definition at line 145 of file playlist-new.c.

Referenced by entry_find_to_scan(), playlist_init(), and scan_trigger().

pthread_t scan_threads[SCAN_THREADS]
static

Definition at line 143 of file playlist-new.c.

Referenced by playlist_end(), and playlist_init().

const char* const temp_title = N_("Now Playing")
static

Definition at line 122 of file playlist-new.c.

Referenced by playlist_get_temporary().

char* title_format
static

Definition at line 152 of file playlist-new.c.

Referenced by playlist_end(), playlist_reformat_titles(), and title_from_tuple().

GHashTable* unique_id_table = NULL
static
int update_level
static
int update_source = 0
static

Definition at line 136 of file playlist-new.c.

Referenced by playlist_end(), playlist_load_state(), queue_update(), and update().