- if (p_cdda->psz_mcn) {
- input_Control( p_cdda->p_input, INPUT_ADD_INFO,
- _("Disc"), _("Media Catalog Number (MCN)"), "%s",
- p_cdda->psz_mcn );
-
- input_Control( p_cdda->p_input, INPUT_ADD_INFO,
- _("Disc"), _("Tracks"), "%d", p_cdda->i_tracks );
- }
-
+ if (p_cdda->psz_mcn)
+ {
+ input_Control( p_cdda->p_input, INPUT_ADD_INFO,
+ _("Disc"), _("Media Catalog Number (MCN)"), "%s",
+ p_cdda->psz_mcn );
+ input_Control( p_cdda->p_input, INPUT_ADD_INFO,
+ _("Disc"), _("Tracks"), "%d", p_cdda->i_tracks );
+ }
- add_cddb_disc_info_str("Artist (CDDB)", artist);
- if ( CDDB_CAT_INVALID != p_cdda->cddb.disc->category )
- add_info_str("Disc", "Category (CDDB)",
- CDDB_CATEGORY[p_cdda->cddb.disc->category]);
- add_cddb_disc_info_val("Disc ID (CDDB)", "%x", discid);
- add_cddb_disc_info_str("Extended Data (CDDB)", ext_data);
- add_cddb_disc_info_str("Genre (CDDB)", genre);
- add_cddb_disc_info_str("Title (CDDB)", title);
- if ( 0 != p_cdda->cddb.disc->year )
- add_cddb_disc_info_val("Year (CDDB)", "%d", year);
+ add_cddb_disc_info_str("Artist (CDDB)", artist);
+ if ( CDDB_CAT_INVALID != cddb_disc_get_category(p_cdda->cddb.disc) )
+ add_info_str("Disc", "Category (CDDB)",
+ CDDB_CATEGORY[cddb_disc_get_category(p_cdda->cddb.disc)]);
+ add_cddb_disc_info_val("Disc ID (CDDB)", "%x", discid);
+ add_cddb_disc_info_str("Extended Data (CDDB)", ext_data);
+ add_cddb_disc_info_str("Genre (CDDB)", genre);
+ add_cddb_disc_info_str("Title (CDDB)", title);
+ if ( 0 != cddb_disc_get_year(p_cdda->cddb.disc) )
+ add_cddb_disc_info_val("Year (CDDB)", "%d", year);
- for( i = 0 ; i < p_cdda->i_tracks ; i++ )
- {
- char psz_track[TITLE_MAX];
- const track_t i_track = i_first_track + i;
- unsigned int i_track_frames =
- cdio_get_track_lsn(p_cdda->p_cdio, i_track+1) -
- cdio_get_track_lsn(p_cdda->p_cdio, i_track);
-
- mtime_t i_duration = i_track_frames / CDIO_CD_FRAMES_PER_SEC;
- char *psz_mrl = CDDAFormatMRL( p_access, i_track );
-
- snprintf(psz_track, TITLE_MAX, "%s %02d", _("Track"), i_track);
-
- input_Control( p_cdda->p_input, INPUT_ADD_INFO, psz_track,
- _("Duration"), "%s",
- secstotimestr( psz_buffer, i_duration ) );
-
- input_Control( p_cdda->p_input, INPUT_ADD_INFO, psz_track,
- _("MRL"), "%s", psz_mrl );
- free(psz_mrl);
-
- if (p_cdda->p_cdtext[i_track])
- {
- add_cdtext_info_str( psz_track, "Arranger (CD-Text)",
- i_track, CDTEXT_ARRANGER);
- add_cdtext_info_str( psz_track, "Composer (CD-Text)",
- i_track, CDTEXT_COMPOSER);
- add_cdtext_info_str( psz_track, "Disc ID (CD-Text)",
- i_track, CDTEXT_DISCID);
- add_cdtext_info_str( psz_track, "Genre (CD-Text)",
- i_track, CDTEXT_GENRE);
- add_cdtext_info_str( psz_track, "Message (CD-Text)",
- i_track, CDTEXT_MESSAGE);
- add_cdtext_info_str( psz_track, "Performer (CD-Text)",
- i_track, CDTEXT_PERFORMER);
- add_cdtext_info_str( psz_track, "Songwriter (CD-Text)",
- i_track, CDTEXT_SONGWRITER);
- add_cdtext_info_str( psz_track, "Title (CD-Text)",
- i_track, CDTEXT_TITLE);
- }
-
+ for( i = 0 ; i < p_cdda->i_tracks ; i++ )
+ {
+ char psz_track[TITLE_MAX];
+ const track_t i_track = i_first_track + i;
+ unsigned int i_track_frames =
+ cdio_get_track_lsn(p_cdda->p_cdio, i_track+1) -
+ cdio_get_track_lsn(p_cdda->p_cdio, i_track);
+
+ mtime_t i_duration = i_track_frames / CDIO_CD_FRAMES_PER_SEC;
+ char *psz_mrl = CDDAFormatMRL( p_access, i_track );
+
+ snprintf(psz_track, TITLE_MAX, "%s %02d", _("Track"), i_track);
+
+ input_Control( p_cdda->p_input, INPUT_ADD_INFO, psz_track,
+ _("Duration"), "%s",
+ secstotimestr( psz_buffer, i_duration ) );
+
+ input_Control( p_cdda->p_input, INPUT_ADD_INFO, psz_track,
+ _("MRL"), "%s", psz_mrl );
+ free(psz_mrl);
+
+ if (p_cdda->p_cdtext[i_track])
+ {
+ add_cdtext_info_str( psz_track, "Arranger (CD-Text)",
+ i_track, CDTEXT_ARRANGER);
+ add_cdtext_info_str( psz_track, "Composer (CD-Text)",
+ i_track, CDTEXT_COMPOSER);
+ add_cdtext_info_str( psz_track, "Disc ID (CD-Text)",
+ i_track, CDTEXT_DISCID);
+ add_cdtext_info_str( psz_track, "Genre (CD-Text)",
+ i_track, CDTEXT_GENRE);
+ add_cdtext_info_str( psz_track, "Message (CD-Text)",
+ i_track, CDTEXT_MESSAGE);
+ add_cdtext_info_str( psz_track, "Performer (CD-Text)",
+ i_track, CDTEXT_PERFORMER);
+ add_cdtext_info_str( psz_track, "Songwriter (CD-Text)",
+ i_track, CDTEXT_SONGWRITER);
+ add_cdtext_info_str( psz_track, "Title (CD-Text)",
+ i_track, CDTEXT_TITLE);
+ }
+
- if (p_cdda->b_cddb_enabled)
- {
- cddb_track_t *t=cddb_disc_get_track(p_cdda->cddb.disc, i);
- if (t != NULL)
- {
- add_info_str(psz_track, "Artist (CDDB)", t->artist);
- add_info_str(psz_track, "Title (CDDB)", t->title);
- add_info_str(psz_track, "Extended Data (CDDB)",
- t->ext_data);
- }
- }
+ if (p_cdda->b_cddb_enabled)
+ {
+ cddb_track_t *t=cddb_disc_get_track(p_cdda->cddb.disc, i);
+ if (t != NULL)
+ {
+ add_info_str(psz_track, "Artist (CDDB)",
+ cddb_track_get_artist(t));
+ add_info_str(psz_track, "Title (CDDB)",
+ cddb_track_get_title(t));
+ add_info_str(psz_track, "Extended Data (CDDB)",
+ cddb_track_get_ext_data(t));
+ }
+ }
- }
-
- /* Above we should have set psz_meta_title and psz_meta_artist
- to CDDB or CD-Text values or the default value depending on
- availablity and user preferences.
-
- So now add the title and artist to VLC's meta, and the name
- as shown in the status bar and playlist entry.
-
- For playlist mode, the meta title is what's seen at the
- bottom and in the playlist. For nav-mode playing, it is
- done by input_control. I don't understand why they do
- different things. In either case, we may have customized to
- put in the track name.
- */
- if ( CDIO_INVALID_TRACK != i_track )
- {
- char *psz_name = CDDAFormatTitle( p_access, i_track ) ;
- if ( !p_cdda->b_nav_mode ) {
- add_meta_val( VLC_META_TITLE, psz_name );
- } else
- {
- input_Control( p_cdda->p_input, INPUT_SET_NAME, psz_name );
- free(psz_name);
- }
- if (psz_meta_artist)
- add_meta_val( VLC_META_ARTIST, psz_meta_artist );
- }
-
+ }
+
+ /* Above we should have set psz_meta_title and psz_meta_artist
+ to CDDB or CD-Text values or the default value depending on
+ availablity and user preferences.
+
+ So now add the title and artist to VLC's meta, and the name
+ as shown in the status bar and playlist entry.
+
+ For playlist mode, the meta title is what's seen at the
+ bottom and in the playlist. For nav-mode playing, it is
+ done by input_control. I don't understand why they do
+ different things. In either case, we may have customized to
+ put in the track name.
+ */
+ if ( CDIO_INVALID_TRACK != i_track )
+ {
+ char *psz_name = CDDAFormatTitle( p_access, i_track ) ;
+ if ( !p_cdda->b_nav_mode ) {
+ add_meta_val( vlc_meta_Title, psz_name );
+ } else
+ {
+ input_Control( p_cdda->p_input, INPUT_SET_NAME, psz_name );
+ free(psz_name);
+ }
+ if (psz_meta_artist)
+ add_meta_val( vlc_meta_Artist, psz_meta_artist );
+ }
- case 'p':
- if ( CDIO_INVALID_TRACK == i_track ) break;
- if (p_cdda->p_cdtext[i_track]
- && p_cdda->p_cdtext[i_track]->field[CDTEXT_PERFORMER])
- psz = p_cdda->p_cdtext[i_track]->field[CDTEXT_PERFORMER];
- if (want_cddb_info(p_cdda, psz))
- {
- cddb_track_t *t=cddb_disc_get_track(p_cdda->cddb.disc,
- i_track-1);
- if (t != NULL && t->artist != NULL)
- psz = t->artist;
- }
- goto format_str;
- case 'e':
- if ( CDIO_INVALID_TRACK == i_track ) break;
- if (p_cdda->p_cdtext[i_track]
- && p_cdda->p_cdtext[i_track]->field[CDTEXT_MESSAGE])
- psz = p_cdda->p_cdtext[i_track]->field[CDTEXT_MESSAGE];
- if (want_cddb_info(p_cdda, psz))
+ case 'p':
+ if ( CDIO_INVALID_TRACK == i_track ) break;
+ if (p_cdda->p_cdtext[i_track]
+ && p_cdda->p_cdtext[i_track]->field[CDTEXT_PERFORMER])
+ psz = p_cdda->p_cdtext[i_track]->field[CDTEXT_PERFORMER];
+ if (want_cddb_info(p_cdda, psz))
-int CDDAAddMetaToItem( access_t *p_access, cdda_data_t *p_cdda,
- playlist_item_t *p_item, int i_track,
- vlc_bool_t b_single )
-{
- add_playlist_track_info_str("Source", p_cdda->psz_source);
- vlc_input_item_AddInfo( &p_item->input, _("Track"), _("Track Number"),
- "%d", i_track );
-
- if (p_cdda->p_cdtext[i_track])
- {
- const cdtext_t *p = p_cdda->p_cdtext[i_track];
- add_playlist_track_info_str("Arranger (CD-Text)",
- p->field[CDTEXT_ARRANGER]);
- add_playlist_track_info_str("Composer (CD-Text)",
- p->field[CDTEXT_COMPOSER]);
- add_playlist_track_info_str("Genre (CD-Text)",
- p->field[CDTEXT_GENRE]);
- add_playlist_track_info_str("Message (CD-Text)",
- p->field[CDTEXT_MESSAGE]);
- add_playlist_track_info_str("Performer (CD-Text)",
- p->field[CDTEXT_PERFORMER]);
- add_playlist_track_info_str("Songwriter (CD-Text)",
- p->field[CDTEXT_SONGWRITER]);
- add_playlist_track_info_str("Title (CD-Text)",
- p->field[CDTEXT_TITLE]);
- }
-
-#ifdef HAVE_LIBCDDB
- if (p_cdda->b_cddb_enabled)
- {
- cddb_track_t *t=cddb_disc_get_track(p_cdda->cddb.disc,
- i_track-p_cdda->i_first_track);
-
- if (t)
- {
- if (t->artist)
- add_playlist_track_info_str("Artist (CDDB)",
- t->artist);
- if (t->title)
- add_playlist_track_info_str("Title (CDDB)",
- t->title);
- if (t->ext_data)
- add_playlist_track_info_str("Extended information (CDDB)",
- t->ext_data);
- }
- }
-#endif /*HAVE_LIBCDDB*/
-
- return VLC_SUCCESS;
-}
-
-/*
- Fixes up playlist.