/*****************************************************************************
* info.c : CD digital audio input information routines
*****************************************************************************
- * Copyright (C) 2004 VideoLAN
+ * Copyright (C) 2004, 2005 the VideoLAN team
* $Id: info.c 8845 2004-09-29 09:00:41Z rocky $
*
* Authors: Rocky Bernstein <rocky@panix.com>
{
track_t i_track = p_cdda->i_first_track + i;
cddb_track_t *t = cddb_track_new();
- t->frame_offset = cdio_get_track_lba(p_cdio, i_track);
+ cddb_track_set_frame_offset(t,
+ cdio_get_track_lba(p_cdio, i_track));
cddb_disc_add_track(p_cdda->cddb.disc, t);
}
- p_cdda->cddb.disc->length =
- cdio_get_track_lba(p_cdio, CDIO_CDROM_LEADOUT_TRACK)
- / CDIO_CD_FRAMES_PER_SEC;
+ cddb_disc_set_length(p_cdda->cddb.disc,
+ cdio_get_track_lba(p_cdio, CDIO_CDROM_LEADOUT_TRACK)
+ / CDIO_CD_FRAMES_PER_SEC);
if (!cddb_disc_calc_discid(p_cdda->cddb.disc))
{
if ( ! p_cdda ) return;
+ dbg_print( (INPUT_DBG_CALL), "p_cdda->i_tracks %d",
+ p_cdda->i_tracks );
+
p_cdda->psz_mcn = cdio_get_mcn(p_cdda->p_cdio);
p_cdda->p_meta = vlc_meta_New();
if ( ! p_cdda ) return;
+ dbg_print( (INPUT_DBG_CALL), "i_track %d", i_track );
+
#ifdef HAVE_LIBCDDB
/* Set up for Meta and name for CDDB access. */
return VLC_SUCCESS;
}
+/*
+ Fixes up playlist.
+*/
int
CDDAFixupPlaylist( access_t *p_access, cdda_data_t *p_cdda,
vlc_bool_t b_single_track )
CDDAMetaInfo( p_access, p_cdda->i_track );
if (p_playlist) {
+
p_item = playlist_LockItemGetByInput( p_playlist,
((input_thread_t *)p_access->p_parent)->input.p_item );
}
}
- if( b_single_track )
+ if( b_single_track && !p_cdda->b_nav_mode )
{
/*May fill out more information when the playlist user interface becomes
more mature.
*/
track_t i_track = p_cdda->i_track;
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);
+ cdio_get_track_sec_count(p_cdda->p_cdio, i_track);
input_title_t *t = p_cdda->p_title[0] = //i_track-i_first_track] =
vlc_input_title_New();
asprintf( &t->psz_name, _("Track %i"), i_track );
- t->i_size = p_access->info.i_size =
- i_track_frames * (int64_t) CDIO_CD_FRAMESIZE_RAW;
+ t->i_size = i_track_frames * (int64_t) CDIO_CD_FRAMESIZE_RAW;
t->i_length = I64C(1000000) * t->i_size / CDDA_FREQUENCY_SAMPLE / 4;
}
p_cdda->i_titles = 1;
- p_access->info.i_size =
- i_track_frames * (int64_t) CDIO_CD_FRAMESIZE_RAW;
- p_access->info.i_update |= INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE;
+ p_access->info.i_update = INPUT_UPDATE_TITLE;
}
else
{
input_title_t *t;
-
- if ( ! p_cdda->b_nav_mode )
+ if ( !p_cdda->b_nav_mode )
playlist_ItemToNode( p_playlist, p_item );
for( i = 0 ; i < p_cdda->i_tracks ; i++ )
playlist_item_t *p_child;
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);
+ cdio_get_track_sec_count(p_cdda->p_cdio, i_track);
t = p_cdda->p_title[i] = vlc_input_title_New();
}
p_cdda->i_titles = p_cdda->i_tracks;
- p_access->info.i_size =
- cdio_get_track_lba(p_cdda->p_cdio, CDIO_CDROM_LEADOUT_TRACK)
- * (int64_t) CDIO_CD_FRAMESIZE_RAW;
p_access->info.i_update |= INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE;
if (p_item) {
p_item->input.i_duration =
playlist_Control( p_playlist, PLAYLIST_VIEWPLAY,
p_playlist->status.i_view,
p_playlist->status.p_item, NULL );
- vlc_object_release( p_playlist );
}
+ if (p_playlist) vlc_object_release( p_playlist );
return VLC_SUCCESS;
}