1 #ifndef __DALI_VIDEO_PLAYER_IMPL_H__
2 #define __DALI_VIDEO_PLAYER_IMPL_H__
5 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/public-api/object/base-object.h>
25 #include <video-player.h>
26 #include <video-player-plugin.h>
40 typedef IntrusivePtr< VideoPlayer > VideoPlayerPtr;
43 * @brief VideoPlayer class is used for video playback.
46 class VideoPlayer: public Dali::BaseObject
51 * @brief Creates a new VideoPlayer handle
53 * @return VideoPlayer pointer
55 static VideoPlayerPtr New();
58 * @copydoc Dali::VideoPlayer::SetUrl()
60 void SetUrl( const std::string& url );
63 * @copydoc Dali::VideoPlayer::GetUrl()
68 * @copydoc Dali::VideoPlayer::SetLooping()
70 void SetLooping(bool looping);
73 * @copydoc Dali::VideoPlayer::IsLooping()
78 * @copydoc Dali::VideoPlayer::Play()
83 * @copydoc Dali::VideoPlayer::Pause()
88 * @copydoc Dali::VideoPlayer::Stop()
93 * @copydoc Dali::VideoPlayer::SetMute()
95 void SetMute( bool mute );
98 * @copydoc Dali::VideoPlayer::IsMuted()
103 * @copydoc Dali::VideoPlayer::SetVolume()
105 void SetVolume( float left, float right );
108 * @copydoc Dali::VideoPlayer::GetVolume()
110 void GetVolume( float& left, float& right );
113 * @copydoc Dali::VideoPlayer::SetRenderingTarget()
115 void SetRenderingTarget( Dali::Any target );
118 * @copydoc Dali::VideoPlayer::SetPlayPosition()
120 void SetPlayPosition( int millisecond );
123 * @copydoc Dali::VideoPlayer::GetPlayPosition()
125 int GetPlayPosition();
128 * @copydoc Dali::VideoPlayer::SetDisplayArea()
130 void SetDisplayArea( DisplayArea area );
133 * @copydoc Dali::VideoPlayer::SetSetDisplayRotation()
135 void SetDisplayRotation( Dali::VideoPlayerPlugin::DisplayRotation rotation );
138 * @copydoc Dali::VideoPlayer::GetDisplayRotation()
140 Dali::VideoPlayerPlugin::DisplayRotation GetDisplayRotation();
143 * @copydoc Dali::VideoPlayer::FinishedSignal()
145 Dali::VideoPlayerPlugin::VideoPlayerSignalType& FinishedSignal();
148 * @brief Initializes member data.
153 * @brief Dali::VideoPlayer::Forward()
155 void Forward( int millisecond );
158 * @brief Dali::VideoPlayer::Backward()
160 void Backward( int millisecond );
163 * @brief Dali::VideoPlayer::IsVideoTextureSupported()
165 bool IsVideoTextureSupported();
170 * @brief Constructor.
179 virtual ~VideoPlayer();
181 // Undefined copy constructor
182 VideoPlayer( const VideoPlayer& player );
184 // Undefined assignment operator
185 VideoPlayer& operator=( const VideoPlayer& player );
189 Dali::VideoPlayerPlugin* mPlugin; ///< Videoplayer plugin handle
190 void* mHandle; ///< Handle for the loaded library
192 typedef Dali::VideoPlayerPlugin* (*CreateVideoPlayerFunction)();
193 typedef void (*DestroyVideoPlayerFunction)( Dali::VideoPlayerPlugin* plugin );
195 CreateVideoPlayerFunction mCreateVideoPlayerPtr;
196 DestroyVideoPlayerFunction mDestroyVideoPlayerPtr;
198 Dali::VideoPlayerPlugin::VideoPlayerSignalType mFinishedSignal;
201 } // namespace Adaptor
202 } // namespace Internal
204 inline static Internal::Adaptor::VideoPlayer& GetImplementation( Dali::VideoPlayer& player )
206 DALI_ASSERT_ALWAYS( player && "VideoPlayer handle is empty." );
208 BaseObject& handle = player.GetBaseObject();
210 return static_cast< Internal::Adaptor::VideoPlayer& >( handle );
213 inline static const Internal::Adaptor::VideoPlayer& GetImplementation( const Dali::VideoPlayer& player )
215 DALI_ASSERT_ALWAYS( player && "VideoPlayer handle is empty." );
217 const BaseObject& handle = player.GetBaseObject();
219 return static_cast< const Internal::Adaptor::VideoPlayer& >( handle );