X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fvideo-view%2Fvideo-view-impl.cpp;h=1fd4be50957bb45c5ac4f8509b5a5519425b5f20;hp=0b431fc4f273c1a5b94b50b1c32c67211ad663be;hb=e45a83e75fea3cf64f26f0070276157bc5d4417d;hpb=8ddb15f9e047abe0f51f803f5418bcb9d22a821d diff --git a/dali-toolkit/internal/controls/video-view/video-view-impl.cpp b/dali-toolkit/internal/controls/video-view/video-view-impl.cpp index 0b431fc..1fd4be5 100644 --- a/dali-toolkit/internal/controls/video-view/video-view-impl.cpp +++ b/dali-toolkit/internal/controls/video-view/video-view-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -29,6 +29,7 @@ // INTERNAL INCLUDES #include +#include namespace Dali { @@ -66,16 +67,16 @@ DALI_TYPE_REGISTRATION_END() const char* const VOLUME_LEFT( "volumeLeft" ); const char* const VOLUME_RIGHT( "volumeRight" ); -const char* const RENDERING_TARGET( "RENDERING_TARGET" ); +const char* const RENDERING_TARGET( "renderingTarget" ); const char* const WINDOW_SURFACE_TARGET( "windowSurfaceTarget" ); const char* const NATIVE_IMAGE_TARGET( "nativeImageTarget" ); } // anonymous namepsace VideoView::VideoView() -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), +: Control( ControlBehaviour( ACTOR_BEHAVIOUR_DEFAULT | DISABLE_STYLE_CHANGE_SIGNALS ) ), mCurrentVideoPlayPosition( 0 ), - mSetRenderingTarget( false ), + mIsNativeImageTarget( true ), mIsPlay( false ), mIsPause( false ) { @@ -96,23 +97,31 @@ Toolkit::VideoView VideoView::New() return handle; } +void VideoView::OnInitialize() +{ + Any source; + Dali::NativeImageSourcePtr nativeImageSourcePtr = Dali::NativeImageSource::New( source ); + mNativeImage = Dali::NativeImage::New( *nativeImageSourcePtr ); + + mVideoPlayer.SetRenderingTarget( nativeImageSourcePtr ); + mVideoPlayer.FinishedSignal().Connect( this, &VideoView::EmitSignalFinish ); +} + void VideoView::SetUrl( const std::string& url ) { if( mUrl != url || !mPropertyMap.Empty() ) { - mPropertyMap.Clear(); - mUrl = url; + mPropertyMap.Clear(); } - if( mSetRenderingTarget ) + if( mIsNativeImageTarget ) { - mVideoPlayer.SetUrl( mUrl ); - } - else - { - SetNativeImageTarget(); + Actor self( Self() ); + Internal::InitializeVisual( self, mVisual, mNativeImage ); } + + mVideoPlayer.SetUrl( mUrl ); } void VideoView::SetPropertyMap( Property::Map map ) @@ -120,7 +129,7 @@ void VideoView::SetPropertyMap( Property::Map map ) mPropertyMap = map; Actor self( Self() ); - InitializeControlRenderer( self, mRenderer, mPropertyMap ); + Internal::InitializeVisual( self, mVisual, mPropertyMap ); Property::Value* widthValue = mPropertyMap.Find( "width" ); if( widthValue ) @@ -430,29 +439,29 @@ Property::Value VideoView::GetProperty( BaseObject* object, Property::Index prop void VideoView::SetDepthIndex( int depthIndex ) { - if( mRenderer ) + if( mVisual ) { - mRenderer.SetDepthIndex( depthIndex ); + mVisual.SetDepthIndex( depthIndex ); } } void VideoView::OnStageConnection( int depth ) { - Control::OnStageConnection( depth ); - - if( mRenderer ) + if( mVisual ) { CustomActor self = Self(); - mRenderer.SetOnStage( self ); + Toolkit::GetImplementation(mVisual).SetOnStage( self ); } + + Control::OnStageConnection( depth ); } void VideoView::OnStageDisconnection() { - if( mRenderer ) + if( mVisual ) { CustomActor self = Self(); - mRenderer.SetOffStage( self ); + Toolkit::GetImplementation(mVisual).SetOffStage( self ); } Control::OnStageDisconnection(); @@ -504,12 +513,16 @@ void VideoView::SetWindowSurfaceTarget() Actor self = Self(); int curPos = mVideoPlayer.GetPlayPosition(); - mSetRenderingTarget = true; - mRenderer.RemoveAndReset( self ); + if( mVisual ) + { + Toolkit::GetImplementation(mVisual).SetOffStage(self); + mVisual.Reset(); + } mVideoPlayer.SetRenderingTarget( Dali::Adaptor::Get().GetNativeWindowHandle() ); mVideoPlayer.SetUrl( mUrl ); - mVideoPlayer.FinishedSignal().Connect( this, &VideoView::EmitSignalFinish ); + + mIsNativeImageTarget = false; if( mIsPlay ) { @@ -528,17 +541,15 @@ void VideoView::SetNativeImageTarget() Actor self( Self() ); int curPos = mVideoPlayer.GetPlayPosition(); - mSetRenderingTarget = true; - Any source; Dali::NativeImageSourcePtr nativeImageSourcePtr = Dali::NativeImageSource::New( source ); mNativeImage = Dali::NativeImage::New( *nativeImageSourcePtr ); mVideoPlayer.SetRenderingTarget( nativeImageSourcePtr ); mVideoPlayer.SetUrl( mUrl ); - mVideoPlayer.FinishedSignal().Connect( this, &VideoView::EmitSignalFinish ); - InitializeControlRenderer( self, mRenderer, mNativeImage ); + Internal::InitializeVisual( self, mVisual, mNativeImage ); + mIsNativeImageTarget = true; if( mIsPlay ) {