[vlc-commits] input: define proper controls for menu navigation
Rémi Denis-Courmont
git at videolan.org
Fri Feb 1 17:05:29 CET 2013
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Fri Feb 1 17:54:34 2013 +0200| [72499a50a34cbb99f11a26d455865be2012b5ab9] | committer: Rémi Denis-Courmont
input: define proper controls for menu navigation
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=72499a50a34cbb99f11a26d455865be2012b5ab9
---
include/vlc_demux.h | 7 +++++++
include/vlc_input.h | 7 +++++++
src/input/control.c | 9 +++++++++
src/input/input.c | 14 ++++++++++++++
src/input/input_internal.h | 6 ++++++
5 files changed, 43 insertions(+)
diff --git a/include/vlc_demux.h b/include/vlc_demux.h
index b00468d..c0cea07 100644
--- a/include/vlc_demux.h
+++ b/include/vlc_demux.h
@@ -161,6 +161,13 @@ enum demux_query_e
DEMUX_CAN_SEEK, /* arg1= bool* can fail (assume false)*/
DEMUX_GET_SIGNAL, /* arg1= double * arg2= double * can fail */
+
+ /* Navigation */
+ DEMUX_NAV_ACTIVATE, /* res=can fail */
+ DEMUX_NAV_UP, /* res=can fail */
+ DEMUX_NAV_DOWN, /* res=can fail */
+ DEMUX_NAV_LEFT, /* res=can fail */
+ DEMUX_NAV_RIGHT, /* res=can fail */
};
VLC_API int demux_vaControlHelper( stream_t *, int64_t i_start, int64_t i_end, int64_t i_bitrate, int i_align, int i_query, va_list args );
diff --git a/include/vlc_input.h b/include/vlc_input.h
index 4400304..cbd6aab 100644
--- a/include/vlc_input.h
+++ b/include/vlc_input.h
@@ -470,6 +470,13 @@ enum input_query_e
INPUT_GET_SPU_DELAY, /* arg1 = int* res=can fail */
INPUT_SET_SPU_DELAY, /* arg1 = int res=can fail */
+ /* Menu navigation */
+ INPUT_NAV_ACTIVATE,
+ INPUT_NAV_UP,
+ INPUT_NAV_DOWN,
+ INPUT_NAV_LEFT,
+ INPUT_NAV_RIGHT,
+
/* Meta datas */
INPUT_ADD_INFO, /* arg1= char* arg2= char* arg3=... res=can fail */
INPUT_REPLACE_INFOS,/* arg1= info_category_t * res=cannot fail */
diff --git a/src/input/control.c b/src/input/control.c
index d50ea97..a238373 100644
--- a/src/input/control.c
+++ b/src/input/control.c
@@ -136,6 +136,15 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
i_64 = (int64_t)va_arg( args, int64_t );
return var_SetTime( p_input, "spu-delay", i_64 );
+ case INPUT_NAV_ACTIVATE:
+ case INPUT_NAV_UP:
+ case INPUT_NAV_DOWN:
+ case INPUT_NAV_LEFT:
+ case INPUT_NAV_RIGHT:
+ input_ControlPush( p_input, i_query - INPUT_NAV_ACTIVATE
+ + INPUT_CONTROL_NAV_ACTIVATE, NULL );
+ return VLC_SUCCESS;
+
case INPUT_ADD_INFO:
{
char *psz_cat = (char *)va_arg( args, char * );
diff --git a/src/input/input.c b/src/input/input.c
index da3f900..729b666 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -1581,6 +1581,11 @@ static bool ControlIsSeekRequest( int i_type )
case INPUT_CONTROL_SET_SEEKPOINT_NEXT:
case INPUT_CONTROL_SET_SEEKPOINT_PREV:
case INPUT_CONTROL_SET_BOOKMARK:
+ case INPUT_CONTROL_NAV_ACTIVATE:
+ case INPUT_CONTROL_NAV_UP:
+ case INPUT_CONTROL_NAV_DOWN:
+ case INPUT_CONTROL_NAV_LEFT:
+ case INPUT_CONTROL_NAV_RIGHT:
return true;
default:
return false;
@@ -2175,6 +2180,15 @@ static bool Control( input_thread_t *p_input,
break;
}
+ case INPUT_CONTROL_NAV_ACTIVATE:
+ case INPUT_CONTROL_NAV_UP:
+ case INPUT_CONTROL_NAV_DOWN:
+ case INPUT_CONTROL_NAV_LEFT:
+ case INPUT_CONTROL_NAV_RIGHT:
+ demux_Control( p_input->p->input.p_demux, i_type
+ - INPUT_CONTROL_NAV_ACTIVATE + DEMUX_NAV_ACTIVATE );
+ break;
+
default:
msg_Err( p_input, "not yet implemented" );
break;
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index e65acdf..b3ad9e7 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -195,6 +195,12 @@ enum input_control_e
INPUT_CONTROL_SET_BOOKMARK,
+ INPUT_CONTROL_NAV_ACTIVATE, // NOTE: INPUT_CONTROL_NAV_* values must be
+ INPUT_CONTROL_NAV_UP, // contiguous and in the same order as
+ INPUT_CONTROL_NAV_DOWN, // INPUT_NAV_* and DEMUX_NAV_*.
+ INPUT_CONTROL_NAV_LEFT,
+ INPUT_CONTROL_NAV_RIGHT,
+
INPUT_CONTROL_SET_ES,
INPUT_CONTROL_RESTART_ES,
More information about the vlc-commits
mailing list