54
|
1 |
/*
|
|
2 |
* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
|
|
3 |
* All rights reserved.
|
|
4 |
* This component and the accompanying materials are made available
|
|
5 |
* under the terms of "Eclipse Public License v1.0"
|
|
6 |
* which accompanies this distribution, and is available
|
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
8 |
*
|
|
9 |
* Initial Contributors:
|
|
10 |
* Nokia Corporation - initial contribution.
|
|
11 |
*
|
|
12 |
* Contributors:
|
|
13 |
*
|
|
14 |
* Description: App UI class for cameraapp
|
|
15 |
*
|
|
16 |
*/
|
|
17 |
|
|
18 |
|
|
19 |
#ifndef CAMAPPUI_H
|
|
20 |
#define CAMAPPUI_H
|
|
21 |
|
|
22 |
// ===========================================================================
|
|
23 |
// INCLUDES
|
|
24 |
#include "CamAppUiBase.h"
|
|
25 |
#include "CamNewFileService.h"
|
|
26 |
#include "CamSelfTimerObserver.h"
|
|
27 |
#include "CamVolumeKeyObserver.h"
|
|
28 |
#include "mcamcameraobserver.h"
|
|
29 |
#include "CamFileCheckAo.h"
|
|
30 |
|
|
31 |
#include "MCamAddToAlbumObserver.h"
|
|
32 |
|
|
33 |
class CFbsBitGc;
|
|
34 |
class CAknNavigationDecorator;
|
|
35 |
class CAknNavigationControlContainer;
|
|
36 |
class CCamWaitDialog;
|
|
37 |
class CCamTimerBase;
|
|
38 |
class CCamNaviCounterControl;
|
|
39 |
class CCamNaviCounterModel;
|
|
40 |
class CCamNaviProgressBarControl;
|
|
41 |
class CCamNaviProgressBarModel;
|
|
42 |
class CCamSelfTimer;
|
|
43 |
class MCamBurstModeObserver;
|
|
44 |
class CDocumentHandler;
|
|
45 |
class CTextResolver;
|
|
46 |
class CCamSidePane;
|
|
47 |
class CCamZoomPane;
|
|
48 |
class MCamResourceLoader;
|
|
49 |
class CCamTimer;
|
|
50 |
class CIdle;
|
|
51 |
class CAknStylusPopUpMenu;
|
|
52 |
|
|
53 |
class CGSPluginInterface;
|
|
54 |
class CGSTabHelper;
|
|
55 |
class CCamGSInterface;
|
|
56 |
|
|
57 |
class CAknGlobalNote;
|
|
58 |
|
|
59 |
//class CASpaAppLauncherActionData;
|
|
60 |
//class CSFIUtilsAppInterface; // InCall Send interface
|
|
61 |
class CCamPropertyWatcher;
|
|
62 |
class CRepository;
|
|
63 |
class MActivePalette2UI;
|
|
64 |
class CCamActivePaletteHandler;
|
|
65 |
class CAknLocalScreenClearer;
|
|
66 |
class CAknStaticNoteDialog;
|
|
67 |
class CCamCollectionManagerAO;
|
|
68 |
class CCamStillPreCaptureView;
|
|
69 |
class CCamVideoPreCaptureView;
|
|
70 |
class CCamMemoryMonitor;
|
|
71 |
//FTU message display class
|
|
72 |
class CCamFtuDisplay;
|
|
73 |
class CCamStartupLogoController;
|
|
74 |
|
|
75 |
|
|
76 |
// ===========================================================================
|
|
77 |
// CLASS DECLARATION
|
|
78 |
|
|
79 |
/**
|
|
80 |
* AppUi class for Camera
|
|
81 |
*
|
|
82 |
* @since 2.8
|
|
83 |
*/
|
|
84 |
class CCamAppUi : public CCamAppUiBase,
|
|
85 |
public MCamSelfTimerObserver,
|
|
86 |
public MCamControllerObserver,
|
|
87 |
public MCamVolumeKeyObserver,
|
|
88 |
public MCamFileCheckObserver,
|
|
89 |
public MCamCameraObserver
|
|
90 |
,public MCamAddToAlbumObserver
|
|
91 |
,public MAknServerAppExitObserver
|
|
92 |
{
|
|
93 |
// =======================================================
|
|
94 |
// Data Types
|
|
95 |
private:
|
|
96 |
|
|
97 |
// enumeration to describe the type of view switch required when
|
|
98 |
// the capture mode or view state changes
|
|
99 |
enum TCamViewSwitch
|
|
100 |
{
|
|
101 |
ECamViewSwitchNone, // no switch required
|
|
102 |
ECamViewSwitchModeOnly,// only capture mode or view state need updating
|
|
103 |
ECamViewSwitch // full view switch required including state
|
|
104 |
// and mode update
|
|
105 |
};
|
|
106 |
|
|
107 |
/**
|
|
108 |
* Enumeration used for the state of delayed postacapture views
|
|
109 |
* construction. Only used if CAMERAAPP_DELAYED_POSTCAPTURE_CREATION is
|
|
110 |
* enabled.
|
|
111 |
*/
|
|
112 |
enum TCamPostCapConstruction
|
|
113 |
{
|
|
114 |
ECamConstructStillPostCap,
|
|
115 |
ECamConstructBurstPostCap,
|
|
116 |
ECamConstructVideoPostCap,
|
|
117 |
ECamPostCapsDone
|
|
118 |
};
|
|
119 |
|
|
120 |
enum TSoftkeyIndex
|
|
121 |
{
|
|
122 |
ESoftkeyIndex1 = 0,
|
|
123 |
ESoftkeyIndex2 = 2
|
|
124 |
};
|
|
125 |
|
|
126 |
enum TPendingViewSwitchType
|
|
127 |
{
|
|
128 |
EPendingViewSwitchNone = 0,
|
|
129 |
EPendingViewSwitchNormal,
|
|
130 |
EPendingViewSwitchDeactivateFirst
|
|
131 |
};
|
|
132 |
|
|
133 |
/**
|
|
134 |
* Memory card status
|
|
135 |
*/
|
|
136 |
enum TCamMemoryStatus
|
|
137 |
{
|
|
138 |
ECamMemoryStatusOK,
|
|
139 |
ECamMemoryStatusFull,
|
|
140 |
ECamMemoryStatusInternalFull,
|
|
141 |
ECamMemoryStatusCardNotInserted,
|
|
142 |
ECamMemoryStatusCardReadOnly,
|
|
143 |
ECamMemoryStatusCardLocked,
|
|
144 |
ECamMemoryStatusMassStorageFull
|
|
145 |
};
|
|
146 |
|
|
147 |
// =======================================================
|
|
148 |
// Methods
|
|
149 |
|
|
150 |
// -------------------------------------------------------
|
|
151 |
// Constructors and destructor
|
|
152 |
public:
|
|
153 |
|
|
154 |
/**
|
|
155 |
* C++ constructor.
|
|
156 |
* @since 2.8
|
|
157 |
* @param aController Reference to CCamAppController
|
|
158 |
* @return Pointer to CCamAppUi
|
|
159 |
*/
|
|
160 |
CCamAppUi( CCamAppController& aController );
|
|
161 |
|
|
162 |
/**
|
|
163 |
* Perform the second phase construction of a CCamAppUi object.
|
|
164 |
* @since 2.8
|
|
165 |
*/
|
|
166 |
void ConstructL();
|
|
167 |
|
|
168 |
/**
|
|
169 |
* Destructor.
|
|
170 |
*/
|
|
171 |
virtual ~CCamAppUi();
|
|
172 |
|
|
173 |
// -------------------------------------------------------
|
|
174 |
// From MCamCameraObserver
|
|
175 |
public:
|
|
176 |
|
|
177 |
/**
|
|
178 |
* Handle camera event.
|
|
179 |
*
|
|
180 |
* @param aStatus Status code describing the event status.
|
|
181 |
* @param aEventId Identifier for the event.
|
|
182 |
* @param aEventData Event associated data. If such data is provided with
|
|
183 |
* the event, it is mentioned in the documentation of
|
|
184 |
* particular event id.
|
|
185 |
* Ownership not transferred to observer.
|
|
186 |
*/
|
|
187 |
void HandleCameraEventL(
|
|
188 |
TInt aStatus,
|
|
189 |
TCamCameraEventId aEventId,
|
|
190 |
TAny* aEventData = NULL );
|
|
191 |
|
|
192 |
// -------------------------------------------------------
|
|
193 |
// From MCamFileCheckObserver
|
|
194 |
public:
|
|
195 |
|
|
196 |
/**
|
|
197 |
* Callback to notify that file checking operation has completed.
|
|
198 |
* @param aStatus Number of files that were missing
|
|
199 |
* @param aError Error code
|
|
200 |
*/
|
|
201 |
void FileCheckingCompleteL( TInt aStatus, TInt aError );
|
|
202 |
|
|
203 |
// -------------------------------------------------------
|
|
204 |
// New functions
|
|
205 |
public:
|
|
206 |
/*
|
|
207 |
* HyperlinkCallback
|
|
208 |
* static methode to be called from TCallback
|
|
209 |
*/
|
|
210 |
|
|
211 |
static TInt HyperlinkCallback( TAny* aAny );
|
|
212 |
|
|
213 |
/**
|
|
214 |
* CamFtuDisplayL
|
|
215 |
* Check if camera is launching for first time ,
|
|
216 |
* accordingly FTU Message will be displayed.
|
|
217 |
*/
|
|
218 |
void CamFtuDisplayL();
|
|
219 |
|
|
220 |
/**
|
|
221 |
* OpenSettingView
|
|
222 |
* Non static public method , to launch the settings view
|
|
223 |
*/
|
|
224 |
void OpenSettingView();
|
|
225 |
|
|
226 |
/**
|
|
227 |
* Returns whether or the toolbar has been activated/visible
|
|
228 |
* Will return ETrue when when the toolbar is active/visible
|
|
229 |
* @since 3.2
|
|
230 |
* @return ETrue if toolbar is active/visible, else returns EFalse
|
|
231 |
*/
|
|
232 |
virtual TBool IsToolBarVisible() const;
|
|
233 |
|
|
234 |
/**
|
|
235 |
* Check if given view state indicates that "internal",
|
|
236 |
* CCamViewBase inherited view is in question.
|
|
237 |
*/
|
|
238 |
TBool IsInternalView( TCamViewState aViewState ) const;
|
|
239 |
|
|
240 |
/**
|
|
241 |
* Set status of standby mode.
|
|
242 |
*/
|
|
243 |
void SetStandbyStatus( TInt aStatus );
|
|
244 |
|
|
245 |
/**
|
|
246 |
* Get status of standby mode.
|
|
247 |
*/
|
|
248 |
TInt StandbyStatus() const;
|
|
249 |
|
|
250 |
/**
|
|
251 |
* returns ETrue if the stsnby status is recoverable
|
|
252 |
*/
|
|
253 |
TBool IsRecoverableStatus();
|
|
254 |
|
|
255 |
/**
|
|
256 |
* Change the standby status
|
|
257 |
*/
|
|
258 |
TBool ChangeStandbyStatusL( TInt aError );
|
|
259 |
|
|
260 |
/**
|
|
261 |
* returns Getter for iPreCaptureMode
|
|
262 |
*/
|
|
263 |
TCamPreCaptureMode PreCaptureMode();
|
|
264 |
|
|
265 |
/*
|
|
266 |
* Check for file name deletion/renaming outside camera
|
|
267 |
*/
|
|
268 |
void StartFileNameCheck();
|
|
269 |
|
|
270 |
/**
|
|
271 |
* Determines whether or not all construction has been completed
|
|
272 |
* Used on view activation to determine if the view should
|
|
273 |
* open in standby mode. This will happen if the app is waiting for
|
|
274 |
* an orientation switch to complete or for the initial view to be set
|
|
275 |
* when launched in embedded
|
|
276 |
* @since 3.0
|
|
277 |
* @return ETrue if all construction has completed, else EFalse
|
|
278 |
*/
|
|
279 |
TBool IsConstructionComplete() const;
|
|
280 |
|
|
281 |
/**
|
|
282 |
* Set title pane text from a resource.
|
|
283 |
* @since 2.8
|
|
284 |
* @param aResourceId resource to read from
|
|
285 |
*/
|
|
286 |
void SetTitleL( TInt aResourceId );
|
|
287 |
|
|
288 |
/**
|
|
289 |
* Set title pane text from a descriptor.
|
|
290 |
* @since 2.8
|
|
291 |
* @param aText title pane text
|
|
292 |
*/
|
|
293 |
void SetTitleL( const TDesC& aText );
|
|
294 |
|
|
295 |
/**
|
|
296 |
* In embedded mode set title to name of embedding application
|
|
297 |
* @since 2.8
|
|
298 |
*/
|
|
299 |
void SetTitleEmbeddedL();
|
|
300 |
|
|
301 |
/**
|
|
302 |
* Push navi pane indicators on to navi pane stack.
|
|
303 |
* @since 2.8
|
|
304 |
*/
|
|
305 |
void PushNaviPaneCounterL();
|
|
306 |
|
|
307 |
/**
|
|
308 |
* Push navi pane progress bar on to navi pane stack.
|
|
309 |
* @since 2.8
|
|
310 |
*/
|
|
311 |
void PushNaviPaneProgressBarL();
|
|
312 |
|
|
313 |
/**
|
|
314 |
* Push default navi pane on to navi pane stack.
|
|
315 |
* @since 2.8
|
|
316 |
*/
|
|
317 |
void PushDefaultNaviPaneL();
|
|
318 |
|
|
319 |
/**
|
|
320 |
* Call DisplayDeleteNoteL on the current view
|
|
321 |
* @return whether the delete was performed
|
|
322 |
* @since 2.8
|
|
323 |
*/
|
|
324 |
TBool DisplayDeleteNoteL();
|
|
325 |
|
|
326 |
/**
|
|
327 |
* Enable or disable self-timer functionality
|
|
328 |
* @since 2.8
|
|
329 |
* @param aEnable The selftimer functionality to use
|
|
330 |
*/
|
|
331 |
void SelfTimerEnableL( TCamSelfTimerFunctions aEnable );
|
|
332 |
|
|
333 |
/**
|
|
334 |
* Returns current self-timer state
|
|
335 |
* @since 2.8
|
|
336 |
* @return Returns whether or not Self Timer is currently enabled.
|
|
337 |
*/
|
|
338 |
TBool SelfTimerEnabled() const;
|
|
339 |
|
|
340 |
/**
|
|
341 |
* Returns pointer to self-timer
|
|
342 |
* @since 2.8
|
|
343 |
* @return pointer to CCamSelfTimer object.
|
|
344 |
*/
|
|
345 |
CCamSelfTimer* SelfTimer();
|
|
346 |
|
|
347 |
/**
|
|
348 |
* Registers an observer for changes in burst mode activation
|
|
349 |
* @since 2.8
|
|
350 |
* @param aBurstModeObserver the object observing burst mode changes
|
|
351 |
*/
|
|
352 |
void AddBurstModeObserverL( MCamBurstModeObserver* aBurstModeObserver );
|
|
353 |
|
|
354 |
/**
|
|
355 |
* Removes an observer for changes in burst mode activation
|
|
356 |
* @since 2.8
|
|
357 |
* @param aBurstModeObserver the observer to remove
|
|
358 |
*/
|
|
359 |
void RemoveBurstModeObserver( const MCamBurstModeObserver* aBurstModeObserver );
|
|
360 |
|
|
361 |
/**
|
|
362 |
* Returns whether or not burst capture mode is enabled.
|
|
363 |
* Will return ETrue when burst mode is enabled for still capture
|
|
364 |
* even if the application is currently in video capture mode
|
|
365 |
* @since 2.8
|
|
366 |
* @return ETrue if burst mode is enabled, else returns EFalse
|
|
367 |
*/
|
|
368 |
TBool IsBurstEnabled() const;
|
|
369 |
|
|
370 |
/*
|
|
371 |
* Gets the handle to the controller, which is used inturn by the
|
|
372 |
* plugin to call the interfaces for performing needed actions.
|
|
373 |
*/
|
|
374 |
MCamAppController& AppController();
|
|
375 |
|
|
376 |
/*
|
|
377 |
* Gets the handle to the settings model, which is used inturn by the
|
|
378 |
* plugin to call the interfaces for performing needed actions.
|
|
379 |
*/
|
|
380 |
MCamStaticSettings& StaticSettingsModel();
|
|
381 |
|
|
382 |
/**
|
|
383 |
* Returns the currently enabled burst mode.
|
|
384 |
* @since 3.0
|
|
385 |
* @return the currently enable burst mode or ECamImageCaptureNone if
|
|
386 |
* burst is not enabled
|
|
387 |
*/
|
|
388 |
TCamImageCaptureMode CurrentBurstMode() const;
|
|
389 |
|
|
390 |
/**
|
|
391 |
* Sets the current capture mode ( and target capture mode )
|
|
392 |
* @since 2.8
|
|
393 |
*/
|
|
394 |
void SetCaptureMode(
|
|
395 |
TCamCameraMode aMode,
|
|
396 |
TCamImageCaptureMode aImageMode = ECamImageCaptureNone );
|
|
397 |
|
|
398 |
/**
|
|
399 |
* Changes the state of sequence capture
|
|
400 |
* @since 3.0
|
|
401 |
* @param aImageMode Single/Multi/Timelapse
|
|
402 |
* @param aReprepare Whether or not the engine should be reprepared with sequence
|
|
403 |
* settings (Do not reprepare if the engine is about to be deleted/released)
|
|
404 |
* @param aUpdateUi Whether or not to do Ui update related things. Those are not
|
|
405 |
* needed/allowed if this method is called just to return sequence mode setting
|
|
406 |
* to default value (single capture).
|
|
407 |
*/
|
|
408 |
void SwitchStillCaptureModeL( TCamImageCaptureMode aImageMode,
|
|
409 |
TBool aReprepare,
|
|
410 |
TBool aUpdateUi = ETrue );
|
|
411 |
|
|
412 |
|
|
413 |
/**
|
|
414 |
* Returns whether or the secondary camera has been activated
|
|
415 |
* Will return ETrue when when the second camera is active
|
|
416 |
* @since 2.8
|
|
417 |
* @return ETrue if second camera is active, else returns EFalse
|
|
418 |
*/
|
|
419 |
TBool IsSecondCameraEnabled() const;
|
|
420 |
|
|
421 |
/**
|
|
422 |
* Secondary camera orientation is constructed according to this flag.
|
|
423 |
* Flag can be forced to portrait/landscape or it can follow qwerty
|
|
424 |
* state. Variation is handled via KCamCr2ndCamOrientation CenRep key.
|
|
425 |
* @param aLock, Lock orientation state flag.
|
|
426 |
* ETrue, ask state and lock it.
|
|
427 |
* EFalse, ask current state.
|
|
428 |
* @return ETrue if secondary camera orientation must be landscape
|
|
429 |
*/
|
|
430 |
TBool IsQwerty2ndCamera( TBool aLock = EFalse );
|
|
431 |
|
|
432 |
/**
|
|
433 |
*
|
|
434 |
* @return ETrue if wait dialog exist
|
|
435 |
*/
|
|
436 |
TBool CCamAppUi::IsWaitDialog() const;
|
|
437 |
|
|
438 |
/**
|
|
439 |
* Returns the active camera
|
|
440 |
* @since 2.8
|
|
441 |
* @return either primary, secondary or none ( if in process of switching )
|
|
442 |
*/
|
|
443 |
TCamActiveCamera ActiveCamera() const;
|
|
444 |
|
|
445 |
/**
|
|
446 |
* Called just prior to capture. Checks if there is sufficient memory
|
|
447 |
* available for capture and handles out of memory/error conditions.
|
|
448 |
* @since 2.8
|
|
449 |
* @return ETrue if there is memory available for capture
|
|
450 |
*/
|
|
451 |
TBool CheckMemoryL();
|
|
452 |
|
|
453 |
/**
|
|
454 |
* Display error note - with OK softkey only
|
|
455 |
* @since 2.8
|
|
456 |
* @param aStatus error status
|
|
457 |
*/
|
|
458 |
void ShowErrorNoteL( TCamMemoryStatus aStatus );
|
|
459 |
|
|
460 |
/**
|
|
461 |
* Display error note for OOM condition - OK and Cancel softkeys
|
|
462 |
* @since 2.8
|
|
463 |
* @param aLabel text to be shown
|
|
464 |
* @param aWithCancel Enables cancel softkey; default=ETrue
|
|
465 |
* @return Response code returned from Out of memory dialog
|
|
466 |
*/
|
|
467 |
TInt ShowOOMNoteL( TDesC& aLabel, TBool aWithCancel = ETrue);
|
|
468 |
|
|
469 |
/**
|
|
470 |
* Set the requested resolution for a new file
|
|
471 |
* @since 3.2
|
|
472 |
* @param aRequestedResolution the requested resolution from the new file request.
|
|
473 |
*/
|
|
474 |
void SetRequestedNewFileResolution( const TSize& aRequestedResolution );
|
|
475 |
|
|
476 |
/**
|
|
477 |
* Get the requested resolution for a new file
|
|
478 |
* @since 3.2
|
|
479 |
* @return the requested resolution from the new file request.
|
|
480 |
* Default is TSize(0,0) which interpreted as mms quality resolution
|
|
481 |
*/
|
|
482 |
TSize RequestedNewFileResolution() const;
|
|
483 |
|
|
484 |
/**
|
|
485 |
* Shows the mmc removal note if it is required
|
|
486 |
* @since 2.8
|
|
487 |
*/
|
|
488 |
void ShowMMCRemovalNoteIfRequiredL();
|
|
489 |
|
|
490 |
/**
|
|
491 |
* Check memory card for available space and card status
|
|
492 |
* @since 2.8
|
|
493 |
* @param aFull on return contains ETrue if card is full
|
|
494 |
* @param aStatus on return contains the card status
|
|
495 |
* @param aCurrentLocation current storage location
|
|
496 |
*/
|
|
497 |
void CheckMemoryCard( TBool& aFull,
|
|
498 |
TCamMemoryStatus& aStatus, TCamMediaStorage aCurrentLocation );
|
|
499 |
|
|
500 |
/**
|
|
501 |
* Checks if aStorage location is full
|
|
502 |
* @since 2.8
|
|
503 |
* @param aStorage target storage location
|
|
504 |
* @param aCurrentLocation current storage location
|
|
505 |
* @return ETrue if aStorage location is full
|
|
506 |
*/
|
|
507 |
TBool MemoryFull( TCamMediaStorage aStorage, TCamMediaStorage aCurrentLocation );
|
|
508 |
|
|
509 |
/**
|
|
510 |
* Starts the video/photo capture
|
|
511 |
* @since 2.8
|
|
512 |
* @param aKeyEvent Key used to start the capture
|
|
513 |
* @return whether the key was consumed by the function
|
|
514 |
*/
|
|
515 |
TKeyResponse StartCaptureL( const TKeyEvent& aKeyEvent );
|
|
516 |
|
|
517 |
/**
|
|
518 |
* Stops the video capture
|
|
519 |
* @since 2.8
|
|
520 |
*/
|
|
521 |
void EndCapture();
|
|
522 |
|
|
523 |
/**
|
|
524 |
* Changes the orientation to aNewOrientation
|
|
525 |
* If aNewOrientation is EAppUiOrientationUnspecified, switches
|
|
526 |
* to the normal orientation (this may depend on the currently
|
|
527 |
* activated camera)
|
|
528 |
* @since 3.0
|
|
529 |
*/
|
|
530 |
void SwitchOrientationIfRequiredL( TInt aNewOrientation );
|
|
531 |
|
|
532 |
/**
|
|
533 |
* Returns pointer to side-pane
|
|
534 |
* @since 2.8
|
|
535 |
* @return pointer to CCamSidePane object constructed by appUi
|
|
536 |
*/
|
|
537 |
CCamSidePane* SidePane();
|
|
538 |
|
|
539 |
/**
|
|
540 |
* Returns pointer to zoom-pane
|
|
541 |
* @since 2.8
|
|
542 |
* @return pointer to CCamZoomPane object constructed by appUi
|
|
543 |
*/
|
|
544 |
CCamZoomPane* ZoomPane();
|
|
545 |
|
|
546 |
/**
|
|
547 |
* Returns current camera orientation
|
|
548 |
* @since 3.0
|
|
549 |
* @return current camera orientation
|
|
550 |
*/
|
|
551 |
TCamOrientation CamOrientation();
|
|
552 |
|
|
553 |
/**
|
|
554 |
* set current camera orientation as landscape
|
|
555 |
*/
|
|
556 |
void SetCamOrientationToLandscape();
|
|
557 |
|
|
558 |
/**
|
|
559 |
* Returns current viewstate
|
|
560 |
* @since 3.0
|
|
561 |
* @return current viewstate
|
|
562 |
*/
|
|
563 |
TCamViewState CurrentViewState() const;
|
|
564 |
|
|
565 |
/**
|
|
566 |
* Returns target view state
|
|
567 |
* @since 4.0
|
|
568 |
* @return target view state
|
|
569 |
*/
|
|
570 |
TCamViewState TargetViewState();
|
|
571 |
|
|
572 |
/**
|
|
573 |
* Returns the target mode of current mode switch
|
|
574 |
* (Image/Video/Idle/Shutdown). The returned value
|
|
575 |
* should equal to current state, if no switch is
|
|
576 |
* in progress
|
|
577 |
*/
|
|
578 |
TCamCameraMode TargetMode() const;
|
|
579 |
|
|
580 |
/**
|
|
581 |
* Handles the shutter key press
|
|
582 |
* @param aPressed ETrue if the shutter is pressed, EFalse if released
|
|
583 |
* @since 2.8
|
|
584 |
*/
|
|
585 |
void HandleShutterKeyL( TBool aPressed );
|
|
586 |
|
|
587 |
/**
|
|
588 |
* Set embedding flag
|
|
589 |
* @param aEmbedding ETrue if we are embedding (ie Messaging, Realplayer),
|
|
590 |
* EFalse if not
|
|
591 |
* @since 2.8
|
|
592 |
*/
|
|
593 |
void SetEmbedding( TBool aEmbedding );
|
|
594 |
|
|
595 |
/**
|
|
596 |
* Return embedding flag
|
|
597 |
* @return ETrue if we are embedding (ie Messaging, Realplayer),
|
|
598 |
* EFalse if not
|
|
599 |
* @since 2.8
|
|
600 |
*/
|
|
601 |
TBool Embedding() const;
|
|
602 |
|
|
603 |
/**
|
|
604 |
* Set SendAs flag
|
|
605 |
* @param aSendAsInProgress ETrue if SendAs in progress, EFalse if not
|
|
606 |
* @since 2.8
|
|
607 |
*/
|
|
608 |
void SetSendAsInProgressL( TBool aSendAsInProgress );
|
|
609 |
|
|
610 |
/**
|
|
611 |
* Get SendAs flag value
|
|
612 |
* @return ETrue if SendAs in progress, EFalse if not
|
|
613 |
* @since 4.0
|
|
614 |
*/
|
|
615 |
virtual TBool SendAsInProgress() const;
|
|
616 |
|
|
617 |
/**
|
|
618 |
* Offers a pointer to appui's TextResolver instance
|
|
619 |
* @return pointer to appui's TextResolver instance
|
|
620 |
*/
|
|
621 |
CTextResolver* TextResolver();
|
|
622 |
|
|
623 |
#ifndef __WINSCW__
|
|
624 |
/**
|
|
625 |
* Get pointer to SFI utility class
|
|
626 |
* @since 3.0
|
|
627 |
* @return pointer to CSFIUtilsAppInterface
|
|
628 |
*/
|
|
629 |
//CSFIUtilsAppInterface* SFIUtility() const;
|
|
630 |
|
|
631 |
/**
|
|
632 |
* Return whether we are currently in-call send
|
|
633 |
* @since 3.0
|
|
634 |
* @return TBool true if we are in in-call send mode
|
|
635 |
*/
|
|
636 |
//TBool IsInCallSend() const;
|
|
637 |
|
|
638 |
/**
|
|
639 |
* Send media file using SFI utility
|
|
640 |
* @since 3.0
|
|
641 |
*/
|
|
642 |
//void DoInCallSendL() const;
|
|
643 |
#endif //WINSCW
|
|
644 |
|
|
645 |
/**
|
|
646 |
* Whether or not the application is in the background
|
|
647 |
* @since 2.8
|
|
648 |
* @param aIncludeNotifier If EFalse then the application is not
|
|
649 |
* classed as being in the background if the foreground application is
|
|
650 |
* a notifier, e.g. charging enabled.
|
|
651 |
* @return ETrue if the application is in the background
|
|
652 |
*/
|
|
653 |
TBool AppInBackground( TBool aIncludeNotifier ) const;
|
|
654 |
|
|
655 |
/**
|
|
656 |
* Indicates whether or not the application is in a simulated exit situation
|
|
657 |
* @return ETrue if the application has pretended to exit, else EFalse
|
|
658 |
*/
|
|
659 |
TBool IsInPretendExit() const;
|
|
660 |
|
|
661 |
/**
|
|
662 |
* Indicates whether or not the application was in a simulated exit situation
|
|
663 |
* @return ETrue if the application had pretended to exit, else EFalse
|
|
664 |
*/
|
|
665 |
TBool ReturningFromPretendExit() const;
|
|
666 |
|
|
667 |
/**
|
|
668 |
* Indicates whether or not the application started the first time
|
|
669 |
* @return ETrue if the application booted first time, else EFalse
|
|
670 |
*/
|
|
671 |
TBool IsFirstBoot() const;
|
|
672 |
|
|
673 |
/**
|
|
674 |
* Returns whether an MMC removed note is pending
|
|
675 |
* @since 3.0
|
|
676 |
* @return TBool ETrue if the UI needs to show an MMC
|
|
677 |
*/
|
|
678 |
TBool IsMMCRemovedNotePending() const;
|
|
679 |
|
|
680 |
/**
|
|
681 |
* Returns the pointer to the NaviCounter pane
|
|
682 |
* @since 3.0
|
|
683 |
* @return The Navi Counter pointer
|
|
684 |
*/
|
|
685 |
CCamNaviCounterControl* NaviCounterControl();
|
|
686 |
|
|
687 |
/**
|
|
688 |
* Returns the pointer to the NaviProgress pane
|
|
689 |
* @since 3.0
|
|
690 |
* @return The Navi Progress pointer
|
|
691 |
*/
|
|
692 |
CCamNaviProgressBarControl* NaviProgressBarControl();
|
|
693 |
|
|
694 |
/**
|
|
695 |
* Returns the pointer to the Navi Counter ModelProgress pane
|
|
696 |
* @since 3.0
|
|
697 |
* @return The Navi Counter Model pointer
|
|
698 |
*/
|
|
699 |
CCamNaviCounterModel* NaviCounterModel();
|
|
700 |
|
|
701 |
/**
|
|
702 |
* Return handle to active palette if supported
|
|
703 |
* @since 3.0
|
|
704 |
* @return Handle to Active palette
|
|
705 |
*/
|
|
706 |
MActivePalette2UI* ActivePalette() const;
|
|
707 |
|
|
708 |
/**
|
|
709 |
* Get pointer to Active Palette handler instance.
|
|
710 |
*
|
|
711 |
* @return Pointer to Active Palette handler instance. Ownership not
|
|
712 |
* transferred.
|
|
713 |
*/
|
|
714 |
CCamActivePaletteHandler* APHandler() const;
|
|
715 |
|
|
716 |
/**
|
|
717 |
* Tries to show or hide the Active Toolbar
|
|
718 |
* @since 3.0
|
|
719 |
* @param aShown True to show it, False to hide it
|
|
720 |
*/
|
|
721 |
void SetActivePaletteVisibility( TBool aShown );
|
|
722 |
|
|
723 |
/**
|
|
724 |
* Returns whether the user has set the icons to always display in pre-capture
|
|
725 |
* @since 3.0
|
|
726 |
* @return ETrue if the optional icons should always be displayed
|
|
727 |
*/
|
|
728 |
TBool AlwaysDrawPreCaptureCourtesyUI() const;
|
|
729 |
|
|
730 |
/**
|
|
731 |
* Returns whether the user has set the icons to always display in post-capture
|
|
732 |
* @since 3.0
|
|
733 |
* @return ETrue if the optional icons should always be displayed
|
|
734 |
*/
|
|
735 |
TBool AlwaysDrawPostCaptureCourtesyUI() const;
|
|
736 |
|
|
737 |
/**
|
|
738 |
* Set whether the icons should always display in pre-capture
|
|
739 |
* @since 3.0
|
|
740 |
* @param aNewSetting True if they should always be drawn; False if they should only be drawn when the UI is raised
|
|
741 |
*/
|
|
742 |
void SetAlwaysDrawPreCaptureCourtesyUI( TBool aNewSetting );
|
|
743 |
|
|
744 |
/**
|
|
745 |
* Set whether the icons should always display in post-capture
|
|
746 |
* @since 3.0
|
|
747 |
* @param aNewSetting True if they should always be drawn; False if they should only be drawn when the UI is raised
|
|
748 |
*/
|
|
749 |
void SetAlwaysDrawPostCaptureCourtesyUI( TBool aNewSetting );
|
|
750 |
|
|
751 |
/**
|
|
752 |
* Check whether a key event should cause the courtesy UI to be raised
|
|
753 |
* @since 3.0
|
|
754 |
* @param aKeyEvent The key event
|
|
755 |
* @param aType The type of key event
|
|
756 |
* @param aInPreCapture Whether the key was pressed in precapture mode
|
|
757 |
* @return Whether the key was consumed or not
|
|
758 |
*/
|
|
759 |
TKeyResponse CheckCourtesyKeyEventL( const TKeyEvent aKeyEvent, TEventCode aType, TBool aInPreCapture );
|
|
760 |
|
|
761 |
/**
|
|
762 |
* Whether to draw the complete UI in precapture mode
|
|
763 |
* @since 3.0
|
|
764 |
* @return True if it should all be drawn
|
|
765 |
*/
|
|
766 |
TBool DrawPreCaptureCourtesyUI() const;
|
|
767 |
|
|
768 |
/**
|
|
769 |
* Whether to draw the complete UI in postcapture mode
|
|
770 |
* @since 3.0
|
|
771 |
* @return True if it should all be drawn
|
|
772 |
*/
|
|
773 |
TBool DrawPostCaptureCourtesyUI() const;
|
|
774 |
|
|
775 |
/**
|
|
776 |
* Bring the complete UI to the fore in precapture
|
|
777 |
* @param aShowZoomBar Briefly shows the zoombar first, if necessary
|
|
778 |
* @since 3.0
|
|
779 |
*/
|
|
780 |
void RaisePreCaptureCourtesyUI(TBool aShowZoomBar);
|
|
781 |
|
|
782 |
/**
|
|
783 |
* Bring the complete UI to the fore in postcapture
|
|
784 |
* @since 3.0
|
|
785 |
*/
|
|
786 |
void RaisePostCaptureCourtesyUI();
|
|
787 |
|
|
788 |
/**
|
|
789 |
* Hide the optional UI in precapture
|
|
790 |
* @since 3.0
|
|
791 |
*/
|
|
792 |
void SubmergePreCaptureCourtesyUI();
|
|
793 |
|
|
794 |
/**
|
|
795 |
* Hide the optional UI in postcapture
|
|
796 |
* @since 3.0
|
|
797 |
*/
|
|
798 |
void SubmergePostCaptureCourtesyUI();
|
|
799 |
|
|
800 |
/**
|
|
801 |
* Ensures the zoom pane gets shown and updated, specifically in direct viewfinder/active toolbar modes. Calling this method
|
|
802 |
* is not sufficient to show the zoom pane however, other methods in CZoomPane must be called to achieve this.
|
|
803 |
* @param aRedraw Whether to force a redraw event
|
|
804 |
* @since 3.0
|
|
805 |
*/
|
|
806 |
void ShowZoomPane( TBool aRedraw );
|
|
807 |
|
|
808 |
/**
|
|
809 |
* Ensures the zoom pane gets hidden, specifically in direct viewfinder/active toolbar modes. As above, not sufficient to
|
|
810 |
* hide the zoom pane.
|
|
811 |
* @param aRedraw Whether to force a redraw event
|
|
812 |
* @since 3.0
|
|
813 |
*/
|
|
814 |
void HideZoomPane( TBool aRedraw );
|
|
815 |
|
|
816 |
/**
|
|
817 |
* Refreshes the CBA based on current view and app state
|
|
818 |
* @since 2.8
|
|
819 |
*/
|
|
820 |
void UpdateCba();
|
|
821 |
|
|
822 |
/**
|
|
823 |
* Sets the softkeys to the specified Resource ID
|
|
824 |
* @since 3.0
|
|
825 |
* @param aResource ID of the softkey resource to use
|
|
826 |
*/
|
|
827 |
void SetSoftKeysL( TInt aResource );
|
|
828 |
|
|
829 |
/**
|
|
830 |
* Returns whether the time lapse slider is shown
|
|
831 |
* @since 3.0
|
|
832 |
* @return ETrue if time lapse slider is shown
|
|
833 |
*/
|
|
834 |
TBool TimeLapseSliderShown() const;
|
|
835 |
|
|
836 |
/**
|
|
837 |
* Detects whether the direct viewfinder is in use or not
|
|
838 |
* @since 3.0
|
|
839 |
* @return True if it is active, otherwise false
|
|
840 |
*/
|
|
841 |
TBool IsDirectViewfinderActive();
|
|
842 |
|
|
843 |
/**
|
|
844 |
* Let the AppUi know what is being shown in pre-capture
|
|
845 |
* @param aMode What's being shown
|
|
846 |
*/
|
|
847 |
void SetPreCaptureModeL(TCamPreCaptureMode aMode);
|
|
848 |
|
|
849 |
/**
|
|
850 |
* Let the AppUi know what is being shown in pre-capture
|
|
851 |
* @param aMode What's being shown
|
|
852 |
*/
|
|
853 |
void SetPreCaptureMode(TCamPreCaptureMode aMode);
|
|
854 |
|
|
855 |
/**
|
|
856 |
* Whether or not the telephone application is in the foreground
|
|
857 |
* @since 3.0
|
|
858 |
* @return ETrue if the telephone application is in the foreground
|
|
859 |
*/
|
|
860 |
TBool ForegroundAppIsPhoneApp() const;
|
|
861 |
|
|
862 |
/**
|
|
863 |
* Whether to show the post capture view in current mode
|
|
864 |
* @return ETrue iff we should show the post capture view in current mode
|
|
865 |
*/
|
|
866 |
TBool ShowPostCaptureView() const;
|
|
867 |
|
|
868 |
/**
|
|
869 |
* Whether the automatic UI-rise should be suppressed on next viewfinder start event
|
|
870 |
* e.g. when postcapture is set to off, the UI is off and a photo is taken
|
|
871 |
* @return Whether the automatic UI-rise should be suppressed
|
|
872 |
*/
|
|
873 |
TBool SuppressUIRiseOnViewfinderStart() const;
|
|
874 |
|
|
875 |
/**
|
|
876 |
* Set whether the automatic UI-rise should be suppressed on next viewfinder start event
|
|
877 |
* @see SuppressUIRiseOnViewfinderStart
|
|
878 |
* @param aSuppress Whether the automatic UI-rise should be suppressed
|
|
879 |
*/
|
|
880 |
void SetSuppressUIRiseOnViewfinderStart(TBool aSuppress);
|
|
881 |
|
|
882 |
/**
|
|
883 |
* Whether the latest capture was selftimer initiated
|
|
884 |
* @return ETrue if the latest capture was started via selftimer
|
|
885 |
*/
|
|
886 |
TBool IsSelfTimedCapture() const;
|
|
887 |
|
|
888 |
|
|
889 |
/**
|
|
890 |
* Set the 'freeing memory' flag.
|
|
891 |
*
|
|
892 |
* @param aFreeingMemory New value for the 'freeing memory' flag.
|
|
893 |
*/
|
|
894 |
void SetFreeingMemory( TBool aFreeingMemory );
|
|
895 |
|
|
896 |
/**
|
|
897 |
* Get the current state of the 'freeing memory' flag.
|
|
898 |
*
|
|
899 |
* @return Current value for the 'freeing memory' flag.
|
|
900 |
*/
|
|
901 |
TBool IsFreeingMemory() const;
|
|
902 |
|
|
903 |
|
|
904 |
/**
|
|
905 |
* Checks whether its safe to draw controls
|
|
906 |
* @return ETrue if its safe to draw the controls
|
|
907 |
*/
|
|
908 |
TBool ReadyToDraw() const;
|
|
909 |
|
|
910 |
/**
|
|
911 |
* Set toolbar visibility in according to whether current view and mode are fit.
|
|
912 |
*/
|
|
913 |
void SetToolbarVisibility();
|
|
914 |
|
|
915 |
/**
|
|
916 |
* Hide the toolbar.
|
|
917 |
*/
|
|
918 |
void SubmergeToolbar();
|
|
919 |
|
|
920 |
/**
|
|
921 |
* Returns ETrue if the toolbar extension is visible,
|
|
922 |
* otherwise EFalse.
|
|
923 |
*/
|
|
924 |
TBool IsToolBarExtensionVisible() const;
|
|
925 |
|
|
926 |
/*
|
|
927 |
* Handles Hdmi events
|
|
928 |
*/
|
|
929 |
void HandleHdmiEventL( TCamHdmiEvent aEvent );
|
|
930 |
|
|
931 |
public: // Functions from base classes
|
|
932 |
/**
|
|
933 |
* Draw the counter to the bitmap used in the navi pane
|
|
934 |
* @since 3.0
|
|
935 |
* @param aBmpGc The graphics context for the bitmap
|
|
936 |
* @param aBmpMaskGc The graphics context for the bitmap mask
|
|
937 |
*/
|
|
938 |
void CreateNaviBitmapsL( TBool aDrawStorageIconAndCounter );
|
|
939 |
|
|
940 |
/**
|
|
941 |
* From CAknAppUi Handle user menu selections
|
|
942 |
* @since 2.8
|
|
943 |
* @param aCommand The enumerated code for the option selected
|
|
944 |
*/
|
|
945 |
void HandleCommandL( TInt aCommand );
|
|
946 |
|
|
947 |
/**
|
|
948 |
* From MCamControllerObserver
|
|
949 |
* @since 2.8
|
|
950 |
* @param aEvent The enumerated code for the event received
|
|
951 |
* @param aError The error code associated with the event
|
|
952 |
*/
|
|
953 |
void HandleControllerEventL( TCamControllerEvent aEvent,
|
|
954 |
TInt aError );
|
|
955 |
|
|
956 |
/**
|
|
957 |
* Return whether we are in embedded mode (if we have a pointer to a
|
|
958 |
* MApaEmbeddedDocObserver).
|
|
959 |
* @since 2.8
|
|
960 |
* @return TBool if tthere is a handle to MApaEmbeddedDocObserver
|
|
961 |
*/
|
|
962 |
TBool IsEmbedded() const;
|
|
963 |
|
|
964 |
/**
|
|
965 |
* Handle window server event.
|
|
966 |
* @since 2.8
|
|
967 |
* @param aEvent the window server event
|
|
968 |
* @param aDestination the control associated with the event.
|
|
969 |
* Only valid for pointer events.
|
|
970 |
*/
|
|
971 |
void HandleWsEventL( const TWsEvent& aEvent,
|
|
972 |
CCoeControl* aDestination );
|
|
973 |
|
|
974 |
|
|
975 |
/**
|
|
976 |
* Start application as file server application
|
|
977 |
* @since 3.0
|
|
978 |
* @param aEmbeddedObserver service observer
|
|
979 |
* @param aMode Service type (image or video)
|
|
980 |
*/
|
|
981 |
void StartAsServerAppL( MCamEmbeddedObserver *aEmbeddedObserver,
|
|
982 |
TInt aMode );
|
|
983 |
|
|
984 |
/**
|
|
985 |
* Set application file server observer
|
|
986 |
* @since 9.2
|
|
987 |
* @param aEmbeddedObserver service observer
|
|
988 |
*/
|
|
989 |
void SetEmbeddedObserver( MCamEmbeddedObserver* aEmbeddedObserver );
|
|
990 |
|
|
991 |
/**
|
|
992 |
* Closes the application
|
|
993 |
* @since 2.8
|
|
994 |
*/
|
|
995 |
void CloseAppL();
|
|
996 |
|
|
997 |
/**
|
|
998 |
* Closes the application
|
|
999 |
* @since 2.8
|
|
1000 |
* Exits the application according to current state, if the app always
|
|
1001 |
* running flag is set, the application goes to the background but if
|
|
1002 |
* embedded, or app always running flag is not set or in an error situation
|
|
1003 |
* the application truly exits
|
|
1004 |
*/
|
|
1005 |
void InternalExitL();
|
|
1006 |
|
|
1007 |
/**
|
|
1008 |
* Inform the controller of the count of images required at the next
|
|
1009 |
* capture. Called before every still capture request.
|
|
1010 |
* @since 2.8
|
|
1011 |
*/
|
|
1012 |
void InitCaptureCountL();
|
|
1013 |
|
|
1014 |
/**
|
|
1015 |
* From MCamVolumeKeyObserver - pick up volume key events
|
|
1016 |
* @since 3.1
|
|
1017 |
* @param aOperationId - operation id (i.e. volume key up/down)
|
|
1018 |
* @param aButtonAct bitton action press/click/release
|
|
1019 |
*/
|
|
1020 |
void HandleVolumeKeyEvent( TRemConCoreApiOperationId aOperationId,
|
|
1021 |
TRemConCoreApiButtonAction aButtonAct);
|
|
1022 |
|
|
1023 |
/**
|
|
1024 |
* Handle an event from CCamSelfTimer.
|
|
1025 |
* @since S60 v5.0
|
|
1026 |
* @param aEvent the self timer event
|
|
1027 |
* @param aCountDown self timer countdown duration
|
|
1028 |
*/
|
|
1029 |
void HandleSelfTimerEvent( TCamSelfTimerEvent aEvent,
|
|
1030 |
TInt aCountDown );
|
|
1031 |
|
|
1032 |
|
|
1033 |
public: // new fuctions
|
|
1034 |
|
|
1035 |
/**
|
|
1036 |
* We handle the case when settings plugin exists
|
|
1037 |
**/
|
|
1038 |
void SettingsPluginExitedL( TCamSettingsPluginExitMessage aType );
|
|
1039 |
|
|
1040 |
/**
|
|
1041 |
* We keep track of lauching settings plugin within camera
|
|
1042 |
* to control the behaviour of the camera when the plugin exists and
|
|
1043 |
* returns to camera
|
|
1044 |
**/
|
|
1045 |
TBool SettingsLaunchedFromCamera() const;
|
|
1046 |
|
|
1047 |
/**
|
|
1048 |
* Checks if the memory type is full or unavailable
|
|
1049 |
* @param aStorage TCamMediaStorage enum specifying the memory type;
|
|
1050 |
* default=ECamMediaStorageCurrent
|
|
1051 |
* @return ETrue if the specified memory is full or unavailable
|
|
1052 |
**/
|
|
1053 |
TBool
|
|
1054 |
IsMemoryFullOrUnavailable(const TCamMediaStorage
|
|
1055 |
aStorage = ECamMediaStorageCurrent) const;
|
|
1056 |
|
|
1057 |
/**
|
|
1058 |
* Checks if all memories are full and unavailable
|
|
1059 |
* @return ETrue if all memories are full or unavailable
|
|
1060 |
**/
|
|
1061 |
TBool AllMemoriesFullOrUnavailable() const;
|
|
1062 |
|
|
1063 |
/**
|
|
1064 |
* Checks the availability of memory on the currently selected
|
|
1065 |
* mediastorage for capturing images or video, result saved
|
|
1066 |
* in iMemoryAvailableForCapturing
|
|
1067 |
**/
|
|
1068 |
void CheckMemoryAvailableForCapturing();
|
|
1069 |
|
|
1070 |
/**
|
|
1071 |
* Returns the previously saved availability of memory
|
|
1072 |
* @return ETrue if memory available for capturing
|
|
1073 |
**/
|
|
1074 |
TBool IsMemoryAvailableForCapturing() const;
|
|
1075 |
|
|
1076 |
/**
|
|
1077 |
* Get a pointer to the startup logo controller.
|
|
1078 |
* AppUi keeps ownership.
|
|
1079 |
* @return Pointer to CCamStartupLogoController or NULL.
|
|
1080 |
*/
|
|
1081 |
CCamStartupLogoController* StartupLogoController();
|
|
1082 |
|
|
1083 |
/**
|
|
1084 |
* Get a pointer to the NaviProgressBarModel.
|
|
1085 |
*/
|
|
1086 |
CCamNaviProgressBarModel* NaviProgressBarModel();
|
|
1087 |
|
|
1088 |
private: // New functions
|
|
1089 |
|
|
1090 |
/**
|
|
1091 |
* Helper method to handle controller event for
|
|
1092 |
* going to standby mode.
|
|
1093 |
*/
|
|
1094 |
void HandleStandbyEventL( TInt aStatus );
|
|
1095 |
|
|
1096 |
/**
|
|
1097 |
* Notify our views of application level events, like focus gained/lost.
|
|
1098 |
*/
|
|
1099 |
void NotifyViews( const TCamAppEvent& aEvent );
|
|
1100 |
|
|
1101 |
|
|
1102 |
/**
|
|
1103 |
* Construct views
|
|
1104 |
* Construct pre capture views
|
|
1105 |
* @since 2.8
|
|
1106 |
*/
|
|
1107 |
void ConstructPreCaptureViewsL();
|
|
1108 |
|
|
1109 |
/**
|
|
1110 |
* Construct post capture views
|
|
1111 |
* @since 2.8
|
|
1112 |
*/
|
|
1113 |
void ConstructPostCaptureViewsL();
|
|
1114 |
|
|
1115 |
/**
|
|
1116 |
* Construct settings, user scene setup, and postcapture views
|
|
1117 |
* @since 2.8
|
|
1118 |
*/
|
|
1119 |
void ConstructViewIfRequiredL();
|
|
1120 |
|
|
1121 |
/**
|
|
1122 |
* Construct navi pane
|
|
1123 |
* @since 2.8
|
|
1124 |
*/
|
|
1125 |
void ConstructNaviPaneL();
|
|
1126 |
|
|
1127 |
/**
|
|
1128 |
* Switch to pre-capture view
|
|
1129 |
* @since 2.8
|
|
1130 |
* @return TInt to indicate if function should be called again
|
|
1131 |
*/
|
|
1132 |
TInt DoPostCaptureTimeoutL();
|
|
1133 |
|
|
1134 |
/**
|
|
1135 |
* Try to switch active view.
|
|
1136 |
* @since 2.8
|
|
1137 |
*/
|
|
1138 |
void TrySwitchViewL( TBool aDeactivateFirst = EFalse );
|
|
1139 |
|
|
1140 |
/**
|
|
1141 |
* Determines if a switch of the active view required.
|
|
1142 |
* @param aDeactivateFirst Deactivate before check
|
|
1143 |
* @since 2.8
|
|
1144 |
*/
|
|
1145 |
TCamViewSwitch ViewSwitchRequired( TBool aDeactivateFirst = EFalse ) const;
|
|
1146 |
|
|
1147 |
/**
|
|
1148 |
* Get uid of view with requested view and mode.
|
|
1149 |
* @since 2.8
|
|
1150 |
* @param aState View state
|
|
1151 |
* @param aMode Main camera mode (image/video)
|
|
1152 |
* @param aImageMode In image mode, image capture type (single/burst/timelapse)
|
|
1153 |
* @param aUid Uid of view passed by reference and populated in function
|
|
1154 |
* @param aMessageUid A message Uid to pass to the view
|
|
1155 |
* @return Whether or not a valid view uid can be obtained
|
|
1156 |
*/
|
|
1157 |
TBool ViewId( TCamViewState aState,
|
|
1158 |
TCamCameraMode aMode,
|
|
1159 |
TCamImageCaptureMode aImageMode,
|
|
1160 |
TUid& aUid,
|
|
1161 |
TUid& aMessageUid,
|
|
1162 |
TBool aDeactivateFirst );
|
|
1163 |
|
|
1164 |
/**
|
|
1165 |
* Return a pointer to the navi pane.
|
|
1166 |
* @since 2.8
|
|
1167 |
* @return pointer to the status pane's navigation control container
|
|
1168 |
*/
|
|
1169 |
CAknNavigationControlContainer* NaviPaneL();
|
|
1170 |
|
|
1171 |
/**
|
|
1172 |
* Display the wait dialog when saving video
|
|
1173 |
* @since 2.8
|
|
1174 |
*/
|
|
1175 |
void DisplayWaitDialogL();
|
|
1176 |
|
|
1177 |
/**
|
|
1178 |
* Get the default startup mode from settings
|
|
1179 |
* If this is not defined the factory default will be used
|
|
1180 |
* @since 2.8
|
|
1181 |
* @return The default startup capture mode
|
|
1182 |
*/
|
|
1183 |
TCamStartupMode StartupMode() const;
|
|
1184 |
|
|
1185 |
/**
|
|
1186 |
* Save the current capture mode to settings.
|
|
1187 |
* This will be used as the startup mode
|
|
1188 |
* @since 2.8
|
|
1189 |
*/
|
|
1190 |
void SaveCaptureMode();
|
|
1191 |
|
|
1192 |
/**
|
|
1193 |
* Save the current state of the UI to settings.
|
|
1194 |
*
|
|
1195 |
*/
|
|
1196 |
|
|
1197 |
void SaveCourtesyUiState();
|
|
1198 |
|
|
1199 |
/**
|
|
1200 |
* Override HandleScreenDeviceChangedL() and trigger a re-layout
|
|
1201 |
* of the main controls from this - addition for 2.8
|
|
1202 |
* @since 2.8
|
|
1203 |
*/
|
|
1204 |
void HandleScreenDeviceChangedL();
|
|
1205 |
|
|
1206 |
/**
|
|
1207 |
* Called when the video is ready to be stopped
|
|
1208 |
* @since 2.8
|
|
1209 |
* @param aPtr pointer to the object that called the timer
|
|
1210 |
* @return Error code
|
|
1211 |
*/
|
|
1212 |
static TInt StopVideoRecording( TAny* aPtr );
|
|
1213 |
|
|
1214 |
/**
|
|
1215 |
* Called when the application is ready to exit
|
|
1216 |
* @since 2.8
|
|
1217 |
* @param aAny pointer to the object that called the timer
|
|
1218 |
* @return Error code
|
|
1219 |
*/
|
|
1220 |
static TInt CallExit( TAny* aAny );
|
|
1221 |
|
|
1222 |
/**
|
|
1223 |
* Callback used when the application needs to switch view
|
|
1224 |
* @since 2.8
|
|
1225 |
* @param aAny pointer to the object that called the timer
|
|
1226 |
* @return Error code
|
|
1227 |
*/
|
|
1228 |
static TInt CallSwitch( TAny* aAny );
|
|
1229 |
|
|
1230 |
/**
|
|
1231 |
* Launch the context sensitive help application
|
|
1232 |
* @since 2.8
|
|
1233 |
*/
|
|
1234 |
void LaunchHelpL();
|
|
1235 |
|
|
1236 |
/**
|
|
1237 |
* Returns the AppUi orientation (e.g. Portrait or Landscape) for the given product-specific orientation
|
|
1238 |
* @since 3.0
|
|
1239 |
* @param aCamOrientation The product-specific orientation
|
|
1240 |
* @return The AppUi orientation (e.g. Portrait or Landscape)
|
|
1241 |
*/
|
|
1242 |
TAppUiOrientation AppUiOrientation( TCamOrientation aCamOrientation );
|
|
1243 |
|
|
1244 |
/**
|
|
1245 |
* Returns the camera orientation based on the layout state set by the phone
|
|
1246 |
* @since 3.0
|
|
1247 |
* @param aLayoutState The layout state set by the phone
|
|
1248 |
* @return The camera orientation
|
|
1249 |
*/
|
|
1250 |
TCamOrientation LayoutStateToOrientation( TInt aLayoutState );
|
|
1251 |
|
|
1252 |
/**
|
|
1253 |
* Returns the camera orientation based on the layout state set by the phone
|
|
1254 |
* @since 3.0
|
|
1255 |
* @return The camera orientation based on the layout state set by the phone
|
|
1256 |
*/
|
|
1257 |
TCamOrientation ReadCurrentDeviceOrientation();
|
|
1258 |
|
|
1259 |
/**
|
|
1260 |
* Returns whether or not the full screen viewfinder is being shown
|
|
1261 |
* @return Whether or not the full screen viewfinder is being shown
|
|
1262 |
*/
|
|
1263 |
TBool FullScreenViewfinderEnabled() const;
|
|
1264 |
|
|
1265 |
/**
|
|
1266 |
* Construct a postcapture view if not already constructed
|
|
1267 |
*
|
|
1268 |
* The following parameter combinations can be used:
|
|
1269 |
* Still postcapture view: sViewState = ECamViewStatePostCapture, aMode = ECamControllerImage
|
|
1270 |
* Burst thumbnail view: aViewState = ECamViewStateBurstThumbnail
|
|
1271 |
* Video Postcapture view: aViewState = ECamViewStatePostCapture, aMode = ECamControllerVideo
|
|
1272 |
*
|
|
1273 |
* @param aViewState
|
|
1274 |
* @param aCaptureMode
|
|
1275 |
* @since 2.8
|
|
1276 |
*/
|
|
1277 |
void ConstructPostCaptureViewIfRequiredL( TCamViewState aViewState,
|
|
1278 |
TCamCameraMode aMode );
|
|
1279 |
|
|
1280 |
/*
|
|
1281 |
* Initiate the check operation using collection manager
|
|
1282 |
*/
|
|
1283 |
/**
|
|
1284 |
* We start check operation to see if "Default Album exists"
|
|
1285 |
* Usecase: Whenever the camera returns from background/startup we
|
|
1286 |
* first start checking the default album which is set, if any, to make
|
|
1287 |
* sure that album really exists. If not, then we set back the value
|
|
1288 |
* of setting item "Add to album" to "No" in Image/Video setting
|
|
1289 |
* image settings
|
|
1290 |
*/
|
|
1291 |
void StartCheckingDefaultAlbumIdL();
|
|
1292 |
|
|
1293 |
|
|
1294 |
#ifdef CAMERAAPP_DELAYED_POSTCAPTURE_CREATION
|
|
1295 |
|
|
1296 |
/**
|
|
1297 |
* Starts calls to PostCapIdleCallBack during processor idle time. The calls
|
|
1298 |
* are continued until PostCapIdleCallBack is done.
|
|
1299 |
* @since 3.1
|
|
1300 |
*/
|
|
1301 |
void StartPostCapIdleL();
|
|
1302 |
|
|
1303 |
/**
|
|
1304 |
* Handles postcapture view construction so that each call to this function
|
|
1305 |
* constructs one postcapture view. Returns ETrue if there are still more views
|
|
1306 |
* to construct, EFalse if all are finished and no further calls are required.
|
|
1307 |
*
|
|
1308 |
* @param aSelf pointer to current CCamAppUi object
|
|
1309 |
* @return construction status
|
|
1310 |
* @since 3.1
|
|
1311 |
*/
|
|
1312 |
static TInt PostCapIdleCallBack( TAny* aSelf );
|
|
1313 |
|
|
1314 |
#endif // CAMERAAPP_DELAYED_POSTCAPTURE_CREATION
|
|
1315 |
|
|
1316 |
|
|
1317 |
/**
|
|
1318 |
* Initiates a call to SensorIdleCallback during processor idle time
|
|
1319 |
* @since 3.1
|
|
1320 |
*/
|
|
1321 |
void StartSensorIdleL();
|
|
1322 |
|
|
1323 |
/**
|
|
1324 |
* Cancels the (possibly) pending call to SensorIdleCallBack
|
|
1325 |
* @since 3.1
|
|
1326 |
*/
|
|
1327 |
void CancelSensorIdle();
|
|
1328 |
|
|
1329 |
/**
|
|
1330 |
* Initializes the sensor API by calling iController.UpdateSensorApiL()
|
|
1331 |
*
|
|
1332 |
* @param aSelf pointer to current CCamAppUi object
|
|
1333 |
* @return construction status
|
|
1334 |
* @since 3.1
|
|
1335 |
*/
|
|
1336 |
static TInt SensorIdleCallBack( TAny* aSelf );
|
|
1337 |
|
|
1338 |
|
|
1339 |
private: // Functions from base classes
|
|
1340 |
|
|
1341 |
#ifndef __WINSCW__
|
|
1342 |
/**
|
|
1343 |
* From CEikAppUi.
|
|
1344 |
* Processes shell commands.
|
|
1345 |
* @since 3.0
|
|
1346 |
* @param aCommand The command line command
|
|
1347 |
* @param aDocumentName The name of the document to open
|
|
1348 |
* @param aTail Not used.
|
|
1349 |
* @return TBool
|
|
1350 |
*/
|
|
1351 |
TBool ProcessCommandParametersL( TApaCommand aCommand,
|
|
1352 |
TFileName& aDocumentName,
|
|
1353 |
const TDesC8& aTail );
|
|
1354 |
/**
|
|
1355 |
* From CEikAppUi.
|
|
1356 |
* Handle the external message.
|
|
1357 |
* @since 3.0
|
|
1358 |
* @param aClientHandleOfTargetWindowGroup Handle.
|
|
1359 |
* @param aMessageUid Message id.
|
|
1360 |
* @param aMessageParameters Message parameters.
|
|
1361 |
* @return Response to the message.
|
|
1362 |
*/
|
|
1363 |
MCoeMessageObserver::TMessageResponse HandleMessageL(
|
|
1364 |
TUint32 aClientHandleOfTargetWindowGroup,
|
|
1365 |
TUid aMessageUid,
|
|
1366 |
const TDesC8& aMessageParameters );
|
|
1367 |
|
|
1368 |
#endif //WINSCW
|
|
1369 |
|
|
1370 |
private: // new functions
|
|
1371 |
|
|
1372 |
#ifndef __WINSCW__
|
|
1373 |
/**
|
|
1374 |
* Bring the Phone application back to foreground after in-call send completion
|
|
1375 |
* @since 3.0
|
|
1376 |
*/
|
|
1377 |
void BringPhoneAppToForeGroundL();
|
|
1378 |
#endif //WINSCW
|
|
1379 |
|
|
1380 |
/**
|
|
1381 |
* Sends the camera application to the background, to pretend we're closing
|
|
1382 |
* @since 2.8
|
|
1383 |
*/
|
|
1384 |
void SendCameraAppToBackgroundL();
|
|
1385 |
|
|
1386 |
/**
|
|
1387 |
* Hides the application from task list, to pretend that camera app is closed
|
|
1388 |
* @since 3.0 (added back since its useful in certain situation)
|
|
1389 |
* @param aHide whether to hide or make visible
|
|
1390 |
*/
|
|
1391 |
void HideTaskL(TBool aHide);
|
|
1392 |
|
|
1393 |
/**
|
|
1394 |
* returns ETrue if headset is connected
|
|
1395 |
*/
|
|
1396 |
TBool IsHeadsetConnected() const;
|
|
1397 |
|
|
1398 |
public:
|
|
1399 |
/**
|
|
1400 |
* Display error note
|
|
1401 |
* @since 2.8
|
|
1402 |
* @param aError The error code
|
|
1403 |
*/
|
|
1404 |
void HandleCameraErrorL( TInt aError );
|
|
1405 |
|
|
1406 |
|
|
1407 |
/**
|
|
1408 |
* Set iAssumePostCaptureView flag
|
|
1409 |
* @param aValue ETrue sets flag on, EFalse off
|
|
1410 |
*/
|
|
1411 |
void SetAssumePostCaptureView( TBool aValue );
|
|
1412 |
|
|
1413 |
/**
|
|
1414 |
* Set iLensCoverExit flag
|
|
1415 |
* @param aValue ETrue sets flag on, EFalse off
|
|
1416 |
*/
|
|
1417 |
void SetLensCoverExit( TBool aValue );
|
|
1418 |
|
|
1419 |
/**
|
|
1420 |
* Set iDrawPreCaptureCourtesyUI flag
|
|
1421 |
* @param aValue ETrue sets flag on, EFalse off
|
|
1422 |
*/
|
|
1423 |
void SetDrawPreCaptureCourtesyUI(TBool iDraw);
|
|
1424 |
|
|
1425 |
/**
|
|
1426 |
* Finishes the AppUI construction by calling
|
|
1427 |
* CompleteAppUIConstructionL
|
|
1428 |
*/
|
|
1429 |
static TInt AppUIConstructCallbackL( TAny* aAny );
|
|
1430 |
|
|
1431 |
/**
|
|
1432 |
* returns ETrue if appUi construction is complete
|
|
1433 |
*/
|
|
1434 |
TBool IsUiConstructionComplete();
|
|
1435 |
|
|
1436 |
/**
|
|
1437 |
* set whether camera viewfinder stop or not
|
|
1438 |
* @param aViewFinderStopped ETrue viewfinder is stoped,EFalse viewfinder is runing
|
|
1439 |
*
|
|
1440 |
*/
|
|
1441 |
void SetViewFinderStoppedStatus(TBool aViewFinderStopped);
|
|
1442 |
|
|
1443 |
/**
|
|
1444 |
* Getter for iViewFinderInTransit
|
|
1445 |
* @return ETrue if viewfinder handle is in transit between different windows
|
|
1446 |
*/
|
|
1447 |
TBool IsViewFinderInTransit();
|
|
1448 |
|
|
1449 |
/**
|
|
1450 |
* Setter for iViewFinderInTransit
|
|
1451 |
* @param aInTransit Set to ETrue if viewfinder window handle is in transit
|
|
1452 |
* @return void
|
|
1453 |
*/
|
|
1454 |
void SetViewFinderInTransit(TBool aInTransit);
|
|
1455 |
|
|
1456 |
/**
|
|
1457 |
* Turns screen back visible if leave has occured.
|
|
1458 |
* @param aAny Pointer to CamAppUi instance
|
|
1459 |
* @return void
|
|
1460 |
*/
|
|
1461 |
static void CleanupBlankScreen( TAny* aAny );
|
|
1462 |
|
|
1463 |
public: //MCamAddToAlbumObserver
|
|
1464 |
|
|
1465 |
|
|
1466 |
/*
|
|
1467 |
* From MCamAddToAlbumObserver
|
|
1468 |
* Notification once the aysnchronous operations using
|
|
1469 |
* CollectionManager interface are done completly
|
|
1470 |
* Status of the operation are returned using aStatus
|
|
1471 |
* e.g. KErrNone
|
|
1472 |
*/
|
|
1473 |
void AddToAlbumIdOperationComplete() {};
|
|
1474 |
|
|
1475 |
/**
|
|
1476 |
* From MCamAddToAlbumObserver
|
|
1477 |
* Notification once the asynchronous operations using
|
|
1478 |
* CollectionManager interface have completed.
|
|
1479 |
*
|
|
1480 |
* @param aAlbumExists ETrue if album exists
|
|
1481 |
* @param aAlbumTitle Title of the album
|
|
1482 |
*/
|
|
1483 |
void CheckAlbumIdOperationCompleteL(
|
|
1484 |
TBool aAlbumExists, const TDesC& aAlbumTitle );
|
|
1485 |
|
|
1486 |
public: // MAknServerAppExitObserver
|
|
1487 |
/**
|
|
1488 |
* Handle the exit of a connected server app.
|
|
1489 |
* This implementation provides Series 60 default behavior
|
|
1490 |
* for handling of the EAknCmdExit exit code. Derived classes
|
|
1491 |
* should base-call this implementation if they override this
|
|
1492 |
* function.
|
|
1493 |
* @param aReason The reason that the server application exited.
|
|
1494 |
* This will either be an error code, or the command id that caused
|
|
1495 |
* the server app to exit.
|
|
1496 |
*/
|
|
1497 |
virtual void HandleServerAppExit(TInt aReason);
|
|
1498 |
|
|
1499 |
private:
|
|
1500 |
|
|
1501 |
/**
|
|
1502 |
* Called when the courtesy timer ends
|
|
1503 |
* @since 3.0
|
|
1504 |
* @param aPtr The CCamAppUI object the timer has completed on
|
|
1505 |
*/
|
|
1506 |
static TInt CourtesyTimeout( TAny* aPtr );
|
|
1507 |
|
|
1508 |
/**
|
|
1509 |
* Called when the courtesy timer ends
|
|
1510 |
* @since 3.0
|
|
1511 |
*/
|
|
1512 |
TInt DoCourtesyTimeout();
|
|
1513 |
|
|
1514 |
/**
|
|
1515 |
* Called to set the correct navicounter / naviprogress controls to "active"
|
|
1516 |
* @since 3.0
|
|
1517 |
*/
|
|
1518 |
void UpdateNaviModelsL( TBool aUpdateNavi = ETrue );
|
|
1519 |
|
|
1520 |
|
|
1521 |
/**
|
|
1522 |
/**
|
|
1523 |
* Dismisses out of memory / memory card removed note, if active.
|
|
1524 |
*/
|
|
1525 |
void DismissMemoryNoteL();
|
|
1526 |
|
|
1527 |
/**
|
|
1528 |
* Register to capture half and full shutter press key events
|
|
1529 |
* @since 3.0
|
|
1530 |
*/
|
|
1531 |
void RegisterCaptureKeysL();
|
|
1532 |
|
|
1533 |
/**
|
|
1534 |
* Release capture of half and full shutter press key events
|
|
1535 |
* @since 3.0
|
|
1536 |
*/
|
|
1537 |
void UnRegisterCaptureKeys();
|
|
1538 |
|
|
1539 |
/**
|
|
1540 |
* Select the setting for viewfinder grid.
|
|
1541 |
*/
|
|
1542 |
void SelectViewFinderGridSettingL();
|
|
1543 |
|
|
1544 |
/**
|
|
1545 |
* Starts the Photos application command line
|
|
1546 |
**/
|
|
1547 |
void StartAppCmdLineL( const TDes8& aData );
|
|
1548 |
|
|
1549 |
/**
|
|
1550 |
* Check if it's applicable to use the courtesy UI
|
|
1551 |
* @since S60 v5.0
|
|
1552 |
* @return ETrue if courtesy UI can be used
|
|
1553 |
*/
|
|
1554 |
TBool CourtesyUiApplies() const;
|
|
1555 |
|
|
1556 |
/**
|
|
1557 |
* Finish the AppUI construction
|
|
1558 |
**/
|
|
1559 |
void CompleteAppUIConstructionL();
|
|
1560 |
|
|
1561 |
// =======================================================
|
|
1562 |
// Data
|
|
1563 |
private:
|
|
1564 |
|
|
1565 |
CCamAppController& iController;
|
|
1566 |
|
|
1567 |
TCamSelfTimerFunctions iInSelfTimerMode;
|
|
1568 |
|
|
1569 |
// Own
|
|
1570 |
CCamSelfTimer* iSelfTimer;
|
|
1571 |
|
|
1572 |
// Not own.
|
|
1573 |
CCamNaviCounterControl* iNaviPaneCounterControl;
|
|
1574 |
|
|
1575 |
// Not own.
|
|
1576 |
CCamNaviProgressBarControl* iNaviPaneProgressBarControl;
|
|
1577 |
|
|
1578 |
// Own.
|
|
1579 |
CAknNavigationDecorator* iDecoratedNaviPaneCounter;
|
|
1580 |
|
|
1581 |
// Own.
|
|
1582 |
CAknNavigationDecorator* iDecoratedNaviPaneProgressBar;
|
|
1583 |
|
|
1584 |
|
|
1585 |
// NOT owned; this pointer is just for checking
|
|
1586 |
// if the wait dialog object still exists, or
|
|
1587 |
// whether it has deleted itself
|
|
1588 |
CCamWaitDialog* iWaitDialog;
|
|
1589 |
|
|
1590 |
// Not own.
|
|
1591 |
CCamStillPreCaptureView* iStillCaptureView;
|
|
1592 |
|
|
1593 |
// Not own.
|
|
1594 |
CCamVideoPreCaptureView* iVideoCaptureView;
|
|
1595 |
|
|
1596 |
// Not own.
|
|
1597 |
CAknView* iViaPlayerView;
|
|
1598 |
|
|
1599 |
TCamViewState iViewState;
|
|
1600 |
TCamViewState iTargetViewState;
|
|
1601 |
TCamCameraMode iMode;
|
|
1602 |
TCamCameraMode iTargetMode;
|
|
1603 |
|
|
1604 |
TCamImageCaptureMode iImageMode;
|
|
1605 |
TCamImageCaptureMode iTargetImageMode;
|
|
1606 |
TInt iStandbyStatus;
|
|
1607 |
|
|
1608 |
TBool iKeyShutter;
|
|
1609 |
|
|
1610 |
// Used to determine whether or not the startup view has been
|
|
1611 |
// set when app is launched embedded
|
|
1612 |
TBool iEmbeddedViewSet;
|
|
1613 |
|
|
1614 |
// Name of parent app if we're embedded
|
|
1615 |
// Own.
|
|
1616 |
HBufC* iParentAppName;
|
|
1617 |
|
|
1618 |
// Whether or not the cba has been blanked
|
|
1619 |
TBool iCbaIsDisabled;
|
|
1620 |
|
|
1621 |
// Whether or not the burst mode has been activated
|
|
1622 |
TBool iBurstModeEnabled;
|
|
1623 |
|
|
1624 |
// Observer that needs to know when burst mode is switched on/off
|
|
1625 |
// Observer objects are not owned.
|
|
1626 |
RPointerArray<MCamBurstModeObserver> iBurstModeObservers;
|
|
1627 |
|
|
1628 |
// handle of the camera key captured
|
|
1629 |
TInt iCameraKeyHandle;
|
|
1630 |
|
|
1631 |
// timer to assist with displaying wait dialog
|
|
1632 |
// Own.
|
|
1633 |
CPeriodic* iWaitTimer;
|
|
1634 |
|
|
1635 |
// Whether or not the wait timer should be used
|
|
1636 |
TBool iApplyTimer;
|
|
1637 |
|
|
1638 |
// Used for opening (and playing) video clips
|
|
1639 |
// Own.
|
|
1640 |
CDocumentHandler* iDocHandler;
|
|
1641 |
|
|
1642 |
// the id of the application's window group
|
|
1643 |
TInt iMyWgId;
|
|
1644 |
|
|
1645 |
// the id of the eikon server window group
|
|
1646 |
TInt iEikonServerWindowGroupId;
|
|
1647 |
|
|
1648 |
// Whether or not a view switch is pending, used to delay switch to
|
|
1649 |
// post capture view when the application is in the background
|
|
1650 |
TPendingViewSwitchType iPendingViewSwitch;
|
|
1651 |
|
|
1652 |
// Keeps track of the state before focus gained events
|
|
1653 |
TBool iReturnFromBackground;
|
|
1654 |
|
|
1655 |
// Side-pane handler
|
|
1656 |
// Own.
|
|
1657 |
CCamSidePane* iCamSidePane;
|
|
1658 |
|
|
1659 |
// Zoom-pane handler
|
|
1660 |
// Own.
|
|
1661 |
CCamZoomPane* iCamZoomPane;
|
|
1662 |
|
|
1663 |
// Used to access settings
|
|
1664 |
// Own.
|
|
1665 |
CRepository* iRepository;
|
|
1666 |
|
|
1667 |
// Flag to indicate when video recording has stopped due to incoming call
|
|
1668 |
// Post capture timer is not started when this flag is set, delays the
|
|
1669 |
// timeout of the video post capture view
|
|
1670 |
TBool iDelayVideoPostCaptureTimeout;
|
|
1671 |
|
|
1672 |
// Indicates if the mmc was detected as removed at startup, requiring
|
|
1673 |
// the user to be informed
|
|
1674 |
TBool iMMCRemoveNoteRequired;
|
|
1675 |
|
|
1676 |
// Indicates if the mmc was detected as removed whilst we were in focus,
|
|
1677 |
// requiring us to inform the user when capture is attempted.
|
|
1678 |
TBool iMMCRemoveNoteRequiredOnCapture;
|
|
1679 |
|
|
1680 |
// Only the precapture views are created on construction
|
|
1681 |
// These flags indicate whether or not the other views have been created
|
|
1682 |
TBool iPostCaptureViewsConstructed;
|
|
1683 |
TBool iUserSceneSetupViewConstructed;
|
|
1684 |
TBool iCustomiseToolbarViewConstructed;
|
|
1685 |
|
|
1686 |
// Used to resolve error message texts
|
|
1687 |
// Own.
|
|
1688 |
CTextResolver* iTextResolver;
|
|
1689 |
|
|
1690 |
//#ifndef __WINS__
|
|
1691 |
// in-call send utility class
|
|
1692 |
// Own.
|
|
1693 |
//CSFIUtilsAppInterface* iSFIUtils;
|
|
1694 |
|
|
1695 |
// Whether in in-call send mode
|
|
1696 |
//TBool iSendFileInCall;
|
|
1697 |
//#endif
|
|
1698 |
|
|
1699 |
// embedded observer
|
|
1700 |
// Not own.
|
|
1701 |
MCamEmbeddedObserver* iEmbeddedObserver;
|
|
1702 |
|
|
1703 |
// embedded start up capture mode
|
|
1704 |
TInt iApplicationMode;
|
|
1705 |
|
|
1706 |
// Pointer to the only navicounter model
|
|
1707 |
// Own.
|
|
1708 |
CCamNaviCounterModel* iNaviCounterModel;
|
|
1709 |
|
|
1710 |
//Pointer to the only naviprogressbar model
|
|
1711 |
// Own.
|
|
1712 |
CCamNaviProgressBarModel* iNaviProgressBarModel;
|
|
1713 |
|
|
1714 |
// Pointer to the NaviCounter control
|
|
1715 |
// Own.
|
|
1716 |
CCamNaviCounterControl* iNaviCounterControl;
|
|
1717 |
|
|
1718 |
// Pointer to the NaviProgress control
|
|
1719 |
// Own.
|
|
1720 |
CCamNaviProgressBarControl* iNaviProgressBarControl;
|
|
1721 |
|
|
1722 |
TCamOrientation iCamOrientation;
|
|
1723 |
|
|
1724 |
// Keeps a list of MCamResourceLoaders that this class owns
|
|
1725 |
RPointerArray<MCamResourceLoader> iResourceLoaders;
|
|
1726 |
|
|
1727 |
// Own.
|
|
1728 |
CCamActivePaletteHandler* iActivePaletteHandler;
|
|
1729 |
|
|
1730 |
// Maximum no if images in burst capture
|
|
1731 |
TInt iMaxBurstCaptureNum;
|
|
1732 |
|
|
1733 |
// Whether the Coutesy UI should currently be displayed (precapture)
|
|
1734 |
TBool iDrawPreCaptureCourtesyUI;
|
|
1735 |
// Whether the user has set the UI to always be on (precapture)
|
|
1736 |
TBool iAlwaysDrawPreCaptureCourtesyUI;
|
|
1737 |
|
|
1738 |
// Whether the Coutesy UI should currently be displayed (postcapture)
|
|
1739 |
TBool iDrawPostCaptureCourtesyUI;
|
|
1740 |
// Whether the user has set the UI to always be on (postcapture)
|
|
1741 |
TBool iAlwaysDrawPostCaptureCourtesyUI;
|
|
1742 |
|
|
1743 |
// The courtesy timer: when this ends, the UI should be hidden if applicable
|
|
1744 |
// Own.
|
|
1745 |
CCamTimer* iCourtesyTimer;
|
|
1746 |
|
|
1747 |
// Whether the timer was started in precapture mode or not
|
|
1748 |
TBool iCourtesyTimerInPreCapture;
|
|
1749 |
|
|
1750 |
// True if the zoom pane is currently being shown, False if not
|
|
1751 |
TBool iZoomPaneShown;
|
|
1752 |
|
|
1753 |
// True when application is started
|
|
1754 |
TBool iFirstBoot;
|
|
1755 |
|
|
1756 |
// Flag to show if a screen redraw event is being processed
|
|
1757 |
TBool iProcessingScreenRedraw;
|
|
1758 |
|
|
1759 |
// Whether the active palette should be prevented from being shown:
|
|
1760 |
// used during saving of an image/video
|
|
1761 |
TBool iPreventActivePaletteDisplay;
|
|
1762 |
|
|
1763 |
// Used to delay engine creation on app startup or camera switch
|
|
1764 |
// if the orientation has not completed initialising.
|
|
1765 |
TBool iEngineConstructionDelayed;
|
|
1766 |
TBool iCameraSwitchDelayed;
|
|
1767 |
|
|
1768 |
// Set to true in the case where we pretend to exit the app, but are still really
|
|
1769 |
// running in the background. The app should behave slightly differently when we
|
|
1770 |
// are next brought to the foreground.
|
|
1771 |
TBool iPretendExit;
|
|
1772 |
TBool iReturningFromPretendExit;
|
|
1773 |
|
|
1774 |
// flag to indicate whether we are currently embedding another application
|
|
1775 |
TBool iEmbedding;
|
|
1776 |
|
|
1777 |
// flag to indicate if "Send As" is in progress
|
|
1778 |
TBool iSendAsInProgress;
|
|
1779 |
|
|
1780 |
//
|
|
1781 |
TInt iFullShutterPressHandle;
|
|
1782 |
TInt iHalfShutterPressHandle;
|
|
1783 |
TInt iFullShutterUpDownHandle;
|
|
1784 |
|
|
1785 |
// Window group ID for Bluetooth server
|
|
1786 |
TInt iBTServerWindowGroupId;
|
|
1787 |
|
|
1788 |
// Window group ID for Telephone application
|
|
1789 |
TInt iPhoneAppWindowGroupId;
|
|
1790 |
|
|
1791 |
// position of softkeys in landscape mode (left or right)
|
|
1792 |
TInt iSoftkeyPosition;
|
|
1793 |
|
|
1794 |
/// The current pre capture mode shown
|
|
1795 |
TCamPreCaptureMode iPreCaptureMode;
|
|
1796 |
|
|
1797 |
// flag to indicate viewfinder stopped
|
|
1798 |
TBool iViewFinderStopped;
|
|
1799 |
|
|
1800 |
// flag used to say whether we want to suppress auto-UI rise on next viewfinder start event
|
|
1801 |
TBool iSuppressUIRise;
|
|
1802 |
|
|
1803 |
// Flag used to indicate that focus was lost to an incoming call during sequence capture
|
|
1804 |
TBool iFocusLostToCallDuringSequenceCapture;
|
|
1805 |
|
|
1806 |
// observer to receive volume key presses
|
|
1807 |
// Own.
|
|
1808 |
CCamRemConObserver* iVolumeKeyObserver;
|
|
1809 |
|
|
1810 |
TBool iZoomUsingVolumeKeys;
|
|
1811 |
|
|
1812 |
// Own
|
|
1813 |
CAknLocalScreenClearer* iScreenClearer;
|
|
1814 |
|
|
1815 |
// Status of postcapture views construction
|
|
1816 |
TBool iStillPostCaptureViewConstructed;
|
|
1817 |
TBool iBurstThumbnailViewConstructed;
|
|
1818 |
TBool iVideoPostCaptureViewConstructed;
|
|
1819 |
|
|
1820 |
#ifdef CAMERAAPP_DELAYED_POSTCAPTURE_CREATION
|
|
1821 |
// CIdle object used for late construction of the postcapture views
|
|
1822 |
// Own.
|
|
1823 |
CIdle* iPostCapIdle;
|
|
1824 |
|
|
1825 |
// Status of the views creation
|
|
1826 |
TCamPostCapConstruction iPostCapProgress;
|
|
1827 |
#endif // CAMERAAPP_DELAYED_POSTCAPTURE_CREATION
|
|
1828 |
|
|
1829 |
// Own.
|
|
1830 |
CIdle* iSensorIdle;
|
|
1831 |
TBool iSensorIdleRunning;
|
|
1832 |
|
|
1833 |
// Own.
|
|
1834 |
HBufC* iLowRamNoteText;
|
|
1835 |
|
|
1836 |
// Used to allow postcapture view to show for selftimed captures
|
|
1837 |
TBool iSelfTimedCapture;
|
|
1838 |
|
|
1839 |
TBool iDSASupported;
|
|
1840 |
|
|
1841 |
TInt iNoteId;
|
|
1842 |
|
|
1843 |
// View UID if the ViaPlayerApplication view
|
|
1844 |
TUid iViaPlayerUid;
|
|
1845 |
// LeftSoftKey is Pressed
|
|
1846 |
TBool iLeftSoftKeyPressed;
|
|
1847 |
TBool iEndKeyPressed;
|
|
1848 |
|
|
1849 |
TBool iCheckOperationInProgress;
|
|
1850 |
CCamCollectionManagerAO* iCollectionManager;
|
|
1851 |
|
|
1852 |
// Own.
|
|
1853 |
CCamGSInterface* iPlugin;
|
|
1854 |
|
|
1855 |
TBool iSettingsPluginLaunched;
|
|
1856 |
|
|
1857 |
TBool iReturnedFromPlugin;
|
|
1858 |
|
|
1859 |
// Own
|
|
1860 |
CCamFileCheckAo *iFileCheckAo;
|
|
1861 |
|
|
1862 |
// Own
|
|
1863 |
CAknStylusPopUpMenu* iTouchPopupMenu;
|
|
1864 |
|
|
1865 |
// Own
|
|
1866 |
CAknStaticNoteDialog* iMemoryNote;
|
|
1867 |
|
|
1868 |
TSize iRequestedNewFileResolution;
|
|
1869 |
|
|
1870 |
TBool iLostFocusToNewWindow;
|
|
1871 |
TBool iToolbarVisibility;
|
|
1872 |
TBool iRotatedKeyEvent;
|
|
1873 |
|
|
1874 |
// flag that tells us that we are exiting app because lens cover is closed
|
|
1875 |
// used to skip post-capture view in these cases
|
|
1876 |
TBool iLensCoverExit;
|
|
1877 |
// flag that indicates whether view finder start is the
|
|
1878 |
// first one after camera startup
|
|
1879 |
TBool iFirstVFStart;
|
|
1880 |
|
|
1881 |
TUid iLastHiddenViewId;
|
|
1882 |
|
|
1883 |
TCamMediaStorage iInternalStorage; //Points to either Phone or Internal Mass storage based on availability
|
|
1884 |
T2ndCamOrientation iLockedQwertyState;
|
|
1885 |
TBool iUiConstructionComplete;
|
|
1886 |
CCamMemoryMonitor* iMemoryMonitor;
|
|
1887 |
|
|
1888 |
//Flag to monitor viewfinder window handle switch
|
|
1889 |
TBool iViewFinderInTransit;
|
|
1890 |
|
|
1891 |
TInt iLandscapeScreenMode;
|
|
1892 |
TInt iPortraitScreenMode;
|
|
1893 |
|
|
1894 |
TBool iMemoryAvailableForCapturing;
|
|
1895 |
|
|
1896 |
CCamStartupLogoController* iStartupLogoController;
|
|
1897 |
|
|
1898 |
TBool iVideoClipPlayInProgress;
|
|
1899 |
|
|
1900 |
/**
|
|
1901 |
* iCamFtuDisplay
|
|
1902 |
* An instance of the CCamFtuDisplay class
|
|
1903 |
*/
|
|
1904 |
CCamFtuDisplay* iCamFtuDisplay;
|
|
1905 |
};
|
|
1906 |
|
|
1907 |
// ===========================================================================
|
|
1908 |
// Debug strings
|
|
1909 |
|
|
1910 |
#ifdef _DEBUG
|
|
1911 |
const TUint16* const KCamViewStateNames[] =
|
|
1912 |
{
|
|
1913 |
(const TUint16* const)_S16("ECamViewStateRangeInternalMin"),
|
|
1914 |
|
|
1915 |
(const TUint16* const)_S16("ECamViewStatePreCapture"),
|
|
1916 |
(const TUint16* const)_S16("ECamViewStatePostCapture"),
|
|
1917 |
(const TUint16* const)_S16("ECamViewStateBurstThumbnail"),
|
|
1918 |
(const TUint16* const)_S16("ECamViewStateSettings"),
|
|
1919 |
(const TUint16* const)_S16("ECamViewStateStandby"),
|
|
1920 |
(const TUint16* const)_S16("ECamViewStateUserSceneSetup"),
|
|
1921 |
(const TUint16* const)_S16("ECamViewStateWhiteBalanceUser"),
|
|
1922 |
(const TUint16* const)_S16("ECamViewStateColourFilterUser"),
|
|
1923 |
(const TUint16* const)_S16("ECamViewStateFlashUser"),
|
|
1924 |
(const TUint16* const)_S16("ECamViewStateSceneUser"),
|
|
1925 |
(const TUint16* const)_S16("ECamViewStateSceneStill"),
|
|
1926 |
(const TUint16* const)_S16("ECamViewStateCaptureSetupMenu"),
|
|
1927 |
(const TUint16* const)_S16("ECamViewStateSceneSettingList"),
|
|
1928 |
(const TUint16* const)_S16("ECamViewStateExposureUser"),
|
|
1929 |
(const TUint16* const)_S16("ECamViewStateCustomiseToolbar"),
|
|
1930 |
(const TUint16* const)_S16("ECamViewStatePrePortraitCapture"),
|
|
1931 |
|
|
1932 |
(const TUint16* const)_S16("ECamViewStateRangeInternalMax"),
|
|
1933 |
(const TUint16* const)_S16("ECamViewStateRangeExternalMin"),
|
|
1934 |
|
|
1935 |
(const TUint16* const)_S16("ECamViewStateViaPlayer"),
|
|
1936 |
(const TUint16* const)_S16("ECamViewStateGsCamcorderPlugin"),
|
|
1937 |
|
|
1938 |
(const TUint16* const)_S16("ECamViewStateRangeExternalMax")
|
|
1939 |
};
|
|
1940 |
__ASSERT_COMPILE( (sizeof(KCamViewStateNames)/sizeof(TUint16*)) == ECamViewStateCount );
|
|
1941 |
#endif // _DEBUG
|
|
1942 |
|
|
1943 |
#endif // CAMAPPUI_H
|
|
1944 |
|
|
1945 |
// End of File
|