mirror of https://github.com/mpv-player/mpv
Moved all the cdinfo specific from cddb to a standalone file(cdinfo.c), so
if no network, cdda can still be compiled. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7432 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
12ec7ec1b2
commit
38f81cf148
|
@ -630,124 +630,9 @@ cddb_resolve(char **xmcd_file) {
|
|||
|
||||
/*******************************************************************************************************************
|
||||
*
|
||||
* xmcd parser, cd info list
|
||||
* xmcd parser
|
||||
*
|
||||
*******************************************************************************************************************/
|
||||
|
||||
cd_info_t*
|
||||
cd_info_new() {
|
||||
cd_info_t *cd_info = NULL;
|
||||
|
||||
cd_info = (cd_info_t*)malloc(sizeof(cd_info_t));
|
||||
if( cd_info==NULL ) {
|
||||
printf("Memory allocation failed\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(cd_info, 0, sizeof(cd_info_t));
|
||||
|
||||
return cd_info;
|
||||
}
|
||||
|
||||
void
|
||||
cd_info_free(cd_info_t *cd_info) {
|
||||
cd_track_t *cd_track, *cd_track_next;
|
||||
int i;
|
||||
if( cd_info==NULL ) return;
|
||||
if( cd_info->artist!=NULL ) free(cd_info->artist);
|
||||
if( cd_info->album!=NULL ) free(cd_info->album);
|
||||
if( cd_info->genre!=NULL ) free(cd_info->genre);
|
||||
|
||||
cd_track_next = cd_info->first;
|
||||
while( cd_track_next!=NULL ) {
|
||||
cd_track = cd_track_next;
|
||||
cd_track_next = cd_track->next;
|
||||
if( cd_track->name!=NULL ) free(cd_track->name);
|
||||
free(cd_track);
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
cd_track_t *cd_track, current_track;
|
||||
|
||||
if( cd_info==NULL || track_name==NULL ) return NULL;
|
||||
|
||||
cd_track = (cd_track_t*)malloc(sizeof(cd_track_t));
|
||||
if( cd_track==NULL ) {
|
||||
printf("Memory allocation failed\n");
|
||||
return NULL;
|
||||
}
|
||||
memset(cd_track, 0, sizeof(cd_track_t));
|
||||
|
||||
cd_track->name = (char*)malloc(strlen(track_name)+1);
|
||||
if( cd_track->name==NULL ) {
|
||||
printf("Memory allocation failed\n");
|
||||
free(cd_track);
|
||||
return NULL;
|
||||
}
|
||||
strcpy(cd_track->name, track_name);
|
||||
cd_track->track_nb = track_nb;
|
||||
cd_track->min = min;
|
||||
cd_track->sec = sec;
|
||||
cd_track->msec = msec;
|
||||
cd_track->frame_begin = frame_begin;
|
||||
cd_track->frame_length = frame_length;
|
||||
|
||||
if( cd_info->first==NULL ) {
|
||||
cd_info->first = cd_track;
|
||||
}
|
||||
if( cd_info->last!=NULL ) {
|
||||
cd_info->last->next = cd_track;
|
||||
}
|
||||
|
||||
cd_track->prev = cd_info->last;
|
||||
|
||||
cd_info->last = cd_track;
|
||||
cd_info->current = cd_track;
|
||||
|
||||
cd_info->nb_tracks++;
|
||||
|
||||
return cd_track;
|
||||
}
|
||||
|
||||
cd_track_t*
|
||||
cd_info_get_track(cd_info_t *cd_info, unsigned int track_nb) {
|
||||
cd_track_t *cd_track=NULL;
|
||||
|
||||
if( cd_info==NULL ) return NULL;
|
||||
|
||||
cd_track = cd_info->first;
|
||||
while( cd_track!=NULL ) {
|
||||
if( cd_track->track_nb==track_nb ) {
|
||||
return cd_track;
|
||||
}
|
||||
cd_track = cd_track->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
cd_info_debug(cd_info_t *cd_info) {
|
||||
cd_track_t *current_track;
|
||||
printf("================ CD INFO === start =========\n");
|
||||
if( cd_info==NULL ) {
|
||||
printf("cd_info is NULL\n");
|
||||
return;
|
||||
}
|
||||
printf(" artist=[%s]\n", cd_info->artist);
|
||||
printf(" album=[%s]\n", cd_info->album);
|
||||
printf(" genre=[%s]\n", cd_info->genre);
|
||||
printf(" nb_tracks=%d\n", cd_info->nb_tracks);
|
||||
printf(" length= %2d:%02d.%02d\n", cd_info->min, cd_info->sec, cd_info->msec);
|
||||
current_track = cd_info->first;
|
||||
while( current_track!=NULL ) {
|
||||
printf(" #%2d %2d:%02d.%02d @ %7ld\t[%s] \n", current_track->track_nb, current_track->min, current_track->sec, current_track->msec, current_track->frame_begin, current_track->name);
|
||||
current_track = current_track->next;
|
||||
}
|
||||
printf("================ CD INFO === end =========\n");
|
||||
}
|
||||
|
||||
char*
|
||||
xmcd_parse_dtitle(cd_info_t *cd_info, char *line) {
|
||||
char *ptr, *album;
|
||||
|
|
Loading…
Reference in New Issue