X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fvideo-view%2Fvideo-view.h;h=38be0ffb0f5b927a199255797082597b2a6f4224;hp=5f25a9fcb5baa4ade232e0a92152b70bd6a49801;hb=1d82abb8a1a514ce0af63004706135fb7883f89b;hpb=93c98ee5dc13a4fa358c4310883a4115666f219e diff --git a/dali-toolkit/public-api/controls/video-view/video-view.h b/dali-toolkit/public-api/controls/video-view/video-view.h index 5f25a9f..38be0ff 100644 --- a/dali-toolkit/public-api/controls/video-view/video-view.h +++ b/dali-toolkit/public-api/controls/video-view/video-view.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_VIDEO_VIEW_H__ -#define __DALI_TOOLKIT_VIDEO_VIEW_H__ +#ifndef DALI_TOOLKIT_VIDEO_VIEW_H +#define DALI_TOOLKIT_VIDEO_VIEW_H /* - * 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. @@ -23,14 +23,12 @@ namespace Dali { - namespace Toolkit { - namespace Internal DALI_INTERNAL { - class VideoView; -} // namespace Internal +class VideoView; +} // namespace DALI_INTERNAL /** * @addtogroup dali_toolkit_controls_video_view @@ -59,26 +57,32 @@ namespace Internal DALI_INTERNAL * @SINCE_1_1.38 * */ -class DALI_IMPORT_API VideoView: public Control +class DALI_TOOLKIT_API VideoView : public Control { public: - // Signal - typedef Signal< void (VideoView&) > VideoViewSignalType; ///< Video playback finished signal type @ SINCE_1_1.38 + typedef Signal VideoViewSignalType; ///< Video playback finished signal type @ SINCE_1_1.38 public: - /** * @brief Enumeration for the start and end property ranges for this control. * @SINCE_1_0.0 */ enum PropertyRange { - PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0 + PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0 }; + /** + * @brief Enumeration for the instance of properties belonging to the VideoView class. + * @SINCE_1_1.38 + */ struct Property { + /** + * @brief Enumeration for the instance of properties belonging to the VideoView class. + * @SINCE_1_1.38 + */ enum { /** @@ -89,25 +93,25 @@ public: */ VIDEO = PROPERTY_START_INDEX, - /** + /** * @brief name "looping", looping status, true or false. * @SINCE_1_1.38 */ LOOPING, - /** + /** * @brief name "muted", mute status, true or false. * @SINCE_1_1.38 */ MUTED, - /** + /** * @brief name "volume", left and right volume scalar as float type, Property::Map with two values ( "left" and "right" ). * @SINCE_1_1.38 */ VOLUME, - /** + /** * @brief name "underlay", Video rendering by underlay, true or false * This shows video composited underneath the window by the system. This means it may ignore rotation of the video-view * If false, video-view shows decoded frame images sequentially. @@ -115,18 +119,74 @@ public: * @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, + + /** + * @brief The display mode of the video. + * @SINCE_1_3_15 + */ + DISPLAY_MODE }; }; -public: + /** + * @brief The values of this enum determine how the video should be display mode to the view + * @SINCE_1_3_15 + */ + struct DisplayMode + { + /** + * @brief The values of this enum determine how the video should be display mode to the view. + * @SINCE_1_3_15 + */ + enum Type + { + /** + * @brief Letter box + * @SINCE_1_3_15 + */ + LETTER_BOX = 0, + /** + * @brief Origin size + * @SINCE_1_3_15 + */ + ORIGIN_SIZE, + /** + * @brief Full-screen + * @SINCE_1_3_15 + */ + FULL_SCREEN, + /** + * @brief Cropped full-screen + * @SINCE_1_3_15 + */ + CROPPED_FULL, + /** + * @brief Origin size (if surface size is larger than video size(width/height)) or Letter box (if video size(width/height) is larger than surface size) + * @SINCE_1_3_15 + */ + ORIGIN_OR_LETTER, + /** + * @brief Region of Interest + * @SINCE_1_3_15 + */ + DST_ROI + }; + }; +public: /** * @brief Creates an initialized VideoView. * @SINCE_1_1.38 * @return A handle to a newly allocated Dali ImageView * - * @note VideoView will not display anything */ static VideoView New(); @@ -140,7 +200,32 @@ public: * @param[in] url The url of the video resource to display * @return A handle to a newly allocated Dali VideoView */ - static VideoView New( const std::string& url ); + 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. @@ -162,7 +247,15 @@ public: * @SINCE_1_1.38 * @param[in] videoView VideoView to copy. The copied VideoView will point at the same implementation */ - VideoView( const VideoView& videoView ); + VideoView(const VideoView& videoView); + + /** + * @brief Move constructor + * @SINCE_1_9.23 + * + * @param[in] rhs A reference to the moved handle + */ + VideoView(VideoView&& rhs); /** * @brief Assignment operator. @@ -171,7 +264,16 @@ public: * @param[in] videoView The VideoView to assign from * @return The updated VideoView */ - VideoView& operator=( const VideoView& videoView ); + VideoView& operator=(const VideoView& videoView); + + /** + * @brief Move assignment + * @SINCE_1_9.23 + * + * @param[in] rhs A reference to the moved handle + * @return A reference to this + */ + VideoView& operator=(VideoView&& rhs); /** * @brief Downcasts a handle to VideoView handle. @@ -183,7 +285,7 @@ public: * @param[in] handle Handle to an object * @return Handle to a VideoView or an uninitialized handle */ - static VideoView DownCast( BaseHandle handle ); + static VideoView DownCast(BaseHandle handle); /** * @brief Starts the video playback. @@ -209,7 +311,7 @@ public: * @SINCE_1_1.38 * @param[in] millisecond The position for forward playback */ - void Forward( int millisecond ); + void Forward(int millisecond); /** * @brief Seeks backward by the specified number of milliseconds. @@ -217,7 +319,7 @@ public: * @SINCE_1_1.38 * @param[in] millisecond The position for backward playback */ - void Backward( int millisecond ); + void Backward(int millisecond); /** * @brief Connects to this signal to be notified when a video playback is finished. @@ -228,7 +330,6 @@ public: VideoViewSignalType& FinishedSignal(); public: // Not intended for application developers - /// @cond internal /** * @brief Creates a handle using the Toolkit::Internal implementation. @@ -236,7 +337,7 @@ public: // Not intended for application developers * @SINCE_1_1.38 * @param[in] implementation The VideoView implementation */ - DALI_INTERNAL VideoView( Internal::VideoView& implementation ); + DALI_INTERNAL VideoView(Internal::VideoView& implementation); /** * @brief Allows the creation of this VideoView from an Internal::CustomActor pointer. @@ -244,9 +345,8 @@ public: // Not intended for application developers * @SINCE_1_1.38 * @param[in] internal A pointer to the internal CustomActor */ - DALI_INTERNAL VideoView( Dali::Internal::CustomActor* internal ); + DALI_INTERNAL VideoView(Dali::Internal::CustomActor* internal); /// @endcond - }; /** @@ -257,4 +357,4 @@ public: // Not intended for application developers } // namespace Dali -#endif // __DALI_TOOLKIT_VIDEO_VIEW_H__ +#endif // DALI_TOOLKIT_VIDEO_VIEW_H