2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file VpVideoPlayerForm.h
19 * @brief This is the header file for VideoPlayerForm class.
22 #ifndef _VP_MAIN_FORM_H_
23 #define _VP_MAIN_FORM_H_
27 #include <FGraphics.h>
29 #include <FMediaIAudioRouteEventListener.h>
31 #include "VpIVideoPlayerEventListener.h"
34 class VideoPlayerPresentationModel;
37 : public Tizen::Ui::Controls::Form
38 , public Tizen::App::IAppControlResponseListener
39 , public Tizen::Base::Runtime::ITimerEventListener
40 , public Tizen::Media::IAudioRouteEventListener
41 , public Tizen::Ui::Controls::IFormBackEventListener
42 , public Tizen::Ui::Controls::ISliderEventListener
43 , public Tizen::Ui::IActionEventListener
44 , public Tizen::Ui::IAdjustmentEventListener
45 , public Tizen::Ui::IFocusEventListener
46 , public Tizen::Ui::IKeyEventListener
47 , public Tizen::Ui::IOrientationEventListener
48 , public Tizen::Ui::ITouchEventListener
49 , public Tizen::Ui::Scenes::ISceneEventListener
50 , public IVideoPlayerEventListener
53 VideoPlayerForm(void);
54 virtual ~VideoPlayerForm(void);
56 void Initialize(void);
58 void CancelTimerByFrameDeactivated(void);
59 void CheckAppLaunchable(void);
61 result SetActiveAudioRoute(const Tizen::Media::AudioRouteInfo& route);
63 void SetFrameActivated(bool frameActivated);
64 bool GetFrameActivated(void) const;
66 virtual result OnInitializing(void);
67 virtual result OnTerminating(void);
68 virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
70 virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId,
71 const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult,
72 const Tizen::Base::Collection::IMap* pExtraData);
74 virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
76 virtual void OnActiveAudioRouteChanged(const Tizen::Media::AudioRouteInfo& route);
77 virtual void OnAudioRouteAdded(const Tizen::Media::AudioRouteInfo& route);
78 virtual void OnAudioRouteRemoved(const Tizen::Media::AudioRouteInfo& route);
80 virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
82 virtual void OnSliderBarMoved(Tizen::Ui::Controls::Slider& source, int value);
84 virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
86 virtual void OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment);
88 virtual void OnFocusGained(const Tizen::Ui::Control& source){}
89 virtual void OnFocusLost(const Tizen::Ui::Control& source);
91 virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
92 virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
93 virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
95 virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
97 virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
98 virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
99 virtual void OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
100 virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
101 virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
102 virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
104 virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
105 virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
107 virtual void OnPlayOpened(result r);
108 virtual void OnPlayEndOfClip(bool playNextContent, int repeatMode, int mediaCount);
109 virtual void OnPlayBuffering(int percent);
110 virtual void OnPlayErrorOccurred(Tizen::Media::PlayerErrorReason r);
111 virtual void OnPlayInterrupted(void);
112 virtual void OnPlayReleased(void);
113 virtual void OnPlayContentChanged(const Tizen::Base::String& fileName);
114 virtual void OnPlayTimeChanged(int currentProgressPos, Tizen::Base::String& currentPlayTime);
115 virtual void OnPlayStateChanged(Tizen::Media::PlayerState playState);
116 virtual void OnPlaySeekCompleted(result r);
121 SCREEN_MODE_NORMAL = 0,
128 AUDIO_ROUTE_SPEAKER_ONLY,
129 AUDIO_ROUTE_BT_A2DP_AND_SPEAKER,
130 AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER,
131 AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY
134 enum AvailableAudioRoute
136 OUTPUT_AUDIO_ROUTE_NONE,
137 OUTPUT_AUDIO_ROUTE_SPEAKER,
138 OUTPUT_AUDIO_ROUTE_RECEIVER,
139 OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY,
140 OUTPUT_AUDIO_ROUTE_BT_SCO,
141 OUTPUT_AUDIO_ROUTE_BT_A2DP,
142 OUTPUT_AUDIO_ROUTE_MAX
145 friend void DestroyPresentationModelInstance(void);
146 result InitializeHeader(void);
147 result InitializeFuncPanel(void);
148 result InitializeController(void);
149 result SetScreenMode(const ScreenMode mode, bool destroyOverlay);
150 void UpdateProgressBar(const int currentPlayTime);
151 void InitTimer(void);
152 void DeleteTimer(void);
153 void GetTotalTime(Tizen::Base::String& totalTime);
154 void PlayerSoundPathPopupInit(void);
155 result SetPlayPauseButtonImage(Tizen::Media::PlayerState playState);
156 void SetRepeatButtonImage(int repeatValue);
157 void SetScreenModeButtonImage(void);
158 void CreateMessageBox(const Tizen::Base::String& title, const Tizen::Base::String& message,
159 Tizen::Ui::Controls::MessageBoxStyle style = Tizen::Ui::Controls::MSGBOX_STYLE_OK,
160 unsigned long timeout = 0);
161 void ShowControl(bool setShow);
162 void CheckCallStatus(void);
163 void CheckLowBatteryStatus(void);
164 void InitAudioRouteList(void);
167 Tizen::Ui::Controls::OverlayPanel* __pOverlayPanel;
168 ScreenMode __screenMode;
169 SoundPathPopup* __pSoundPathPopup;
170 Tizen::Base::Runtime::Timer* __pUiControlTimer;
171 Tizen::Media::AudioRouteManager* __pAudioRouteManager;
172 Tizen::Ui::Controls::Header* __pHeader;
173 Tizen::Ui::Controls::Panel* __pFunctionPanel;
174 Tizen::Ui::Controls::Panel* __pControllerPanel;
175 Tizen::Ui::Controls::Button* __pPlayPauseButton;
176 Tizen::Ui::Controls::Button* __pFastForwardButton;
177 Tizen::Ui::Controls::Button* __pFastRewindButton;
178 Tizen::Ui::Controls::Button* __pShareButton;
179 Tizen::Ui::Controls::Button* __pScreenModeButton;
180 Tizen::Ui::Controls::Button* __pRepeatModeButton;
181 Tizen::Ui::Controls::Label* __pCurrenTimeLabel;
182 Tizen::Ui::Controls::Label* __pTotalTimeLabel;
183 Tizen::Ui::Controls::Slider* __pSlider;
184 Tizen::Ui::Controls::ContextMenu* __pShareContextMenu;
185 bool __actionTouchLongPressed;
186 bool __setPauseState;
187 bool __isControlVisibleState;
188 bool __availableAudioRoute[OUTPUT_AUDIO_ROUTE_MAX];
190 bool __playingBeforeSlide;
191 bool __frameActivated;
192 int __audioRouteMode;
194 VideoPlayerPresentationModel* __pVideoPlayerPresentationModel;
197 #endif // _VP_MAIN_FORM_H_