[vlc-devel] [PATCH] input: convert input_title_t.b_menu to flags
Petri Hintukainen
phintuka at gmail.com
Wed Dec 2 13:55:46 CET 2015
---
include/vlc_input.h | 13 +++++++++----
lib/media_player.c | 2 +-
modules/access/bluray.c | 10 ++++++----
modules/access/dvdnav.c | 2 +-
modules/access/vcdx/access.c | 2 +-
5 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/include/vlc_input.h b/include/vlc_input.h
index fa2d3f9..1fe42ee 100644
--- a/include/vlc_input.h
+++ b/include/vlc_input.h
@@ -82,14 +82,19 @@ static inline seekpoint_t *vlc_seekpoint_Duplicate( const seekpoint_t *src )
/*****************************************************************************
* 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
{
char *psz_name;
- bool b_menu; /* Is it a menu or a normal entry */
-
int64_t i_length; /* Length(microsecond) if known, else 0 */
+ int i_flags; /* Is it a menu or a normal entry */
+
/* Title seekpoint */
int i_seekpoint;
seekpoint_t **seekpoint;
@@ -102,7 +107,7 @@ static inline input_title_t *vlc_input_title_New(void)
return NULL;
t->psz_name = NULL;
- t->b_menu = false;
+ t->i_flags = 0;
t->i_length = 0;
t->i_seekpoint = 0;
t->seekpoint = NULL;
@@ -129,7 +134,7 @@ static inline input_title_t *vlc_input_title_Duplicate( const input_title_t *t )
int i;
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;
if( t->i_seekpoint > 0 )
{
diff --git a/lib/media_player.c b/lib/media_player.c
index 8b6938c..2dee2d7 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -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 */
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 )
title->psz_name = strdup( p_input_title[i]->psz_name );
else
diff --git a/modules/access/bluray.c b/modules/access/bluray.c
index 8c9700c..c2b3b80 100644
--- a/modules/access/bluray.c
+++ b/modules/access/bluray.c
@@ -1465,11 +1465,11 @@ static void blurayInitTitles(demux_t *p_demux, int menu_titles)
} else if (i == 0) {
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) {
t->psz_name = strdup(_("First Play"));
- if (di && di->first_play) {
- t->b_menu = di->first_play->interactive;
+ if (di && di->first_play && di->first_play->interactive) {
+ t->i_flags = INPUT_TITLE_INTERACTIVE;
}
} else {
/* add possible title name from disc metadata */
@@ -1477,7 +1477,9 @@ static void blurayInitTitles(demux_t *p_demux, int menu_titles)
if (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;
+ }
}
}
diff --git a/modules/access/dvdnav.c b/modules/access/dvdnav.c
index 2e03153..270007d 100644
--- a/modules/access/dvdnav.c
+++ b/modules/access/dvdnav.c
@@ -1115,7 +1115,7 @@ static void DemuxTitles( demux_t *p_demux )
/* Menu */
t = vlc_input_title_New();
- t->b_menu = true;
+ t->i_flags = INPUT_TITLE_MENU | INPUT_TITLE_INTERACTIVE;
t->psz_name = strdup( "DVD Menu" );
s = vlc_seekpoint_New();
diff --git a/modules/access/vcdx/access.c b/modules/access/vcdx/access.c
index 7298b0f..164423e 100644
--- a/modules/access/vcdx/access.c
+++ b/modules/access/vcdx/access.c
@@ -482,7 +482,7 @@ VCDLIDs( access_t * p_access )
/* Set up LIDs Navigation Menu */
t = vlc_input_title_New();
- t->b_menu = true;
+ t->i_flags = INPUT_TITLE_MENU;
t->psz_name = strdup( "LIDs" );
for( i_lid = 1 ; i_lid <= p_vcdplayer->i_lids ; i_lid++ )
--
2.5.0
More information about the vlc-devel
mailing list