Commit 59a8278f authored by Petri Hintukainen's avatar Petri Hintukainen Committed by Jean-Baptiste Kempf

input: convert input_title_t.b_menu to flags

Signed-off-by: Jean-Baptiste Kempf's avatarJean-Baptiste Kempf <jb@videolan.org>
parent 2f19e4f4
...@@ -82,14 +82,19 @@ static inline seekpoint_t *vlc_seekpoint_Duplicate( const seekpoint_t *src ) ...@@ -82,14 +82,19 @@ static inline seekpoint_t *vlc_seekpoint_Duplicate( const seekpoint_t *src )
/***************************************************************************** /*****************************************************************************
* Title: * Title:
*****************************************************************************/ *****************************************************************************/
/* input_title_t.i_flags field */
#define INPUT_TITLE_MENU 0x0001 /* Menu title */
#define INPUT_TITLE_INTERACTIVE 0x0002 /* Interactive title. Playback position has no meaning. */
typedef struct input_title_t typedef struct input_title_t
{ {
char *psz_name; char *psz_name;
bool b_menu; /* Is it a menu or a normal entry */
int64_t i_length; /* Length(microsecond) if known, else 0 */ int64_t i_length; /* Length(microsecond) if known, else 0 */
int i_flags; /* Is it a menu or a normal entry */
/* Title seekpoint */ /* Title seekpoint */
int i_seekpoint; int i_seekpoint;
seekpoint_t **seekpoint; seekpoint_t **seekpoint;
...@@ -102,7 +107,7 @@ static inline input_title_t *vlc_input_title_New(void) ...@@ -102,7 +107,7 @@ static inline input_title_t *vlc_input_title_New(void)
return NULL; return NULL;
t->psz_name = NULL; t->psz_name = NULL;
t->b_menu = false; t->i_flags = 0;
t->i_length = 0; t->i_length = 0;
t->i_seekpoint = 0; t->i_seekpoint = 0;
t->seekpoint = NULL; t->seekpoint = NULL;
...@@ -129,7 +134,7 @@ static inline input_title_t *vlc_input_title_Duplicate( const input_title_t *t ) ...@@ -129,7 +134,7 @@ static inline input_title_t *vlc_input_title_Duplicate( const input_title_t *t )
int i; int i;
if( t->psz_name ) dup->psz_name = strdup( t->psz_name ); if( t->psz_name ) dup->psz_name = strdup( t->psz_name );
dup->b_menu = t->b_menu; dup->i_flags = t->i_flags;
dup->i_length = t->i_length; dup->i_length = t->i_length;
if( t->i_seekpoint > 0 ) if( t->i_seekpoint > 0 )
{ {
......
...@@ -1476,7 +1476,7 @@ int libvlc_media_player_get_full_title_descriptions( libvlc_media_player_t *p_mi ...@@ -1476,7 +1476,7 @@ int libvlc_media_player_get_full_title_descriptions( libvlc_media_player_t *p_mi
/* we want to return milliseconds to match the rest of the API */ /* we want to return milliseconds to match the rest of the API */
title->i_duration = p_input_title[i]->i_length / 1000; title->i_duration = p_input_title[i]->i_length / 1000;
title->b_menu = p_input_title[i]->b_menu; title->b_menu = p_input_title[i]->i_flags & INPUT_TITLE_MENU;
if( p_input_title[i]->psz_name ) if( p_input_title[i]->psz_name )
title->psz_name = strdup( p_input_title[i]->psz_name ); title->psz_name = strdup( p_input_title[i]->psz_name );
else else
......
...@@ -1453,11 +1453,11 @@ static void blurayInitTitles(demux_t *p_demux, int menu_titles) ...@@ -1453,11 +1453,11 @@ static void blurayInitTitles(demux_t *p_demux, int menu_titles)
} else if (i == 0) { } else if (i == 0) {
t->psz_name = strdup(_("Top Menu")); t->psz_name = strdup(_("Top Menu"));
t->b_menu = true; t->i_flags = INPUT_TITLE_MENU | INPUT_TITLE_INTERACTIVE;
} else if (i == i_title - 1) { } else if (i == i_title - 1) {
t->psz_name = strdup(_("First Play")); t->psz_name = strdup(_("First Play"));
if (di && di->first_play) { if (di && di->first_play && di->first_play->interactive) {
t->b_menu = di->first_play->interactive; t->i_flags = INPUT_TITLE_INTERACTIVE;
} }
} else { } else {
/* add possible title name from disc metadata */ /* add possible title name from disc metadata */
...@@ -1465,7 +1465,9 @@ static void blurayInitTitles(demux_t *p_demux, int menu_titles) ...@@ -1465,7 +1465,9 @@ static void blurayInitTitles(demux_t *p_demux, int menu_titles)
if (di->titles[i]->name) { if (di->titles[i]->name) {
t->psz_name = strdup(di->titles[i]->name); t->psz_name = strdup(di->titles[i]->name);
} }
t->b_menu = di->titles[i]->interactive; if (di->titles[i]->interactive) {
t->i_flags = INPUT_TITLE_INTERACTIVE;
}
} }
} }
......
...@@ -1115,7 +1115,7 @@ static void DemuxTitles( demux_t *p_demux ) ...@@ -1115,7 +1115,7 @@ static void DemuxTitles( demux_t *p_demux )
/* Menu */ /* Menu */
t = vlc_input_title_New(); t = vlc_input_title_New();
t->b_menu = true; t->i_flags = INPUT_TITLE_MENU | INPUT_TITLE_INTERACTIVE;
t->psz_name = strdup( "DVD Menu" ); t->psz_name = strdup( "DVD Menu" );
s = vlc_seekpoint_New(); s = vlc_seekpoint_New();
......
...@@ -482,7 +482,7 @@ VCDLIDs( access_t * p_access ) ...@@ -482,7 +482,7 @@ VCDLIDs( access_t * p_access )
/* Set up LIDs Navigation Menu */ /* Set up LIDs Navigation Menu */
t = vlc_input_title_New(); t = vlc_input_title_New();
t->b_menu = true; t->i_flags = INPUT_TITLE_MENU;
t->psz_name = strdup( "LIDs" ); t->psz_name = strdup( "LIDs" );
for( i_lid = 1 ; i_lid <= p_vcdplayer->i_lids ; i_lid++ ) for( i_lid = 1 ; i_lid <= p_vcdplayer->i_lids ; i_lid++ )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment