mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-12 13:44:56 +02:00
input: convert input_title_t.b_menu to flags
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
This commit is contained in:
parent
2f19e4f4ed
commit
59a8278f6f
@ -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)
|
|||||||
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 )
|
|||||||
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
|
|||||||
|
|
||||||
/* 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)
|
|||||||
|
|
||||||
} 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)
|
|||||||
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 )
|
|||||||
|
|
||||||
/* 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 )
|
|||||||
|
|
||||||
/* 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++ )
|
||||||
|
Loading…
Reference in New Issue
Block a user