3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.tizenopensource.org/license
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 #ifndef _VIDEO_RECORDER_PLAYER_FORM_H_
19 #define _VIDEO_RECORDER_PLAYER_FORM_H_
24 #include <FUixSensorManager.h>
25 #include <FUixISensorEventListener.h>
26 #include "MultiForm.h"
29 using namespace Osp::Media;
30 using namespace Osp::Ui::Controls;
31 using namespace Osp::Base::Collection;
32 using namespace Osp::Graphics;
34 class VideoRecorderPlayerForm
36 , public ICameraEventListener
37 , public Osp::Media::IPlayerEventListener
38 , public Osp::Ui::ITouchEventListener
39 , public Osp::Media::IVideoRecorderEventListener
40 , public Osp::Base::Runtime::ITimerEventListener
44 VideoRecorderPlayerForm(void);
45 virtual ~VideoRecorderPlayerForm(void);
46 bool Initialize(void);
50 virtual result OnInitializing(void);
51 virtual result OnTerminating(void);
52 virtual result OnActivate(void* activateParam);
53 virtual void OnCameraAutoFocused(bool completeCondition);
54 virtual void OnCameraCaptured(Osp::Base::ByteBuffer& capturedData, result r);
55 virtual void OnCameraErrorOccurred(CameraErrorReason r);
56 virtual void OnCameraPreviewed(Osp::Base::ByteBuffer& previewedData, result r);
58 virtual void OnTimerExpired(Osp::Base::Runtime::Timer& timer);
60 virtual void OnVideoRecorderCanceled(result r);
61 virtual void OnVideoRecorderClosed(result r);
62 virtual void OnVideoRecorderEndReached(Osp::Media::RecordingEndCondition endCondition);
63 virtual void OnVideoRecorderErrorOccurred(Osp::Media::RecorderErrorReason r);
64 virtual void OnVideoRecorderPaused(result r);
65 virtual void OnVideoRecorderStarted(result r);
66 virtual void OnVideoRecorderStopped(result r);
67 virtual void OnUserEventReceivedN(RequestId requestId, Osp::Base::Collection::IList* pArgs);
69 virtual void OnPlayerOpened(result r);
70 virtual void OnPlayerEndOfClip(void);
71 virtual void OnPlayerBuffering(int percent);
72 virtual void OnPlayerErrorOccurred(Osp::Media::PlayerErrorReason r);
73 virtual void OnPlayerInterrupted(void);
74 virtual void OnPlayerReleased(void);
75 virtual void OnPlayerSeekCompleted(result r);
77 virtual void OnActionPerformed(const Osp::Ui::Control& source, int actionId);
78 virtual void OnBatteryLevelChanged(Osp::System::BatteryLevel batteryLevel);
79 virtual void OnBackground(void);
80 virtual void OnForeground(void);
82 result EnableFooterItem(int actionId, bool enable);
84 virtual void OnTouchDoublePressed(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
85 virtual void OnTouchFocusIn(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
86 virtual void OnTouchFocusOut(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
87 virtual void OnTouchLongPressed(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
88 virtual void OnTouchMoved(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
89 virtual void OnTouchPressed(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
90 virtual void OnTouchReleased(const Osp::Ui::Control& source, const Osp::Graphics::Point& currentPosition, const Osp::Ui::TouchEventInfo& touchInfo){}
92 result CreateOverlayRegionForCamera(void);
93 result CreateOverlayRegionForPlayer(void);
94 result CreateCamera(void);
95 result CreatePlayer(void);
96 result CreateVideoRecorder(void);
97 result StartCamera(void);
98 result StopCamera(void);
99 result StartRecording(void);
100 result StartVideoRecorder(void);
101 result StopVideoRecorder(void);
102 result StartPlayer(void);
103 result StopPlayer(void);
105 void GetAudioCodecFormat(String& audioCodecType, CodecType& audioCodec);
106 void GetVideoCodecFormat(String& videoCodecType, CodecType& videoCodec);
107 void GetFileFormat(String& fileFormatType, MediaContainerType& fileformat);
109 void LaunchMediaPlayer(bool flag);
111 void FreeVideoRecorderResource(void);
112 void FreeCameraResource(void);
113 void FreePlayerResource(void);
114 void GetCameraToForeground(void);
115 void GetVideoRecorderToForeground(void);
116 void GetPlayerToForeground(void);
117 void SendVideoRecorderToBackground(void);
118 void SendCameraToBackground(void);
119 void SendPlayerToBackground(void);
122 result ShowPopUp(Popup* pPopUp);
123 void HidePopUp(Popup* pPopUp);
125 void DeletePopup(Popup** pPopup);
126 result CreatePopUp(Popup** pPopupCtrl, String title, Dimension dimension, bool hasTitle);
128 void ShowError(result r, const char* pMethod, const char* pSrcfileName, int lineNo);
129 void FreeResources(void);
131 void OnFormBackRequested(Osp::Ui::Controls::Form& source);
135 ID_BUTTON_BACK = 100,
140 static const int START_RECORDING = 100;
141 static const int STOP_RECORDING = 101;
142 static const int RECORDER_ON_STOP = 102;
143 static const int RECORDER_ON_CLOSE = 103;
146 Osp::Graphics::BufferInfo __bufferInfoCamera;
149 OverlayRegion* __pCameraOverlay;
150 OverlayRegion* __pPlayerOverlay;
151 bool __batteryLevelFlag;
152 bool __backGroundFlag;
153 bool __cameraErrorFlag;
154 VideoRecorder* __pVideoRecorder;
155 Osp::Base::String __filePath;
156 Osp::Base::Runtime::Timer* __pTimer;
157 AppConfig* __pConfig;
158 Progress* __pProgress;
159 int __maxRecordingTime;
164 #endif // _VIDEO_RECORDER_PLAYER_FORM_H_