]> git.sesse.net Git - vlc/commitdiff
fix next/previous chapter in disc mode
authorRocky Bernstein <rocky@videolan.org>
Sun, 1 May 2005 14:48:08 +0000 (14:48 +0000)
committerRocky Bernstein <rocky@videolan.org>
Sun, 1 May 2005 14:48:08 +0000 (14:48 +0000)
fix updating meta (caused by a recent change of mine)

vcdx/access.c: hack to try to fix still-handling problem

modules/access/cdda/access.c
modules/access/cdda/info.c
modules/access/vcdx/access.c

index 919e0e9a145b0f71b27ea52b3fe21c28f758f822..c64ac30e8b1f28ed1e194ae439f34657edacd5f1 100644 (file)
@@ -501,6 +501,8 @@ CDDASeek( access_t * p_access, int64_t i_pos )
 
 /*
   Set up internal state so that we play a given track.
+  If we are using audio-ctl mode we also activate CD-ROM
+  to play.
  */
 static bool
 cdda_play_track( access_t *p_access, track_t i_track ) 
@@ -726,6 +728,8 @@ CDDAOpen( vlc_object_t *p_this )
     i_rc = CDDAInit( p_access, p_cdda );
     if ( VLC_SUCCESS != i_rc ) goto error;
 
+    cdda_play_track( p_access, i_track );
+
     CDDAFixupPlaylist( p_access, p_cdda, b_single_track );
 
 #if LIBCDIO_VERSION_NUM >= 72
@@ -789,8 +793,6 @@ CDDAOpen( vlc_object_t *p_this )
     p_cdda->waveheader.DataChunkID = VLC_FOURCC('d', 'a', 't', 'a');
     p_cdda->waveheader.DataLength  = 0;    /* we just don't know */
 
-    cdda_play_track( p_access, i_track );
-
     /* PTS delay */
     var_Create( p_access, MODULE_STRING "-caching",
                 VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );
@@ -985,7 +987,7 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args )
            dbg_print( INPUT_DBG_EVENT, "set title %d", i );
             if( i != p_access->info.i_title )
             {
-               const track_t i_track = p_cdda->i_track + i;
+               const track_t i_track = p_cdda->i_first_track + i;
                 /* Update info */
                 p_access->info.i_title = i;
                if ( p_cdda->b_nav_mode) 
index 881b8040036e66d444c956bd0232c7808ec32f83..37728d22fb30a7022b309fbb1e9455192c62dee3 100644 (file)
@@ -230,6 +230,9 @@ CDDAMetaInfoInit( access_t *p_access )
     
     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();
 
@@ -269,6 +272,8 @@ CDDAMetaInfo( access_t *p_access, track_t i_track )
     
     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. */
index 2a1420d923cd6d9eb9ad14087010d8f91aa5cbf4..5f9440b7d2de7781c1bd1e6940758bbd75e609e7 100644 (file)
@@ -200,6 +200,8 @@ VCDReadBlock( access_t * p_access )
            */
 #if 1
           msleep( MILLISECONDS_PER_SEC * *p_buf );
+         VCDSetOrigin(p_access, p_vcdplayer->origin_lsn, p_vcdplayer->i_track,
+                      &(p_vcdplayer->play_item));
           // p_vcd->in_still = VLC_FALSE;
           dbg_print(INPUT_DBG_STILL, "still wait time done");
 #else