diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-09-09 21:37:57 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-09-09 21:37:57 +0000 |
commit | f817575e5ff69110a3099fea6beee235608e1b54 (patch) | |
tree | 5af51326a82272829ccf487e056d5238686a89fb /stream | |
parent | 6462618244225b4942232be38a8c4b1d087b3d23 (diff) | |
download | mpv-f817575e5ff69110a3099fea6beee235608e1b54.tar.bz2 mpv-f817575e5ff69110a3099fea6beee235608e1b54.tar.xz |
added mp_dvdnav_handle_input to handle user's input (revived from the repository with few changes)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19774 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream')
-rw-r--r-- | stream/stream_dvdnav.c | 40 | ||||
-rw-r--r-- | stream/stream_dvdnav.h | 1 |
2 files changed, 41 insertions, 0 deletions
diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index e3ba6361c7..162410883a 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -430,6 +430,46 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) { return STREAM_OK; } + +int mp_dvdnav_handle_input(stream_t *stream, int cmd) { + dvdnav_priv_t * dvdnav_priv=(dvdnav_priv_t*)stream->priv; + dvdnav_t *nav = dvdnav_priv->dvdnav; + dvdnav_status_t status; + pci_t *pci = dvdnav_get_current_nav_pci(nav); + int reset = 0; + + if(cmd != MP_CMD_DVDNAV_SELECT && !pci) + return 0; + + switch(cmd) { + case MP_CMD_DVDNAV_UP: + status = dvdnav_upper_button_select(nav, pci); + break; + case MP_CMD_DVDNAV_DOWN: + status = dvdnav_lower_button_select(nav, pci); + break; + case MP_CMD_DVDNAV_LEFT: + status = dvdnav_left_button_select(nav, pci); + break; + case MP_CMD_DVDNAV_RIGHT: + status = dvdnav_right_button_select(nav, pci); + break; + case MP_CMD_DVDNAV_MENU: + status = dvdnav_menu_call(nav,DVD_MENU_Root); + reset = 1; + break; + case MP_CMD_DVDNAV_SELECT: + status = dvdnav_button_activate(nav, pci); + reset = 1; + break; + default: + mp_msg(MSGT_CPLAYER, MSGL_V, "Unknown DVDNAV cmd %d\n", cmd); + break; + } + + return reset; +} + stream_info_t stream_info_dvdnav = { "DVDNAV stream", "null", diff --git a/stream/stream_dvdnav.h b/stream/stream_dvdnav.h index ab93bc02b4..2881534f98 100644 --- a/stream/stream_dvdnav.h +++ b/stream/stream_dvdnav.h @@ -43,5 +43,6 @@ int dvdnav_stream_sleeping(dvdnav_priv_t * dvdnav_priv); void dvdnav_stream_fullstart(dvdnav_priv_t *dvdnav_priv); unsigned int * dvdnav_stream_get_palette(dvdnav_priv_t * dvdnav_priv); +int mp_dvdnav_handle_input(stream_t *stream, int cmd); #endif |