Mercurial > audlegacy
diff audacious/playlist.h @ 2080:df6cf9cb531e trunk
[svn] - this commit breaks the API. I'm not done here, but hopefully the new API is
stable enough now that the other chunks of the code can be converted by
Chainsaw ;)
author | nenolod |
---|---|
date | Mon, 11 Dec 2006 03:25:21 -0800 |
parents | 6ce74d8d2dee |
children | 0d37e05dbad3 |
line wrap: on
line diff
--- a/audacious/playlist.h Mon Dec 11 02:17:12 2006 -0800 +++ b/audacious/playlist.h Mon Dec 11 03:25:21 2006 -0800 @@ -65,121 +65,132 @@ #define PLAYLIST(x) ((Playlist *)(x)) typedef struct _Playlist { - gchar *title; - gchar *filename; - gint length; - GList *entries; - GList *queue; - GList *shuffle; + gchar *title; + gchar *filename; + gint length; + GList *entries; + GList *queue; + GList *shuffle; + PlaylistEntry *position; /* bleah */ } Playlist; +typedef enum { + PLAYLIST_ASSOC_LINEAR, + PLAYLIST_ASSOC_QUEUE, + PLAYLIST_ASSOC_SHUFFLE +} PlaylistAssociation; + PlaylistEntry *playlist_entry_new(const gchar * filename, const gchar * title, const gint len, InputPlugin * dec); void playlist_entry_free(PlaylistEntry * entry); -void playlist_init(void); -void playlist_clear(void); -void playlist_delete(gboolean crop); +void playlist_entry_associate(Playlist * playlist, PlaylistEntry * entry, + PlaylistAssociation assoc); + +void playlist_entry_associate_pos(Playlist * playlist, PlaylistEntry * entry, + PlaylistAssociation assoc, gint pos); -gboolean playlist_add(const gchar * filename); -gboolean playlist_ins(const gchar * filename, gint pos); -guint playlist_add_dir(const gchar * dir); -guint playlist_ins_dir(const gchar * dir, gint pos, gboolean background); -guint playlist_add_url(const gchar * url); -guint playlist_ins_url(const gchar * string, gint pos); +void playlist_init(void); +void playlist_clear(Playlist *playlist); +void playlist_delete(Playlist *playlist, gboolean crop); -void playlist_play(void); +gboolean playlist_add(Playlist *playlist, const gchar * filename); +gboolean playlist_ins(Playlist *playlist, const gchar * filename, gint pos); +guint playlist_add_dir(Playlist *playlist, const gchar * dir); +guint playlist_ins_dir(Playlist *playlist, const gchar * dir, gint pos, gboolean background); +guint playlist_add_url(Playlist *playlist, const gchar * url); +guint playlist_ins_url(Playlist *playlist, const gchar * string, gint pos); + void playlist_set_info(const gchar * title, gint length, gint rate, gint freq, gint nch); -void playlist_check_pos_current(void); -void playlist_next(void); -void playlist_prev(void); -void playlist_queue(void); -void playlist_queue_position(guint pos); -void playlist_queue_remove(guint pos); -gint playlist_queue_get_length(void); -gboolean playlist_is_position_queued(guint pos); -void playlist_clear_queue(void); -gint playlist_get_queue_position(PlaylistEntry * entry); -gint playlist_get_queue_position_number(guint pos); -gint playlist_get_queue_qposition_number(guint pos); -void playlist_eof_reached(void); -void playlist_set_position(guint pos); -gint playlist_get_length(void); -gint playlist_get_length_nolock(void); -gint playlist_get_position(void); -gint playlist_get_position_nolock(void); +void playlist_check_pos_current(Playlist *playlist); +void playlist_next(Playlist *playlist); +void playlist_prev(Playlist *playlist); +void playlist_queue(Playlist *playlist); +void playlist_queue_position(Playlist *playlist, guint pos); +void playlist_queue_remove(Playlist *playlist, guint pos); +gint playlist_queue_get_length(Playlist *playlist); +gboolean playlist_is_position_queued(Playlist *playlist, guint pos); +void playlist_clear_queue(Playlist *playlist); +gint playlist_get_queue_position(Playlist *playlist, PlaylistEntry * entry); +gint playlist_get_queue_position_number(Playlist *playlist, guint pos); +gint playlist_get_queue_qposition_number(Playlist *playlist, guint pos); +void playlist_eof_reached(Playlist *playlist); +void playlist_set_position(Playlist *playlist, guint pos); +gint playlist_get_length(Playlist *playlist); +gint playlist_get_length_nolock(Playlist *playlist); +gint playlist_get_position(Playlist *playlist); +gint playlist_get_position_nolock(Playlist *playlist); gchar *playlist_get_info_text(void); -gint playlist_get_current_length(void); +gint playlist_get_current_length(Playlist *playlist); -gboolean playlist_save(const gchar * filename); -gboolean playlist_load(const gchar * filename); +gboolean playlist_save(Playlist *playlist, const gchar * filename); +gboolean playlist_load(Playlist *playlist, const gchar * filename); +/* returns the current selected *linear* playlist */ GList *playlist_get(void); void playlist_start_get_info_thread(void); void playlist_stop_get_info_thread(); void playlist_start_get_info_scan(void); -void playlist_sort(PlaylistSortType type); -void playlist_sort_selected(PlaylistSortType type); +void playlist_sort(Playlist *playlist, PlaylistSortType type); +void playlist_sort_selected(Playlist *playlist, PlaylistSortType type); -void playlist_reverse(void); -void playlist_random(void); -void playlist_remove_duplicates(PlaylistDupsType); -void playlist_remove_dead_files(void); +void playlist_reverse(Playlist *playlist); +void playlist_random(Playlist *playlist); +void playlist_remove_duplicates(Playlist *playlist, PlaylistDupsType); +void playlist_remove_dead_files(Playlist *playlist); -void playlist_fileinfo_current(void); -void playlist_fileinfo(guint pos); +void playlist_fileinfo_current(Playlist *playlist); +void playlist_fileinfo(Playlist *playlist, guint pos); -void playlist_delete_index(guint pos); -void playlist_delete_filenames(GList * filenames); +void playlist_delete_index(Playlist *playlist, guint pos); +void playlist_delete_filenames(Playlist *playlist, GList * filenames); -PlaylistEntry *playlist_get_entry_to_play(); +PlaylistEntry *playlist_get_entry_to_play(Playlist *playlist); /* XXX this is for reverse compatibility --nenolod */ -const gchar *playlist_get_filename_to_play(); +const gchar *playlist_get_filename_to_play(Playlist *playlist); -gchar *playlist_get_filename(guint pos); -gchar *playlist_get_songtitle(guint pos); -TitleInput *playlist_get_tuple(guint pos); -gint playlist_get_songtime(guint pos); +gchar *playlist_get_filename(Playlist *playlist, guint pos); +gchar *playlist_get_songtitle(Playlist *playlist, guint pos); +TitleInput *playlist_get_tuple(Playlist *playlist, guint pos); +gint playlist_get_songtime(Playlist *playlist, guint pos); -GList *playlist_get_selected(void); -GList *playlist_get_selected_list(void); -int playlist_get_num_selected(void); +GList *playlist_get_selected(Playlist *playlist); +GList *playlist_get_selected_list(Playlist *playlist); +int playlist_get_num_selected(Playlist *playlist); -void playlist_get_total_time(gulong * total_time, gulong * selection_time, +void playlist_get_total_time(Playlist *playlist, gulong * total_time, gulong * selection_time, gboolean * total_more, gboolean * selection_more); -void playlist_select_all(gboolean set); -void playlist_select_range(gint min, gint max, gboolean sel); -void playlist_select_invert_all(void); -gboolean playlist_select_invert(guint pos); +void playlist_select_all(Playlist *playlist, gboolean set); +void playlist_select_range(Playlist *playlist, gint min, gint max, gboolean sel); +void playlist_select_invert_all(Playlist *playlist); +gboolean playlist_select_invert(Playlist *playlist, guint pos); gboolean playlist_read_info_selection(void); void playlist_read_info(guint pos); void playlist_set_shuffle(gboolean shuffle); -void playlist_clear_selected(void); +void playlist_clear_selected(Playlist *playlist); -GList *get_playlist_nth(guint); -gboolean playlist_set_current_name(const gchar * filename); -const gchar *playlist_get_current_name(void); -void playlist_new(void); +GList *get_playlist_nth(Playlist *playlist, guint); +gboolean playlist_set_current_name(Playlist *playlist, const gchar * filename); +const gchar *playlist_get_current_name(Playlist *playlist); +Playlist *playlist_new(void); PlaylistFormat playlist_format_get_from_name(const gchar * filename); gboolean is_playlist_name(const gchar * filename); -#define PLAYLIST_LOCK() G_LOCK(playlist) -#define PLAYLIST_UNLOCK() G_UNLOCK(playlist) +#define PLAYLIST_LOCK() G_LOCK(playlists) +#define PLAYLIST_UNLOCK() G_UNLOCK(playlists) -G_LOCK_EXTERN(playlist); - -extern PlaylistEntry *playlist_position; +G_LOCK_EXTERN(playlists); extern void playlist_load_ins_file(const gchar * filename, const gchar * playlist_name, gint pos, @@ -189,6 +200,8 @@ const gchar * playlist_name, gint pos, TitleInput *tuple); +Playlist *playlist_get_active(void); + G_END_DECLS #endif