{
mMuted = false;
mLooping = false;
+ mPlayPosition = 0;
}
void SetMuted( bool muted )
}
}
+ int GetPlayPosition()
+ {
+ return mPlayPosition;
+ }
+
+ void SetPlayPosition( int pos )
+ {
+ mPlayPosition = pos;
+ }
+
public:
std::string mUrl;
bool mMuted;
bool mLooping;
+ int mPlayPosition;
};
inline VideoPlayer& GetImplementation( Dali::VideoPlayer& player )
void VideoPlayer::SetPlayPosition( int millisecond )
{
+ Internal::Adaptor::GetImplementation( *this ).SetPlayPosition( millisecond );
}
int VideoPlayer::GetPlayPosition()
{
- return 0;
+ return Internal::Adaptor::GetImplementation( *this ).GetPlayPosition();
}
void VideoPlayer::SetDisplayArea( DisplayArea area )
{
}
-bool VideoPlayer::IsVideoTextureSupported() const
+bool VideoPlayer::IsVideoTextureSupported()
{
return ToolkitApplication::DECODED_IMAGES_SUPPORTED;
}
+void VideoPlayer::SetCodecType( Dali::VideoPlayerPlugin::CodecType type )
+{
+}
+
+Dali::VideoPlayerPlugin::CodecType VideoPlayer::GetCodecType() const
+{
+ return Dali::VideoPlayerPlugin::CodecType::DEFAULT;
+}
+
} // namespace Dali;
int UtcDaliVideoViewPropertyUnderlay(void)
{
ToolkitTestApplication application;
+ tet_infoline("UtcDaliVideoViewPropertyUnderlay");
ToolkitApplication::DECODED_IMAGES_SUPPORTED = true;
VideoView view = VideoView::New();
END_TEST;
}
+
+int UtcDaliVideoViewPropertyPlayPosition(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline("UtcDaliVideoViewPropertyPlayPosition");
+
+ VideoView view = VideoView::New();
+ DALI_TEST_CHECK( view );
+
+ Stage::GetCurrent().Add( view );
+ view.Play();
+
+ application.SendNotification();
+ application.Render();
+
+ int playPos = view.GetProperty( Toolkit::VideoView::Property::PLAY_POSITION ).Get< int >();
+ DALI_TEST_CHECK( playPos == 0 );
+
+ view.SetProperty( Toolkit::VideoView::Property::PLAY_POSITION, 10 );
+ playPos = view.GetProperty( Toolkit::VideoView::Property::PLAY_POSITION ).Get< int >();
+ // Actually setting play position will be async
+ // Actual platform result may be different.
+ DALI_TEST_CHECK( playPos == 10 );
+
+ END_TEST;
+}
+
+// For coverage.
+int UtcDaliVideoViewNew2(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline("UtcDaliVideoViewNew2");
+
+ VideoView view = VideoView::New( true );
+ DALI_TEST_CHECK( view );
+
+ Stage::GetCurrent().Add( view );
+ view.Play();
+
+ application.SendNotification();
+ application.Render();
+
+ VideoView view2 = VideoView::New( "", false );
+ DALI_TEST_CHECK( view2 );
+
+ Stage::GetCurrent().Add( view2 );
+ view2.Play();
+
+ application.SendNotification();
+ application.Render();
+
+ END_TEST;
+}
# Extra tags for Tizen 4.0
ALIASES += SINCE_1_3_4="@since 1.3.4"
ALIASES += SINCE_1_3_5="@since 1.3.5"
+ALIASES += SINCE_1_3_9="@since 1.3.9"
ALIASES += DEPRECATED_1_0="@deprecated Deprecated since 1.0"
ALIASES += DEPRECATED_1_1="@deprecated Deprecated since 1.1"
## Extra tags for Tizen 4.0
#ALIASES += SINCE_1_3_4="\par Since:\n 4.0, DALi version 1.3.4"
#ALIASES += SINCE_1_3_5="\par Since:\n 4.0, DALi version 1.3.5"
+#ALIASES += SINCE_1_3_9="\par Since:\n 4.0, DALi version 1.3.9"
## DALi has no deprecated API in Tizen 2.4 because it's DALi's first release.
## Thus deprecated APIs in DALi 1.0.xx will be deprecated in Tizen 3.0.
DALI_PROPERTY_REGISTRATION( Toolkit, VideoView, "muted", BOOLEAN, MUTED )
DALI_PROPERTY_REGISTRATION( Toolkit, VideoView, "volume", MAP, VOLUME )
DALI_PROPERTY_REGISTRATION( Toolkit, VideoView, "underlay", BOOLEAN, UNDERLAY )
+DALI_PROPERTY_REGISTRATION( Toolkit, VideoView, "playPosition", INTEGER, PLAY_POSITION )
DALI_SIGNAL_REGISTRATION( Toolkit, VideoView, "finished", FINISHED_SIGNAL )
}
break;
}
+ case Toolkit::VideoView::Property::PLAY_POSITION:
+ {
+ int pos;
+ if( value.Get( pos ) )
+ {
+ impl.SetPlayPosition( pos );
+ }
+ break;
+ }
}
}
}
value = impl.IsUnderlay();
break;
}
+ case Toolkit::VideoView::Property::PLAY_POSITION:
+ {
+ value = impl.GetPlayPosition();
+ break;
+ }
}
}
return mIsUnderlay;
}
+void VideoView::SetSWCodec( bool on )
+{
+ // If setting SW or HW type is failed , video-view shows video by default codec type.
+ // The default codec type is selected by platform.
+ if( on )
+ {
+ mVideoPlayer.SetCodecType( Dali::VideoPlayerPlugin::CodecType::SW );
+ }
+ else
+ {
+ mVideoPlayer.SetCodecType( Dali::VideoPlayerPlugin::CodecType::HW );
+ }
+}
+
+int VideoView::GetPlayPosition()
+{
+ return mVideoPlayer.GetPlayPosition();
+}
+
+void VideoView::SetPlayPosition( int pos )
+{
+ mVideoPlayer.SetPlayPosition( pos );
+}
+
} // namespace Internal
} // namespace toolkit
*/
bool IsUnderlay();
+ /**
+ * @brief Sets sw codec type.
+ */
+ void SetSWCodec( bool on );
+
+ /**
+ * @brief Gets play position.
+ */
+ int GetPlayPosition();
+
+ /**
+ * @brief Sets play position.
+ */
+ void SetPlayPosition( int pos );
+
private: // From Control
/**
return videoView;
}
+VideoView VideoView::New( bool swCodec )
+{
+ VideoView videoView = Internal::VideoView::New();
+ Dali::Toolkit::GetImpl( videoView ).SetSWCodec( swCodec );
+ return videoView;
+}
+
+VideoView VideoView::New( const std::string& url, bool swCodec )
+{
+ VideoView videoView = Internal::VideoView::New();
+ Dali::Toolkit::GetImpl( videoView ).SetUrl( url );
+ Dali::Toolkit::GetImpl( videoView ).SetSWCodec( swCodec );
+ return videoView;
+}
+
VideoView VideoView::DownCast( BaseHandle handle )
{
return Control::DownCast< VideoView, Internal::VideoView >( handle );
* @SINCE_1_2.62
* @REMARK_RAWVIDEO
*/
- UNDERLAY
+ UNDERLAY,
+
+ /**
+ * @brief The play position (millisecond) of the video.
+ * @details Name "playPosition", type Property::INTEGER
+ * @SINCE_1_3_9
+ */
+ PLAY_POSITION
};
};
* @SINCE_1_1.38
* @return A handle to a newly allocated Dali ImageView
*
- * @note VideoView will not display anything
*/
static VideoView New();
*/
static VideoView New( const std::string& url );
+ /**
+ * @brief Creates an initialized VideoView.
+ * @SINCE_1_3_9
+ * @param[in] swCodec Video rendering by H/W codec if false
+ * @return A handle to a newly allocated Dali ImageView
+ *
+ * @note If platform or target does not support sw codec, video-view shows an error message and video by default codec type
+ */
+ static VideoView New( bool swCodec );
+
+ /**
+ * @brief Creates an initialized VideoView.
+ * If the string is empty, VideoView will not display anything.
+ *
+ * @SINCE_1_3_9
+ * @REMARK_INTERNET
+ * @REMARK_STORAGE
+ * @param[in] url The url of the video resource to display
+ * @param[in] swCodec Video rendering by H/W codec if false
+ * @return A handle to a newly allocated Dali VideoView
+ *
+ * @note If platform or target does not support sw codec, video-view shows an error message and video by default codec type
+ */
+ static VideoView New( const std::string& url, bool swCodec );
+
/**
* @brief Creates an uninitialized VideoView.
* @SINCE_1_1.38