/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
const char* const PLAY_FILE = DEMO_VIDEO_DIR "demoVideo.mp4";
const char* const PLAY_IMAGE = DEMO_IMAGE_DIR "icon-play.png";
const char* const PAUSE_IMAGE = DEMO_IMAGE_DIR "Pause.png";
- const char* const STOP_IMAGE = DEMO_IMAGE_DIR "icon-stop.png";
- const char* const RESET_IMAGE = DEMO_IMAGE_DIR "icon-reset.png";
+ const char* const CHANGE_IMAGE = DEMO_IMAGE_DIR "icon-change.png";
const char* const FORWARD_IMAGE = DEMO_IMAGE_DIR "Forward.png";
const char* const BACKWARD_IMAGE = DEMO_IMAGE_DIR "Backward.png";
VideoViewController( Application& application )
: mApplication( application ),
mIsPlay( false ),
- mIsStop( false ),
mIsFullScreen( false ),
mScale( 1.f ),
mPinchStartScale( 1.0f )
void Create( Application& application )
{
- mStageSize = Stage::GetCurrent().GetSize();
+ Window window = application.GetWindow();
+ mWindowSize = window.GetSize();
mVideoView = Toolkit::VideoView::New();
- Stage::GetCurrent().Add( mVideoView );
- mVideoView.SetParentOrigin( ParentOrigin::CENTER );
- mVideoView.SetAnchorPoint( AnchorPoint::CENTER );
+ window.Add( mVideoView );
+ mVideoView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mVideoView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
mVideoView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
- mVideoView.SetSize( INIT_WIDTH, INIT_HEIGHT );
+ mVideoView.SetProperty( Actor::Property::SIZE, Vector2( INIT_WIDTH, INIT_HEIGHT ) );
mVideoView.SetProperty( VideoView::Property::LOOPING, true );
mVideoView.SetProperty( VideoView::Property::MUTED, false );
mVideoView.SetProperty( VideoView::Property::VIDEO, PLAY_FILE );
mMenu = Layer::New();
- mMenu.SetParentOrigin( ParentOrigin::BOTTOM_LEFT );
- mMenu.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT );
+ mMenu.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_LEFT );
+ mMenu.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_LEFT );
mMenu.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mMenu.SetSize( INIT_WIDTH, 120 );
+ mMenu.SetProperty( Actor::Property::SIZE, Vector2( INIT_WIDTH, 120 ) );
mVideoView.Add( mMenu );
mPlayButton = PushButton::New();
- mPlayButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
- mPlayButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mPlayButton.SetName( "Play" );
+ mPlayButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+ mPlayButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ mPlayButton.SetProperty( Dali::Actor::Property::NAME, "Play" );
mPlayButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mPlayButton.SetSize( BUTTON_SIZE, BUTTON_SIZE );
- mPlayButton.SetPosition( 40, 10 );
+ mPlayButton.SetProperty( Actor::Property::SIZE, Vector2( BUTTON_SIZE, BUTTON_SIZE ) );
+ mPlayButton.SetProperty( Actor::Property::POSITION, Vector2( 40, 10 ));
mPlayButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
mPauseButton = PushButton::New();
- mPauseButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
- mPauseButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mPauseButton.SetName( "Pause" );
+ mPauseButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+ mPauseButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ mPauseButton.SetProperty( Dali::Actor::Property::NAME, "Pause" );
mPauseButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mPauseButton.SetSize( BUTTON_SIZE, BUTTON_SIZE );
- mPauseButton.SetPosition( 40, 10 );
+ mPauseButton.SetProperty( Actor::Property::SIZE, Vector2( BUTTON_SIZE, BUTTON_SIZE ) );
+ mPauseButton.SetProperty( Actor::Property::POSITION, Vector2( 40, 10 ));
mPauseButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
- mStopButton = PushButton::New();
- mStopButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
- mStopButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mStopButton.SetName( "Stop" );
- mStopButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mStopButton.SetSize( BUTTON_SIZE, BUTTON_SIZE );
- mStopButton.SetPosition( 140, 10 );
- mStopButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
-
- mResetButton = PushButton::New();
- mResetButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
- mResetButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mResetButton.SetName( "Reset" );
- mResetButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mResetButton.SetSize( BUTTON_SIZE, BUTTON_SIZE );
- mResetButton.SetPosition( 140, 10 );
- mResetButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
+ mChangeButton = PushButton::New();
+ mChangeButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+ mChangeButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ mChangeButton.SetProperty( Dali::Actor::Property::NAME, "Change" );
+ mChangeButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
+ mChangeButton.SetProperty( Actor::Property::SIZE, Vector2( BUTTON_SIZE, BUTTON_SIZE ) );
+ mChangeButton.SetProperty( Actor::Property::POSITION, Vector2( 140, 10 ));
+ mChangeButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
mBackwardButton = PushButton::New();
- mBackwardButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
- mBackwardButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mBackwardButton.SetName( "Backward" );
+ mBackwardButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+ mBackwardButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ mBackwardButton.SetProperty( Dali::Actor::Property::NAME, "Backward" );
mBackwardButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mBackwardButton.SetSize( BUTTON_SIZE, BUTTON_SIZE );
- mBackwardButton.SetPosition( 240, 10 );
+ mBackwardButton.SetProperty( Actor::Property::SIZE, Vector2( BUTTON_SIZE, BUTTON_SIZE ) );
+ mBackwardButton.SetProperty( Actor::Property::POSITION, Vector2( 240, 10 ));
mBackwardButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
mForwardButton = PushButton::New();
- mForwardButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
- mForwardButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mForwardButton.SetName( "Forward" );
+ mForwardButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+ mForwardButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ mForwardButton.SetProperty( Dali::Actor::Property::NAME, "Forward" );
mForwardButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- mForwardButton.SetSize( BUTTON_SIZE, BUTTON_SIZE );
- mForwardButton.SetPosition( 340, 10 );
+ mForwardButton.SetProperty( Actor::Property::SIZE, Vector2( BUTTON_SIZE, BUTTON_SIZE ) );
+ mForwardButton.SetProperty( Actor::Property::POSITION, Vector2( 340, 10 ));
mForwardButton.ClickedSignal().Connect( this, &VideoViewController::OnButtonClicked );
mMenu.Add( mPlayButton );
mMenu.Add( mPauseButton );
- mMenu.Add( mStopButton );
- mMenu.Add( mResetButton );
+ mMenu.Add( mChangeButton );
mMenu.Add( mBackwardButton );
mMenu.Add( mForwardButton );
- mPauseButton.SetVisible( false );
- mPauseButton.SetDisabled( true );
- mPlayButton.SetVisible( true );
- mPlayButton.SetDisabled( false );
- mStopButton.SetVisible( true );
- mStopButton.SetDisabled( false );
- mResetButton.SetVisible( false );
- mResetButton.SetDisabled( true );
-
- mPlayButton.SetUnselectedImage( PLAY_IMAGE );
- mPlayButton.SetSelectedImage( PLAY_IMAGE );
- mPauseButton.SetUnselectedImage( PAUSE_IMAGE );
- mPauseButton.SetSelectedImage( PAUSE_IMAGE );
-
- mStopButton.SetUnselectedImage( STOP_IMAGE );
- mStopButton.SetSelectedImage( STOP_IMAGE );
- mResetButton.SetUnselectedImage( RESET_IMAGE );
- mResetButton.SetSelectedImage( RESET_IMAGE );
-
- mBackwardButton.SetUnselectedImage( BACKWARD_IMAGE );
- mBackwardButton.SetSelectedImage( BACKWARD_IMAGE );
- mForwardButton.SetUnselectedImage( FORWARD_IMAGE );
- mForwardButton.SetSelectedImage( FORWARD_IMAGE );
+ mPauseButton.SetProperty( Actor::Property::VISIBLE, false );
+ mPauseButton.SetProperty( Button::Property::DISABLED, true );
+ mPlayButton.SetProperty( Actor::Property::VISIBLE, true );
+ mPlayButton.SetProperty( Button::Property::DISABLED, false );
+ mChangeButton.SetProperty( Actor::Property::VISIBLE, true );
+ mChangeButton.SetProperty( Button::Property::DISABLED, false );
+
+ mPlayButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, PLAY_IMAGE );
+ mPlayButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, PLAY_IMAGE );
+ mPauseButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, PAUSE_IMAGE );
+ mPauseButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, PAUSE_IMAGE );
+
+ mChangeButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_IMAGE );
+ mChangeButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_IMAGE );
+
+ mBackwardButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, BACKWARD_IMAGE );
+ mBackwardButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, BACKWARD_IMAGE );
+ mForwardButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, FORWARD_IMAGE );
+ mForwardButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, FORWARD_IMAGE );
mPanGestureDetector = PanGestureDetector::New();
mPanGestureDetector.Attach( mVideoView );
mRotationAnimation.AnimateBy( Property(mVideoView, Actor::Property::ORIENTATION), Quaternion(Degree(0.f), Degree(360.f), Degree(0.f)) );
mRotationAnimation.SetLooping(false);
- Stage::GetCurrent().KeyEventSignal().Connect( this, &VideoViewController::OnKeyEvent );
-
- mWindowSurfaceTarget.Insert( "RENDERING_TARGET", "windowSurfaceTarget" );
- mNativeImageTarget.Insert( "RENDERING_TARGET", "nativeImageTarget" );
-
- mVideoView.FinishedSignal().Connect( this, &VideoViewController::OnFinished );
+ window.KeyEventSignal().Connect( this, &VideoViewController::OnKeyEvent );
}
bool OnButtonClicked( Button button )
{
-
- if( mPauseButton.GetId() == button.GetId())
+ if( mPauseButton.GetProperty< int >( Actor::Property::ID ) == button.GetProperty< int >( Actor::Property::ID ))
{
if( mIsPlay )
{
- mPauseButton.SetVisible( false );
- mPauseButton.SetDisabled( true );
- mPlayButton.SetVisible( true );
- mPlayButton.SetDisabled( false );
+ mPauseButton.SetProperty( Actor::Property::VISIBLE, false );
+ mPauseButton.SetProperty( Button::Property::DISABLED, true );
+ mPlayButton.SetProperty( Actor::Property::VISIBLE, true );
+ mPlayButton.SetProperty( Button::Property::DISABLED, false );
mIsPlay = false;
mVideoView.Pause();
}
}
- else if( mPlayButton.GetId() == button.GetId())
+ else if( mPlayButton.GetProperty< int >( Actor::Property::ID ) == button.GetProperty< int >( Actor::Property::ID ))
{
- if( mIsStop )
- {
- return false;
- }
-
- mPauseButton.SetVisible( true );
- mPauseButton.SetDisabled( false );
- mPlayButton.SetVisible( false );
- mPlayButton.SetDisabled( true );
+ mPauseButton.SetProperty( Actor::Property::VISIBLE, true );
+ mPauseButton.SetProperty( Button::Property::DISABLED, false );
+ mPlayButton.SetProperty( Actor::Property::VISIBLE, false );
+ mPlayButton.SetProperty( Button::Property::DISABLED, true );
mIsPlay = true;
mVideoView.Play();
}
- else if( mResetButton.GetId() == button.GetId())
+ else if( mChangeButton.GetProperty< int >( Actor::Property::ID ) == button.GetProperty< int >( Actor::Property::ID ))
{
- if( mIsStop )
+ bool underlay = false;
+ underlay = mVideoView.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
+ if( underlay )
{
- mPauseButton.SetVisible( true );
- mPauseButton.SetDisabled( false );
- mPlayButton.SetVisible( false );
- mPlayButton.SetDisabled( true );
- mResetButton.SetVisible( false );
- mResetButton.SetDisabled( true );
- mStopButton.SetVisible( true );
- mStopButton.SetDisabled( false );
-
- mIsStop = false;
- mIsPlay = true;
- mVideoView.SetProperty( VideoView::Property::VIDEO, PLAY_FILE );
- mVideoView.Play();
+ mVideoView.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false );
+ }
+ else
+ {
+ mVideoView.SetProperty( Toolkit::VideoView::Property::UNDERLAY, true );
}
}
- else if( mStopButton.GetId() == button.GetId())
- {
- mPauseButton.SetVisible( false );
- mPauseButton.SetDisabled( true );
- mPlayButton.SetVisible( true );
- mPlayButton.SetDisabled( false );
- mResetButton.SetVisible( true );
- mResetButton.SetDisabled( false );
- mStopButton.SetVisible( false );
- mStopButton.SetDisabled( true );
-
- mIsStop = true;
- mVideoView.Stop();
- }
- else if( mBackwardButton.GetId() == button.GetId())
+ else if( mBackwardButton.GetProperty< int >( Actor::Property::ID ) == button.GetProperty< int >( Actor::Property::ID ))
{
mVideoView.Backward( SEEK_POS );
}
- else if( mForwardButton.GetId() == button.GetId())
+ else if( mForwardButton.GetProperty< int >( Actor::Property::ID ) == button.GetProperty< int >( Actor::Property::ID ))
{
mVideoView.Forward( SEEK_POS );
}
return true;
}
- void OnFinished( VideoView& view )
- {
- if( !mIsFullScreen )
- {
- mRotationAnimation.Play();
- mIsStop = true;
- }
- }
-
void OnPan( Actor actor, const PanGesture& gesture )
{
if( !mIsFullScreen && gesture.state == Gesture::Continuing )
if( gesture.state == Gesture::Finished )
{
mScale = mPinchStartScale * gesture.scale;
- if( mScale > 1.f )
- {
- mVideoView.SetSize( mStageSize.x, mStageSize.y );
- mVideoView.SetProperty( VideoView::Property::VIDEO, mWindowSurfaceTarget );
- mMenu.SetSize( mStageSize.x, 120 );
- mIsFullScreen = true;
- }
- else
- {
- mVideoView.SetSize( INIT_WIDTH, INIT_HEIGHT );
- mVideoView.SetProperty( VideoView::Property::VIDEO, mNativeImageTarget );
- mMenu.SetSize( INIT_WIDTH, 120 );
- mIsFullScreen = false;
- }
+ mVideoView.SetProperty( Actor::Property::SCALE, mScale );
}
}
{
if( !mIsFullScreen )
{
- mRotationAnimation.Play();
+ mVideoView.SetProperty( Actor::Property::SIZE, mWindowSize );
+ mIsFullScreen = true;
+ }
+ else
+ {
+ mVideoView.SetProperty( Actor::Property::SIZE, Vector2( INIT_WIDTH, INIT_HEIGHT ) );
+ mIsFullScreen = false;
}
}
*/
void OnKeyEvent(const KeyEvent& event)
{
- if(event.state == KeyEvent::Down)
+ if(event.GetState() == KeyEvent::DOWN)
{
if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
{
Application& mApplication;
VideoView mVideoView;
Layer mMenu;
- Vector2 mStageSize;
+ Vector2 mWindowSize;
bool mIsPlay;
- bool mIsStop;
bool mIsFullScreen;
PushButton mPlayButton;
PushButton mPauseButton;
- PushButton mStopButton;
+ PushButton mChangeButton;
PushButton mResetButton;
PushButton mBackwardButton;
PushButton mForwardButton;
float mPinchStartScale;
Animation mRotationAnimation;
- Property::Map mWindowSurfaceTarget;
- Property::Map mNativeImageTarget;
};
-void RunTest( Application& application )
-{
- VideoViewController test( application );
-
- application.MainLoop();
-}
-
-// Entry point for Linux & Tizen applications
-//
int DALI_EXPORT_API main( int argc, char **argv )
{
Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
-
- RunTest( application );
-
+ VideoViewController test( application );
+ application.MainLoop();
return 0;
}