bool MoviePlayerView::OnKeyEvent( const int keyCode, const KeyState::eKeyEventType eventType ) { switch ( keyCode ) { case AKEYCODE_BACK: { switch ( eventType ) { case KeyState::KEY_EVENT_SHORT_PRESS: LOG( "KEY_EVENT_SHORT_PRESS" ); BackPressed(); return true; break; default: //LOG( "unexpected back key state %i", eventType ); break; } } break; case AKEYCODE_MEDIA_NEXT: if ( eventType == KeyState::KEY_EVENT_UP ) { Cinema.SetMovie( Cinema.GetNextMovie() ); Cinema.ResumeOrRestartMovie(); } break; case AKEYCODE_MEDIA_PREVIOUS: if ( eventType == KeyState::KEY_EVENT_UP ) { Cinema.SetMovie( Cinema.GetPreviousMovie() ); Cinema.ResumeOrRestartMovie(); } break; break; } return false; }
void MoviePlayerView::CheckInput( const VrFrame & vrFrame ) { if ( !uiActive && !RepositionScreen ) { if ( ( vrFrame.Input.buttonPressed & BUTTON_A ) || ( ( vrFrame.Input.buttonReleased & BUTTON_TOUCH ) && !( vrFrame.Input.buttonState & BUTTON_TOUCH_WAS_SWIPE ) ) ) { // open ui if it's not visible Cinema.app->PlaySound( "touch_up" ); ShowUI(); // ignore button A or touchpad until release so we don't close the UI immediately after opening it UIOpened = true; } } if ( vrFrame.Input.buttonPressed & ( BUTTON_DPAD_LEFT | BUTTON_SWIPE_BACK ) ) { if ( ( vrFrame.Input.buttonPressed & BUTTON_DPAD_LEFT ) || !GazeTimer.IsFocused() ) { ShowUI(); if ( SeekSpeed == 0 ) { PauseMovie(); } SeekSpeed--; if ( ( SeekSpeed == 0 ) || ( SeekSpeed < -MaxSeekSpeed ) ) { SeekSpeed = 0; PlayMovie(); } SetSeekIcon( SeekSpeed ); Cinema.app->PlaySound( "touch_up" ); } } if ( vrFrame.Input.buttonPressed & ( BUTTON_DPAD_RIGHT | BUTTON_SWIPE_FORWARD ) ) { if ( ( vrFrame.Input.buttonPressed & BUTTON_DPAD_RIGHT ) || !GazeTimer.IsFocused() ) { ShowUI(); if ( SeekSpeed == 0 ) { PauseMovie(); } SeekSpeed++; if ( ( SeekSpeed == 0 ) || ( SeekSpeed > MaxSeekSpeed ) ) { SeekSpeed = 0; PlayMovie(); } SetSeekIcon( SeekSpeed ); Cinema.app->PlaySound( "touch_up" ); } } if ( Cinema.SceneMgr.FreeScreenActive ) { const Vector2f screenCursor = GazeCoordinatesOnScreen( Cinema.SceneMgr.Scene.CenterViewMatrix(), Cinema.SceneMgr.ScreenMatrix() ); bool onscreen = false; if ( InsideUnit( screenCursor ) ) { onscreen = true; } else if ( uiActive ) { onscreen = GazeTimer.IsFocused(); } if ( !onscreen ) { // outside of screen, so show reposition message const double now = ovr_GetTimeInSeconds(); float alpha = MoveScreenAlpha.Value( now ); if ( alpha > 0.0f ) { MoveScreenLabel.SetVisible( true ); MoveScreenLabel.SetTextColor( Vector4f( alpha ) ); } if ( vrFrame.Input.buttonPressed & ( BUTTON_A | BUTTON_TOUCH ) ) { RepositionScreen = true; } } else { // onscreen, so hide message const double now = ovr_GetTimeInSeconds(); MoveScreenAlpha.Set( now, -1.0f, now + 1.0f, 1.0f ); MoveScreenLabel.SetVisible( false ); } } // while we're holding down the button or touchpad, reposition screen if ( RepositionScreen ) { if ( vrFrame.Input.buttonState & ( BUTTON_A | BUTTON_TOUCH ) ) { Cinema.SceneMgr.PutScreenInFront(); } else { RepositionScreen = false; } } if ( vrFrame.Input.buttonPressed & BUTTON_START ) { TogglePlayback(); } if ( vrFrame.Input.buttonPressed & BUTTON_SELECT ) { // movie select Cinema.app->PlaySound( "touch_up" ); Cinema.MovieSelection( false ); } if ( vrFrame.Input.buttonPressed & BUTTON_B ) { if ( !uiActive ) { BackPressed(); } else { LOG( "User pressed button 2" ); Cinema.app->PlaySound( "touch_up" ); HideUI(); PlayMovie(); } } }
void MoviePlayerView::CheckInput( const VrFrame & vrFrame ) { if ( !uiActive && !RepositionScreen ) { if ( ( vrFrame.Input.buttonPressed & BUTTON_A ) || ( ( vrFrame.Input.buttonReleased & BUTTON_TOUCH ) && !( vrFrame.Input.buttonState & BUTTON_TOUCH_WAS_SWIPE ) ) ) { // open ui if it's not visible Cinema.app->PlaySound( "touch_up" ); ShowUI(); } } if ( vrFrame.Input.buttonPressed & ( BUTTON_DPAD_LEFT | BUTTON_SWIPE_BACK ) ) { if ( ( vrFrame.Input.buttonPressed & BUTTON_DPAD_LEFT ) || !CursorInsidePlaybackControls() ) { ShowUI(); if ( SeekSpeed == 0 ) { Native::PauseMovie( Cinema.app ); PlaybackPos = Native::GetPosition( Cinema.app ); } SeekSpeed--; if ( ( SeekSpeed == 0 ) || ( SeekSpeed < -MaxSeekSpeed ) ) { SeekSpeed = 0; Native::ResumeMovie( Cinema.app ); } Cinema.app->PlaySound( "touch_up" ); } } if ( vrFrame.Input.buttonPressed & ( BUTTON_DPAD_RIGHT | BUTTON_SWIPE_FORWARD ) ) { if ( ( vrFrame.Input.buttonPressed & BUTTON_DPAD_RIGHT ) || !CursorInsidePlaybackControls() ) { ShowUI(); if ( SeekSpeed == 0 ) { Native::PauseMovie( Cinema.app ); PlaybackPos = Native::GetPosition( Cinema.app ); } SeekSpeed++; if ( ( SeekSpeed == 0 ) || ( SeekSpeed > MaxSeekSpeed ) ) { SeekSpeed = 0; Native::ResumeMovie( Cinema.app ); } Cinema.app->PlaySound( "touch_up" ); } } if ( Cinema.SceneMgr.FreeScreenActive ) { const Vector2f screenCursor = GazeCoordinatesOnPanel( Cinema.SceneMgr.Scene.CenterViewMatrix(), Cinema.SceneMgr.FreeScreenMatrix(), Cinema.app->GetActivityPanel().AlternateGazeCheck ); if ( !InsideUnit( screenCursor ) && !CursorInsidePlaybackControls() ) { // outside of screen, so show reposition message const double now = TimeInSeconds(); float alpha = MoveScreenAlpha.Value( now ); if ( alpha > 0.0f ) { MoveScreenObj->RemoveFlags( VRMENUOBJECT_DONT_RENDER ); MoveScreenObj->SetTextColor( Vector4f( alpha ) ); } if ( vrFrame.Input.buttonPressed & ( BUTTON_A | BUTTON_TOUCH ) ) { RepositionScreen = true; } } else { // onscreen, so hide message const double now = TimeInSeconds(); MoveScreenAlpha.Set( now, -1.0f, now + 1.0f, 1.0f ); MoveScreenObj->AddFlags( VRMENUOBJECT_DONT_RENDER ); } } // while we're holding down the button or touchpad, reposition screen if ( RepositionScreen ) { if ( vrFrame.Input.buttonState & ( BUTTON_A | BUTTON_TOUCH ) ) { Cinema.SceneMgr.PutScreenInFront(); } else { RepositionScreen = false; } } if ( vrFrame.Input.buttonPressed & BUTTON_START ) { Native::TogglePlaying( Cinema.app ); SeekSpeed = 0; } if ( vrFrame.Input.buttonPressed & BUTTON_SELECT ) { // movie select Cinema.app->PlaySound( "touch_up" ); Cinema.MovieSelection( false ); } if ( vrFrame.Input.buttonPressed & BUTTON_B ) { if ( !uiActive ) { BackPressed(); } else { Cinema.app->PlaySound( "touch_up" ); HideUI(); Native::ResumeMovie( Cinema.app ); } } }