From: Clément Stenac Date: Fri, 16 Dec 2005 09:46:03 +0000 (+0000) Subject: Revert X-Git-Tag: 0.9.0-test0~12863 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=be75111279d99551f279e3663255b2114ae87d5a;p=vlc Revert --- diff --git a/modules/access/cdda.c b/modules/access/cdda.c index 9c6a98ba03..ebb27840b4 100644 --- a/modules/access/cdda.c +++ b/modules/access/cdda.c @@ -100,6 +100,10 @@ static int Open( vlc_object_t *p_this ) char *psz_name; int i; + vlc_bool_t b_separate_requested; + vlc_bool_t b_play; + input_thread_t *p_input; + if( !p_access->psz_path || !*p_access->psz_path ) { /* Only when selected */ @@ -139,36 +143,28 @@ static int Open( vlc_object_t *p_this ) p_sys->vcddev = vcddev; p_sys->b_header = VLC_FALSE; - /* We read the Table Of Content information */ - p_sys->i_titles = ioctl_GetTracksMap( VLC_OBJECT(p_access), - p_sys->vcddev, &p_sys->p_sectors ); - if( p_sys->i_titles < 0 ) + b_separate_requested = var_CreateGetBool( p_access, "cdda-separate-tracks" ); + + /* We only do separate items if the whole disc is requested - Dirty hack we access + * some private data ! */ + p_input = (input_thread_t *)( p_access->p_parent ); + if( b_separate_requested && p_input->input.i_title_start == -1 ) { - msg_Err( p_access, "unable to count tracks" ); - goto error; + p_sys->b_separate_items = VLC_TRUE; } - else if( p_sys->i_titles <= 0 ) + + if( p_sys->b_separate_items ) { - msg_Err( p_access, "no audio tracks found" ); - goto error; + /* Let's check if we need to play */ } - /* Build title table */ - for( i = 0; i < p_sys->i_titles; i++ ) + /* We read the Table Of Content information */ + i_ret = GetTracks( p_access, p_sys->b_separate_items ); + if( i_ret < 0 ) { - input_title_t *t = p_sys->title[i] = vlc_input_title_New(); - - msg_Dbg( p_access, "title[%d] start=%d", i, p_sys->p_sectors[i] ); - msg_Dbg( p_access, "title[%d] end=%d", i, p_sys->p_sectors[i+1] ); - - asprintf( &t->psz_name, _("Track %i"), i + 1 ); - t->i_size = ( p_sys->p_sectors[i+1] - p_sys->p_sectors[i] ) * - (int64_t)CDDA_DATA_SIZE; - - t->i_length = I64C(1000000) * t->i_size / 44100 / 4; + goto error; } - p_sys->i_sector = p_sys->p_sectors[0]; p_access->info.i_size = p_sys->title[0]->i_size; /* Build a WAV header for the output data */ @@ -397,3 +393,48 @@ static int Control( access_t *p_access, int i_query, va_list args ) } return VLC_SUCCESS; } + + + + +static int GetTracks( access_t *p_access, vlc_bool_t b_separate ) +{ + p_sys->i_titles = ioctl_GetTracksMap( VLC_OBJECT(p_access), + p_sys->vcddev, &p_sys->p_sectors ); + if( p_sys->i_titles < 0 ) + { + msg_Err( p_access, "unable to count tracks" ); + return VLC_EGENERIC;; + } + else if( p_sys->i_titles <= 0 ) + { + msg_Err( p_access, "no audio tracks found" ); + return VLC_EGENERIC; + } + + /* Build title table */ + for( i = 0; i < p_sys->i_titles; i++ ) + { + if( !b_separate ) + { + input_title_t *t = p_sys->title[i] = vlc_input_title_New(); + + msg_Dbg( p_access, "title[%d] start=%d", i, p_sys->p_sectors[i] ); + msg_Dbg( p_access, "title[%d] end=%d", i, p_sys->p_sectors[i+1] ); + + asprintf( &t->psz_name, _("Track %i"), i + 1 ); + t->i_size = ( p_sys->p_sectors[i+1] - p_sys->p_sectors[i] ) * + (int64_t)CDDA_DATA_SIZE; + + t->i_length = I64C(1000000) * t->i_size / 44100 / 4; + } + else + { + /* Create playlist items */ + } + } + + p_sys->i_sector = p_sys->p_sectors[0]; + + return VLC_SUCCESS; +} diff --git a/modules/access/cddax/Modules.am b/modules/access/cdda/cddax/Modules.am similarity index 100% rename from modules/access/cddax/Modules.am rename to modules/access/cdda/cddax/Modules.am diff --git a/modules/access/cddax/access.c b/modules/access/cdda/cddax/access.c similarity index 100% rename from modules/access/cddax/access.c rename to modules/access/cdda/cddax/access.c diff --git a/modules/access/cddax/access.h b/modules/access/cdda/cddax/access.h similarity index 100% rename from modules/access/cddax/access.h rename to modules/access/cdda/cddax/access.h diff --git a/modules/access/cddax/callback.c b/modules/access/cdda/cddax/callback.c similarity index 100% rename from modules/access/cddax/callback.c rename to modules/access/cdda/cddax/callback.c diff --git a/modules/access/cddax/callback.h b/modules/access/cdda/cddax/callback.h similarity index 100% rename from modules/access/cddax/callback.h rename to modules/access/cdda/cddax/callback.h diff --git a/modules/access/cddax/cdda.c b/modules/access/cdda/cddax/cdda.c similarity index 100% rename from modules/access/cddax/cdda.c rename to modules/access/cdda/cddax/cdda.c diff --git a/modules/access/cddax/cdda.h b/modules/access/cdda/cddax/cdda.h similarity index 100% rename from modules/access/cddax/cdda.h rename to modules/access/cdda/cddax/cdda.h diff --git a/modules/access/cddax/info.c b/modules/access/cdda/cddax/info.c similarity index 100% rename from modules/access/cddax/info.c rename to modules/access/cdda/cddax/info.c diff --git a/modules/access/cddax/info.h b/modules/access/cdda/cddax/info.h similarity index 100% rename from modules/access/cddax/info.h rename to modules/access/cdda/cddax/info.h diff --git a/modules/access/file.c b/modules/access/file.c index ee593f8b4f..55f81cbbf8 100644 --- a/modules/access/file.c +++ b/modules/access/file.c @@ -160,6 +160,8 @@ static int Open( vlc_object_t *p_this ) b_stdin = psz_name[0] == '-' && psz_name[1] == '\0'; + fprintf( stderr, "---%s\n", p_access->psz_path ); + if( !b_stdin ) { if( psz_name[0] == '~' && psz_name[1] == '/' )