00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef CDDB_DISC_H
00023 #define CDDB_DISC_H 1
00024
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028
00029
00030 #include <cddb/cddb_track.h>
00031
00032
00036 #define FRAMES_PER_SECOND 75
00037
00041 #define FRAMES_TO_SECONDS(f) ((f) / FRAMES_PER_SECOND)
00042
00046 #define SECONDS_TO_FRAMES(s) ((s) * FRAMES_PER_SECOND)
00047
00051 typedef enum {
00052 CDDB_CAT_DATA = 0,
00053 CDDB_CAT_FOLK,
00054 CDDB_CAT_JAZZ,
00055 CDDB_CAT_MISC,
00057 CDDB_CAT_ROCK,
00058 CDDB_CAT_COUNTRY,
00059 CDDB_CAT_BLUES,
00060 CDDB_CAT_NEWAGE,
00061 CDDB_CAT_REGGAE,
00062 CDDB_CAT_CLASSICAL,
00063 CDDB_CAT_SOUNDTRACK,
00064 CDDB_CAT_INVALID,
00065 CDDB_CAT_LAST
00066 } cddb_cat_t;
00067
00071 extern const char *CDDB_CATEGORY[CDDB_CAT_LAST];
00072
00077 typedef struct cddb_disc_s cddb_disc_t;
00078
00079
00080
00081
00082
00088 cddb_disc_t *cddb_disc_new(void);
00089
00096 void cddb_disc_destroy(cddb_disc_t *disc);
00097
00103 cddb_disc_t *cddb_disc_clone(const cddb_disc_t *disc);
00104
00105
00106
00107
00108
00116 void cddb_disc_add_track(cddb_disc_t *disc, cddb_track_t *track);
00117
00125 cddb_track_t *cddb_disc_get_track(const cddb_disc_t *disc, int track_no);
00126
00137 cddb_track_t *cddb_disc_get_track_first(cddb_disc_t *disc);
00138
00149 cddb_track_t *cddb_disc_get_track_next(cddb_disc_t *disc);
00150
00151
00152
00153
00154
00161 unsigned int cddb_disc_get_discid(const cddb_disc_t *disc);
00162
00174 void cddb_disc_set_discid(cddb_disc_t *disc, unsigned int id);
00175
00191 cddb_cat_t cddb_disc_get_category(const cddb_disc_t *disc);
00192
00205 void cddb_disc_set_category(cddb_disc_t *disc, cddb_cat_t cat);
00206
00220 const char *cddb_disc_get_category_str(cddb_disc_t *disc);
00221
00234 void cddb_disc_set_category_str(cddb_disc_t *disc, const char *cat);
00235
00244 const char *cddb_disc_get_genre(const cddb_disc_t *disc);
00245
00257 void cddb_disc_set_genre(cddb_disc_t *disc, const char *genre);
00258
00266 unsigned int cddb_disc_get_length(const cddb_disc_t *disc);
00267
00274 void cddb_disc_set_length(cddb_disc_t *disc, unsigned int l);
00275
00283 unsigned int cddb_disc_get_year(const cddb_disc_t *disc);
00284
00291 void cddb_disc_set_year(cddb_disc_t *disc, unsigned int y);
00292
00300 int cddb_disc_get_track_count(const cddb_disc_t *disc);
00301
00309 const char *cddb_disc_get_title(const cddb_disc_t *disc);
00310
00320 void cddb_disc_set_title(cddb_disc_t *disc, const char *title);
00321
00330 void cddb_disc_append_title(cddb_disc_t *disc, const char *title);
00331
00339 const char *cddb_disc_get_artist(const cddb_disc_t *disc);
00340
00350 void cddb_disc_set_artist(cddb_disc_t *disc, const char *artist);
00351
00360 void cddb_disc_append_artist(cddb_disc_t *disc, const char *artist);
00361
00369 const char *cddb_disc_get_ext_data(const cddb_disc_t *disc);
00370
00381 void cddb_disc_set_ext_data(cddb_disc_t *disc, const char *ext_data);
00382
00392 void cddb_disc_append_ext_data(cddb_disc_t *disc, const char *ext_data);
00393
00394
00395
00396
00397
00408 void cddb_disc_copy(cddb_disc_t *dst, cddb_disc_t *src);
00409
00420 int cddb_disc_calc_discid(cddb_disc_t *disc);
00421
00428 void cddb_disc_print(cddb_disc_t *disc);
00429
00430
00431 #ifdef __cplusplus
00432 }
00433 #endif
00434
00435 #endif