- vlc_bool_t b_activated = VLC_FALSE;
-
- /* KEY part */
- if( p_ev->b_key )
- {
- pci_t *pci = dvdnav_get_current_nav_pci( p_sys->dvdnav );
-
- vlc_value_t valk;
- struct hotkey *p_hotkeys = p_ev->p_libvlc->p_hotkeys;
- int i, i_action = -1;
-
- vlc_mutex_lock( &p_ev->lock );
- var_Get( p_ev->p_libvlc, "key-pressed", &valk );
- for( i = 0; p_hotkeys[i].psz_action != NULL; i++ )
- {
- if( p_hotkeys[i].i_key == valk.i_int )
- {
- i_action = p_hotkeys[i].i_action;
- }
- }
-
- switch( i_action )
- {
- case ACTIONID_NAV_LEFT:
- dvdnav_left_button_select( p_sys->dvdnav, pci );
- break;
- case ACTIONID_NAV_RIGHT:
- dvdnav_right_button_select( p_sys->dvdnav, pci );
- break;
- case ACTIONID_NAV_UP:
- dvdnav_upper_button_select( p_sys->dvdnav, pci );
- break;
- case ACTIONID_NAV_DOWN:
- dvdnav_lower_button_select( p_sys->dvdnav, pci );
- break;
- case ACTIONID_NAV_ACTIVATE:
- b_activated = VLC_TRUE;
- dvdnav_button_activate( p_sys->dvdnav, pci );
- ButtonUpdate( p_ev->p_demux, VLC_TRUE );
- break;
- default:
- break;
- }
- p_ev->b_key = VLC_FALSE;
- vlc_mutex_unlock( &p_ev->lock );
- }