From dd2aecaeef29c37930d8d23e6ea9f3242f3af47e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20Stenac?= Date: Sat, 23 Apr 2005 12:33:13 +0000 Subject: [PATCH] Give a fine name when playing audio CD --- modules/access/cdda.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/access/cdda.c b/modules/access/cdda.c index 41635dd92c..69387e6cad 100644 --- a/modules/access/cdda.c +++ b/modules/access/cdda.c @@ -189,6 +189,8 @@ static int Open( vlc_object_t *p_this ) p_sys->waveheader.DataChunkID = VLC_FOURCC('d', 'a', 't', 'a'); p_sys->waveheader.DataLength = 0; /* we just don't know */ + p_access->info.i_update |= INPUT_UPDATE_META; + /* PTS delay */ var_Create( p_access, "cdda-caching", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); return VLC_SUCCESS; @@ -314,6 +316,8 @@ static int Control( access_t *p_access, int i_query, va_list args ) int64_t *pi_64; input_title_t ***ppp_title; int i; + char *psz_title; + vlc_meta_t **pp_meta; switch( i_query ) { @@ -344,7 +348,7 @@ static int Control( access_t *p_access, int i_query, va_list args ) case ACCESS_GET_TITLE_INFO: ppp_title = (input_title_t***)va_arg( args, input_title_t*** ); pi_int = (int*)va_arg( args, int* ); - *((int*)va_arg( args, int* )) = 1; /* Title offset */ + *((int*)va_arg( args, int* )) = 1; /* Title offset */ /* Duplicate title infos */ *pi_int = p_sys->i_titles; @@ -361,7 +365,7 @@ static int Control( access_t *p_access, int i_query, va_list args ) { /* Update info */ p_access->info.i_update |= - INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE; + INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE|INPUT_UPDATE_META; p_access->info.i_title = i; p_access->info.i_size = p_sys->title[i]->i_size; p_access->info.i_pos = 0; @@ -371,6 +375,16 @@ static int Control( access_t *p_access, int i_query, va_list args ) } break; + case ACCESS_GET_META: + psz_title = malloc( strlen( _("Audio CD - Track ") ) + 5 ); + snprintf( psz_title, 100, _("Audio CD - Track %i" ), + p_access->info.i_title+1 ); + pp_meta = (vlc_meta_t**)va_arg( args, vlc_meta_t** ); + *pp_meta = vlc_meta_New(); + vlc_meta_Add( *pp_meta, VLC_META_TITLE, psz_title ); + free( psz_title ); + break; + case ACCESS_SET_SEEKPOINT: case ACCESS_SET_PRIVATE_ID_STATE: return VLC_EGENERIC; -- 2.39.5