2 * Copyright 2006 Timo Hirvonen
8 #include "track_info.h"
14 extern pthread_mutex_t pl_mutex
;
15 extern struct window
*pl_win
;
16 extern struct searchable
*pl_searchable
;
17 extern struct simple_track
*pl_cur_track
;
18 extern unsigned int pl_nr_tracks
;
19 extern unsigned int pl_total_time
;
20 extern unsigned int pl_nr_marked
;
21 extern const char **pl_sort_keys
;
25 /* set current track, these return track_info on success */
26 struct track_info
*pl_set_next(void);
27 struct track_info
*pl_set_prev(void);
28 struct track_info
*pl_set_selected(void);
30 void pl_add_track(struct track_info
*track_info
);
32 void pl_set_sort_keys(const char **keys
);
35 void pl_remove_sel(void);
36 void pl_toggle_mark(void);
37 void pl_move_after(void);
38 void pl_move_before(void);
39 void pl_sel_current(void);
42 void pl_reshuffle(void);
43 void pl_mark(const char *filter
);
45 void pl_invert_marks(void);
47 int pl_for_each_sel(int (*cb
)(void *data
, struct track_info
*ti
), void *data
, int reverse
);
48 int pl_for_each(int (*cb
)(void *data
, struct track_info
*ti
), void *data
);
50 int __pl_for_each_sel(int (*cb
)(void *data
, struct track_info
*ti
), void *data
, int reverse
);
52 #define pl_lock() cmus_mutex_lock(&pl_mutex)
53 #define pl_unlock() cmus_mutex_unlock(&pl_mutex)