13 * |
13 * |
14 * Description: Implementation of VideoPlayerEngine |
14 * Description: Implementation of VideoPlayerEngine |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 // Version : %version: da1mmcf#21 % |
18 // Version : %version: 23 % |
19 |
19 |
20 |
20 |
21 #include <QApplication> |
21 #include <QApplication> |
22 |
22 |
23 #include <hbinstance.h> |
23 #include <hbinstance.h> |
24 #include <xqpluginloader.h> |
24 #include <xqpluginloader.h> |
25 #include <xqplugininfo.h> |
25 #include <xqplugininfo.h> |
26 #include <xqserviceutil.h> |
26 #include <xqserviceutil.h> |
|
27 #include <hbview.h> |
27 |
28 |
28 #include "videoplayerengine.h" |
29 #include "videoplayerengine.h" |
29 #include "mpxvideoplaybackwrapper.h" |
30 #include "mpxvideoplaybackwrapper.h" |
30 #include "videoservices.h" |
31 #include "videoservices.h" |
|
32 #include "mpxvideo_debug.h" |
31 |
33 |
32 // ------------------------------------------------------------------------------------------------- |
34 // ------------------------------------------------------------------------------------------------- |
33 // QVideoPlayerEngine() |
35 // QVideoPlayerEngine() |
34 // ------------------------------------------------------------------------------------------------- |
36 // ------------------------------------------------------------------------------------------------- |
35 // |
37 // |
36 QVideoPlayerEngine::QVideoPlayerEngine(bool isService) |
38 QVideoPlayerEngine::QVideoPlayerEngine(bool isService) |
37 : mIsService( isService ) |
39 : mIsService( isService ) |
38 , mEmbedded(false) |
40 , mEmbedded(false) |
|
41 , mDelayedLoadDone(false) |
39 , mCurrentViewPlugin( 0 ) |
42 , mCurrentViewPlugin( 0 ) |
40 , mPlaybackViewPlugin( 0 ) |
43 , mPlaybackViewPlugin( 0 ) |
41 , mCollectionViewPlugin( 0 ) |
44 , mCollectionViewPlugin( 0 ) |
42 , mFileDetailsViewPlugin( 0 ) |
45 , mFileDetailsViewPlugin( 0 ) |
43 , mPlaybackWrapper( 0 ) |
46 , mPlaybackWrapper( 0 ) |
49 // ~QVideoPlayerEngine() |
52 // ~QVideoPlayerEngine() |
50 // ------------------------------------------------------------------------------------------------- |
53 // ------------------------------------------------------------------------------------------------- |
51 // |
54 // |
52 QVideoPlayerEngine::~QVideoPlayerEngine() |
55 QVideoPlayerEngine::~QVideoPlayerEngine() |
53 { |
56 { |
|
57 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::~QVideoPlayerEngine()")); |
|
58 |
54 if ( mVideoServices ) |
59 if ( mVideoServices ) |
55 { |
60 { |
56 mVideoServices->decreaseReferenceCount(); |
61 mVideoServices->decreaseReferenceCount(); |
57 mVideoServices = 0; |
62 mVideoServices = 0; |
58 } |
63 } |
82 // initialize() |
87 // initialize() |
83 // ------------------------------------------------------------------------------------------------- |
88 // ------------------------------------------------------------------------------------------------- |
84 // |
89 // |
85 void QVideoPlayerEngine::initialize() |
90 void QVideoPlayerEngine::initialize() |
86 { |
91 { |
|
92 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::initialize()")); |
87 // |
93 // |
88 // Clean up QVideoPlayerEngine when qApp try to quit |
94 // Clean up QVideoPlayerEngine when qApp try to quit |
89 // |
95 // |
90 connect( qApp, SIGNAL( aboutToQuit() ), this, SLOT( handleQuit() ) ); |
96 connect( qApp, SIGNAL( aboutToQuit() ), this, SLOT( handleQuit() ) ); |
91 |
97 |
119 loadPlugin( MpxHbVideoCommon::CollectionView ); |
125 loadPlugin( MpxHbVideoCommon::CollectionView ); |
120 |
126 |
121 if ( mCollectionViewPlugin ) |
127 if ( mCollectionViewPlugin ) |
122 { |
128 { |
123 mCollectionViewPlugin->createView(); |
129 mCollectionViewPlugin->createView(); |
|
130 hbInstance->allMainWindows().value(0)->addView( mCollectionViewPlugin->getView() ); |
124 } |
131 } |
125 |
132 |
126 loadPlugin( MpxHbVideoCommon::PlaybackView ); |
|
127 |
|
128 if ( mPlaybackViewPlugin ) |
|
129 { |
|
130 mPlaybackViewPlugin->createView(); |
|
131 } |
|
132 |
|
133 loadPlugin( MpxHbVideoCommon::VideoDetailsView ); |
|
134 |
|
135 if ( mFileDetailsViewPlugin ) |
|
136 { |
|
137 mFileDetailsViewPlugin->createView(); |
|
138 } |
|
139 |
|
140 // |
133 // |
141 // default view in the app is the collection view. |
134 // default view in the app is the collection view. |
142 // |
135 // |
143 if(!mIsService) |
136 if(!mIsService) |
144 { |
137 { |
145 activateView( MpxHbVideoCommon::CollectionView ); |
138 activateView( MpxHbVideoCommon::CollectionView ); |
146 } |
139 } |
|
140 |
|
141 // delayed initialization of some uiengine member variables |
|
142 // to help application startup time & improve playback start time |
|
143 // |
|
144 mPlaybackWrapper->lateInit(); |
|
145 |
147 } |
146 } |
148 |
147 |
149 // ------------------------------------------------------------------------------------------------- |
148 // ------------------------------------------------------------------------------------------------- |
150 // handleCommand() |
149 // handleCommand() |
151 // ------------------------------------------------------------------------------------------------- |
150 // ------------------------------------------------------------------------------------------------- |
152 // |
151 // |
153 void QVideoPlayerEngine::handleCommand( int commandCode ) |
152 void QVideoPlayerEngine::handleCommand( int commandCode ) |
154 { |
153 { |
|
154 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::handleCommand()")); |
|
155 |
155 switch ( commandCode ) |
156 switch ( commandCode ) |
156 { |
157 { |
157 case MpxHbVideoCommon::ActivateCollectionView: |
158 case MpxHbVideoCommon::ActivateCollectionView: |
158 { |
159 { |
159 if ( mCurrentViewPlugin != mCollectionViewPlugin ) |
160 if ( mCurrentViewPlugin != mCollectionViewPlugin ) |
176 { |
177 { |
177 activateView( MpxHbVideoCommon::VideoDetailsView ); |
178 activateView( MpxHbVideoCommon::VideoDetailsView ); |
178 } |
179 } |
179 break; |
180 break; |
180 } |
181 } |
181 case MpxHbVideoCommon::LoadVideoDetailsView: |
182 case MpxHbVideoCommon::DoDelayedLoad: |
182 { |
183 { |
183 if ( mFileDetailsViewPlugin ) |
184 if ( !mDelayedLoadDone ) |
184 { |
185 { |
185 mFileDetailsViewPlugin->createView(); |
186 doDelayedLoad(); |
186 } |
187 } |
187 break; |
188 break; |
188 } |
189 } |
189 |
190 |
190 default: |
191 default: |
191 { |
192 { |
192 break; |
193 break; |
193 } |
194 } |
194 } |
195 } |
195 } |
196 } |
196 |
197 |
197 // ------------------------------------------------------------------------------------------------- |
198 // ------------------------------------------------------------------------------------------------- |
|
199 // doDelayedLoad() |
|
200 // ------------------------------------------------------------------------------------------------- |
|
201 // |
|
202 void QVideoPlayerEngine::doDelayedLoad() |
|
203 { |
|
204 if ( !mPlaybackViewPlugin ) |
|
205 { |
|
206 loadPlugin( MpxHbVideoCommon::PlaybackView ); |
|
207 |
|
208 if ( mPlaybackViewPlugin ) |
|
209 { |
|
210 mPlaybackViewPlugin->createView(); |
|
211 hbInstance->allMainWindows().value(0)->addView( mPlaybackViewPlugin->getView() ); |
|
212 } |
|
213 } |
|
214 |
|
215 if ( !mFileDetailsViewPlugin ) |
|
216 { |
|
217 loadPlugin( MpxHbVideoCommon::VideoDetailsView ); |
|
218 |
|
219 if ( mFileDetailsViewPlugin ) |
|
220 { |
|
221 mFileDetailsViewPlugin->createView(); |
|
222 hbInstance->allMainWindows().value(0)->addView( mFileDetailsViewPlugin->getView() ); |
|
223 } |
|
224 } |
|
225 |
|
226 mDelayedLoadDone = true; |
|
227 } |
|
228 |
|
229 // ------------------------------------------------------------------------------------------------- |
198 // activateView() |
230 // activateView() |
199 // activate view based on view type. |
231 // activate view based on view type. |
200 // ------------------------------------------------------------------------------------------------- |
232 // ------------------------------------------------------------------------------------------------- |
201 // |
233 // |
202 void QVideoPlayerEngine::activateView( MpxHbVideoCommon::MpxHbVideoViewType viewType ) |
234 void QVideoPlayerEngine::activateView( MpxHbVideoCommon::MpxHbVideoViewType viewType ) |
203 { |
235 { |
|
236 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::activateView()")); |
|
237 |
204 disconnectView(); |
238 disconnectView(); |
205 |
239 |
206 if ( mCurrentViewPlugin ) |
240 if ( mCurrentViewPlugin ) |
207 { |
241 { |
208 mCurrentViewPlugin->deactivateView(); |
242 mCurrentViewPlugin->deactivateView(); |
209 hbInstance->allMainWindows().value(0)->removeView( mCurrentViewPlugin->getView() ); |
|
210 mCurrentViewPlugin = NULL; |
243 mCurrentViewPlugin = NULL; |
211 } |
244 } |
212 |
245 |
213 if ( viewType == MpxHbVideoCommon::CollectionView && mCollectionViewPlugin ) |
246 if ( viewType == MpxHbVideoCommon::CollectionView && mCollectionViewPlugin ) |
214 { |
247 { |
221 else |
254 else |
222 { |
255 { |
223 mCurrentViewPlugin = mCollectionViewPlugin; |
256 mCurrentViewPlugin = mCollectionViewPlugin; |
224 } |
257 } |
225 } |
258 } |
226 else if ( viewType == MpxHbVideoCommon::PlaybackView && mPlaybackViewPlugin ) |
259 else if ( viewType == MpxHbVideoCommon::PlaybackView ) |
227 { |
260 { |
|
261 if(!mPlaybackViewPlugin) |
|
262 { |
|
263 loadPlugin( MpxHbVideoCommon::PlaybackView ); |
|
264 if ( mPlaybackViewPlugin ) |
|
265 { |
|
266 mPlaybackViewPlugin->createView(); |
|
267 hbInstance->allMainWindows().value(0)->addView( mPlaybackViewPlugin->getView() ); |
|
268 } |
|
269 else |
|
270 { |
|
271 return; |
|
272 } |
|
273 } |
228 mCurrentViewPlugin = mPlaybackViewPlugin; |
274 mCurrentViewPlugin = mPlaybackViewPlugin; |
229 } |
275 } |
230 else if ( viewType == MpxHbVideoCommon::VideoDetailsView && mFileDetailsViewPlugin ) |
276 else if ( viewType == MpxHbVideoCommon::VideoDetailsView ) |
231 { |
277 { |
|
278 if(!mFileDetailsViewPlugin) |
|
279 { |
|
280 loadPlugin( MpxHbVideoCommon::VideoDetailsView ); |
|
281 if ( mFileDetailsViewPlugin ) |
|
282 { |
|
283 mFileDetailsViewPlugin->createView(); |
|
284 hbInstance->allMainWindows().value(0)->addView( mFileDetailsViewPlugin->getView() ); |
|
285 } |
|
286 else |
|
287 { |
|
288 return; |
|
289 } |
|
290 } |
232 mCurrentViewPlugin = mFileDetailsViewPlugin; |
291 mCurrentViewPlugin = mFileDetailsViewPlugin; |
233 } |
292 } |
234 else |
293 else |
235 { |
294 { |
236 // invalid plugin activation request, do nothing |
295 // invalid plugin activation request, do nothing |
237 return; |
296 return; |
238 } |
297 } |
239 |
298 |
240 hbInstance->allMainWindows().value(0)->addView( mCurrentViewPlugin->getView() ); |
299 hbInstance->allMainWindows().value(0)->setCurrentView( static_cast<HbView*>( mCurrentViewPlugin->getView() ), false ); |
241 connectView(); |
300 connectView(); |
242 mCurrentViewPlugin->activateView(); |
301 mCurrentViewPlugin->activateView(); |
243 } |
302 } |
244 |
303 |
245 // ------------------------------------------------------------------------------------------------- |
304 // ------------------------------------------------------------------------------------------------- |
246 // loadPlugin() |
305 // loadPlugin() |
247 // ------------------------------------------------------------------------------------------------- |
306 // ------------------------------------------------------------------------------------------------- |
248 // |
307 // |
249 void QVideoPlayerEngine::loadPlugin( MpxHbVideoCommon::MpxHbVideoViewType viewType ) |
308 void QVideoPlayerEngine::loadPlugin( MpxHbVideoCommon::MpxHbVideoViewType viewType ) |
250 { |
309 { |
|
310 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::loadPlugin()")); |
|
311 |
251 int viewTypeUid( 0 ); |
312 int viewTypeUid( 0 ); |
252 |
313 |
253 if ( viewType == MpxHbVideoCommon::CollectionView ) |
314 if ( viewType == MpxHbVideoCommon::CollectionView ) |
254 { |
315 { |
255 viewTypeUid = MpxHbVideoCommon::KMpxVideoPluginDllCollectionUid; |
316 viewTypeUid = MpxHbVideoCommon::KMpxVideoPluginDllCollectionUid; |
292 // connect application to view by setting up the signals and slots. |
353 // connect application to view by setting up the signals and slots. |
293 // ------------------------------------------------------------------------------------------------- |
354 // ------------------------------------------------------------------------------------------------- |
294 // |
355 // |
295 void QVideoPlayerEngine::connectView() |
356 void QVideoPlayerEngine::connectView() |
296 { |
357 { |
|
358 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::connectView()")); |
|
359 |
297 connect( mCurrentViewPlugin, |
360 connect( mCurrentViewPlugin, |
298 SIGNAL( command( int ) ), |
361 SIGNAL( command( int ) ), |
299 this, |
362 this, |
300 SLOT( handleCommand( int ) ) ); |
363 SLOT( handleCommand( int ) ) ); |
301 } |
364 } |
305 // connect application to view by setting up the signals and slots. |
368 // connect application to view by setting up the signals and slots. |
306 // ------------------------------------------------------------------------------------------------- |
369 // ------------------------------------------------------------------------------------------------- |
307 // |
370 // |
308 void QVideoPlayerEngine::disconnectView() |
371 void QVideoPlayerEngine::disconnectView() |
309 { |
372 { |
|
373 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::disconnectView()")); |
|
374 |
310 if ( mCurrentViewPlugin ) |
375 if ( mCurrentViewPlugin ) |
311 { |
376 { |
312 disconnect( mCurrentViewPlugin, |
377 disconnect( mCurrentViewPlugin, |
313 SIGNAL( command( int ) ), |
378 SIGNAL( command( int ) ), |
314 this, |
379 this, |
320 // handleQuit() |
385 // handleQuit() |
321 // ------------------------------------------------------------------------------------------------- |
386 // ------------------------------------------------------------------------------------------------- |
322 // |
387 // |
323 void QVideoPlayerEngine::handleQuit() |
388 void QVideoPlayerEngine::handleQuit() |
324 { |
389 { |
|
390 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::handleQuit()")); |
|
391 |
325 delete this; |
392 delete this; |
326 } |
393 } |
327 |
394 |
328 |
395 |
329 // ------------------------------------------------------------------------------------------------- |
396 // ------------------------------------------------------------------------------------------------- |
330 // playMedia() |
397 // playMedia() |
331 // ------------------------------------------------------------------------------------------------- |
398 // ------------------------------------------------------------------------------------------------- |
332 // |
399 // |
333 void QVideoPlayerEngine::playMedia( QString filePath ) |
400 void QVideoPlayerEngine::playMedia( QString filePath ) |
334 { |
401 { |
|
402 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::playMedia()")); |
|
403 |
335 mPlaybackWrapper->playMedia( filePath ); |
404 mPlaybackWrapper->playMedia( filePath ); |
336 } |
405 } |
337 |
406 |
338 // ------------------------------------------------------------------------------------------------- |
407 // ------------------------------------------------------------------------------------------------- |
339 // setEmbedded() |
408 // setEmbedded() |
340 // ------------------------------------------------------------------------------------------------- |
409 // ------------------------------------------------------------------------------------------------- |
341 // |
410 // |
342 void QVideoPlayerEngine::setEmbedded() |
411 void QVideoPlayerEngine::setEmbedded() |
343 { |
412 { |
|
413 MPX_ENTER_EXIT(_L("QVideoPlayerEngine::setEmbedded()")); |
|
414 |
344 mEmbedded = true; |
415 mEmbedded = true; |
345 } |
416 } |
346 |
417 |
347 // End of file |
418 // End of file |