Factorise vbi_decode().
[mplayer/glamo.git] / stream / cdd.h
blob97c039b3d0e0a91c14e05e7c3d201383c6fff420
1 #ifndef MPLAYER_CDD_H
2 #define MPLAYER_CDD_H
4 #include "config.h"
5 #ifndef CONFIG_LIBCDIO
6 #include <cdda_interface.h>
7 #include <cdda_paranoia.h>
8 #else
9 #include <cdio/cdda.h>
10 #include <cdio/paranoia.h>
11 #endif
13 typedef struct {
14 char cddb_hello[1024];
15 unsigned long disc_id;
16 unsigned int tracks;
17 char *cache_dir;
18 char *freedb_server;
19 int freedb_proto_level;
20 int anonymous;
21 char category[100];
22 char *xmcd_file;
23 size_t xmcd_file_size;
24 void *user_data;
25 } cddb_data_t;
27 typedef struct {
28 unsigned int min, sec, frame;
29 } cd_toc_t;
31 typedef struct cd_track {
32 char *name;
33 unsigned int track_nb;
34 unsigned int min;
35 unsigned int sec;
36 unsigned int msec;
37 unsigned long frame_begin;
38 unsigned long frame_length;
39 struct cd_track *prev;
40 struct cd_track *next;
41 } cd_track_t;
43 typedef struct {
44 char *artist;
45 char *album;
46 char *genre;
47 unsigned int nb_tracks;
48 unsigned int min;
49 unsigned int sec;
50 unsigned msec;
51 cd_track_t *first;
52 cd_track_t *last;
53 cd_track_t *current;
54 } cd_info_t;
56 typedef struct {
57 #ifndef CONFIG_LIBCDIO
58 cdrom_drive* cd;
59 cdrom_paranoia* cdp;
60 #else
61 cdrom_drive_t* cd;
62 cdrom_paranoia_t* cdp;
63 #endif
64 int sector;
65 int start_sector;
66 int end_sector;
67 cd_info_t *cd_info;
68 } cdda_priv;
70 cd_info_t* cd_info_new();
71 void cd_info_free(cd_info_t *cd_info);
72 cd_track_t* cd_info_add_track(cd_info_t *cd_info, char *track_name, unsigned int track_nb, unsigned int min, unsigned int sec, unsigned int msec, unsigned long frame_begin, unsigned long frame_length);
73 cd_track_t* cd_info_get_track(cd_info_t *cd_info, unsigned int track_nb);
75 void cd_info_debug(cd_info_t *cd_info);
77 #endif /* MPLAYER_CDD_H */