1
/********************************************************************
3
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4
* USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
5
* THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *
6
* PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
8
* THE Ogg123 SOURCE CODE IS (C) COPYRIGHT 2000-2002 *
9
* by Kenneth C. Arnold <ogg@arnoldnet.net> AND OTHER CONTRIBUTORS *
10
* http://www.xiph.org/ *
12
********************************************************************
14
last mod: $Id: playlist.h,v 1.1 2002/07/06 03:23:13 volsung Exp $
16
********************************************************************/
18
#ifndef __PLAYLIST_H__
19
#define __PLAYLIST_H__
21
typedef struct playlist_element_t {
23
struct playlist_element_t *next;
26
/* Actual playlist structure */
27
typedef struct playlist_t {
29
/* Linked list with empty head node */
30
playlist_element_t *head;
32
/* Keep track of this for speedy appends */
33
playlist_element_t *last;
36
playlist_t *playlist_create();
37
void playlist_destroy(playlist_t *list);
39
/* All of the playlist_append_* functions return
40
1 if append was successful
41
0 if failure (either directory could not be accessed or playlist on disk
46
/* Add this filename to the playlist. Filename will be strdup()'ed. Note
47
that this function will never fail. */
48
int playlist_append_file(playlist_t *list, char *filename);
50
/* Recursively adds files from the directory and subdirectories */
51
int playlist_append_directory(playlist_t *list, char *dirname);
53
/* Opens a file containing filenames, one per line, and adds them to the
55
int playlist_append_from_file(playlist_t *list, char *playlist_filename);
57
/* Return the number of items in the playlist */
58
int playlist_length(playlist_t *list);
60
/* Convert the playlist to an array of strings. Strings are deep copied.
61
Size will be set to the number of elements in the array. */
62
char **playlist_to_array(playlist_t *list, int *size);
64
/* Deallocate array and all contained strings created by playlist_to_array. */
65
void playlist_array_destroy(char **array, int size);
68
#endif /* __PLAYLIST_H__ */