--- a/camerauis/cameraxui/cxengine/inc/api/cxutils.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/inc/api/cxutils.h Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -25,28 +25,39 @@
#define QT_TRANSLATE_SYMBIAN_LEAVE_TO_EXCEPTION QT_TRAP_THROWING
#endif
-//! @todo change back when we can use udeb again
-//#ifdef _DEBUG
-#if 1
+
+// Traces enabled only in debug builds.
+// These can heavily affect the performance.
+#ifdef _DEBUG
#include <QDebug> // Qt Debug
+#ifdef Q_OS_SYMBIAN
#include <e32debug.h> // Symbian Debug
+#endif // Q_OS_SYMBIAN
- // engine specific debug macros
#define CX_DEBUG(msg) qDebug msg;
- #define CX_DEBUG_SYMBIAN(msg) RDebug::Print msg;
#define CX_DEBUG_ENTER_FUNCTION() qDebug("%s => ", __PRETTY_FUNCTION__);
#define CX_DEBUG_IN_FUNCTION() qDebug("%s =><= ", __PRETTY_FUNCTION__);
#define CX_DEBUG_EXIT_FUNCTION() qDebug("%s <= ", __PRETTY_FUNCTION__);
+#ifdef Q_OS_SYMBIAN
+ #define CX_DEBUG_SYMBIAN(msg) RDebug::Print msg;
#define CX_DEBUG_ASSERT(x) if( !(x) ) {\
qDebug("%s:%d, ASSERT FAIL [%s]", __FILE__, __LINE__, #x); \
ASSERT(x); \
}
+#else // !Q_OS_SYMBIAN
+ #define CX_DEBUG_SYMBIAN(msg) qDebug()<< msg;
+ #define CX_DEBUG_ASSERT(x) if( !(x) ) {\
+ qDebug("%s:%d, ASSERT FAIL [%s]", __FILE__, __LINE__, #x); \
+ Q_ASSERT(x); \
+ }
+ #define OstTrace0(x,y,z)
+
+#endif // Q_OS_SYMBIAN
#define CX_ASSERT_ALWAYS(x) CX_DEBUG_ASSERT(x)
#else // !_DEBUG
- // engine specific debug macros
#define CX_DEBUG(msg)
#define CX_DEBUG_SYMBIAN(msg)
#define CX_DEBUG_ENTER_FUNCTION()
@@ -57,6 +68,4 @@
#endif // _DEBUG
-
-
#endif // CXUTILS_H
--- a/camerauis/cameraxui/cxengine/src/cxecameradevice.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxecameradevice.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -148,6 +148,7 @@
TRAPD(errorImgPr, mImageProcessor =
CCamera::CCameraImageProcessing::NewL(*mCamera));
CX_DEBUG(("CCameraImageProcessing status: %d", errorImgPr));
+ Q_UNUSED(errorImgPr); // Avoid release build unused variable warning.
TRAPD(errorSnap, mCameraSnapshot =
CCamera::CCameraSnapshot::NewL(*mCamera));
--- a/camerauis/cameraxui/cxengine/src/cxeenginesymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxeenginesymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -98,7 +98,7 @@
// Check we do this only once.
if (!mSettingsModel) {
- OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_IN, "e_CX_ENGINE_CREATE_CONTROLS 1");
+ OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_IN, "msg: e_CX_ENGINE_CREATE_CONTROLS 1");
CxeCameraDeviceControlSymbian *deviceControl = new CxeCameraDeviceControlSymbian();
mCameraDeviceControl = deviceControl;
@@ -122,8 +122,8 @@
mSettings = new CxeSettingsImp(*mSettingsModel);
- // Loading current camera mode value from settings store and updating
- // devicecontrol
+ // Loading current camera mode value from settings store and updating
+ // devicecontrol
Cxe::CameraMode cameraMode = Cxe::ImageMode;
int value;
CxeError::Id err = mSettings->get(CxeSettingIds::CAMERA_MODE, value);
@@ -132,7 +132,7 @@
}
// set current camera mode to devicecontrol.
mCameraDeviceControl->setMode(cameraMode);
-
+
//! @todo a temporary hack to change the startup sequence to avoid GOOM problems
static_cast<CxeSettingsImp*>(mSettings)->loadSettings(mode());
@@ -163,7 +163,7 @@
mSnapshotControl = new CxeSnapshotControl(*mCameraDevice);
- mAutoFocusControl = new CxeAutoFocusControlSymbian(*mCameraDevice,
+ mAutoFocusControl = new CxeAutoFocusControlSymbian(*mCameraDevice,
*mSettings);
mFileSaveThread = CxeFileSaveThreadFactory::createFileSaveThread();
@@ -186,7 +186,7 @@
*mVideoCaptureControl,
*mSettings);
- OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_OUT, "e_CX_ENGINE_CREATE_CONTROLS 0");
+ OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_OUT, "msg: e_CX_ENGINE_CREATE_CONTROLS 0");
}
CX_DEBUG_EXIT_FUNCTION();
@@ -198,7 +198,7 @@
void CxeEngineSymbian::connectSignals()
{
CX_DEBUG_ENTER_FUNCTION();
- OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_IN, "e_CX_ENGINE_CONNECT_SIGNALS 1");
+ OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_IN, "msg: e_CX_ENGINE_CONNECT_SIGNALS 1");
// enabling scene setting change callbacks to Autofocus control
connect(mSettings,
@@ -280,7 +280,7 @@
SLOT(stop()),
Qt::UniqueConnection);
- OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_OUT, "e_CX_ENGINE_CONNECT_SIGNALS 0");
+ OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_OUT, "msg: e_CX_ENGINE_CONNECT_SIGNALS 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -288,10 +288,10 @@
CxeEngineSymbian::~CxeEngineSymbian()
{
CX_DEBUG_ENTER_FUNCTION();
-
+
// Saving current camera mode to cenrep
saveMode();
-
+
delete mGeoTaggingTrail;
delete mAutoFocusControl;
delete mZoomControl;
@@ -356,7 +356,7 @@
return *mSettings;
}
-/*!
+/*!
Returns the sensor event handle
*/
CxeSensorEventHandler &CxeEngineSymbian::sensorEventHandler()
@@ -415,7 +415,7 @@
void CxeEngineSymbian::doInit()
{
CX_DEBUG_ENTER_FUNCTION();
- OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_IN, "e_CX_ENGINE_DO_INIT 1");
+ OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_IN, "msg: e_CX_ENGINE_DO_INIT 1");
mFilenameGenerator->init(mode());
// load settings whenever we change mode or start camera or switch camera
@@ -438,7 +438,7 @@
mVideoCaptureControl->init();
}
- OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_OUT, "e_CX_ENGINE_DO_INIT 0");
+ OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_OUT, "msg: e_CX_ENGINE_DO_INIT 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -526,6 +526,7 @@
void CxeEngineSymbian::initMode(Cxe::CameraMode cameraMode)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEENGINE_INITMODE_IN, "msg: e_CX_ENGINE_INIT_MODE 1");
if (mode() == cameraMode) {
CX_DEBUG(("initMode() called for current mode"));
@@ -577,6 +578,7 @@
}
}
+ OstTrace0(camerax_performance, CXEENGINE_INITMODE_OUT, "msg: e_CX_ENGINE_INIT_MODE 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -611,7 +613,8 @@
void CxeEngineSymbian::startGeotaggingTrail()
{
CX_DEBUG_ENTER_FUNCTION();
-
+ OstTrace0(camerax_performance, CXEENGINE_START_GEO_IN, "msg: e_CX_ENGINE_START_GEOTAGGING 1");
+
if (mGeoTaggingTrail && mSettings) {
// location trail is limited to image mode only for now.
int value = Cxe::GeoTaggingDisclaimerDisabled;
@@ -622,7 +625,8 @@
mGeoTaggingTrail->start();
}
}
-
+
+ OstTrace0(camerax_performance, CXEENGINE_START_GEO_OUT, "msg: e_CX_ENGINE_START_GEOTAGGING 0");
CX_DEBUG_EXIT_FUNCTION();
}
--- a/camerauis/cameraxui/cxengine/src/cxefilenamegeneratorsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxefilenamegeneratorsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -28,6 +28,11 @@
#include "cxeerror.h"
#include "cxeerrormappingsymbian.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cxefilenamegeneratorsymbianTraces.h"
+#endif
+
using namespace Cxe;
@@ -79,6 +84,7 @@
mCurrentMode(mode)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATOR_1, "msg: e_CX_FILENAMEGENERATOR_NEW 1");
// Set default values (used in case of error retrieving values)
mCurrentMonth = "";
@@ -92,6 +98,7 @@
mSettings.get(CxeSettingIds::FNAME_IMAGE_COUNTER, mImageCounter);
mSettings.get(CxeSettingIds::FNAME_VIDEO_COUNTER, mVideoCounter);
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATOR_2, "msg: e_CX_FILENAMEGENERATOR_NEW 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -152,6 +159,7 @@
CxeError::Id CxeFilenameGeneratorSymbian::generateFilename(QString &qfName, const QString &fileExt)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_GENERATENAME_1, "msg: e_CX_GENERATE_FILENAME 1");
// Make sure that the path for images/videos exists
QString path;
@@ -167,6 +175,7 @@
}
}
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_GENERATENAME_2, "msg: e_CX_GENERATE_FILENAME 0");
CX_DEBUG_EXIT_FUNCTION();
return CxeErrorHandlingSymbian::map(err);
}
@@ -353,6 +362,7 @@
int CxeFilenameGeneratorSymbian::selectFolder(QString &suggestedPath)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_SELECTFOLDER_1, "msg: e_CX_SELECT_FOLDER 1");
// Compose the path string and select counter based on mode.
QString basePath = "%1%2\\";
@@ -428,6 +438,7 @@
}
}
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_SELECTFOLDER_2, "msg: e_CX_SELECT_FOLDER 0");
CX_DEBUG_EXIT_FUNCTION();
// We fallback to basePath in case of unknown errors,
@@ -444,6 +455,7 @@
int CxeFilenameGeneratorSymbian::initMonthFolders()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_INITFOLDERS_1, "msg: e_CX_INIT_MONTH_FOLDER 1");
// Month folder: YYYYMM, with suffix: YYYYMMXX
QString monthFolder = QDate::currentDate().toString("yyyyMM");
@@ -489,6 +501,7 @@
CX_DEBUG(("[FATAL] - Could not create month folder, error %d", status));
}
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_INITFOLDERS_2, "msg: e_CX_INIT_MONTH_FOLDER 0");
CX_DEBUG_EXIT_FUNCTION();
return status;
}
@@ -596,6 +609,7 @@
CxeError::Id CxeFilenameGeneratorSymbian::init(Cxe::CameraMode mode)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_INIT_1, "msg: e_CX_FILENAMEGENERATOR_INIT 1");
mCurrentMode = mode;
int err = KErrNone;
@@ -620,6 +634,7 @@
}
}
+ OstTrace0(camerax_performance, CXEFILENAMEGENERATORSYMBIAN_INIT_2, "msg: e_CX_FILENAMEGENERATOR_INIT 0");
CX_DEBUG_EXIT_FUNCTION();
return CxeErrorHandlingSymbian::map(err);
}
--- a/camerauis/cameraxui/cxengine/src/cxegeotaggingtrailprivate.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxegeotaggingtrailprivate.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -15,6 +15,11 @@
*
*/
+#include <QObject> // For Q_OS_SYMBIAN define
+#if defined(Q_OS_SYMBIAN)
+#include <locationtrailpskeys.h>
+#endif
+
#include "cxutils.h"
#include "cxestate.h"
#include "cxesettings.h"
@@ -23,8 +28,10 @@
#include "cxevideocapturecontrol.h"
#include "cxegeotaggingtrailprivate.h"
-#include <locationtrailpskeys.h>
-
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cxegeotaggingtrailprivateTraces.h"
+#endif
namespace
@@ -37,7 +44,7 @@
/*!
* Constructor
*/
-CxeGeoTaggingTrailPrivate::CxeGeoTaggingTrailPrivate(CxeStillCaptureControl &stillControl,
+CxeGeoTaggingTrailPrivate::CxeGeoTaggingTrailPrivate(CxeStillCaptureControl &stillControl,
CxeVideoCaptureControl &videoControl,
CxeSettings &settings)
: CxeStateMachine("CxeGeoTaggingTrailPrivate"),
@@ -56,7 +63,7 @@
QVariant locationTrailState;
// Get initial location trail state.
- mSettings.get(KPSUidLocationTrail.iUid, KLocationTrailState,
+ mSettings.get(KPSUidLocationTrail.iUid, KLocationTrailState,
Cxe::PublishAndSubscribe, locationTrailState);
connect(&mSettings, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)),
@@ -66,10 +73,10 @@
connect(&mSettings, SIGNAL(settingValueChanged(const QString&,QVariant)),
this, SLOT(handleSettingValueChanged(const QString&,QVariant)));
-
+
connect(&mStopLocationTrailTimer, SIGNAL(timeout()),
- this, SLOT(timeout()), Qt::UniqueConnection);
-
+ this, SLOT(timeout()), Qt::UniqueConnection);
+
CX_DEBUG_EXIT_FUNCTION();
}
@@ -93,13 +100,14 @@
void CxeGeoTaggingTrailPrivate::start()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEGEOTAGGINGTRAIL_START_1, "msg: e_CX_START_GEOTAGGING 1");
#if defined(Q_OS_SYMBIAN)
int err = KErrNone;
int settingValue = Cxe::GeoTaggingOff;
mSettings.get(CxeSettingIds::GEOTAGGING, settingValue);
-
+
if (settingValue == Cxe::GeoTaggingOn) {
// geotagging setting is ON, trying to start location trail
if (state() == CxeGeoTaggingTrail::NotConnected) {
@@ -109,7 +117,7 @@
setState(CxeGeoTaggingTrail::Connected);
}
}
-
+
if (state() == CxeGeoTaggingTrail::Connected && !err) {
err = mLocationTrail.StartLocationTrail(RLocationTrail::ECaptureAll);
if (!err) {
@@ -122,13 +130,14 @@
if (err) {
CX_DEBUG(("CxeGeoTaggingTrailPrivate::start <> FAILED: error = %d ", err));
stop(true);
- }
+ }
} else {
// geotagging setting off, do nothing.
CX_DEBUG(("CxeGeoTaggingTrail <> start -- Geotagging setting OFF, do nothing.."));
}
#endif
+ OstTrace0(camerax_performance, CXEGEOTAGGINGTRAIL_START_2, "msg: e_CX_START_GEOTAGGING 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -143,6 +152,7 @@
void CxeGeoTaggingTrailPrivate::stop(bool closeSession)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEGEOTAGGINGTRAIL_STOP_1, "msg: e_CX_STOP_GEOTAGGING 1");
#if defined(Q_OS_SYMBIAN)
@@ -158,7 +168,7 @@
mLocationTrail.StopLocationTrail();
setState(CxeGeoTaggingTrail::Connected);
}
-
+
if (closeSession && state() == CxeGeoTaggingTrail::Connected) {
CX_DEBUG(("CxeGeoTaggingTrailPrivate <> disconnect location trail utility"));
mLocationTrail.Close();
@@ -171,10 +181,10 @@
}
mStopLocationTrailTimer.start(STOP_TRAIL_INTERVAL);
}
-
+
#endif
-
- CX_DEBUG_EXIT_FUNCTION();
+
+ OstTrace0(camerax_performance, CXEGEOTAGGINGTRAIL_STOP_2, "msg: e_CX_STOP_GEOTAGGING 0");
}
@@ -187,7 +197,7 @@
{
// checking still capture control states
bool ok = mStillCaptureControl.state() != CxeStillCaptureControl::Capturing;
-
+
// Still side OK, checking video capture control states
if (ok) {
ok = (mVideoCaptureControl.state() != CxeVideoCaptureControl::Recording &&
@@ -207,10 +217,10 @@
void CxeGeoTaggingTrailPrivate::timeout()
{
CX_DEBUG_ENTER_FUNCTION();
-
+
// stop the pending location trail utility
stop(mPendingStopTrailSession);
-
+
CX_DEBUG_EXIT_FUNCTION();
}
@@ -224,7 +234,7 @@
void CxeGeoTaggingTrailPrivate::handleSettingValueChanged(const QString& settingId, QVariant newValue)
{
CX_DEBUG_ENTER_FUNCTION();
-
+
if (settingId == CxeSettingIds::GEOTAGGING) {
if (newValue.toInt() == Cxe::GeoTaggingOn) {
// setting is turned ON, start location trail
@@ -239,7 +249,7 @@
start();
}
}
-
+
CX_DEBUG_EXIT_FUNCTION();
}
@@ -259,7 +269,7 @@
if (uid == KPSUidLocationTrail.iUid && key == KLocationTrailState) {
CX_DEBUG(("Location trail: new state = %d ", value.toInt()));
- RLocationTrail::TTrailState newState =
+ RLocationTrail::TTrailState newState =
static_cast<RLocationTrail::TTrailState>(value.toInt());
if (newState == RLocationTrail::ETrailStarted) {
@@ -293,7 +303,7 @@
void CxeGeoTaggingTrailPrivate::handleStateChanged(int newStateId, CxeError::Id error)
{
emit stateChanged(static_cast<CxeGeoTaggingTrail::State> (newStateId), error);
-
+
}
@@ -304,17 +314,17 @@
{
// addState( id, name, allowed next states )
addState(new CxeState(CxeGeoTaggingTrail::NotConnected, "NotConnected", CxeGeoTaggingTrail::Connected));
-
- addState(new CxeState(CxeGeoTaggingTrail::Connected, "Connected", CxeGeoTaggingTrail::TrailStarted |
+
+ addState(new CxeState(CxeGeoTaggingTrail::Connected, "Connected", CxeGeoTaggingTrail::TrailStarted |
CxeGeoTaggingTrail::NotConnected));
-
+
addState(new CxeState(CxeGeoTaggingTrail::TrailStarted, "TrailStarted", CxeGeoTaggingTrail::DataAvailable |
CxeGeoTaggingTrail::Connected |
CxeGeoTaggingTrail::NotConnected));
-
- addState(new CxeState(CxeGeoTaggingTrail::DataAvailable, "DataAvailable", CxeGeoTaggingTrail::Connected |
+
+ addState(new CxeState(CxeGeoTaggingTrail::DataAvailable, "DataAvailable", CxeGeoTaggingTrail::Connected |
CxeGeoTaggingTrail::NotConnected));
-
+
setInitialState(CxeGeoTaggingTrail::NotConnected);
}
--- a/camerauis/cameraxui/cxengine/src/cxeimagedataitemsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxeimagedataitemsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -167,6 +167,7 @@
CxeError::Id CxeImageDataItemSymbian::save()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_SAVE_IN, "msg: e_CX_IMAGEDATAITEM_SAVE 1");
mError = KErrNone;
@@ -227,7 +228,7 @@
mFile.Close(); //~400us
mFs.Close(); //~450us
- OstTrace0(camerax_performance, CXEIMAGEDATAIMTEMSYMBIAN_SAVED, "msg: e_CX_SHOT_TO_SAVE 0");
+ OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_SAVED, "msg: e_CX_SHOT_TO_SAVE 0");
if (mError == KErrNone) {
setState(CxeImageDataItem::Saved);
@@ -236,7 +237,7 @@
}
emit imageSaved(CxeErrorHandlingSymbian::map(mError), mPath, mId);
- CX_DEBUG(("mError: %d", mError));
+ OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_SAVE_OUT, "msg: e_CX_IMAGEDATAITEM_SAVE 0");
CX_DEBUG_EXIT_FUNCTION();
return CxeErrorHandlingSymbian::map(mError);
}
--- a/camerauis/cameraxui/cxengine/src/cxequalitypresetssymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxequalitypresetssymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -64,6 +64,7 @@
: mSettings(settings)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEQUALITYPRESETSSYMBIAN_1, "msg: e_CX_QUALITYPRESETS_NEW 1");
TRAPD(err, mIcm = CImagingConfigManager::NewL());
@@ -72,8 +73,8 @@
mIcm = NULL;
}
+ OstTrace0(camerax_performance, CXEQUALITYPRESETSSYMBIAN_2, "msg: e_CX_QUALITYPRESETS_NEW 0");
CX_DEBUG_EXIT_FUNCTION();
-
}
/* !
@@ -311,10 +312,10 @@
int delta16by9 = abs((width * ASPECT_RATIO_SIZE_16BY9.height()) - (height * ASPECT_RATIO_SIZE_16BY9.width()));
int delta11by9 = abs((width * ASPECT_RATIO_SIZE_11BY9.height()) - (height * ASPECT_RATIO_SIZE_11BY9.width()));
int delta4by3 = abs((width * ASPECT_RATIO_SIZE_4BY3.height()) - (height * ASPECT_RATIO_SIZE_4BY3.width()));
-
+
// get the closest aspect ratio
int minValue = qMin(qMin(delta16by9, delta11by9), delta4by3);
-
+
if (minValue == delta16by9) {
aspectRatio = Cxe::AspectRatio16to9;
} else if (minValue == delta11by9) {
--- a/camerauis/cameraxui/cxengine/src/cxesettingscenrepstore.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxesettingscenrepstore.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -25,6 +25,9 @@
#include <QString>
#include <QStringList>
#include <QVariant>
+#ifdef Q_OS_SYMBIAN
+#include <ProfileEngineSDKCRKeys.h>
+#endif
#include "xqsettingsmanager.h" // Settings Manager API
#include "xqsettingskey.h"
@@ -35,10 +38,11 @@
#include "cxeerror.h"
#include "cxecenrepkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cxesettingscenrepstoreTraces.h"
+#endif
-#ifdef Q_OS_SYMBIAN
-#include <ProfileEngineSDKCRKeys.h>
-#endif
using namespace CxeSettingIds;
@@ -49,6 +53,7 @@
CxeSettingsCenRepStore::CxeSettingsCenRepStore()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_1, "msg: e_CX_SETTINGSSTORE_CREATE 1");
// map keys of type "string" to cenrep ids
mapKeys();
@@ -56,13 +61,13 @@
// we create settings handle, scope user::scope
mSettingsManager = new XQSettingsManager(this);
- bool ok = false;
- ok = connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
- this, SLOT(handleValueChanged(XQSettingsKey, QVariant)));
- CX_DEBUG_ASSERT(ok);
+ bool ok = connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
+ this, SLOT(handleValueChanged(XQSettingsKey, QVariant)));
+ CX_ASSERT_ALWAYS(ok);
CX_DEBUG(("CxeSettingsCenRepStore - mSettingsManager ptr = %d", mSettingsManager));
+ OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_2, "msg: e_CX_SETTINGSSTORE_CREATE 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -81,7 +86,7 @@
/*!
* Generates XQSettingsKey from given setting/runtime key
-* \param key Name of the setting from which to generate the XQSettingsKey
+* \param key Name of the setting from which to generate the XQSettingsKey
* \param[out] error Error code. CxeError::None if everything went fine.
*/
XQSettingsKey
@@ -119,6 +124,7 @@
QHash<QString, QVariantList> CxeSettingsCenRepStore::loadRuntimeSettings(QList<QString>& runtimeKeys)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_LOADRUNTIME_1, "msg: e_CX_SETTINGSSTORE_LOAD_RUNTIME 1");
QHash<QString, QVariantList> settings;
CxeError::Id err = CxeError::None;
@@ -152,6 +158,7 @@
CX_DEBUG_EXIT_FUNCTION();
+ OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_LOADRUNTIME_2, "msg: e_CX_SETTINGSSTORE_LOAD_RUNTIME 0");
return settings;
}
@@ -216,14 +223,20 @@
}
XQSettingsKey settingsKey(keyType, uid, key);
- CX_DEBUG(("reading values from XQSettingsManager.."));
+ CX_DEBUG(("reading value from XQSettingsManager.."));
value = mSettingsManager->readItemValue(settingsKey);
// start monitoring changes for the key
// both P&S and Repository keys are monitored
- bool ok = false;
- ok = mSettingsManager->startMonitoring(settingsKey);
- CX_DEBUG_ASSERT(ok);
+ bool ok = mSettingsManager->startMonitoring(settingsKey);
+ if (!ok) {
+ XQSettingsManager::Error error = mSettingsManager->error();
+ CX_DEBUG(("CxeSettingsCenRepStore - got error %d trying to start listening", error));
+ // If we try to start listening one key more than once,
+ // we get this error. We can safely ignore it.
+ ok = (XQSettingsManager::AlreadyExistsError == error);
+ }
+ CX_ASSERT_ALWAYS(ok);
CX_DEBUG_EXIT_FUNCTION();
}
@@ -284,6 +297,8 @@
void CxeSettingsCenRepStore::mapKeys()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_MAPKEYS_1, "msg: e_CX_SETTINGSSTORE_INIT_MAPPING 1");
+
mKeyMapping.clear();
// mapping setting keys
@@ -322,7 +337,7 @@
addKeyMapping(CxeSettingIds::VIDEO_MUTE_SETTING,
AudioMuteCr,
XQSettingsManager::TypeInt);
-
+
addKeyMapping(CxeSettingIds::GEOTAGGING,
GeoTaggingCr,
XQSettingsManager::TypeInt);
@@ -346,7 +361,7 @@
addKeyMapping(CxeSettingIds::CAPTURE_SOUND_ALWAYS_ON,
CaptureSoundAlwaysOnCr,
XQSettingsManager::TypeInt);
-
+
addKeyMapping(CxeSettingIds::CAMERA_MODE,
CameraModeCr,
XQSettingsManager::TypeInt);
@@ -386,6 +401,7 @@
XQSettingsManager::TypeString,
true);
+ OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_MAPKEYS_2, "msg: e_CX_SETTINGSSTORE_INIT_MAPPING 0");
CX_DEBUG_EXIT_FUNCTION();
}
--- a/camerauis/cameraxui/cxengine/src/cxesettingscontrolsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxesettingscontrolsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -31,6 +31,12 @@
#include "cxesettingsmappersymbian.h"
#include "cxesettingscontrolsymbian.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cxesettingscontrolsymbianTraces.h"
+#endif
+
+
/*!
* Constructor
*/
@@ -103,6 +109,8 @@
void CxeSettingsControlSymbian::handleSceneChanged(CxeScene& scene)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXESETTINGSCONTROL_SCENE_1, "msg: e_CX_SCENE_SETTINGS_TO_CAMERA 1");
+
CX_DEBUG(("CxeSettingsControlSymbian <> new scene [%s]",
scene[CxeSettingIds::SCENE_ID].value<QString>().toAscii().constData()));
@@ -110,6 +118,7 @@
handleSettingValueChanged(settingId, scene[settingId]);
}
+ OstTrace0(camerax_performance, CXESETTINGSCONTROL_SCENE_2, "msg: e_CX_SCENE_SETTINGS_TO_CAMERA 0");
CX_DEBUG_EXIT_FUNCTION();
}
--- a/camerauis/cameraxui/cxengine/src/cxestillcapturecontrolsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxestillcapturecontrolsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -209,7 +209,7 @@
return;
}
- OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_DEINIT_IN, "msg: e_CX_STILL_CAPCONT_DEINIT 1" );
+ OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_DEINIT_IN, "msg: e_CX_STILLCAPCONT_DEINIT 1" );
// Stop monitoring disk space.
mDiskMonitor.stop();
@@ -229,7 +229,7 @@
setState(Uninitialized);
- OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_DEINIT_OUT, "msg: e_CX_STILL_CAPCONT_DEINIT 0" );
+ OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_DEINIT_OUT, "msg: e_CX_STILLCAPCONT_DEINIT 0" );
CX_DEBUG_EXIT_FUNCTION();
}
@@ -246,7 +246,7 @@
return;
}
- OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_PREPARE_IN, "msg: e_CX_STILLCAPCONT_PREPARE 1" );
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_PREPARE_IN, "msg: e_CX_STILLCAPCONT_PREPARE 1");
int err = KErrNone;
CxeError::Id cxErr = getImageQualityDetails(mCurrentImageDetails);
@@ -271,9 +271,9 @@
// Prepare Image capture
CCamera::TFormat imgFormat = supportedStillFormat(mCameraDeviceControl.cameraIndex());
- OstTrace0(camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_PREPARE_MID1, "msg: e_CX_PREPARE_IMAGE_CAPTURE 1");
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_PREPARE_MID1, "msg: e_CX_PREPARE_IMAGE_CAPTURE 1");
TRAP(err, mCameraDevice.camera()->PrepareImageCaptureL(imgFormat, ecamStillResolutionIndex));
- OstTrace0(camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_PREPARE_MID2, "msg: e_CX_PREPARE_IMAGE_CAPTURE 0");
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_PREPARE_MID2, "msg: e_CX_PREPARE_IMAGE_CAPTURE 0");
CX_DEBUG(("PrepareImageCaptureL done, err=%d, resolution index = %d", err, ecamStillResolutionIndex));
@@ -318,7 +318,8 @@
// Inform interested parties that image mode has been prepared for capture
emit imagePrepareComplete(CxeErrorHandlingSymbian::map(err));
- OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_PREPARE_OUT, "msg: e_CX_STILLCAPCONT_PREPARE 0" );
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_GOTOSTILL, "msg: e_CX_GO_TO_STILL_MODE 0");
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_PREPARE_OUT, "msg: e_CX_STILLCAPCONT_PREPARE 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -332,7 +333,7 @@
int CxeStillCaptureControlSymbian::prepareStillSnapshot()
{
CX_DEBUG_ENTER_FUNCTION();
- OstTrace0( camerax_performance, DUP4_CXESTILLCAPTURECONTROLSYMBIAN_PREPARE, "msg: e_CX_PREPARE_SNAPSHOT 1" );
+ OstTrace0( camerax_performance, CXESTILLCAPTURECONTROL_PREPARESNAP_1, "msg: e_CX_PREPARE_SNAPSHOT 1" );
int status(KErrNone);
try {
@@ -343,7 +344,7 @@
} catch (...) {
status = KErrGeneral;
}
- OstTrace0( camerax_performance, DUP5_CXESTILLCAPTURECONTROLSYMBIAN_PREPARE, "msg: e_CX_PREPARE_SNAPSHOT 0" );
+ OstTrace0( camerax_performance, CXESTILLCAPTURECONTROL_PREPARESNAP_2, "msg: e_CX_PREPARE_SNAPSHOT 0" );
CX_DEBUG_EXIT_FUNCTION();
return status;
@@ -357,6 +358,7 @@
CxeError::Id CxeStillCaptureControlSymbian::getImageQualityDetails(CxeImageDetails &imageInfo)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0( camerax_performance, CXESTILLCAPTURECONTROL_GETQUALITYDETAILS_1, "msg: e_CX_GET_QUALITY_DETAILS 1" );
int imageQuality = 0;
CxeError::Id err = CxeError::None;
@@ -378,6 +380,7 @@
imageInfo = mIcmSupportedImageResolutions.at(imageQuality);
}
+ OstTrace0( camerax_performance, CXESTILLCAPTURECONTROL_GETQUALITYDETAILS_2, "msg: e_CX_GET_QUALITY_DETAILS 0" );
CX_DEBUG_EXIT_FUNCTION();
return err;
}
@@ -452,7 +455,7 @@
CX_DEBUG_ENTER_FUNCTION();
if (mCameraDeviceControl.mode() == Cxe::ImageMode) {
- OstTrace0( camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_HANDLESNAPSHOTEVENT, "msg: e_CX_HANDLE_SNAPSHOT 1" );
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_HANDLESNAPSHOT_1, "msg: e_CX_HANDLE_SNAPSHOT 1");
QPixmap ss = QPixmap::fromImage(snapshot);
// Get image container for current snapshot index.
@@ -471,7 +474,7 @@
prepareFilename(stillImage);
}
- OstTrace0( camerax_performance, DUP1_CXESTILLCAPTURECONTROLSYMBIAN_HANDLESNAPSHOTEVENT, "msg: e_CX_HANDLE_SNAPSHOT 0" );
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROL_HANDLESNAPSHOT_2, "msg: e_CX_HANDLE_SNAPSHOT 0");
}
CX_DEBUG_EXIT_FUNCTION();
@@ -744,6 +747,8 @@
CxeError::Id
CxeStillCaptureControlSymbian::prepareFilename(CxeStillImageSymbian *stillImage)
{
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_PREPAREFILENAME_1, "msg: e_CX_PREPARE_FILENAME 1" );
+
CxeError::Id err = CxeError::None;
if (stillImage->filename().isEmpty()) {
QString path;
@@ -767,6 +772,8 @@
CX_DEBUG(("ERROR in filename generation. err:%d", err));
}
}
+
+ OstTrace0(camerax_performance, CXESTILLCAPTURECONTROLSYMBIAN_PREPAREFILENAME_2, "msg: e_CX_PREPARE_FILENAME 0" );
return err;
}
--- a/camerauis/cameraxui/cxengine/src/cxethumbnailmanagersymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxethumbnailmanagersymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -117,6 +117,7 @@
CX_DEBUG_ENTER_FUNCTION();
+ Q_UNUSED(thumbnail);
Q_UNUSED(data);
CX_DEBUG(("CxeThumbnailManagerSymbian::thumbnailReady error = %d", error));
--- a/camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -299,7 +299,7 @@
return;
}
- OstTrace0(camerax_performance, CXEVIDEOCAPTURECONTROLSYMBIAN_PREPARE, "msg: e_CX_VIDCAPCONT_PREPARE 1");
+ OstTrace0(camerax_performance, CXEVIDEOCAPTURECONTROL_PREPARE_1, "msg: e_CX_VIDCAPCONT_PREPARE 1");
QSize frameSize(mCurrentVideoDetails.mWidth, mCurrentVideoDetails.mHeight);
int muteSetting = 0; // audio enabled
@@ -343,7 +343,7 @@
handlePrepareFailed();
}
- OstTrace0(camerax_performance, DUP1_CXEVIDEOCAPTURECONTROLSYMBIAN_PREPARE, "msg: e_CX_VIDCAPCONT_PREPARE 0");
+ OstTrace0(camerax_performance, CXEVIDEOCAPTURECONTROL_PREPARE_2, "msg: e_CX_VIDCAPCONT_PREPARE 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -354,6 +354,7 @@
CxeVideoCaptureControlSymbian::getVideoQualityDetails(CxeVideoDetails &videoInfo)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0( camerax_performance, CXEVIDEOCAPTURECONTROL_GETQUALITYDETAILS_1, "msg: e_CX_GET_QUALITY_DETAILS 1" );
int quality(0);
@@ -369,6 +370,7 @@
// get video quality details
videoInfo = mIcmSupportedVideoResolutions.at(quality);
+ OstTrace0( camerax_performance, CXEVIDEOCAPTURECONTROL_GETQUALITYDETAILS_2, "msg: e_CX_GET_QUALITY_DETAILS 0" );
CX_DEBUG_EXIT_FUNCTION();
}
@@ -800,9 +802,13 @@
CX_DEBUG_ENTER_FUNCTION();
if (mCameraDeviceControl.mode() == Cxe::VideoMode) {
+ OstTrace0(camerax_performance, CXEVIDEOCAPTURECONTROL_HANDLESNAPSHOT_1, "msg: e_CX_HANDLE_SNAPSHOT 1");
+
// Need to store snapshot for ui to be able to get it also later.
mSnapshot = QPixmap::fromImage(snapshot);
emit snapshotReady(status, snapshot, filename());
+
+ OstTrace0(camerax_performance, CXEVIDEOCAPTURECONTROL_HANDLESNAPSHOT_2, "msg: e_CX_HANDLE_SNAPSHOT 0");
}
CX_DEBUG_EXIT_FUNCTION();
--- a/camerauis/cameraxui/cxengine/src/cxeviewfindercontrolsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxeviewfindercontrolsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -163,6 +163,8 @@
CxeError::Id CxeViewfinderControlSymbian::start()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_START_1, "msg: e_CX_VIEWFINDER_START 1");
+
TInt err = KErrNone;
if ( state() == Running ) {
@@ -211,7 +213,7 @@
CCoeEnv::Static()->WsSession(),
*CCoeEnv::Static()->ScreenDevice(),
*mVideoWindow, activeViewfinderRect));
- OstTrace0(camerax_performance, CXEVIEWFINDERCONTROLSYMBIAN_START, "msg: e_CX_STARTUP 0");
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_STARTUP, "msg: e_CX_STARTUP 0");
setState(Running);
break;
}
@@ -248,7 +250,7 @@
// vf already running. nothing to do
}
- CX_DEBUG( ("CxeViewfinderControlSymbian::start symbian error code : %d", err ) );
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_START_2, "msg: e_CX_VIEWFINDER_START 0");
CX_DEBUG_EXIT_FUNCTION();
return CxeErrorHandlingSymbian::map(err);
}
@@ -260,6 +262,7 @@
int CxeViewfinderControlSymbian::initViewfinder()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_INIT_1, "msg: e_CX_VIEWFINDER_INIT 1");
TInt err = KErrNone;
if (state() != Uninitialized) {
@@ -298,6 +301,7 @@
setState( Ready );
#endif
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_INIT_2, "msg: e_CX_VIEWFINDER_INIT 0");
CX_DEBUG_EXIT_FUNCTION();
return err;
}
@@ -309,6 +313,7 @@
void CxeViewfinderControlSymbian::createViewfinderWindowL()
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_CREATE_WINDOW_1, "msg: e_CX_VIEWFINDER_CREATE_WINDOW 1");
if (!mUiWindow) {
CX_DEBUG( ( "mUiWindow not set - cannot create VF window!" ) );
@@ -339,6 +344,7 @@
CX_DEBUG(("mVideoWindow ordinal position is: %d", mVideoWindow->OrdinalPosition()));
CX_DEBUG(("mUiWindow ordinal position is: %d", mUiWindow->OrdinalPosition()));
+ OstTrace0(camerax_performance, CXEVIEWFINDERCONTROL_CREATE_WINDOW_2, "msg: e_CX_VIEWFINDER_CREATE_WINDOW 0");
CX_DEBUG_EXIT_FUNCTION();
}
--- a/camerauis/cameraxui/cxengine/src/cxezoomcontrolsymbian.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxezoomcontrolsymbian.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -209,7 +209,7 @@
if (mCameraDeviceControl.state() == CxeCameraDeviceControl::Ready) {
init();
// if CxeCameraDeviceControl is ready, this pointer is valid
- CX_ASSERT_ALWAYS(mCameraDevice.advancedSettings())
+ CX_ASSERT_ALWAYS(mCameraDevice.advancedSettings());
int error = KErrNone;
TRAP(error,
mCameraDevice.advancedSettings()->GetDigitalZoomStepsL(mDigitalZoomValues, mDigitalZoomValueInfo);
@@ -256,7 +256,7 @@
mMaxZoomLevel = cameraInfo.iMaxDigitalZoom;
}
// change the state, since zoom is now ready
- setState(Ready, KErrNone);
+ setState(Ready);
mCameraDevice.advancedSettings()->SetDigitalZoom(mDigitalZoomValues[mCurrentZoomLevel]);
--- a/camerauis/cameraxui/cxengine/src/dummyengine/cxedummycamera.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/dummyengine/cxedummycamera.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -43,6 +43,8 @@
TSize(640,480)
};
static const int IMAGE_CAPTURE_SIZE_COUNT = sizeof(IMAGE_CAPTURE_SIZES)/sizeof(TSize);
+
+ _LIT( PANICDUMMYCAMERA, "DummyCamera" );
}
@@ -78,7 +80,11 @@
void CxeDummyCamera::doCommand( TCxeDummyCommand aCmd )
{
- iCommandBuf.Insert( aCmd, 0 );
+ TInt status = iCommandBuf.Insert( aCmd, 0 );
+ if ( status != KErrNone )
+ {
+ User::Panic(PANICDUMMYCAMERA, 1);
+ }
if ( !iCommandTimer->IsActive() )
{
iCommandTimer->Start(100, 100, TCallBack(CxeDummyCamera::callBack, this));
--- a/camerauis/cameraxui/cxengine/tsrc/unit/cxeunitrunner/cxetestrunner.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/cxeunitrunner/cxetestrunner.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -68,7 +68,9 @@
<< "unittest_cxesettingscontrolsymbian"
<< "unittest_cxesnapshotcontrol"
<< "unittest_cxeenginesymbian"
- << "unittest_cxegeotaggingtrail";
+ << "unittest_cxegeotaggingtrail"
+ << "unittest_cxememorymonitor"
+ << "unittest_cxediskmonitor";
QDir dir;
dir.mkpath(logFileFolder);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/system_include/rlocationtrail.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "rlocationtrail.h"
+
+RLocationTrail::RLocationTrail()
+{
+}
+
+RLocationTrail::~RLocationTrail()
+{
+}
+
+TInt RLocationTrail::Connect()
+{
+ return KErrNone;
+}
+
+void RLocationTrail::Close()
+{
+}
+
+TInt RLocationTrail::StartLocationTrail(TTrailCaptureSetting aState)
+{
+ return KErrNone;
+}
+
+TInt RLocationTrail::StopLocationTrail()
+{
+ return KErrNone;
+}
+
+TInt RLocationTrail::GetLocationTrailState( TTrailState& aState )
+{
+ return KErrNone;
+}
+
+void RLocationTrail::NotifyLocationTrailStateChange( TRequestStatus& aStatus )
+{
+}
+
+void RLocationTrail::CancelNotificationRequest()
+{
+}
+
+TInt RLocationTrail::RetrieveLocation( const TTime& aTimeStamp,
+ TLocationData& aLocationData,
+ TTrailState& aState )
+{
+ return KErrNone;
+}
+
+void RLocationTrail::CurrentLocation( TRequestStatus& aStatus,
+ TLocationData& aLocationData)
+{
+}
+
+void RLocationTrail::CancelLocationRequest()
+{
+}
+
+TInt RLocationTrail::GetTrailCaptureSetting( TTrailCaptureSetting& aCaptureSetting )
+{
+ return KErrNone;
+}
+
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/system_include/rlocationtrail.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef R_RLOCATIONTRAIL_H
+#define R_RLOCATIONTRAIL_H
+
+#include <e32base.h>
+#include <etel3rdparty.h>
+#include <lbsposition.h>
+#include <locationdatatype.h>
+
+typedef TPckg<TLocality> TLocalityPckg;
+
+/**
+ * RLocationManager dummy.
+ */
+class RLocationTrail
+ {
+public:
+
+ enum TTrailState
+ {
+ ETrailStopped,
+ EWaitingGPSData,
+ ESearchingGPS,
+ ETrailStarted,
+ ETrailStopping,
+ ETrailStarting
+ };
+ enum TTrailCaptureSetting
+ {
+ EOff,
+ ECaptureNetworkInfo,
+ ECaptureAll
+ };
+
+public:
+ RLocationTrail();
+ ~RLocationTrail();
+
+ TInt Connect();
+ void Close();
+
+ TInt StartLocationTrail(TTrailCaptureSetting aState);
+ TInt StopLocationTrail();
+ TInt GetLocationTrailState( TTrailState& aState );
+ void NotifyLocationTrailStateChange( TRequestStatus& aStatus );
+ void CancelNotificationRequest();
+ TInt RetrieveLocation( const TTime& aTimeStamp,
+ TLocationData& aLocationData,
+ TTrailState& aState );
+ void CurrentLocation( TRequestStatus& aStatus,
+ TLocationData& aLocationData);
+ void CancelLocationRequest();
+ TInt GetTrailCaptureSetting( TTrailCaptureSetting& aCaptureSetting );
+ };
+
+#endif // R_RLOCATIONTRAIL_H
+
+// end of file
--- a/camerauis/cameraxui/cxengine/tsrc/unit/unit.pro Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unit.pro Thu Jul 15 01:53:45 2010 +0300
@@ -44,6 +44,8 @@
unittest_cxeharvestercontrolsymbian \
unittest_cxesettingscontrolsymbian \
unittest_cxesnapshotcontrol \
- unittest_cxegeotaggingtrail
+ unittest_cxegeotaggingtrail \
+ unittest_cxediskmonitor \
+ unittest_cxememorymonitor
CONFIG *= ordered
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/cxediskmonitorprivateunit.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,1 @@
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/cxediskmonitorprivateunit.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef CXEDISKMONITORPRIVATEUNIT_H
+#define CXEDISKMONITORPRIVATEUNIT_H
+
+// Include files
+
+#include "cxediskmonitorprivate.h"
+
+class CxeDiskMonitorPrivateUnit;
+
+
+
+#endif // CXEDISKMONITORPRIVATEUNIT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/cxesysutil.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "cxesysutil.h"
+#include "cxutils.h"
+
+qint64 CxeSysUtil::mSpaceAvailable = 0;
+
+ /**
+ * Checks if free disk drive storage space is or will fall below critical
+ * level. Static configuration values stored in Central Repository are
+ * used to determine a critical level for each drive.
+ *
+ * If aBytesToWrite is more than zero, function returns false otherwise true.
+ * By defining aBytesToWrite to zero it is possible to get fake fulldisk error.
+ *
+ */
+TBool CxeSysUtil::DiskSpaceBelowCriticalLevel(
+ RFs* /*aFs*/,
+ TInt aBytesToWrite,
+ TInt /*aDrive*/ )
+{
+ CX_DEBUG_IN_FUNCTION();
+
+ if (aBytesToWrite > 0) {
+ return EFalse;
+ }
+ else {
+ return ETrue;
+ }
+}
+
+qint64 CxeSysUtil::spaceAvailable(
+ RFs & /*fs*/,
+ int /*index*/,
+ CxeSettings & /*settings*/)
+{
+ CX_DEBUG_IN_FUNCTION();
+ return CxeSysUtil::mSpaceAvailable;
+}
+
+void CxeSysUtil::setSpaceAvailable(qint64 aSpaceAvailable)
+{
+ CX_DEBUG_IN_FUNCTION();
+ mSpaceAvailable = aSpaceAvailable;
+}
+
+int CxeSysUtil::getCameraDrive(RFs & /*fs*/)
+{
+ CX_DEBUG_IN_FUNCTION();
+ return 1;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/cxesysutil.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Stub class for testing purposes
+*
+*/
+
+#ifndef CXESYSUTIL_H
+#define CXESYSUTIL_H
+
+#include <e32base.h>
+#include <QObject>
+
+class RFs;
+class CxeSettings;
+
+class CxeSysUtil
+ {
+
+public:
+
+ static TBool DiskSpaceBelowCriticalLevel(
+ RFs* aFs,
+ TInt aBytesToWrite,
+ TInt aDrive);
+
+ static qint64 spaceAvailable(RFs &fs, int index, CxeSettings &settings);
+ static void setSpaceAvailable(qint64 aSpaceAvailable);
+
+ static int getCameraDrive(RFs &fs);
+
+public:
+ static qint64 mSpaceAvailable;
+ };
+
+#endif // CXESYSUTIL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/unittest_cxediskmonitor.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,153 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include <QDate>
+#include <QTest>
+#include <QDebug>
+#include <QSignalSpy>
+#include <QThread>
+
+#include "cxetestutils.h"
+#include "cxefakesettings.h"
+#include "cxesysutil.h"
+#include "cxediskmonitor.h"
+#include "unittest_cxediskmonitor.h"
+
+UnitTestCxeDiskMonitor::UnitTestCxeDiskMonitor()
+ : mFakeSettings(NULL),
+ mDiskMonitor(NULL)
+{
+}
+
+UnitTestCxeDiskMonitor::~UnitTestCxeDiskMonitor()
+{
+ cleanup();
+}
+
+// Run before each individual test case
+void UnitTestCxeDiskMonitor::init()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+
+ mFakeSettings = new CxeFakeSettings();
+ mDiskMonitor = new CxeDiskMonitor(*mFakeSettings);
+
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+// Run after each individual test case
+void UnitTestCxeDiskMonitor::cleanup()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ delete mDiskMonitor;
+ mDiskMonitor = NULL;
+
+ delete mFakeSettings;
+ mFakeSettings = NULL;
+
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testStart()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mDiskMonitor->start();
+ mDiskMonitor->start(); // testing double run - should not crash
+ QVERIFY(mDiskMonitor->isMonitoring() == true);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testStop()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mDiskMonitor->stop();
+ QVERIFY(mDiskMonitor->isMonitoring() == false);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testIsMonitoring()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mDiskMonitor->start();
+ mDiskMonitor->start();
+ QVERIFY(mDiskMonitor->isMonitoring() == true);
+
+ mDiskMonitor->stop();
+ QVERIFY(mDiskMonitor->isMonitoring() == false);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testFree()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ CxeSysUtil::setSpaceAvailable(0);
+ QVERIFY(mDiskMonitor->free(false) == 0);
+ CxeSysUtil::setSpaceAvailable(100000);
+ QVERIFY(mDiskMonitor->free(false) == 100000);
+ QVERIFY(mDiskMonitor->free(true) == 100000);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testSetLowWarningLevelZero()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mDiskMonitor->setLowWarningLevel(0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testSetLowWarningLevelTenMegabytes()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mDiskMonitor->setLowWarningLevel(10485760);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testSetLowWarningLevelFiveGigabyte()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mDiskMonitor->setLowWarningLevel(5368709120);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testLowLevelWarningSignal()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ QSignalSpy spy(mDiskMonitor, SIGNAL(diskSpaceLow()));
+ mDiskMonitor->stop();
+ mDiskMonitor->setLowWarningLevel(100);
+ mDiskMonitor->start();
+ CxeSysUtil::setSpaceAvailable(90);
+ CxeTestUtils::waitForSignal(spy, 10000, 1, true);
+ QVERIFY(spy.count() > 0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeDiskMonitor::testFreeSpaceChangedSignal()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ QSignalSpy spy(mDiskMonitor, SIGNAL(diskSpaceChanged()));
+ mDiskMonitor->stop();
+ mDiskMonitor->setLowWarningLevel(100);
+ mDiskMonitor->start();
+ CxeSysUtil::setSpaceAvailable(110);
+ CxeSysUtil::setSpaceAvailable(120);
+ CxeTestUtils::waitForSignal(spy, 10000, 1, true);
+ QVERIFY(spy.count() > 0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+QTEST_MAIN(UnitTestCxeDiskMonitor);
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/unittest_cxediskmonitor.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef UNITTEST_CXEDISKMONITOR_H
+#define UNITTEST_CXEDISKMONITOR_H
+
+#include <QObject>
+
+#include "cxenamespace.h"
+
+class CxeDiskMonitor;
+class CxeFakeSettings;
+
+class UnitTestCxeDiskMonitor : public QObject
+{
+ Q_OBJECT
+
+public:
+ UnitTestCxeDiskMonitor();
+ ~UnitTestCxeDiskMonitor();
+
+private slots:
+ void init();
+ void cleanup();
+
+ void testStart();
+ void testStop();
+ void testIsMonitoring();
+ void testFree();
+ void testSetLowWarningLevelZero();
+ void testSetLowWarningLevelTenMegabytes();
+ void testSetLowWarningLevelFiveGigabyte();
+ void testLowLevelWarningSignal();
+ void testFreeSpaceChangedSignal();
+
+private:
+ CxeFakeSettings *mFakeSettings;
+ CxeDiskMonitor *mDiskMonitor;
+};
+
+#endif // UNITTEST_CXEDISKMONITOR_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxediskmonitor/unittest_cxediskmonitor.pro Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,32 @@
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# Contributors:
+# Description:
+
+include(../unittest.pri)
+
+TARGET = unittest_cxediskmonitor
+
+DEPENDPATH = . ../../fakeclasses ../../../src/dummyengine ../utils
+INCLUDEPATH = . ../../fakeclasses ../../../src/dummyengine ../utils ../../../traces
+
+DEFINES *= CXE_USE_DUMMY_CAMERA
+
+SOURCES *= unittest_cxediskmonitor.cpp \
+ ./cxesysutil.cpp \
+ cxefakesettings.cpp \
+ ../../../src/cxediskmonitor.cpp \
+ ../../../src/cxediskmonitorprivate.cpp
+
+HEADERS *= unittest_cxediskmonitor.h \
+ ./cxesysutil.h \
+ ../../../inc/api/cxesettings.h \
+ cxefakesettings.h \
+ ../../../inc/cxediskmonitor.h \
+ ../../../inc/cxediskmonitorprivate.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/hal.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Stub implementation of the HAL class for testing purposes
+*
+*/
+
+#include "hal.h"
+
+TInt HAL::Get(TAttribute /*aAttribute*/, TInt& /*aValue*/)
+{
+ return KErrNone;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/hal.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,206 @@
+// Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Stub class for testing purposes
+//
+// WARNING: This file contains some APIs which are internal and are subject
+// to change without notice. Such APIs should therefore not be used
+// outside the Kernel and Hardware Services package.
+//
+
+#ifndef __HAL_H__
+#define __HAL_H__
+
+#include <e32def.h>
+#include <e32property.h>
+#include "hal_data.h"
+
+/**
+@publishedPartner
+@released
+
+A set of static functions to get and set hardware attributes.
+
+@see HALData
+*/
+class HAL : public HALData
+ {
+public:
+
+ /**
+ Synonyms for the attribute properties
+ HALData::TAttributeProperty, and used in SEntry.
+ */
+ enum TEntryProperty
+ {
+ /**
+ When set, means that an attribute is meaningful on this device.
+ */
+ EEntryValid=0x1,
+
+
+ /**
+ When set, means that an attribute is modifiable.
+ */
+ EEntryDynamic=0x2,
+ };
+
+ /**
+ Defines an entry in the array that is returned in a call to HAL::GetAll().
+ */
+ struct SEntry
+ {
+ /**
+ The properties of the attribute.
+
+ @see HAL::TEntryProperty
+ */
+ TInt iProperties;
+
+ /**
+ The attribute value.
+
+ @see HALData::TAttribute
+ */
+ TInt iValue;
+ };
+public:
+ /**
+ Gets the value of the specified HAL attribute.
+
+ @param aAttribute The HAL attribute.
+ @param aValue On successful return, contains the attribute value.
+ Some attributes may accept aValue as an input as well, to select
+ one of several alternate values. See the documentation for the
+ individual HAL attributes for details of this.
+
+ @return KErrNone, if successful;
+ KErrNotSupported, if the attribute is not defined in the list
+ of attributes, or is not meaningful for this device.
+ KErrArgument, if aValue was invalid (for attributes
+ which take an argument).
+
+ @see HALData::TAttribute
+ @see HALData::TAttributeProperty
+ */
+ static TInt Get(TAttribute aAttribute, TInt& aValue);
+
+
+ /**
+ Sets the specified HAL attribute.
+
+ @param aAttribute The HAL attribute.
+ @param aValue The attribute value.
+
+ @return KErrNone, if successful;
+ KErrNotSupported, if the attribute is not defined in the list
+ of attributes, or is not meaningful for this device, or is
+ not settable.
+
+ @see HALData::TAttribute
+ @see HALData::TAttributeProperty
+
+ @capability WriteDeviceData or other capability specified
+ for individual attributes in TAttribute
+ */
+ static TInt Set(TAttribute aAttribute, TInt aValue);
+
+
+ /**
+ Gets all HAL attributes, and their properties.
+
+ For attributes that are not meaningful on this device (ie. those which have
+ not been defined in the config.hcf file), the attribute value and its
+ associated property value are set to zero in the returned array.
+
+ Attributes for which multiple values can be retrieved
+ ie. EDisplayIsPalettized, EDisplayBitsPerPixel, EDisplayOffsetToFirstPixel,
+ EDisplayOffsetBetweenLines, and EDisplayPaletteEntry will also be zero in
+ the returned array.
+
+ Attributes that allocate resources and open handles are also not returned
+ by this API. Their value and property values will be set to zero in the
+ returned array. Use HAL::Get() for these attributes.
+
+ @param aNumEntries On successful return, contains the total number
+ of HAL attributes.
+ If the function returns KErrNoMemory, this value is set
+ to zero.
+ @param aData On successful return, contains a pointer to an array
+ of SEntry objects, each of which contains an attribute value
+ and its property value. Note that the property value is
+ defined by the HAL::TEntry synonym.
+ If the function returns KErrNoMemory, this pointer is set
+ to NULL.
+
+ @return KErrNone, if succesful;
+ KErrNoMemory, if there is insufficient memory.
+ */
+ static TInt GetAll(TInt& aNumEntries, SEntry*& aData);
+
+
+ /**
+ Gets the value of the specified HAL attribute.
+
+ @param aDeviceNumber The device number. (eg: screen number)
+ @param aAttribute The HAL attribute.
+ @param aValue On successful return, contains the attribute value.
+ Some attributes may accept aValue as an input as well, to select
+ one of several alternate values. See the documentation for the
+ individual HAL attributes for details of this.
+
+
+ @return KErrNone, if successful;
+ KErrNotSupported, if the attribute is not defined in the list
+ of attributes, or is not meaningful for this device.
+ KErrArgument, if aValue was invalid (for attributes
+ which take an argument).
+
+ @see HALData::TAttribute
+ @see HALData::TAttributeProperty
+ */
+ static TInt Get(TInt aDeviceNumber, TAttribute aAttribute, TInt& aValue);
+
+
+ /**
+ Sets the specified HAL attribute.
+
+ @param aDeviceNumber The device number. (eg: screen number)
+ @param aAttribute The HAL attribute.
+ @param aValue The attribute value.
+
+ @return KErrNone, if successful;
+ KErrNotSupported, if the attribute is not defined in the list
+ of attributes, or is not meaningful for this device, or is
+ not settable.
+
+ @see HALData::TAttribute
+ @see HALData::TAttributeProperty
+
+ @capability WriteDeviceData or other capability specified
+ for individual attributes in TAttribute
+ */
+ static TInt Set(TInt aDeviceNumber, TAttribute aAttribute, TInt aValue);
+ };
+
+
+/**
+@internalComponent
+*/
+static const TInt32 KUidHalPropertyKeyBase = 0x1020E306;
+
+__ASSERT_COMPILE(HAL::ENumHalAttributes<256); // only 256 UIDs allocated for HAL property keys
+
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/hal_data.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,1363 @@
+// Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// hal\inc\hal_data.h
+// This is a test version of the header, for testing purposes only
+//
+
+
+#ifndef __HAL_DATA_H__
+#define __HAL_DATA_H__
+#define bitmask enum
+
+class HALData
+/**
+@publishedPartner
+@released
+
+Sets of attributes and values used by HAL functions.
+*/
+ {
+public:
+ /**
+ A set of enumerators that identifies hardware attributes.
+ The enumerators are passed to HAL::Get() and HAL::Set().
+
+ They are also used by the HAL accessor functions.
+
+ Note: It is not recommended to use HAL attributes to pass handles from the
+ kernel to user-side clients due to resource overhead's that will affect
+ existing clients of HAL. HAL is designed to allow simply hardware parameters
+ to be shared with user-side clients without resource allocation overheads.
+
+ @see HAL::Get()
+ @see HAL::Set()
+ */
+ enum TAttribute
+ {
+ /**
+ Identifies the manufacturer of a device.
+ If this is not enumerated in TManufacturer, then the manufacturer must
+ obtain a value from the Symbian registry.
+
+ @see HALData::TManufacturer
+ */
+ EManufacturer,
+
+
+ /**
+ The device specific hardware version number, as defined by
+ the device manufacturer.
+ */
+ EManufacturerHardwareRev,
+
+
+ /**
+ The device specific version number, as defined by
+ the device manufacturer.
+ */
+ EManufacturerSoftwareRev,
+
+
+ /**
+ The device specific software version number, as defined by
+ the device manufacturer.
+ */
+ EManufacturerSoftwareBuild,
+
+
+ /**
+ The device specific model number, as defined by
+ the device manufacturer.
+ */
+ EModel,
+
+
+ /**
+ This is the device specific UID, It is unique to the class /model
+ of device. A value must be obtained from Symbian's UID registry for
+ this attribute.
+ */
+ EMachineUid,
+
+
+ /**
+ The Symbian OS specified device family identifier.
+ If the device family is not one of those enumerated by TDeviceFamily,
+ then the licensee must obtain a UID from Symbian for this attribute.
+
+ @see HALData::TDeviceFamily
+ */
+ EDeviceFamily,
+
+
+ /**
+ The Symbian OS specified device family version.
+ */
+ EDeviceFamilyRev,
+
+
+ /**
+ The CPU architecture used by this device. The values are enumerated
+ by TCPU.
+
+ @see HALData::TCPU
+ */
+ ECPU,
+
+
+ /**
+ A revision number for the CPU architecture.
+ */
+ ECPUArch,
+
+
+ /**
+ This is the default ABI used by CPU for user applications.
+ The values are enumerated by HALData::TCPUABI.
+ */
+ ECPUABI,
+
+
+ /**
+ The processor speed in KHz.
+ */
+ ECPUSpeed,
+
+
+ /**
+ The reason for most recent system boot.
+ This is dynamic and readonly; the values are enumerated by
+ TSystemStartupReason.
+
+ @see HALData::TSystemStartupReason
+ */
+ ESystemStartupReason,
+
+
+ /**
+ This is the last exception code, in the case of system reboot.
+ This is dynamic and readonly.
+ */
+ ESystemException,
+
+
+ /**
+ The time between system ticks, in microseconds.
+ */
+ ESystemTickPeriod,
+
+
+ /**
+ The total system RAM, in bytes.
+ */
+ EMemoryRAM,
+
+
+ /**
+ The currently free system RAM.
+
+ This is dynamic and readonly.
+ */
+ EMemoryRAMFree,
+
+
+ /**
+ The total System ROM, in bytes.
+ */
+ EMemoryROM,
+
+
+ /**
+ The MMU page size in bytes.
+ */
+ EMemoryPageSize,
+
+
+ /**
+ Indicates the state of the power supply.
+
+ It has the values:
+ 1 = Power is good (i.e. external power is available,
+ or the 'power' battery is >= low);
+ 0 = otherwise.
+
+ This is dynamic and readonly.
+ */
+ EPowerGood,
+
+
+ /**
+ The System (or 'Main') battery power level.
+ The allowable values are enumerated by TPowerBatteryStatus
+
+ This is dynamic and readonly,
+
+ @see HALData::TPowerBatteryStatus
+ */
+ EPowerBatteryStatus,
+
+
+ /**
+ Indicates whether a backup power supply is available.
+ It has the values:
+ 0 = the device does not support (or need) a backup battery source;
+ 1 = a backup batter source is present.
+ This is dynamic and readonly
+ */
+ EPowerBackup,
+
+
+ /**
+ The power level for backup power.
+
+ It has the values enumerated by TPowerBackupStatus.
+
+ This is dynamic and readonly.
+
+ @see HALData::TPowerBackupStatus
+ */
+ EPowerBackupStatus,
+
+
+ /**
+ Indicates the state of the external power.
+
+ It has the values:
+ 0 = external power is not in use;
+ 1 = external power is in use.
+
+ This is dynamic and readonly.
+ */
+ EPowerExternal,
+
+
+ /**
+ A bitmask that describes the available keyboard types (it may support
+ more than one).
+
+ @see HALData::TKeyboard
+ */
+ EKeyboard,
+
+
+ /**
+ */
+ EKeyboardDeviceKeys,
+
+
+ /**
+ */
+ EKeyboardAppKeys,
+
+
+ /**
+ Indicates whether the device can produce a click sound for
+ each keypress.
+
+ It has the values:
+ 0 = the device cannot produce a click sound for each keypress;
+ 1 = the device can produce a click sound.
+ */
+ EKeyboardClick,
+
+
+ /**
+ The state of keyboard clicking.
+
+ It has the values:
+ 0 = key click disabled;
+ 1 = key click enabled.
+
+ This is dynamic and writeable.
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EKeyboardClickState,
+
+
+ /**
+ The keyboard click volume level.
+
+ It can take a value in the range 0 to EKeyboardClickVolumeMax.
+
+ This is dynamic and writeable.
+
+ @see HALData::EKeyboardClickVolumeMax
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EKeyboardClickVolume,
+
+
+ /**
+ The maximum value for EKeyboardClickVolume.
+
+ @see HALData::EKeyboardClickVolume
+ */
+ EKeyboardClickVolumeMax,
+
+
+ /**
+ The screen horizontal dimension in pixels.
+ */
+ EDisplayXPixels,
+
+
+ /**
+ The screen vertical dimension in pixels.
+ */
+ EDisplayYPixels,
+
+
+ /**
+ The screen horizontal dimension in twips.
+ */
+ EDisplayXTwips,
+
+
+ /**
+ The screen vertical dimension in twips.
+ */
+ EDisplayYTwips,
+
+
+ /**
+ The number of hues (colors or shades of grey) displayable on
+ the screen.
+ */
+ EDisplayColors,
+
+
+ /**
+ The state of the display.
+
+ It has the values:
+ 0 = screen is turned off;
+ 1 = screen is on.
+
+ This is dynamic and writeable.
+
+ @capability PowerMgmt needed to Set this attribute
+ */
+ EDisplayState,
+
+
+ /**
+ The screen contrast level.
+ It can take a value in the range 0 to EDisplayContrastMax.
+
+ This is dynamic and writeable
+
+ @see HALData::EDisplayContrastMax
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EDisplayContrast,
+
+
+ /**
+ The maximum value for EDisplayContrast
+
+ @see HALData::EDisplayContrast
+ */
+ EDisplayContrastMax,
+
+
+ /**
+ Indicates whether there is a backlight on the device.
+
+ It has the values:
+ 0 = there is no screen backlight;
+ 1 = a screen backlight is present.
+ */
+ EBacklight,
+
+
+ /**
+ The current status of the backlight.
+
+ It has the values:
+ 0 = off;
+ 1 = on.
+
+ This is dynamic and writeable.
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EBacklightState,
+
+
+ /**
+ Indicates whether a pen or digitizer is available for input.
+
+ It has the values:
+ 0 = a pen/digitizer is not available for input;
+ 1 = a pen/digitizeris present.
+ */
+ EPen,
+
+
+ /**
+ The pen/digitizer horizontal resolution, in pixels.
+ */
+ EPenX,
+
+
+ /**
+ The pen/digitizer vertical resolution, in pixels.
+ */
+ EPenY,
+
+
+ /**
+ Indicates whether a pen tap will turn the display on.
+
+ It has the values:
+ 0 = a pen tap has no effect;
+ 1 = a pent tap or press enables the display.
+
+ This is dynamic and writeable.
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EPenDisplayOn,
+
+
+ /**
+ Indicates whether the device can produce a click sound for
+ each pen tap.
+
+ It has the values:
+ 0 = the device cannot produce a click sound
+ 1 = production of a click sound is supported by the device.
+ */
+ EPenClick,
+
+
+ /**
+ The state of pen clicking.
+
+ It has the values:
+ 0 = pen clicking is disabled;
+ 1 = pen clicking is enabled.
+
+ This is dynamic and writable.
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EPenClickState,
+
+
+ /**
+ The pen click volume level.
+ It can take a value in the range 0 to EPenClickVolumeMax.
+
+ This value is dynamic and writable.
+
+ @see HALData::EPenClickVolumeMax
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EPenClickVolume,
+
+
+ /**
+ The maximum value for EPenClickVolume.
+
+ @see HALData::EPenClickVolume
+ */
+ EPenClickVolumeMax,
+
+
+ /**
+ Indicates whether a mouse is available for input.
+
+ It has the values:
+ 0 = there is no mouse available pen/digitizer is present;
+ 1 = a mouse is available for input.
+ */
+ EMouse,
+
+
+ /**
+ The mouse horizontal resolution, in pixels.
+ */
+ EMouseX,
+
+
+ /**
+ The mouse vertical resolution, in pixels.
+ */
+ EMouseY,
+
+
+ /**
+ Describes the mouse cursor visibility.
+
+ The value is enumerated by TMouseState.
+
+ This is dynamic and writable.
+ @see HALData::TMouseState
+
+ @capability MultimediaDD needed to Set this attribute
+ */
+ EMouseState,
+
+
+ /**
+ Reserved for future use.
+ @capability MultimediaDD needed to Set this attribute
+ */
+ EMouseSpeed,
+
+
+ /**
+ Reserved for future use.
+ @capability MultimediaDD needed to Set this attribute
+ */
+ EMouseAcceleration,
+
+
+ /**
+ The number of buttons on the mouse.
+ */
+ EMouseButtons,
+
+
+ /**
+ A bitmask defining the state of each button.
+
+ For each bit, it has values:
+ 0 = up;
+ 1 = down.
+
+ This is dynamic and read only.
+ */
+ EMouseButtonState,
+
+
+ /**
+ Defines the state of the case.
+
+ It has the values:
+ 0 = case closed;
+ 1 = case opened.
+
+ This is dynamic and read only.
+ */
+ ECaseState,
+
+
+ /**
+ Indicates whether the device has a case switch, that actions when
+ the case opens and closes.
+
+ It has values:
+ 0 = no;
+ 1 = yes.
+ */
+ ECaseSwitch,
+
+
+ /**
+ Indicates whether the device is to switch on when case opens.
+
+ It has the values:
+ 0 = disable device switchon when the case opens;
+ 1 = enable device switchon when the case opens.
+
+ This is dynamic and writeable.
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ ECaseSwitchDisplayOn,
+
+
+ /**
+ Indicates whether the device is to switch off when case close.
+
+ It has the values:
+ 0 = disable device switchoff when the case closes;
+ 1 = enable device switchoff when the case closes.
+
+ This is dynamic and writeable.
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ ECaseSwitchDisplayOff,
+
+
+ /**
+ The number of LEDs on the device.
+ */
+ ELEDs,
+
+
+ /**
+ A bitmask defining the state of each LED.
+
+ For each bit, it has values:
+ 0 = off;
+ 1 = on.
+
+ This is dynamic and writeable.
+ */
+ ELEDmask,
+
+
+ /**
+ Indicates how the phone hardware is connected.
+
+ It has the values:
+ 0 = phone hardware is not permanently connected;
+ 1 = phone hardware is permanently connected.
+ */
+ EIntegratedPhone,
+
+
+ /**
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EDisplayBrightness,
+
+
+ /**
+ */
+ EDisplayBrightnessMax,
+
+
+ /**
+ Indicates the state of the keyboard backlight.
+
+ It has the values:
+ 0 = keyboard backlight is off;
+ 1 = keyboard backlight is on.
+
+ This is dynamic and writeable.
+
+ @capability PowerMgmt needed to Set this attribute
+ */
+ EKeyboardBacklightState,
+
+
+ /**
+ Power supply to an accessory port.
+
+ It has the values:
+ 0 = turn off power to an accessory port on the device;
+ 1 = turn on power.
+
+ This is dynamic and writeable.
+
+ @capability PowerMgmt needed to Set this attribute
+ */
+ EAccessoryPower,
+
+
+ /**
+ A 2 decimal digit language index.
+
+ It is used as the two digit language number that is the suffix of
+ language resource DLLs, e.g ELOCL.01.
+
+ The locale with this language index is loaded the next time that
+ the device boots.
+
+ This is dynamic and writeable.
+
+ @see TLanguage
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ ELanguageIndex,
+
+
+ /**
+ A 2 decimal digit (decimal) language keyboard index.
+ It is used as the two digit language number that is the suffix of
+ language resource DLLs, e.g. EKDATA.01.
+
+ @see TLanguage
+
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EKeyboardIndex,
+
+
+ /**
+ The maximum allowable size of RAM drive, in bytes.
+ */
+ EMaxRAMDriveSize,
+
+
+ /**
+ Indicates the state of the keyboard.
+
+ It has the values:
+ 0 = keyboard is disabled;
+ 1 = Keyboard is enabled.
+
+ This is dynamic and writeable.
+
+ @capability PowerMgmt needed to Set this attribute
+ */
+ EKeyboardState,
+
+ /**
+ Defines the system drive & custom resource drive.
+ Legacy attribute which is no longer supported.
+
+ @deprecated Attribute is no longer the primary mechanism to define the
+ System Drive or the Custom Resource Drive.
+ @see RFs::GetSystemDrive.
+ @see BaflUtils::NearestLanguageFile
+ @see HALData::ECustomResourceDrive
+ */
+ ESystemDrive,
+
+ /**
+ Indicates the state of the pen or digitiser.
+
+ It has the values:
+ 1 = pen/digitiser is enabled;
+ 0 = pen/digitiser is disabled.
+
+ This is dynamic and writeable.
+
+ @capability PowerMgmt needed to Set this attribute
+ */
+ EPenState,
+
+
+ /**
+ On input: aInOut contains the mode number.
+ On output: aInOut contains: 0 = display is colour;
+ 1 = display is black & white.
+
+ aInOut is the 3rd parameter passed to accessor functions
+ for derived attributes.
+ */
+ EDisplayIsMono,
+
+
+ /**
+ On input: aInOut contains the mode number;
+ On output, aInOut contains: 0 = display is not palettised;
+ 1 = display is palettised.
+
+ aInOut is the 3rd parameter passed to accessor functions
+ for derived attributes.
+ */
+ EDisplayIsPalettized,
+
+
+ /**
+ The display bits per pixel.
+
+ On input, aInOut contains the mode number.
+ On output, aInOut contains the bits per pixel for that mode.
+
+ aInOut is the 3rd parameter passed to accessor functions
+ for derived attributes.
+
+ It is read only data.
+ */
+ EDisplayBitsPerPixel,
+
+
+ /**
+ The number of display modes available.
+ */
+ EDisplayNumModes,
+
+
+ /**
+ The address of the display memory.
+ */
+ EDisplayMemoryAddress,
+
+
+ /**
+ The offset, in bytes, to the pixel area of the screen from the start of screen memory.
+
+ This is used to account for the fact that the palette is sometimes at
+ the beginning of the display memory.
+
+ On input, aInOut contains the mode number.
+ On output, aInOut contains the offset to the first pixel for that mode.
+
+ aInOut is the 3rd parameter passed to accessor functions
+ for derived attributes.
+ */
+ EDisplayOffsetToFirstPixel,
+
+
+ /**
+ The separation, in bytes, of successive lines of display in memory.
+
+ On input, aInOut contains the mode number.
+ On output, aInOut contains the display offset between lines.
+
+ aInOut is the 3rd parameter passed to accessor functions
+ for derived attributes.
+ */
+ EDisplayOffsetBetweenLines,
+
+
+ /**
+ @capability MultimediaDD needed to Set this attribute
+ */
+ EDisplayPaletteEntry,
+
+
+ /**
+ It has the values:
+ 1 = order of pixels in display is RGB;
+ 0 = otherwise.
+ */
+ EDisplayIsPixelOrderRGB,
+
+
+ /**
+ It has the values:
+ 1 = pixel order is landscape;
+ 0 = pixel order is portrait.
+ */
+ EDisplayIsPixelOrderLandscape,
+
+
+ /**
+ This indicates or sets the current display mode where
+ EDisplayNumModes-1 is the maximum value for the display mode.
+ The properties of a particular display mode are entirely defined by
+ the base port software associated with the hardware upon which the OS
+ is running.
+
+ @capability MultimediaDD needed to Set this attribute
+ */
+ EDisplayMode,
+
+
+ /**
+ If the target hardware upon which Symbian OS is running has switches
+ which can be read by the base port software, this interface allows
+ the current status of those switches to be read.
+ */
+ ESwitches,
+
+
+ /**
+ The port number of the debug port.
+ */
+ EDebugPort,
+
+
+ /**
+ The language code of the Locale which was loaded at device boot time.
+
+ This is dynamic and writeable.
+
+ @see ELanguageIndex
+
+ @capability WriteSystemData needed to Set this attribute
+ */
+ ELocaleLoaded,
+
+
+ /**
+ The drive number to use for storage of Clipboard data.
+ 0 = Drive A, 1 = Drive B, etc...
+ */
+ EClipboardDrive,
+
+ /**
+ Custom restart
+ @capability PowerMgmt
+ */
+ ECustomRestart,
+
+ /**
+ Custom restart reason
+ */
+ ECustomRestartReason,
+
+ /**
+ The number of screens.
+ */
+ EDisplayNumberOfScreens,
+
+ /**
+ The time between nanokernel ticks, in microseconds.
+ */
+ ENanoTickPeriod,
+
+ /**
+ The frequency of the fast counter.
+ */
+ EFastCounterFrequency,
+
+ /**
+ Indicates the whether the fast counter counts up or down.
+ */
+ EFastCounterCountsUp,
+
+ /**
+ Indicates whether a 3 dimensional pointing device is available for input and Z coordinate
+ is provided in appropriate pointer-related TRawEvents generated by the driver.
+
+ It has the values:
+ 0 = a 3D pointer is not available for input and Z coordinate is not provided in TRawEvents;
+ 1 = a 3D pointer is present and Z coordinate is provided in TRawEvents.
+ */
+ EPointer3D,
+
+ /**
+ The furthest detectable 3D pointing device's proximity above the screen.
+ As proximity values above the screen are negative, this will be a negative value.
+
+ This is dynamic and writeable.
+ */
+ EPointer3DMaxProximity,
+
+ /**
+ Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
+
+ It has the values:
+ 0 = a 3D pointer does not support Theta polar angle reading;
+ 1 = a 3D pointer supports Theta polar angle reading.
+ */
+ EPointer3DThetaSupported,
+
+ /**
+ Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
+
+ It has the values:
+ 0 = a 3D pointer does not support Phi polar angle reading;
+ 1 = a 3D pointer supports Phi polar angle reading.
+ */
+ EPointer3DPhiSupported,
+
+ /**
+ Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
+
+ It has the values:
+ 0 = a 3D pointer does not support alpha (rotation) reading;
+ 1 = a 3D pointer supports alpha (rotation) reading.
+ */
+ EPointer3DRotationSupported,
+
+ /**
+ Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
+
+ It has the values:
+ 0 = a 3D pointer does not support pressure reading;
+ 1 = a 3D pointer supports pressure reading.
+ */
+ EPointer3DPressureSupported,
+
+ /**
+ Indicates whether hardware floating point is available, and what type.
+
+ If no hardware floating point is available, reading this attribute will return KErrNotSupported.
+ If hardware floating point is available, reading this attribute will return KErrNone and the type
+ available. These types are specified in TFloatingPointType.
+ */
+ EHardwareFloatingPoint,
+
+ /**
+ The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
+ will be available.
+ */
+ ETimeNonSecureOffset,
+
+ /**
+ Persist startup mode.
+
+ If no variant specific implementation exists, the startup mode will be stored in platform
+ specific values.hda file.
+ */
+ EPersistStartupModeKernel,
+
+ /**
+ Maximum restart reasons.
+
+ Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
+ */
+ EMaximumCustomRestartReasons,
+
+ /**
+ Maximum startup modes.
+
+ Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
+ */
+ EMaximumRestartStartupModes,
+
+ /**
+ Defines the custom resource drive.
+
+ This drive attribute should be set if an additional drive is required for use in the search
+ algorithm for language files.
+
+ @see TDriveNumber
+ @see BaflUtils::NearestLanguageFile for how this attribute is used
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ ECustomResourceDrive,
+
+ /**
+ Step size of Z distance data.
+
+ Returns the minimum size of the step between two resolvable z positions
+ */
+ EPointer3DProximityStep,
+
+ /**
+ Maximum Number of Pointers supported by hardware/driver
+
+ Returns the maximum number of pointers for a multi-touch configuration (or KErrNotSupported or 0 or 1 for single-touch legacy configuration)
+ */
+ EPointerMaxPointers,
+
+ /**
+ Maximum Number of Pointers
+
+ Sets and reads back the number of pointers as requested by the UI (<=EPointerMaxPointers)
+ */
+ EPointerNumberOfPointers,
+
+ /**
+ Maximum Pressure Value
+
+ Returns the maximum pressure value
+ */
+ EPointer3DMaxPressure,
+
+ /**
+ Step size of pressure data.
+
+ Returns the minimum size of the step between two resolvable pressure readings
+ */
+ EPointer3DPressureStep,
+
+ /**
+ The threshold on pointer's Z coordinate above which EEnterHighPressure pointer event is sent to WSERV's clients.
+ This value is intended to be preconfigured in build time and modified by Window Server only
+
+ @prototype 9.5
+ */
+ EPointer3DEnterHighPressureThreshold,
+
+ /**
+ The threshold on pointer's Z coordinate below which EExitHighPressure pointer event is sent to WSERV's clients.
+ This value is intended to be preconfigured in build time and modified by Window Server only
+
+ @prototype 9.5
+ */
+ EPointer3DExitHighPressureThreshold,
+
+ /**
+ The threshold on pointer's Z coordinate above which EEnterCloseProximity pointer event is sent to WSERV's clients.
+ This value is intended to be preconfigured in build time and modified by Window Server only
+
+ @prototype 9.5
+ */
+ EPointer3DEnterCloseProximityThreshold,
+
+
+ /**
+ The threshold on pointer's Z coordinate below which EExitCloseProximity pointer event is sent to WSERV's clients.
+ This value is intended to be preconfigured in build time and modified by Window Server only
+
+ @prototype 9.5
+ */
+ EPointer3DExitCloseProximityThreshold,
+
+ /**
+ A Handle to the display memory.
+ This attribute opens a chunk, the client is responsible for closing it.
+ Using HAL attribtues to open handles is not recommended and this
+ attribute may be removed in the future.
+
+ @prototype 9.5
+ */
+ EDisplayMemoryHandle,
+
+ /**
+ Serial number of this board
+ */
+ ESerialNumber,
+
+
+ /**
+ Interrupt used by sampling profiler - applicable for SMP only. Each CPU_i is interrupted by interrupt number ECpuProfilingInterrupt + i
+ */
+ ECpuProfilingDefaultInterruptBase,
+
+
+ /**
+ Number of processors present on the device. Returns 1 on unicore. This number is constant and does not take account of power management
+ */
+ ENumCpus,
+
+ /**
+ The orientation of the Digitiser. Usually mirrors device orientation.
+
+ @see TDigitiserOrientation for allowed values
+ @capability WriteDeviceData needed to Set this attribute
+ */
+ EDigitiserOrientation,
+
+ /*
+ * NOTE:
+ * When updating this list, please also update hal/rom/hal.hby and hal/tsrc/t_newhal.cpp.
+ */
+
+ /**
+
+ The number of HAL attributes per screen.
+
+ It is simply defined by its position in the enumeration.
+ */
+ ENumHalAttributes
+
+ };
+
+
+
+ /**
+ Defines properties for the hardware attributes.
+
+ @see HALData::TAttribute
+ */
+ enum TAttributeProperty
+ {
+ /**
+ When set, means that an attribute is meaningful on this device.
+
+ @see HAL::Get()
+ @see HAL::Set()
+ */
+ EValid=0x1,
+
+
+ /**
+ When set, means that an attribute is modifiable.
+ A call to HAL::Set() for an attribute that does not have this property,
+ returns KErrNotSupported.
+
+ @see HAL::Get()
+ @see HAL::Set()
+ */
+ ESettable=0x2,
+ };
+
+
+
+ /**
+ UIDs for a defined set of device manufacturers.
+
+ Note that any manufacturer not represented in this list must obtain
+ a value from the Symbian registry.
+
+ @see HALData::TAttribute
+ */
+ enum TManufacturer // UID for manufacturer
+ {
+ EManufacturer_Ericsson=0x00000000,
+ EManufacturer_Motorola=0x00000001,
+ EManufacturer_Nokia=0x00000002,
+ EManufacturer_Panasonic=0x00000003,
+ EManufacturer_Psion=0x00000004,
+ EManufacturer_Intel=0x00000005,
+ EManufacturer_Cogent=0x00000006,
+ EManufacturer_Cirrus=0x00000007,
+ EManufacturer_Linkup=0x00000008,
+ EManufacturer_TexasInstruments=0x00000009,
+ // New manufacturers must obtain an official UID to identify themselves
+ };
+
+
+
+ /**
+ Defines the Symbian OS device families.
+
+ @see HALData::TAttribute
+ */
+ enum TDeviceFamily
+ {
+ EDeviceFamily_Crystal,
+ EDeviceFamily_Pearl,
+ EDeviceFamily_Quartz,
+ };
+
+
+
+ /**
+ Defines the set of CPU architectures.
+
+ @see HALData::TAttribute
+ */
+ enum TCPU
+ {
+ ECPU_ARM,
+ ECPU_MCORE,
+ ECPU_X86,
+ };
+
+
+
+ /**
+ Defines the set of ABIs used by the CPU for user applications.
+
+ @see HALData::TAttribute
+ */
+ enum TCPUABI
+ {
+ ECPUABI_ARM4,
+ ECPUABI_ARMI,
+ ECPUABI_THUMB,
+ ECPUABI_MCORE,
+ ECPUABI_MSVC,
+ ECPUABI_ARM5T,
+ ECPUABI_X86,
+ };
+
+
+
+ /**
+ Defines the set of reasons for a system boot.
+
+ @see HALData::TAttribute
+ */
+ enum TSystemStartupReason
+ {
+ ESystemStartupReason_Cold,
+ ESystemStartupReason_Warm,
+ ESystemStartupReason_Fault,
+ };
+
+
+
+ /**
+ Defines the set of available keyboard types.
+
+ @see HALData::TAttribute
+ */
+ bitmask TKeyboard
+ {
+ EKeyboard_Keypad=0x1,
+ EKeyboard_Full=0x2,
+ };
+
+
+
+ /**
+ Defines the mouse cursor visibility.
+
+ @see HALData::TAttribute
+ */
+ enum TMouseState
+ {
+ EMouseState_Invisible=0,
+ EMouseState_Visible=1,
+ };
+
+
+
+ /**
+ Defines a set of UIDs for specific devices, reference boards etc
+
+ @see HALData::TAttribute
+ */
+ enum TMachineUid
+ {
+ EMachineUid_Series5mx=0x1000118a,
+ EMachineUid_Brutus=0x10005f60,
+ EMachineUid_Cogent=0x10005f61,
+ EMachineUid_Win32Emulator=0x10005f62,
+ EMachineUid_WinC=0x10005f63,
+ EMachineUid_CL7211_Eval=0x1000604f,
+ EMachineUid_LinkUp=0x00000000,
+ EMachineUid_Assabet=0x100093f3,
+ EMachineUid_Zylonite=0x101f7f27,
+ EMachineUid_IQ80310=0x1000a681,
+ EMachineUid_Lubbock=0x101f7f26,
+ EMachineUid_Integrator=0x1000AAEA,
+ EMachineUid_Helen=0x101F3EE3,
+ EMachineUid_X86PC=0x100000ad,
+ EMachineUid_OmapH2=0x1020601C,
+ EMachineUid_OmapH4=0x102734E3,
+ EMachineUid_NE1_TB=0x102864F7,
+ EMachineUid_EmuBoard=0x1200afed,
+ EMachineUid_OmapH6=0x10286564,
+ EMachineUid_OmapZoom=0x10286565,
+ EMachineUid_STE8500=0x101FF810,
+ };
+
+
+
+ /**
+ Defines power levels for the system (or 'Main') battery.
+
+ @see HALData::TAttribute
+ */
+ enum TPowerBatteryStatus
+ {
+ EPowerBatteryStatus_Zero,
+ EPowerBatteryStatus_Replace,
+ EPowerBatteryStatus_Low,
+ EPowerBatteryStatus_Good,
+ };
+
+
+
+ /**
+ Defines power levels for the backup power.
+
+ @see HALData::TAttribute
+ */
+ enum TPowerBackupStatus
+ {
+ EPowerBackupStatus_Zero,
+ EPowerBackupStatus_Replace,
+ EPowerBackupStatus_Low,
+ EPowerBackupStatus_Good,
+ };
+
+
+ /**
+ Describes the orientation of the screen digitiser, usually mirrors the
+ device orientation not necessarily the display rotation as this might be
+ limited to upright and left 90 only. The values in degrees measures
+ the anti-clockwise angle from the left edge of the digitiser from the
+ normal default position of the device.
+
+ User-side clients can use attribute to inform the digitiser driver of the
+ digitiser orientation. The driver may then use this information to adjust
+ X.Y sampling depending on input pointer type.
+
+ @see HALData::TAttribute
+ */
+ enum TDigitiserOrientation
+ {
+ EDigitiserOrientation_default, ///< Driver using build-in default
+ EDigitiserOrientation_000, ///< Device normal 'make-call' position
+ EDigitiserOrientation_090, ///< Device rotated left 90 degrees
+ EDigitiserOrientation_180, ///< Device rotated 180 degrees
+ EDigitiserOrientation_270 ///< Device rotated right 90 degrees
+ };
+
+ };
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/oommonitorsession.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Fake ROomMonitorSession class implementation
+*
+*/
+
+#include "oommonitorsession.h"
+
+TInt ROomMonitorSession::Connect()
+{
+ return KErrNone;
+}
+
+TInt ROomMonitorSession::RequestFreeMemory(TInt aBytesRequested)
+{
+ return KErrNone;
+}
+
+void ROomMonitorSession::RequestFreeMemory(TInt /*aBytesRequested*/, TRequestStatus& /*aStatus*/)
+{
+ // do nothing
+}
+
+TInt ROomMonitorSession::RequestOptionalRam(TInt /*aBytesRequested*/, TInt /*aMinimumBytesNeeded*/, TInt /*aPluginId*/, TInt& /*aBytesAvailable*/)
+{
+ return KErrNone;
+}
+
+void ROomMonitorSession::RequestOptionalRam(TInt /*aBytesRequested*/, TInt /*aMinimumBytesNeeded*/, TInt aPluginId, TRequestStatus& /*aStatus*/)
+{
+ // do nothing
+}
+
+void ROomMonitorSession::CancelRequestFreeMemory()
+{
+ // do nothing
+}
+
+void ROomMonitorSession::ThisAppIsNotExiting(TInt /*aWgId*/)
+{
+ // do nothing
+}
+
+void ROomMonitorSession::SetOomPriority(TOomPriority /*aPriority*/)
+{
+ // do nothing
+}
+
+void ROomMonitorSession::Close()
+{
+ // do nothing
+}
+
+//End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/oommonitorsession.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Fake class for testing
+*
+*/
+
+#ifndef OOMMONITORSESSION_H
+#define OOMMONITORSESSION_H
+
+#include <e32base.h>
+
+const TInt KOomMaxAllocationWithoutPermission = 1048576;
+const TUid KOomMemoryMonitorStatusPropertyCategory = {0x10207218};
+const TUint32 KOomMemoryMonitorStatusPropertyKey = 0;
+enum TMemoryMonitorStatusPropertyValues
+ {
+ // Above Treshhold: Free Ram is above good treshhold point and memory monitor isn't freeing any memory
+ EAboveTreshHold,
+
+ // Freeing Memory: Memory monitor is in the middle of freeing memory
+ EFreeingMemory,
+
+ // Below Treshhold: Memory monitor has tried to free some RAM but total memory is still below treshhold and memory monitor has given up freeing more memory.
+ EBelowTreshHold
+ };
+class ROomMonitorSession
+ {
+public:
+
+ /** Defines the application priorities of OOM monitor. */
+ enum TOomPriority
+ {
+ /**
+ * Application can be closed if needed.
+ */
+ EOomPriorityNormal = 0,
+
+ /**
+ * Application should not be closed if possible.
+ */
+ EOomPriorityHigh,
+
+ /**
+ * Application is busy and should not be closed.
+ */
+ EOomPriorityBusy
+ };
+
+public:
+ /**
+ * Connects a new session.
+ * Sessions must be connected before any other APIs can be used.
+ * When the client has finished using a session, Close() must be called.
+ * @return KErrNone if successful, error code otherwise.
+ */
+ TInt Connect();
+
+ /**
+ * Request that the OOM monitor attempts to free some paged memory.
+ * This function may take several seconds to execute, depending on
+ * the memory state. It will not return until the attempt to recover
+ * memory has completed.
+ * @param aBytesRequested The number of bytes of free memory that the client requests.
+ * @return KErrNone if the request memory is free. KErrNoMemory if that
+ * amount of memory could not be recovered. Other error codes may
+ * also be returned.
+ */
+ TInt RequestFreeMemory(TInt aBytesRequested);
+
+ /**
+ * Request that the OOM monitor attempts to free some paged memory.
+ * This is an asynchronous version of the request for free paged memory.
+ * @param aBytesRequested The number of bytes of free memory that the client requests.
+ * @param aStatus will be completed when the attempt to recover memory
+ * has finished. This may take several seconds, depending on
+ * the memory state. On completion, aStatus will be set to
+ * KErrNone if the request memory is free. KErrNoMemory if that
+ * amount of memory could not be recovered. Other error codes may
+ * also be set.
+ */
+ void RequestFreeMemory(TInt aBytesRequested, TRequestStatus& aStatus);
+
+ /**
+ * Request that the OOM monitor attempts to free some memory for an optional allocation.
+ * The passed in plugin ID is used to determine the priority for this allocation.
+ * Lower priority OOM actions may be executed to free enough RAM for this allocation.
+ * This function may take several seconds to execute, depending on
+ * the memory state. It will not return until the attempt to recover
+ * memory has completed.
+ * @param aBytesRequested The number of bytes of free memory that the client requests.
+ * @param aPluginId The ID of the plugin that may delete the allocation in event of low memory.
+ * @return KErrNone if the request memory is free. KErrNoMemory if that
+ * amount of memory could not be recovered. Other error codes may
+ * also be returned.
+ */
+ TInt RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable);
+
+ /**
+ * Request that the OOM monitor attempts to free some memory for an optional allocation.
+ * The passed in plugin ID is used to determine the priority for this allocation.
+ * Lower priority OOM actions may be executed to free enough RAM for this allocation.
+ * This function may take several seconds to execute, depending on
+ * the memory state. It will not return until the attempt to recover
+ * memory has completed.
+ * @param aBytesRequested The number of bytes of free memory that the client requests.
+ * @param aPluginId The ID of the plugin that may delete the allocation in event of low memory.
+ * @param aStatus The TRequestStatus (completes with the number of bytes freed (aStatus >= 0) or an error (aStatus <= 0))
+ * @return None
+ */
+ void RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TRequestStatus& aStatus);
+
+ /**
+ * Cancels the asynchronous request for free memory.
+ */
+ void CancelRequestFreeMemory();
+
+ /**
+ * Notify the OOM monitor that this application is not responding
+ * to the EEikCmdExit request to exit the application.
+ * This function is used by the Avkon framework's app shutter.
+ * @param aWgId the window group identifier of the app that is not exiting.
+ */
+ void ThisAppIsNotExiting(TInt aWgId);
+
+ /**
+ * Notify the OOM monitor that this application has the specified priority
+ * @param aPriority the priority of the application
+ */
+ void SetOomPriority(TOomPriority aPriority);
+
+ void Close();
+
+ };
+
+#endif // OOMMONITORSESSION_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/unittest_cxememorymonitor.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include <QDate>
+#include <QTest>
+#include <QDebug>
+#include <QThread>
+
+#include "cxetestutils.h"
+#include "cxefakefeaturemanager.h"
+#include "cxememorymonitor.h"
+#include "unittest_cxememorymonitor.h"
+
+UnitTestCxeMemoryMonitor::UnitTestCxeMemoryMonitor()
+ : mMemoryMonitor(NULL),
+ mFakeFeatureManager(NULL)
+{
+}
+
+UnitTestCxeMemoryMonitor::~UnitTestCxeMemoryMonitor()
+{
+ cleanup();
+}
+
+// Run before each individual test case
+void UnitTestCxeMemoryMonitor::init()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+
+ mFakeFeatureManager = new CxeFakeFeatureManager();
+ mMemoryMonitor = new CxeMemoryMonitor(*mFakeFeatureManager);
+
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+// Run after each individual test case
+void UnitTestCxeMemoryMonitor::cleanup()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ delete mMemoryMonitor;
+ mMemoryMonitor = NULL;
+
+ delete mFakeFeatureManager;
+ mFakeFeatureManager = NULL;
+
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeMemoryMonitor::testFree()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ QVERIFY(mMemoryMonitor->free() > 0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeMemoryMonitor::testStartMonitoring()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mMemoryMonitor->startMonitoring();
+ QVERIFY(mMemoryMonitor->free() > 0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeMemoryMonitor::testStopMonitoring()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mMemoryMonitor->stopMonitoring();
+ QVERIFY(mMemoryMonitor->free() > 0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+void UnitTestCxeMemoryMonitor::testStartStopMonitoring()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ mMemoryMonitor->startMonitoring();
+ mMemoryMonitor->stopMonitoring();
+ QVERIFY(mMemoryMonitor->free() > 0);
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+// main() function - Need event loop for waiting signals,
+// so can't use QTEST_APPLESS_MAIN.
+QTEST_MAIN(UnitTestCxeMemoryMonitor);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/unittest_cxememorymonitor.h Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef UNITTEST_CXEMEMORYMONITOR_H
+#define UNITTEST_CXEMEMORYMONITOR_H
+
+#include <QObject>
+
+#include "cxenamespace.h"
+
+class CxeMemoryMonitor;
+class CxeFakeFeatureManager;
+
+class UnitTestCxeMemoryMonitor : public QObject
+{
+ Q_OBJECT
+
+public:
+ UnitTestCxeMemoryMonitor();
+ ~UnitTestCxeMemoryMonitor();
+
+private slots:
+ void init();
+ void cleanup();
+
+ void testFree();
+ void testStartMonitoring();
+ void testStopMonitoring();
+ void testStartStopMonitoring();
+
+private:
+ CxeFakeFeatureManager *mFakeFeatureManager;
+ CxeMemoryMonitor *mMemoryMonitor;
+};
+
+#endif // UNITTEST_CXEMEMORYMONITOR_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxememorymonitor/unittest_cxememorymonitor.pro Thu Jul 15 01:53:45 2010 +0300
@@ -0,0 +1,32 @@
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# Contributors:
+# Description:
+include(../unittest.pri)
+TARGET = unittest_cxememorymonitor
+
+DEPENDPATH = . ../../fakeclasses ../../../src/dummyengine ../utils
+INCLUDEPATH = . ../../fakeclasses ../../../src/dummyengine ../utils ../../../traces
+
+DEFINES *= CXE_USE_DUMMY_CAMERA
+
+SOURCES *= unittest_cxememorymonitor.cpp \
+ cxefakefeaturemanager.cpp \
+ ../../../src/cxememorymonitor.cpp \
+ ../../../src/cxememorymonitorprivate.cpp \
+ ./oommonitorsession.cpp \
+ ./hal.cpp
+
+HEADERS *= unittest_cxememorymonitor.h \
+ cxefakefeaturemanager.h \
+ ../../../inc/api/cxememorymonitor.h \
+ ../../../inc/cxememorymonitorprivate.h \
+ ./oommonitorsession.h \
+ ./hal.h \
+ ./hal_data.h
--- a/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxestatemachine/unittest_cxestatemachine.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxestatemachine/unittest_cxestatemachine.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -19,14 +19,18 @@
#include "unittest_cxestatemachine.h"
#include "cxestate.h"
#include "cxestatemachineunit.h"
-#include "cxeerrormappingsymbian.h" // CxeErrorHandlingSymbian
// -----------------------------------
// CxsStateMachine
// -----------------------------------
UnitTestCxeStateMachine::UnitTestCxeStateMachine()
-: mStateMachine(NULL), mStartState(NULL), mMiddleState(NULL), mEndState(NULL), mIsolatedState(NULL)
+: mStateMachine(NULL),
+ mStartState(NULL),
+ mMiddleState(NULL),
+ mEndState(NULL),
+ mIsolatedState(NULL)
{
+ qRegisterMetaType<CxeError::Id>("CxeError::Id");
}
UnitTestCxeStateMachine::~UnitTestCxeStateMachine()
@@ -106,25 +110,25 @@
// set state, when initial state is not set -> NOK
// check that handleStateChange is not called
// current state is undefined
- QVERIFY(!mStateMachine->setState(StartId, 2));
+ QVERIFY(!mStateMachine->setState(StartId));
QCOMPARE(mStateMachine->mHandleStateChangedCounter, 0);
- QCOMPARE(mStateMachine->stateId(), 0);
+ QCOMPARE(mStateMachine->stateId(), 0); // 0 - undefined state
// set start state as initial state, change to another state (allowed change) -> OK
// (there should be a call to state change, check the error code)
mStateMachine->setInitialState(StartId);
- QVERIFY(mStateMachine->setState(MiddleId, 0));
+ QVERIFY(mStateMachine->setState(MiddleId, CxeError::None));
QCOMPARE(mStateMachine->mHandleStateChangedCounter, 1);
QVERIFY(mStateMachine->mStateChangeStateId == MiddleId);
- QVERIFY(mStateMachine->mStateChangeErrorId == CxeErrorHandlingSymbian::map(0));
+ QCOMPARE(mStateMachine->mStateChangeErrorId, CxeError::None);
QVERIFY(mStateMachine->stateId() == MiddleId);
// set another state (allowed change) -> OK
- // check the error code is correct one (return value is mapped error value)
- QVERIFY(mStateMachine->setState(EndId, -1));
+ // check the error code is correct one
+ QVERIFY(mStateMachine->setState(EndId, CxeError::NotFound));
QCOMPARE(mStateMachine->mHandleStateChangedCounter, 2);
QVERIFY(mStateMachine->mStateChangeStateId == EndId);
- QVERIFY(mStateMachine->mStateChangeErrorId == CxeErrorHandlingSymbian::map(-1));
+ QCOMPARE(mStateMachine->mStateChangeErrorId, CxeError::NotFound);
QVERIFY(mStateMachine->stateId() == EndId);
// reset the counter for handleStateChanged slot
@@ -132,7 +136,7 @@
// set same state again -> OK
// but state change should not be called
- QVERIFY(mStateMachine->setState(EndId, 0));
+ QVERIFY(mStateMachine->setState(EndId, CxeError::None));
QCOMPARE(mStateMachine->mHandleStateChangedCounter, 0);
// setstate to a state that does not exists -> NOK
--- a/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxestatemachine/unittest_cxestatemachine.pro Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxestatemachine/unittest_cxestatemachine.pro Thu Jul 15 01:53:45 2010 +0300
@@ -18,13 +18,11 @@
SOURCES *= unittest_cxestatemachine.cpp \
cxestatemachineunit.cpp \
cxestatemachinebase.cpp \
- cxeerrormappingsymbian.cpp \
cxestate.cpp
HEADERS *= unittest_cxestatemachine.h \
cxestatemachineunit.h \
cxestatemachinebase.h \
- cxeerrormappingsymbian.h \
cxestate.h \
cxeerror.h
--- a/camerauis/cameraxui/cxui/inc/cxuiapplicationstate.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuiapplicationstate.h Thu Jul 15 01:53:45 2010 +0300
@@ -49,7 +49,6 @@
CxuiApplicationState(CxuiApplication &application,
CxeSettings &settings,
- CxuiCaptureKeyHandler &keyHandler,
CxuiDocumentLoader *documentLoader);
~CxuiApplicationState();
--- a/camerauis/cameraxui/cxui/inc/cxuienums.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuienums.h Thu Jul 15 01:53:45 2010 +0300
@@ -58,7 +58,9 @@
static const char *TRANSPARENT_BACKGROUND_GRAPHIC = "qtg_fr_popup_trans";
// Sections
+ static const char *STILL_PRE_CAPTURE_INDICATORS_SECTION = "still_capture_indicators";
static const char *STILL_PRE_CAPTURE_WIDGETS_SECTION = "still_capture_with_widgets";
+ static const char *VIDEO_PRE_CAPTURE_INDICATORS_SECTION = "video_capture_indicators";
static const char *VIDEO_PRE_CAPTURE_WIDGETS_SECTION = "video_capture_with_widgets";
static const char *POST_CAPTURE_WIDGETS_SECTION = "post_capture_with_widgets";
static const char *STILL_PRE_CAPTURE_EMBEDDED_SECTION = "still_embedded_mode";
@@ -73,7 +75,6 @@
// Widgets
// In order to be able to refer to a widget, we need to know its object name.
static const char *STILL_PRE_CAPTURE_VIEW = "still_capture_view";
- static const char *STILL_SCENES_VIEW = "settings_scenes_view";
static const char *STILL_PRE_CAPTURE_TOOLBAR = "toolbar";
static const char *STILL_PRE_CAPTURE_FLASH_ACTION = "cxui_action_flash";
static const char *STILL_PRE_CAPTURE_SCENE_MODE_ACTION = "cxui_action_scenemodes";
@@ -89,6 +90,7 @@
static const char *STILL_PRE_CAPTURE_INDICATOR_CONTAINER = "indicatorContainer";
static const char *STILL_PRE_CAPTURE_IMAGES_LEFT_CONTAINER = "images_left_container";
static const char *STILL_PRE_CAPTURE_GEOTAGGING_INDICATOR_ICON = "still_geotagging_indicator";
+ static const char *STILL_PRE_CAPTURE_FLASHBLINK_INDICATOR_ICON = "flash_indicator";
static const char *STILL_PRE_CAPTURE_SELFTIMER_CONTAINER = "still_precapture_selftimer_container";
static const char *STILL_PRE_CAPTURE_SELFTIMER_COUNTER = "still_selftimer_counter";
@@ -119,6 +121,8 @@
static const char *VIDEO_PRE_CAPTURE_QUALITY_ICON = "video_quality_indicator";
static const char *VIDEO_PRE_CAPTURE_GEOTAGGING_INDICATOR_ICON = "video_geotagging_indicator";
+ static const char *VIDEO_PRE_CAPTURE_VIDEOAUDIOMUTE_INDICATOR_ICON = "video_audio_mute_indicator";
+ static const char *VIDEO_PRE_CAPTURE_STABILITY_INDICATOR_ICON = "video_stability_indicator";
// standby
static const char *STANDBY_POPUP = "standbymode_popup";
@@ -152,14 +156,15 @@
static const char *SETTINGS_SLIDER_DIALOG_HEADING_WIDGET = "slider_settings_dialog_heading";
static const char *SETTINGS_SLIDER_DIALOG_CONTENT_WIDGET = "settings_dialog_slider";
- // scene setting
- static const char *SCENE_VIEW_CONTAINER = "scene_view_container";
- static const char *SCENE_VIEW_BG_IMAGE = "scene_view_bg_icon";
- static const char *SCENE_VIEW_BG_IMAGE2 = "scene_view_bg_icon2";
- static const char *SCENE_VIEW_RADIOBUTTONS = "scene_view_radioButtonList";
- static const char *SCENE_VIEW_OK_BUTTON = "scene_ok_button";
- static const char *SCENE_VIEW_CANCEL_BUTTON = "scene_cancel_button";
- static const char *SCENE_VIEW_HEADING_WIDGET = "scene_title";
+ // scene mode view
+ static const char *SCENE_MODE_VIEW = "settings_scenes_view";
+ static const char *SCENE_MODE_VIEW_CONTAINER = "scene_view_container";
+ static const char *SCENE_MODE_VIEW_BG_IMAGE = "scene_view_bg_icon";
+ static const char *SCENE_MODE_VIEW_BG_IMAGE2 = "scene_view_bg_icon2";
+ static const char *SCENE_MODE_VIEW_RADIOBUTTONS = "scene_view_radioButtonList";
+ static const char *SCENE_MODE_VIEW_OK_BUTTON = "scene_ok_button";
+ static const char *SCENE_MODE_VIEW_CANCEL_BUTTON = "scene_cancel_button";
+ static const char *SCENE_MODE_VIEW_HEADING_WIDGET = "scene_title";
}
namespace CxUiInternal
--- a/camerauis/cameraxui/cxui/inc/cxuipostcaptureview.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuipostcaptureview.h Thu Jul 15 01:53:45 2010 +0300
@@ -83,7 +83,7 @@
void playVideo();
void showDeleteNote();
- void handleDeleteDialogClosed(HbAction *action);
+ void handleDeleteDialogClosed(int action);
private:
QString getCurrentFilename();
--- a/camerauis/cameraxui/cxui/inc/cxuistillprecaptureview.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuistillprecaptureview.h Thu Jul 15 01:53:45 2010 +0300
@@ -64,6 +64,7 @@
void restoreActivity(const QString &activityId, const QVariant &data);
void saveActivity();
void clearActivity();
+
protected:
void showEvent(QShowEvent *event);
@@ -111,6 +112,9 @@
void closeDialogs();
void updateFaceTrackingIcon();
+private:
+ void reloadIndicatorWidgets();
+
protected:
CxuiSelfTimer *mSelfTimer;
HbAction *mFlashSetting;
--- a/camerauis/cameraxui/cxui/inc/cxuivideoprecaptureview.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuivideoprecaptureview.h Thu Jul 15 01:53:45 2010 +0300
@@ -45,27 +45,13 @@
public:
- /**
- * Construct-method handles initialisation tasks for this class.
- * @param mainwindow
- * @param engine
- * @param documentLoader
- * @param keyHandler
- */
void construct(HbMainWindow *mainwindow, CxeEngine *engine,
CxuiDocumentLoader *documentLoader,
CxuiCaptureKeyHandler *keyHandler,
HbActivityManager *activityManager);
- /**
- * Loads widgets that are needed right from the start.
- */
virtual void loadDefaultWidgets();
- /**
- * Loads widgets that are not part of the default section in layouts xml.
- * Widgets are created at the time they are first loaded.
- */
virtual void loadWidgets();
void restoreActivity(const QString &activityId, const QVariant &data);
@@ -118,6 +104,9 @@
// from QObject
bool eventFilter(QObject *object, QEvent *event);
+private:
+ void reloadIndicatorWidgets();
+
protected:
QTimer mElapsedTimer;
int mTimeElapsed;
--- a/camerauis/cameraxui/cxui/inc/cxuiviewmanager.h Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuiviewmanager.h Thu Jul 15 01:53:45 2010 +0300
@@ -31,13 +31,9 @@
class CxuiApplication;
class CxuiCaptureKeyHandler;
class CxuiPrecaptureView;
-class CxuiStillPrecaptureView;
-class CxuiVideoPrecaptureView;
-class CxuiPostcaptureView;
class CxeEngine;
class CxuiDocumentLoader;
-class CxuiErrorManager; // class that handles all errors in ui.
-class CxuiSceneModeView;
+class CxuiErrorManager;
class CxuiView;
class CxuiViewManager : public QObject
@@ -48,11 +44,6 @@
CxuiViewManager(CxuiApplication &application, HbMainWindow &mainWindow, CxeEngine &engine);
~CxuiViewManager();
- CxuiDocumentLoader *documentLoader();
-
- CxuiApplicationState &applicationState();
-
- void initEngine();
public slots:
void changeToPostcaptureView();
void changeToPrecaptureView();
@@ -80,8 +71,6 @@
CxuiView *createView(const QString &viewName);
CxuiPrecaptureView* getPrecaptureView(Cxe::CameraMode mode, Cxe::CameraIndex camera);
- CxuiView *createSceneModesView();
-
void connectSignals(QObject *view);
void disconnectSignals(QObject *view = NULL);
void connectPreCaptureSignals();
@@ -105,7 +94,6 @@
CxuiDocumentLoader *mCameraDocumentLoader;
CxuiApplicationState *mApplicationState;
CxuiErrorManager *mErrorManager;
- CxuiSceneModeView *mSceneModeView;
QTimer mStandbyTimer;
};
--- a/camerauis/cameraxui/cxui/layouts/setting_scenemode.docml Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/layouts/setting_scenemode.docml Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="1.0">
+<hbdocument version="1.1">
<widget name="settings_scenes_view" type="HbView">
<widget name="scene_view_content" role="HbView:widget" type="HbWidget">
<widget name="scene_view_bg_icon" type="HbLabel">
@@ -18,10 +18,12 @@
</widget>
<widget name="button_container" type="HbWidget">
<widget name="scene_ok_button" type="HbPushButton">
+ <sizehint height="7un" type="PREFERRED" width="21.875un"/>
<string locid="txt_common_button_ok" name="text" value="Ok"/>
<string name="state" value="normal"/>
</widget>
<widget name="scene_cancel_button" type="HbPushButton">
+ <sizehint height="7un" type="PREFERRED" width="21.875un"/>
<string locid="txt_common_button_cancel" name="text" value="Cancel"/>
<string name="state" value="normal"/>
</widget>
@@ -39,8 +41,9 @@
<fontspec name="fontSpec" role="Title" textheight="var(hb-param-text-height-primary)"/>
</widget>
<real name="z" value="2"/>
+ <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
<sizehint height="41.49254un" type="PREFERRED" width="expr(var(hb-param-widget-dialog-width) )"/>
- <layout orientation="Vertical" type="linear">
+ <layout orientation="Vertical" spacing="1un" type="linear">
<contentsmargins bottom="var(hb-param-margin-gene-bottom)" left="var(hb-param-margin-gene-left)" right="var(hb-param-margin-gene-right)" top="var(hb-param-margin-gene-top)"/>
<linearitem itemname="scene_title"/>
<linearitem itemname="scene_view_radioButtonList"/>
@@ -67,7 +70,7 @@
</widget>
<connect receiver="settings_scenes_view" sender="scene_ok_button" signal="released()" slot="handleOkButtonPress()"/>
<connect receiver="settings_scenes_view" sender="scene_cancel_button" signal="released()" slot="handleCancelButtonPress()"/>
- <metadata activeUIState="Common ui state" display="NHD landscape" unit="un">
+ <metadata activeUIState="Common ui state" display="NHD-3.2-inch_landscape" unit="un">
<uistate name="Common ui state" sections="#common"/>
</metadata>
</hbdocument>
--- a/camerauis/cameraxui/cxui/layouts/view_still_precapture.docml Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/layouts/view_still_precapture.docml Thu Jul 15 01:53:45 2010 +0300
@@ -43,6 +43,18 @@
<widget name="transparent" type="HbTransparentWindow">
<real name="z" value="0"/>
</widget>
+ <layout type="anchor">
+ <anchoritem dst="transparent" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="transparent" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+ <anchoritem dst="transparent" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="transparent" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ </layout>
+ </widget>
+ <string name="title" value="Camera"/>
+ <bool name="contentFullScreen" value="TRUE"/>
+ </widget>
+ <section name="still_capture_indicators">
+ <widget name="still_container" role="HbView:widget" type="HbWidget">
<widget name="indicatorContainer" type="HbWidget">
<widget name="mode_indicator" type="HbLabel">
<enums name="alignment" value="AlignVCenter|AlignHCenter"/>
@@ -86,17 +98,11 @@
</layout>
</widget>
<layout type="anchor">
- <anchoritem dst="indicatorContainer" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
+ <anchoritem dst="indicatorContainer" dstEdge="LEFT" spacing="11un" src="" srcEdge="LEFT"/>
<anchoritem dst="indicatorContainer" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
- <anchoritem dst="transparent" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
- <anchoritem dst="transparent" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
- <anchoritem dst="transparent" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
- <anchoritem dst="transparent" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
</layout>
</widget>
- <string name="title" value="Camera"/>
- <bool name="contentFullScreen" value="TRUE"/>
- </widget>
+ </section>
<section name="still_capture_with_widgets">
<widget name="still_capture_view" type="HbView">
<widget name="still_view_menu" role="HbView:menu" type="HbMenu"/>
@@ -135,7 +141,7 @@
<widget name="selftimer_button_container" type="HbWidget">
<widget name="still_selftimer_start_button" type="HbPushButton">
<real name="z" value="5"/>
- <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0"/>
+ <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
<sizehint type="FIXED" width="20un"/>
<string locid="txt_cam_button_start" name="text" value="Start"/>
<bool name="visible" value="TRUE"/>
@@ -144,8 +150,9 @@
</widget>
<widget name="still_selftimer_cancel_button" type="HbPushButton">
<real name="z" value="4"/>
- <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0"/>
+ <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
<sizehint type="FIXED" width="20un"/>
+ <sizehint height="7un" type="PREFERRED" width="20un"/>
<string locid="txt_cam_button_cancel" name="text" value="Cancel"/>
<bool name="visible" value="TRUE"/>
<string name="state" value="normal"/>
@@ -193,8 +200,6 @@
</widget>
<real name="z" value="1"/>
<layout type="anchor">
- <anchoritem dst="indicatorContainer" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
- <anchoritem dst="indicatorContainer" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
<anchoritem dst="toolbar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
<anchoritem dst="toolbar" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
<anchoritem dst="toolbar" dstEdge="TOP" spacing="var(hb-param-widget-chrome-height)" src="" srcEdge="TOP"/>
@@ -208,6 +213,8 @@
<anchoritem dst="images_left_container" dstEdge="LEFT" spacing="11un" src="" srcEdge="LEFT"/>
<anchoritem dst="still_precapture_selftimer_container" dstEdge="CENTERH" spacing="0" src="" srcEdge="CENTERH"/>
<anchoritem dst="still_precapture_selftimer_container" dstEdge="CENTERV" spacing="0" src="" srcEdge="CENTERV"/>
+ <anchoritem dst="indicatorContainer" dstEdge="LEFT" spacing="11un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="indicatorContainer" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
</layout>
</widget>
</widget>
@@ -257,4 +264,4 @@
<uistate name="still_standalone_mode" sections="#common still_capture_with_widgets still_standalone_mode"/>
<uistate name="still_embedded_mode" sections="#common still_capture_with_widgets still_embedded_mode"/>
</metadata>
-</hbdocument>
+</hbdocument>
\ No newline at end of file
--- a/camerauis/cameraxui/cxui/layouts/view_video_precapture.docml Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/layouts/view_video_precapture.docml Thu Jul 15 01:53:45 2010 +0300
@@ -47,6 +47,18 @@
<widget name="video_viewfinder_widget" type="HbTransparentWindow">
<real name="z" value="0"/>
</widget>
+ <layout type="anchor">
+ <anchoritem dst="video_viewfinder_widget" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+ <anchoritem dst="video_viewfinder_widget" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="video_viewfinder_widget" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+ <anchoritem dst="video_viewfinder_widget" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ </layout>
+ </widget>
+ <string locid="txt_cam_title_camera" name="title" value="Camera"/>
+ <bool name="contentFullScreen" value="TRUE"/>
+ </widget>
+ <section name="video_capture_indicators">
+ <widget name="video_container" role="HbView:widget" type="HbWidget">
<widget name="video_indicator_container_top" type="HbWidget">
<widget name="video_mode_indicator" type="HbLabel">
<enums name="alignment" value="AlignVCenter|AlignHCenter"/>
@@ -84,17 +96,11 @@
</layout>
</widget>
<layout type="anchor">
- <anchoritem dst="video_indicator_container_top" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
+ <anchoritem dst="video_indicator_container_top" dstEdge="LEFT" spacing="11un" src="" srcEdge="LEFT"/>
<anchoritem dst="video_indicator_container_top" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
- <anchoritem dst="video_viewfinder_widget" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
- <anchoritem dst="video_viewfinder_widget" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
- <anchoritem dst="video_viewfinder_widget" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
- <anchoritem dst="video_viewfinder_widget" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
</layout>
</widget>
- <string locid="txt_cam_title_camera" name="title" value="Camera"/>
- <bool name="contentFullScreen" value="TRUE"/>
- </widget>
+ </section>
<section name="video_capture_with_widgets">
<widget name="video_capture_view" type="HbView">
<widget name="video_view_menu" role="HbView:menu" type="HbMenu"/>
@@ -140,7 +146,7 @@
<widget name="video_remaining_time" type="HbLabel">
<enums name="alignment" value="AlignVCenter|AlignHCenter"/>
<sizehint height="var(hb-param-graphic-size-function)" type="PREFERRED"/>
- <string name="textColor" value="#ff0000"/>
+ <string name="textColor" value="#ffffff"/>
<string name="plainText" value="00:00"/>
<fontspec name="fontSpec" role="Undefined" textheight="var(hb-param-text-height-tiny)"/>
</widget>
@@ -161,8 +167,6 @@
</layout>
</widget>
<layout type="anchor">
- <anchoritem dst="video_indicator_container_top" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
- <anchoritem dst="video_indicator_container_top" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
<anchoritem dst="video_viewfinder_widget" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
<anchoritem dst="video_viewfinder_widget" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
<anchoritem dst="video_viewfinder_widget" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
@@ -184,6 +188,8 @@
<anchoritem dst="video_viewfinder_widget" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
<anchoritem dst="video_viewfinder_widget" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
<anchoritem dst="video_viewfinder_widget" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="video_indicator_container_top" dstEdge="LEFT" spacing="11un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="video_indicator_container_top" dstEdge="TOP" spacing="var(hb-param-margin-gene-top)" src="" srcEdge="TOP"/>
</layout>
</widget>
</widget>
@@ -262,6 +268,9 @@
<widget name="video_elapsed_time" type="HbLabel">
<bool name="visible" value="TRUE"/>
</widget>
+ <widget name="video_remaining_time" type="HbLabel">
+ <string name="textColor" value="#ffffff"/>
+ </widget>
<widget name="video_recording_icon" type="HbLabel">
<icon iconName="qtg_mono_pause" name="icon"/>
<bool name="visible" value="TRUE"/>
--- a/camerauis/cameraxui/cxui/src/cxuiapplication.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiapplication.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -33,7 +33,7 @@
*/
CxuiApplication::CxuiApplication(int &argc, char *argv[])
- : HbApplication(argc, argv, Hb::NoSplash)
+ : HbApplication(argc, argv, Hb::SplashFixedHorizontal)
{
CX_DEBUG_IN_FUNCTION();
}
--- a/camerauis/cameraxui/cxui/src/cxuiapplicationstate.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiapplicationstate.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -32,7 +32,6 @@
*/
CxuiApplicationState::CxuiApplicationState(CxuiApplication &application,
CxeSettings &settings,
- CxuiCaptureKeyHandler &keyHandler,
CxuiDocumentLoader *documentLoader)
: mState(Background), mApplicationMonitor(NULL), mErrorManager(NULL), mEventLog(NULL)
{
--- a/camerauis/cameraxui/cxui/src/cxuidocumentloader.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuidocumentloader.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -45,7 +45,7 @@
QObject *CxuiDocumentLoader::createObject(const QString& type, const QString &name)
{
- OstTrace0( camerax_performance, CXUIDOCUMENTLOADER_CREATEOBJECT, "msg: e_CX_DOCLOADER_CREATEOBJECT 1" );
+ OstTrace0(camerax_performance, CXUIDOCUMENTLOADER_1, "msg: e_CX_DOCUMENTLOADER_CREATEOBJECT 1");
QObject *object = NULL;
if (type == "HbView") {
@@ -55,7 +55,7 @@
object = new CxuiVideoPrecaptureView();
} else if (name == CxUiLayout::POSTCAPTURE_VIEW) {
object = new CxuiPostcaptureView();
- } else if (name == CxUiLayout::STILL_SCENES_VIEW) {
+ } else if (name == CxUiLayout::SCENE_MODE_VIEW) {
object = new CxuiSceneModeView(NULL);
}
} else if (type == "HbDialog") {
@@ -72,7 +72,7 @@
}
} else if (type == "HbRadioButtonList") {
if (name == CxUiLayout::SETTINGS_DIALOG_CONTENT_WIDGET
- || name == CxUiLayout::SCENE_VIEW_RADIOBUTTONS) {
+ || name == CxUiLayout::SCENE_MODE_VIEW_RADIOBUTTONS) {
object = new CxuiSettingRadioButtonList(NULL, mEngine);
}
}
@@ -83,7 +83,7 @@
object = HbDocumentLoader::createObject(type, name);
}
- OstTrace0( camerax_performance, DUP1_CXUIDOCUMENTLOADER_CREATEOBJECT, "msg: e_CX_DOCLOADER_CREATEOBJECT 0" );
+ OstTrace0(camerax_performance, CXUIDOCUMENTLOADER_2, "msg: e_CX_DOCUMENTLOADER_CREATEOBJECT 0");
return object;
}
--- a/camerauis/cameraxui/cxui/src/cxuipostcaptureview.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuipostcaptureview.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -29,7 +29,6 @@
#include <hbtoolbar.h>
#include <hbaction.h>
#include <hbmessagebox.h>
-#include <hbnotificationdialog.h>
#include <hbactivitymanager.h>
#include <shareui.h>
@@ -50,10 +49,12 @@
#include "cxenamespace.h"
#include "cxuiserviceprovider.h"
+#ifdef Q_OS_SYMBIAN
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "cxuipostcaptureviewTraces.h"
#endif
+#endif //Q_OS_SYMBIAN
using namespace CxUiLayout;
@@ -64,14 +65,12 @@
const QString FILENAME_KEY = "filename";
const int CXUI_STOP_VIEWFINDER_TIMEOUT = 5000; // 5 seconds
const int CXUI_RELEASE_CAMERA_TIMEOUT = 60000; // 60 seconds
-};
+}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::CxuiPostcaptureView
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Constructor.
+*/
CxuiPostcaptureView::CxuiPostcaptureView(QGraphicsItem *parent) :
CxuiView(parent),
mStillToolbar(NULL),
@@ -93,11 +92,9 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::~CxuiPostcaptureView
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Destructor.
+*/
CxuiPostcaptureView::~CxuiPostcaptureView()
{
CX_DEBUG_ENTER_FUNCTION();
@@ -108,16 +105,15 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::construct
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Second phase construction.
+*/
void CxuiPostcaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
CxuiDocumentLoader *documentLoader,
CxuiCaptureKeyHandler *keyHandler,
HbActivityManager *activityManager)
{
+ Q_UNUSED(keyHandler);
CX_DEBUG_ENTER_FUNCTION();
CxuiView::construct(mainwindow, engine, documentLoader, NULL, activityManager);
@@ -181,11 +177,9 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::handleCaptureKeyPressed
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Handle pressing capture key.
+*/
void CxuiPostcaptureView::handleCaptureKeyPressed()
{
CX_DEBUG_ENTER_FUNCTION();
@@ -197,11 +191,9 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::handleAutofocusKeyPressed
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Handle pressing auto focus key.
+*/
void CxuiPostcaptureView::handleAutofocusKeyPressed()
{
CX_DEBUG_ENTER_FUNCTION();
@@ -251,48 +243,41 @@
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::showDeleteNote
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Show delete query.
+*/
void CxuiPostcaptureView::showDeleteNote()
{
CX_DEBUG_ENTER_FUNCTION();
hideControls();
- if (mEngine->mode() == Cxe::VideoMode) {
- HbMessageBox::question(hbTrId("txt_cam_other_delete_video_clip"),
- this,
- SLOT(handleDeleteDialogClosed(HbAction*)));
- } else {
- HbMessageBox::question(hbTrId("txt_cam_other_delete_image"),
- this,
- SLOT(handleDeleteDialogClosed(HbAction*)));
- }
+ QString text(mEngine->mode() == Cxe::VideoMode
+ ? hbTrId("txt_cam_other_delete_video_clip")
+ : hbTrId("txt_cam_other_delete_image"));
+
+ HbMessageBox::question(text,
+ this,
+ SLOT(handleDeleteDialogClosed(int)),
+ HbMessageBox::Yes | HbMessageBox::No);
mDeleteNoteOpen = true;
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::handleDeleteDialogClosed
-//
-// ---------------------------------------------------------------------------
-//
-void CxuiPostcaptureView::handleDeleteDialogClosed(HbAction *action)
+/*!
+* Handle closing delete query dialog.
+* @param action HbMessageBox::Yes if user accepted the delete query, HbMessageBox::No if not.
+*/
+void CxuiPostcaptureView::handleDeleteDialogClosed(int action)
{
CX_DEBUG_ENTER_FUNCTION();
hideControls();
mDeleteNoteOpen = false;
- HbMessageBox *dlg = qobject_cast<HbMessageBox*>(sender());
-
- // check that it was "primary action" that closed the dialog
- if (dlg && dlg->actions().at(0) == action) {
- // User confirmed delete
+ // Check that user confirmed delete
+ if (action == HbMessageBox::Yes) {
QString filename = getCurrentFilename();
QFileInfo fileInfo(filename);
if (fileInfo.exists()) {
@@ -303,7 +288,7 @@
// is being harvested by MdS etc.
QDir dir = fileInfo.absolutePath();
bool ok = dir.remove(fileInfo.fileName());
- CX_DEBUG(("Delete file [%s], status %d", fileInfo.fileName().toAscii().constData(), ok));
+ CX_DEBUG(("Delete file [%s], status %d", qPrintable(fileInfo.fileName()), ok));
// Go back to precapture view
goToPrecaptureView();
@@ -333,11 +318,9 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::goToPrecaptureView
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Go to pre-capture view.
+*/
void CxuiPostcaptureView::goToPrecaptureView()
{
CX_DEBUG_ENTER_FUNCTION();
@@ -359,11 +342,9 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::stopViewfinder
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Stop viewfinder.
+*/
void CxuiPostcaptureView::stopViewfinder()
{
CX_DEBUG_ENTER_FUNCTION();
@@ -394,11 +375,10 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::eventFilter
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Handle events.
+* Needed for restarting timers.
+*/
bool CxuiPostcaptureView::eventFilter(QObject *object, QEvent *event)
{
Q_UNUSED(object)
@@ -438,6 +418,7 @@
*/
void CxuiPostcaptureView::restoreActivity(const QString &activityId, const QVariant &data)
{
+ Q_UNUSED(activityId);
CX_DEBUG_ENTER_FUNCTION();
// get filename. if filename is not found (toString() returns empty string)
@@ -489,11 +470,10 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::showEvent
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Show event for this view.
+* Update snapshot and start timers.
+*/
void CxuiPostcaptureView::showEvent(QShowEvent *event)
{
CX_DEBUG_ENTER_FUNCTION();
@@ -512,11 +492,10 @@
CX_DEBUG_EXIT_FUNCTION();
}
-// ---------------------------------------------------------------------------
-// CxuiPostcaptureView::hideEvent
-//
-// ---------------------------------------------------------------------------
-//
+/*!
+* Hide event.
+* Release snapshot and stop timers.
+*/
void CxuiPostcaptureView::hideEvent(QHideEvent *event)
{
CX_DEBUG_ENTER_FUNCTION();
--- a/camerauis/cameraxui/cxui/src/cxuiprecaptureview.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiprecaptureview.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -120,7 +120,7 @@
HbActivityManager *activityManager)
{
CX_DEBUG_ENTER_FUNCTION();
- OstTrace0( camerax_performance, CXUIPRECAPTUREVIEW_CONSTRUCT, "msg: e_CX_PRECAPVIEW_CONST 1" );
+ OstTrace0(camerax_performance, CXUIPRECAPTUREVIEW_CONSTRUCT_1, "msg: e_CX_PRECAPVIEW_CONSTRUCT 1");
CxuiView::construct(mainWindow, engine, documentLoader, keyHandler, activityManager);
@@ -160,7 +160,7 @@
setNavigationAction(exitAction);
}
- OstTrace0( camerax_performance, DUP1_CXUIPRECAPTUREVIEW_CONSTRUCT, "msg: e_CX_PRECAPVIEW_CONST 0" );
+ OstTrace0(camerax_performance, CXUIPRECAPTUREVIEW_CONSTRUCT_2, "msg: e_CX_PRECAPVIEW_CONSTRUCT 0");
QCoreApplication::instance()->installEventFilter(this);
CX_DEBUG_EXIT_FUNCTION();
@@ -886,28 +886,14 @@
{
CX_DEBUG_ENTER_FUNCTION();
- QString ftuMsg = hbTrId("txt_cam_info_captured_photos_and_videos_will_be_ta");
- QString actionOkTxt = hbTrId("txt_common_button_ok");
- QString actionSettingsTxt = hbTrId("txt_cam_opt_general_settings");
-
- HbDialog *dialog = new HbDialog();
- HbLabel *label = new HbLabel();
+ HbMessageBox *ftuMessageBox = new HbMessageBox(hbTrId("txt_cam_info_captured_photos_and_videos_will_be_ta"),
+ HbMessageBox::MessageTypeInformation);
- // initializing dialog's content widget
- label->setPlainText(ftuMsg);
- label->setTextWrapping(Hb::TextWordWrap);
- label->setElideMode(Qt::ElideNone);
- label->setMaximumWidth(350);
- dialog->setContentWidget(label);
-
- // initializing dialog's actions
- HbAction *okAction = new HbAction(actionOkTxt, dialog);
- HbAction *settingsAction = new HbAction(actionSettingsTxt, dialog);
- dialog->addAction(okAction);
- dialog->addAction(settingsAction);
+ HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok"));
+ HbAction *settingsAction = new HbAction(hbTrId("txt_cam_opt_general_settings"));
// connecting signals for dialog's actions
- connect(okAction,
+ connect(okAction,
SIGNAL(triggered()),
this,
SLOT(disableGeotaggingDisclaimer()));
@@ -917,11 +903,13 @@
this,
SLOT(launchGeoTaggingSetting()));
- // initializing dialog's properties
- dialog->setTimeout(HbDialog::NoTimeout);
- dialog->setDismissPolicy(HbPopup::NoDismiss);
- dialog->setAttribute(Qt::WA_DeleteOnClose, true);
- dialog->show();
+ // adding buttons to the information message
+ ftuMessageBox->setStandardButtons(HbMessageBox::NoButton);
+ ftuMessageBox->addAction(okAction);
+ ftuMessageBox->addAction(settingsAction);
+
+ ftuMessageBox->setAttribute(Qt::WA_DeleteOnClose, true);
+ ftuMessageBox->show();
CX_DEBUG_EXIT_FUNCTION();
}
@@ -941,7 +929,7 @@
/*!
-* Slot that accepts "Geotagging first-time use" note and launches geotagging setting dialog.
+* Slot that launches geotagging setting dialog.
*/
void CxuiPrecaptureView::launchGeoTaggingSetting()
{
--- a/camerauis/cameraxui/cxui/src/cxuiscenemodeview.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiscenemodeview.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -105,18 +105,18 @@
QGraphicsWidget *widget = NULL;
- widget = mDocumentLoader->findWidget(SCENE_VIEW_CONTAINER);
+ widget = mDocumentLoader->findWidget(SCENE_MODE_VIEW_CONTAINER);
mScenesContainer = qobject_cast<HbWidget *> (widget);
mScenesHeading = qobject_cast<HbLabel *>(
- mDocumentLoader->findWidget(SCENE_VIEW_HEADING_WIDGET));
+ mDocumentLoader->findWidget(SCENE_MODE_VIEW_HEADING_WIDGET));
CX_ASSERT_ALWAYS(mScenesHeading);
//Now let's retreive the pointer to icon widget
- widget = mDocumentLoader->findWidget(SCENE_VIEW_BG_IMAGE);
+ widget = mDocumentLoader->findWidget(SCENE_MODE_VIEW_BG_IMAGE);
mScenesBackground = qobject_cast<HbLabel *> (widget);
- widget = mDocumentLoader->findWidget(SCENE_VIEW_BG_IMAGE2);
+ widget = mDocumentLoader->findWidget(SCENE_MODE_VIEW_BG_IMAGE2);
mScenesBackground2 = qobject_cast<HbLabel *> (widget);
//Assuming that the automatic scene mode is always the default one
@@ -125,7 +125,7 @@
background.setMirroringMode(HbIcon::LayoutDirection);
mScenesBackground->setIcon(background);
- widget = mDocumentLoader->findWidget(SCENE_VIEW_RADIOBUTTONS);
+ widget = mDocumentLoader->findWidget(SCENE_MODE_VIEW_RADIOBUTTONS);
mScenesList = qobject_cast<CxuiSettingRadioButtonList *> (widget);
mTransitionAnimation = new QPropertyAnimation(mScenesBackground2, "opacity");
--- a/camerauis/cameraxui/cxui/src/cxuisettingradiobuttonlist.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuisettingradiobuttonlist.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -73,7 +73,7 @@
// Store the original setting value and focus matching item.
QString value;
mEngine->settings().get(mSettingId, value);
- CX_DEBUG(("CxuiSettingRadioButtonList - original value: [%s]", value.toAscii().data()));
+ CX_DEBUG(("CxuiSettingRadioButtonList - original value: [%s]", qPrintable(value)));
setOriginalSelectedItemByValue(QVariant(value));
}
}
@@ -87,15 +87,21 @@
{
CX_DEBUG_ENTER_FUNCTION();
+ // Find the index of given value among setting values.
+ // Default to first item, if given value is not found.
int index = mSettingValues.indexOf(QVariant(value));
- if (index >= 0) {
- mOriginalIndex = index;
- setSelected(index);
- // ensure that currently selected item is visible
- scrollTo(currentIndex());
- } else {
- CX_DEBUG(("[WARNING] Value %s not found, defaulting to first item", value.toString().toAscii().data()));
+ if (index < 0) {
+ CX_DEBUG(("[WARNING] Value [%s] not found, selecting first item", qPrintable(value.toString())));
+ index = 0;
}
+
+ // Store the original value.
+ mOriginalIndex = index;
+ // Select the index with current value item.
+ setSelected(index);
+ // Ensure that currently selected item is visible.
+ scrollTo(currentIndex());
+
CX_DEBUG_EXIT_FUNCTION();
}
@@ -190,12 +196,12 @@
{
CX_DEBUG_ENTER_FUNCTION();
- CX_DEBUG(("id: %s", mSettingId.toAscii().data()));
+ CX_DEBUG(("CxuiSettingRadioButtonList - id: %s", qPrintable(mSettingId)));
if (!mSettingId.isEmpty() && !mSettingValues.isEmpty()) {
QVariant value = mSettingValues.at(index);
if (value.type() == QVariant::Int) {
- CX_DEBUG(("index:%d value:%d", index, value.toInt()));
+ CX_DEBUG(("CxuiSettingRadioButtonList - index:%d value:%d", index, value.toInt()));
// Don't set the value again, if it is the current value.
// For e.g. video quality it would result in re-preparation etc.
@@ -209,11 +215,11 @@
emit valueSelected(value.toInt());
} else if (value.type() == QVariant::String) {
- CX_DEBUG(("index:%d value:[%s]", index, value.toString().toAscii().constData()));
+ CX_DEBUG(("CxuiSettingRadioButtonList - index:%d value:[%s]", index, qPrintable(value.toString())));
QString current;
CxeError::Id status(mEngine->settings().get(mSettingId, current));
- CX_DEBUG(("settings model value:[%s]", current.toAscii().constData()));
+ CX_DEBUG(("CxuiSettingRadioButtonList - settings model value:[%s]", qPrintable(current)));
if (status != CxeError::None || current != value.toString()) {
mEngine->settings().set(mSettingId, value.toString());
--- a/camerauis/cameraxui/cxui/src/cxuisettingsinfo.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuisettingsinfo.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -208,9 +208,9 @@
// get the localized possible strings for each image quality setting
QString vga = "txt_cam_dblist_vga";
- QString normal = "txt_cam_dblist_l1_mpix";
+ QString normal = "txt_cam_dblist_ln_mpix";
QString imagesLeft = "txt_cam_dblist_hd_720p_val_ln_images_left";
- QString widescreen = "txt_cam_dblist_l1_mpix_widescreen";
+ QString widescreen = "txt_cam_dblist_ln_mpix_widescreen";
foreach(CxeImageDetails quality, list) {
// mapping the right value for each quality
--- a/camerauis/cameraxui/cxui/src/cxuistillprecaptureview.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuistillprecaptureview.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -14,14 +14,16 @@
* Description:
*
*/
+#include <QVariant>
+#include <QMetaType>
+#include <QGraphicsLayout>
+
#include <hbpushbutton.h>
#include <hblabel.h>
#include <hbtoolbar.h>
#include <hbaction.h>
#include <hbmainwindow.h>
#include <hbtransparentwindow.h>
-#include <QVariant>
-#include <QMetaType>
#include <hbslider.h>
#include <hblistwidget.h>
#include <hbdialog.h>
@@ -123,7 +125,7 @@
int value = Cxe::GeoTaggingDisclaimerDisabled;
mEngine->settings().get(CxeSettingIds::GEOTAGGING_DISCLAIMER, value);
- if(value == Cxe::GeoTaggingDisclaimerEnabled) {
+ if (value == Cxe::GeoTaggingDisclaimerEnabled) {
launchGeoTaggingDisclaimerDialog();
}
@@ -137,31 +139,96 @@
void CxuiStillPrecaptureView::loadDefaultWidgets()
{
CX_DEBUG_ENTER_FUNCTION();
- CX_DEBUG_ASSERT(mDocumentLoader);
+ CX_ASSERT_ALWAYS(mDocumentLoader);
// get pointer to the viewfinder
QGraphicsWidget *widget = NULL;
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_VIEWFINDER);
mViewfinder = qobject_cast<HbTransparentWindow *>(widget);
- CX_DEBUG_ASSERT(mViewfinder);
+ CX_ASSERT_ALWAYS(mViewfinder);
+
+ reloadIndicatorWidgets();
+ CX_DEBUG_EXIT_FUNCTION();
+}
+/*!
+ * Loads default indicators from docml and modifies the visibility
+ * according to current settings.
+ */
+void CxuiStillPrecaptureView::reloadIndicatorWidgets()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ CX_ASSERT_ALWAYS(mDocumentLoader);
+
+ bool ok = false;
+ mDocumentLoader->load(STILL_1ST_XML, STILL_PRE_CAPTURE_INDICATORS_SECTION, &ok);
+ CX_ASSERT_ALWAYS(ok);
+
+ QGraphicsWidget *widget = NULL;
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_QUALITY_ICON);
mQualityIcon = qobject_cast<HbLabel *>(widget);
- CX_DEBUG_ASSERT(mQualityIcon);
+ CX_ASSERT_ALWAYS(mQualityIcon);
+
+ widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_FLASHBLINK_INDICATOR_ICON);
+ HbLabel *flashBlinkingIcon = qobject_cast<HbLabel *>(widget);
+ CX_ASSERT_ALWAYS(flashBlinkingIcon);
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_GEOTAGGING_INDICATOR_ICON);
mGeoTaggingIndicatorIcon = qobject_cast<HbLabel *>(widget);
- CX_DEBUG_ASSERT(mGeoTaggingIndicatorIcon);
+ CX_ASSERT_ALWAYS(mGeoTaggingIndicatorIcon);
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_FACE_TRACKING_ICON);
mFaceTrackingIcon = qobject_cast<HbLabel *>(widget);
- CX_DEBUG_ASSERT(mFaceTrackingIcon);
+ CX_ASSERT_ALWAYS(mFaceTrackingIcon);
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_INDICATOR_CONTAINER);
mIndicators = qobject_cast<HbWidget *>(widget);
- CX_DEBUG_ASSERT(mIndicators);
+ CX_ASSERT_ALWAYS(mIndicators);
+
+ QGraphicsLayout *layout = mIndicators->layout();
+ QGraphicsLayoutItem *graphicsLayoutItem = NULL;
+ QGraphicsItem *graphicsItem = NULL;
+ QString key = "";
+ int currentSettingValue = -1;
+ bool isSettingOff = false;
+ // Go through the items in the layout to check whether they should be
+ // shown or not in the indicator pane. Start from the last towards
+ // the first, so that removing items from between works correctly.
+ for (int i = layout->count() - 1; i >= 0; i--) {
+ graphicsLayoutItem = layout->itemAt(i);
+ isSettingOff = false;
+ if (graphicsLayoutItem) {
+ graphicsItem = graphicsLayoutItem->graphicsItem();
+ currentSettingValue = -1;
+ if (graphicsItem == mGeoTaggingIndicatorIcon) {
+ key = CxeSettingIds::GEOTAGGING;
+ mEngine->settings().get(key, currentSettingValue);
+ if (currentSettingValue == Cxe::GeoTaggingOff) {
+ isSettingOff = true;
+ }
+ } else if (graphicsItem == mFaceTrackingIcon) {
+ key = CxeSettingIds::FACE_TRACKING;
+ mEngine->settings().get(key, currentSettingValue);
+ // facetracking implementation does not use
+ // enum for on/off values but instead
+ // 0 for off and 1 for on.
+ if (currentSettingValue == 0) {
+ isSettingOff = true;
+ }
+ } else if (graphicsItem == flashBlinkingIcon) {
+ //remove flash indicator
+ isSettingOff = true;
+ }
+ if (isSettingOff) {
+ layout->removeAt(i);
+ }
+ }
+ }
+
// create background for indicator container
createWidgetBackgroundGraphic(mIndicators, TRANSPARENT_BACKGROUND_GRAPHIC);
+
+ mIndicators->setVisible(true);
CX_DEBUG_EXIT_FUNCTION();
}
@@ -173,7 +240,7 @@
void CxuiStillPrecaptureView::loadWidgets()
{
CX_DEBUG_ENTER_FUNCTION();
- CX_DEBUG_ASSERT(mDocumentLoader);
+ CX_ASSERT_ALWAYS(mDocumentLoader);
if( mWidgetsLoaded ) {
CX_DEBUG(("Widgets already loaded"));
@@ -187,14 +254,14 @@
OstTrace0( camerax_performance, DUP4_CXUISTILLPRECAPTUREVIEW_LOADWIDGETS, "msg: e_CX_DOCUMENTLOADER_LOAD 1" );
mDocumentLoader->load(STILL_1ST_XML, STILL_PRE_CAPTURE_WIDGETS_SECTION, &ok);
- Q_ASSERT_X(ok, "camerax ui", "error in xml file parsing");
+ CX_ASSERT_ALWAYS(ok);
if (CxuiServiceProvider::isCameraEmbedded()) {
mDocumentLoader->load(STILL_1ST_XML, STILL_PRE_CAPTURE_EMBEDDED_SECTION, &ok);
} else {
mDocumentLoader->load(STILL_1ST_XML, STILL_PRE_CAPTURE_STANDALONE_SECTION, &ok);
}
OstTrace0( camerax_performance, DUP5_CXUISTILLPRECAPTUREVIEW_LOADWIDGETS, "msg: e_CX_DOCUMENTLOADER_LOAD 0" );
- Q_ASSERT_X(ok, "camerax ui", "error in xml file parsing");
+ CX_ASSERT_ALWAYS(ok);
// get pointers to ui components from the layout data
QGraphicsWidget *widget = NULL;
@@ -202,7 +269,7 @@
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_ZOOM_SLIDER);
mSlider = qobject_cast<CxuiZoomSlider *>(widget);
- CX_DEBUG_ASSERT(mSlider);
+ CX_ASSERT_ALWAYS(mSlider);
mSlider->addZoomButtons();
createWidgetBackgroundGraphic(mSlider, TRANSPARENT_BACKGROUND_GRAPHIC);
@@ -216,30 +283,30 @@
HbWidget *container = NULL;
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_SELFTIMER_CONTAINER);
container = qobject_cast<HbWidget *>(widget);
- CX_DEBUG_ASSERT(container);
+ CX_ASSERT_ALWAYS(container);
createWidgetBackgroundGraphic(container, TRANSPARENT_BACKGROUND_GRAPHIC);
// connect selftimer start button to hide controls
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_SELFTIMER_START_BUTTON);
HbPushButton *startButton = qobject_cast<HbPushButton *>(widget);
- CX_DEBUG_ASSERT(startButton);
+ CX_ASSERT_ALWAYS(startButton);
connect(startButton, SIGNAL(released()), this, SLOT(hideControls()));
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_TOOLBAR);
mToolbar = qobject_cast<HbToolBar *>(widget);
- CX_DEBUG_ASSERT(mToolbar);
+ CX_ASSERT_ALWAYS(mToolbar);
object = mDocumentLoader->findObject(STILL_PRE_CAPTURE_FLASH_ACTION);
mFlashSetting = qobject_cast<HbAction *>(object);
- CX_DEBUG_ASSERT(mFlashSetting);
+ CX_ASSERT_ALWAYS(mFlashSetting);
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_IMAGES_LEFT_LABEL);
mImagesLeft = qobject_cast<HbLabel *>(widget);
- CX_DEBUG_ASSERT(mImagesLeft);
+ CX_ASSERT_ALWAYS(mImagesLeft);
widget = mDocumentLoader->findWidget(STILL_PRE_CAPTURE_IMAGES_LEFT_CONTAINER);
mImagesLeftContainer = qobject_cast<HbWidget *>(widget);
- CX_DEBUG_ASSERT(mImagesLeftContainer);
+ CX_ASSERT_ALWAYS(mImagesLeftContainer);
createWidgetBackgroundGraphic(mImagesLeftContainer, TRANSPARENT_BACKGROUND_GRAPHIC);
updateImagesLeftLabel();
@@ -421,7 +488,7 @@
if (mDocumentLoader) {
QObject *obj = mDocumentLoader->findObject(iconObjectName);
- CX_DEBUG_ASSERT(obj);
+ CX_ASSERT_ALWAYS(obj);
qobject_cast<HbAction *>(obj)->setIcon(HbIcon(icon));
}
} else {
@@ -860,7 +927,10 @@
// update images left when quality values are changed
updateImagesLeftLabel();
} else if (key == CxeSettingIds::FACE_TRACKING) {
+ reloadIndicatorWidgets();
updateFaceTrackingIcon();
+ } else if (key == CxeSettingIds::GEOTAGGING) {
+ reloadIndicatorWidgets();
}
// update toolbar flash icon
--- a/camerauis/cameraxui/cxui/src/cxuivideoprecaptureview.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuivideoprecaptureview.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -18,6 +18,7 @@
#include <e32keys.h>
#include <QApplication>
+#include <QGraphicsLayout>
#include <hbmainwindow.h>
#include <hbaction.h>
@@ -45,11 +46,12 @@
#include "cxuizoomslider.h"
#include "cxuicapturekeyhandler.h"
#include "cxuidocumentloader.h"
+#include "cxuiserviceprovider.h"
+
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "cxuivideoprecaptureviewTraces.h"
#endif
-#include "cxuiserviceprovider.h"
using namespace Cxe;
@@ -95,6 +97,13 @@
CX_DEBUG_EXIT_FUNCTION();
}
+/*!
+ * Construct-method handles initialisation tasks for this class.
+ * @param mainwindow
+ * @param engine
+ * @param documentLoader
+ * @param keyHandler
+ */
void CxuiVideoPrecaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
CxuiDocumentLoader *documentLoader,
CxuiCaptureKeyHandler *keyHandler,
@@ -133,34 +142,105 @@
}
+/*!
+ * Loads widgets that are needed right from the start.
+ */
void CxuiVideoPrecaptureView::loadDefaultWidgets()
{
CX_DEBUG_ENTER_FUNCTION();
- CX_DEBUG_ASSERT(mDocumentLoader);
+ CX_ASSERT_ALWAYS(mDocumentLoader);
// get pointers to ui components from the layout data
QGraphicsWidget *widget = NULL;
widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_VIEWFINDER);
mViewfinder = qobject_cast<HbTransparentWindow *> (widget);
- CX_DEBUG_ASSERT(mViewfinder);
-
- widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_QUALITY_ICON);
- mQualityIcon = qobject_cast<HbLabel *> (widget);
- CX_DEBUG_ASSERT(mQualityIcon);
+ CX_ASSERT_ALWAYS(mViewfinder);
- widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_INDICATOR_CONTAINER_TOP);
- mIndicators = qobject_cast<HbWidget *>(widget);
- CX_DEBUG_ASSERT(mIndicators);
- // Create background graphics for indicator container
- createWidgetBackgroundGraphic(mIndicators, TRANSPARENT_BACKGROUND_GRAPHIC);
+ reloadIndicatorWidgets();
CX_DEBUG_EXIT_FUNCTION();
}
+/*!
+ * Loads default indicators from docml and modifies the visibility
+ * according to current settings.
+ */
+void CxuiVideoPrecaptureView::reloadIndicatorWidgets()
+{
+ CX_DEBUG_ENTER_FUNCTION();
+ CX_ASSERT_ALWAYS(mDocumentLoader);
+
+ bool ok = false;
+ mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_INDICATORS_SECTION, &ok);
+ CX_ASSERT_ALWAYS(ok);
+
+ QGraphicsWidget *widget = NULL;
+ widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_QUALITY_ICON);
+ mQualityIcon = qobject_cast<HbLabel *> (widget);
+ CX_ASSERT_ALWAYS(mQualityIcon);
+
+ widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_VIDEOAUDIOMUTE_INDICATOR_ICON);
+ HbLabel *videoaudiomuteIndicatorIcon = qobject_cast<HbLabel *>(widget);
+ CX_ASSERT_ALWAYS(videoaudiomuteIndicatorIcon);
+
+ widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_STABILITY_INDICATOR_ICON);
+ HbLabel *videoStabilityIndicatorIcon = qobject_cast<HbLabel *>(widget);
+ CX_ASSERT_ALWAYS(videoStabilityIndicatorIcon);
+
+ widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_INDICATOR_CONTAINER_TOP);
+ mIndicators = qobject_cast<HbWidget *>(widget);
+ CX_ASSERT_ALWAYS(mIndicators);
+
+ QGraphicsLayout *layout = mIndicators->layout();
+ QGraphicsLayoutItem *graphicsLayoutItem = NULL;
+ QGraphicsItem *graphicsItem = NULL;
+ QString key = "";
+ int currentSettingValue = -1;
+ bool isSettingOff = false;
+ // Go through the items in the layout to check whether they should be
+ // shown or not in the indicator pane. Start from the last towards
+ // the first, so that removing items from between works correctly.
+ for (int i = layout->count() - 1; i >= 0; i--) {
+ graphicsLayoutItem = layout->itemAt(i);
+ isSettingOff = false;
+ if (graphicsLayoutItem) {
+ graphicsItem = graphicsLayoutItem->graphicsItem();
+ currentSettingValue = -1;
+ if (graphicsItem == videoaudiomuteIndicatorIcon) {
+ key = CxeSettingIds::VIDEO_MUTE_SETTING;
+ mEngine->settings().get(key, currentSettingValue);
+ // video mute implementation does not use
+ // enum for on/off values but instead
+ // 0 for off and 1 for on.
+ if (currentSettingValue == 0) {
+ isSettingOff = true;
+ }
+ } else if (graphicsItem == videoStabilityIndicatorIcon) {
+ // remove video stability indicator.
+ isSettingOff = true;
+ }
+ if (isSettingOff) {
+ layout->removeAt(i);
+ }
+ }
+ }
+
+ // Create background graphics for indicator container
+ createWidgetBackgroundGraphic(mIndicators, TRANSPARENT_BACKGROUND_GRAPHIC);
+
+ mIndicators->setVisible(true);
+
+ CX_DEBUG_EXIT_FUNCTION();
+}
+
+/*!
+ * Loads widgets that are not part of the default section in layouts xml.
+ * Widgets are created at the time they are first loaded.
+ */
void CxuiVideoPrecaptureView::loadWidgets()
{
CX_DEBUG_ENTER_FUNCTION();
- CX_DEBUG_ASSERT(mDocumentLoader);
+ CX_ASSERT_ALWAYS(mDocumentLoader);
if (mWidgetsLoaded) {
CX_DEBUG(("Widgets already loaded"));
@@ -176,17 +256,17 @@
// load widgets section (creates the widgets)
mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_WIDGETS_SECTION, &ok);
- Q_ASSERT_X(ok, "camerax ui", "error in xml file parsing");
+ CX_ASSERT_ALWAYS(ok);
if (CxuiServiceProvider::isCameraEmbedded()) {
mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_EMBEDDED_SECTION, &ok);
} else {
mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_STANDALONE_SECTION, &ok);
}
- Q_ASSERT_X(ok, "camerax ui", "error in xml file parsing");
+ CX_ASSERT_ALWAYS(ok);
// get needed pointers to some of the widgets
widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_ZOOM_SLIDER);
mSlider = qobject_cast<CxuiZoomSlider *> (widget);
- CX_DEBUG_ASSERT(mSlider);
+ CX_ASSERT_ALWAYS(mSlider);
//Let's add a plus and minus buttons to the slider
mSlider->addZoomButtons();
@@ -201,9 +281,9 @@
mToolbar = mToolbarIdle;
- CX_DEBUG_ASSERT(mToolbarIdle);
- CX_DEBUG_ASSERT(mToolbarRec);
- CX_DEBUG_ASSERT(mToolbarPaused);
+ CX_ASSERT_ALWAYS(mToolbarIdle);
+ CX_ASSERT_ALWAYS(mToolbarRec);
+ CX_ASSERT_ALWAYS(mToolbarPaused);
hideControls();
@@ -240,20 +320,20 @@
HbWidget *indicatorContainer;
widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_INDICATOR_CONTAINER_BOTTOM);
indicatorContainer = qobject_cast<HbWidget *>(widget);
- CX_DEBUG_ASSERT(indicatorContainer);
+ CX_ASSERT_ALWAYS(indicatorContainer);
createWidgetBackgroundGraphic(indicatorContainer, TRANSPARENT_BACKGROUND_GRAPHIC);
widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_ELAPSED_TIME_LABEL);
mElapsedTimeText = qobject_cast<HbLabel *> (widget);
- CX_DEBUG_ASSERT(mElapsedTimeText);
+ CX_ASSERT_ALWAYS(mElapsedTimeText);
widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_REMAINING_TIME_LABEL);
mRemainingTimeText = qobject_cast<HbLabel *> (widget);
- CX_DEBUG_ASSERT(mRemainingTimeText);
+ CX_ASSERT_ALWAYS(mRemainingTimeText);
widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_RECORDING_ICON);
mRecordingIcon = qobject_cast<HbLabel *> (widget);
- CX_DEBUG_ASSERT(mRecordingIcon);
+ CX_ASSERT_ALWAYS(mRecordingIcon);
mWidgetsLoaded = true;
@@ -391,7 +471,7 @@
if (mDocumentLoader) {
QObject *obj = mDocumentLoader->findObject(iconObjectName);
- CX_DEBUG_ASSERT(obj);
+ CX_ASSERT_ALWAYS(obj);
qobject_cast<HbAction *>(obj)->setIcon(HbIcon(icon));
}
} else {
@@ -556,13 +636,12 @@
void CxuiVideoPrecaptureView::goToStill()
{
CX_DEBUG_ENTER_FUNCTION();
- OstTrace0( camerax_performance, DUP1_CXUIVIDEOPRECAPTUREVIEW_GOTOSTILL, "msg: e_CX_GO_TO_STILL_MODE 1" );
+ OstTrace0( camerax_performance, CXUIVIDEOPRECAPTUREVIEW_GOTOSTILL, "msg: e_CX_GO_TO_STILL_MODE 1" );
hideControls();
mEngine->initMode(ImageMode);
emit changeToPrecaptureView();
- OstTrace0( camerax_performance, DUP2_CXUIVIDEOPRECAPTUREVIEW_GOTOSTILL, "msg: e_CX_GO_TO_STILL_MODE 0" );
CX_DEBUG_EXIT_FUNCTION();
}
@@ -646,7 +725,7 @@
{
CX_DEBUG_ENTER_FUNCTION();
- TBool status = mVideoCaptureControl->elapsedTime(mTimeElapsed);
+ bool status = mVideoCaptureControl->elapsedTime(mTimeElapsed);
CX_DEBUG(("Elapsed time: %d", mTimeElapsed));
CX_DEBUG(("status: %d", status));
@@ -863,6 +942,10 @@
// update video remaining time counter when video quality is changed
updateTimeLabels();
+ } else if (key == CxeSettingIds::GEOTAGGING) {
+ reloadIndicatorWidgets();
+ } else if (key == CxeSettingIds::VIDEO_MUTE_SETTING) {
+ reloadIndicatorWidgets();
}
}
--- a/camerauis/cameraxui/cxui/src/cxuiview.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiview.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -86,6 +86,9 @@
connect(&mHideControlsTimeout, SIGNAL(timeout()), this, SLOT(hideControls()));
mHideControlsTimeout.setSingleShot(true);
mHideControlsTimeout.setInterval(CXUI_HIDE_CONTROLS_TIMEOUT);
+
+ mControlsFeedback.setOwningWindow(mMainWindow);
+ CX_DEBUG_EXIT_FUNCTION();
}
/*!
@@ -455,11 +458,9 @@
{
//! @todo temporary workaround for title bar mouse event handling bug
if (event->type() == QEvent::GraphicsSceneMouseRelease && event->scenePos().y() > 70 &&
- isFeedbackEnabled()) {
- // todo: sound disabling doesn't work in orbit yet so don't do feedback on release
- // needs to be enabled when orbit support is done
- //mControlsFeedback.setModalities(HbFeedback::Tactile);
- //mControlsFeedback.play();
+ isFeedbackEnabled()) {
+ mControlsFeedback.setModalities(HbFeedback::Tactile);
+ mControlsFeedback.play();
toggleControls();
event->accept();
}
--- a/camerauis/cameraxui/cxui/src/cxuiviewmanager.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiviewmanager.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -17,7 +17,6 @@
#include <QDebug>
#include <QTimer>
#include <hbmainwindow.h>
-#include <coemain.h>
#include <QGraphicsSceneEvent>
#include <hbstyleloader.h>
#include <hbactivitymanager.h>
@@ -43,11 +42,16 @@
#include "cxuiserviceprovider.h"
#include "cxuiscenemodeview.h"
+
+#ifdef Q_OS_SYMBIAN
#include "OstTraceDefinitions.h"
+
#ifdef OST_TRACE_COMPILER_IN_USE
#include "cxuiviewmanagerTraces.h"
#endif
+#endif //Q_OS_SYMBIAN
+
using namespace Cxe;
using namespace CxUiLayout;
@@ -68,8 +72,7 @@
mKeyHandler(NULL),
mCameraDocumentLoader(NULL),
mApplicationState(NULL),
- mErrorManager(NULL),
- mSceneModeView(NULL)
+ mErrorManager(NULL)
{
CX_DEBUG_ENTER_FUNCTION();
@@ -77,18 +80,18 @@
mDocmlFilesByView.insert(STILL_PRE_CAPTURE_VIEW, STILL_1ST_XML);
mDocmlFilesByView.insert(VIDEO_PRE_CAPTURE_VIEW, VIDEO_1ST_XML);
mDocmlFilesByView.insert(POSTCAPTURE_VIEW, POSTCAPTURE_XML);
- mDocmlFilesByView.insert(STILL_SCENES_VIEW, SCENEMODE_SETTING_XML);
+ mDocmlFilesByView.insert(SCENE_MODE_VIEW, SCENEMODE_SETTING_XML);
// Key handler
mKeyHandler = new CxuiCaptureKeyHandler(mEngine);
// Document loader
- OstTrace0( camerax_performance, CXUIVIEWMANAGER_CXUIVIEWMANAGER, "msg: e_CX_VIEWMANAGER_CREATE_DOCLOADER 1" );
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CXUIVIEWMANAGER_1, "msg: e_CX_VIEWMANAGER_CREATE_DOCLOADER 1");
mCameraDocumentLoader = new CxuiDocumentLoader(&engine);
- OstTrace0( camerax_performance, DUP1_CXUIVIEWMANAGER_CXUIVIEWMANAGER, "msg: e_CX_VIEWMANAGER_CREATE_DOCLOADER 0" );
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CXUIVIEWMANAGER_2, "msg: e_CX_VIEWMANAGER_CREATE_DOCLOADER 0");
// Application state
- mApplicationState = new CxuiApplicationState(mApplication, mEngine.settings(), *mKeyHandler, mCameraDocumentLoader);
+ mApplicationState = new CxuiApplicationState(mApplication, mEngine.settings(), mCameraDocumentLoader);
CX_ASSERT_ALWAYS(mApplicationState);
bool ok = connect(mApplicationState, SIGNAL(stateChanged(CxuiApplicationState::State, CxuiApplicationState::State)),
this, SLOT(handleApplicationStateChanged(CxuiApplicationState::State, CxuiApplicationState::State)));
@@ -217,6 +220,7 @@
disconnectSignals(view);
// Make sure standby timer is not running.
stopStandbyTimer();
+
CX_DEBUG_EXIT_FUNCTION();
}
@@ -240,28 +244,6 @@
CX_DEBUG_EXIT_FUNCTION();
}
-/**
- * Init engine to correct mode based on activity being restored.
- */
-void CxuiViewManager::initEngine()
-{
- Cxe::CameraMode mode = Cxe::ImageMode;
- QString activityId = mApplication.activateId();
- if (activityId == CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY ||
- activityId == CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY) {
- mode = Cxe::VideoMode;
- }
- if (activityId == CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY ||
- activityId == CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY) {
- // init engine only if going to pre-capture
- mEngine.initMode(mode);
- } else {
- // in post-capture don't init but set the correct mode to engine
- // so init can be done later
- mEngine.setMode(mode);
- }
-}
-
/*!
* Helper function to return current view cast to CxuiView.
*/
@@ -287,7 +269,7 @@
connect(&mEngine.videoCaptureControl(), SIGNAL(videoPrepareComplete(CxeError::Id)),
this, SLOT(changeToPrecaptureView()));
- } else if (mApplication.activateReason() == Hb::ActivationReasonActivity ) {
+ } else if (mApplication.activateReason() == Hb::ActivationReasonActivity) {
// restoring activity, read startup view from stored activity
// view to start in
@@ -355,7 +337,7 @@
{
CX_DEBUG_ENTER_FUNCTION();
- OstTrace0( camerax_performance, CXUIVIEWMANAGER_CREATEVIEW, "msg: e_CX_CREATE_VIEW 1" );
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_IN, "msg: e_CX_CREATE_VIEW 1");
CX_DEBUG(("View name: %s", viewName.toAscii().data()));
@@ -366,56 +348,38 @@
// Use document loader to create widgets and layouts
// (non-sectioned parts are parsed and loaded)
QString docmlFile = mDocmlFilesByView[viewName];
- CX_DEBUG_ASSERT(mCameraDocumentLoader);
+ CX_ASSERT_ALWAYS(mCameraDocumentLoader);
CX_ASSERT_ALWAYS(!docmlFile.isNull());
- OstTrace0( camerax_performance, DUP2_CXUIVIEWMANAGER_ADDPRECAPTUREVIEWS, "msg: e_CX_DOCLOADER_LOAD 1" );
-
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_2, "msg: e_CX_DOCUMENTLOADER_LOAD 1");
mCameraDocumentLoader->load(docmlFile, &ok);
-
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_4, "msg: e_CX_DOCUMENTLOADER_LOAD 0");
Q_ASSERT_X(ok, "createView", "error in xml file parsing");
- OstTrace0( camerax_performance, DUP2_CXUIVIEWMANAGER_CREATEVIEW, "msg: e_CX_DOCLOADER_LOAD 0" );
-
- OstTrace0( camerax_performance, DUP4_CXUIVIEWMANAGER_ADDVIEWS, "msg: e_CX_DOCLOADER_FINDWIDGET 1" );
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_6, "msg: e_CX_DOCUMENTLOADER_FINDWIDGET 1");
QGraphicsWidget *widget = NULL;
// ask for the view widget pointer
widget = mCameraDocumentLoader->findWidget(viewName);
view = qobject_cast<CxuiView *> (widget);
- CX_DEBUG_ASSERT(view);
- OstTrace0( camerax_performance, DUP5_CXUIVIEWMANAGER_ADDVIEWS, "msg: e_CX_DOCLOADER_FINDWIDGET 0" );
+ CX_ASSERT_ALWAYS(view);
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_8, "msg: e_CX_DOCUMENTLOADER_FINDWIDGET 1");
// call for needed consturction methods
view->construct(&mMainWindow, &mEngine, mCameraDocumentLoader, mKeyHandler, mApplication.activityManager());
// .. and add to main window (which also takes ownership)
- OstTrace0( camerax_performance, DUP1_CXUIVIEWMANAGER_MAINWINDOW_ADDVIEW, "msg: e_CX_MAINWINDOW_ADDVIEW 1" );
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_10, "msg: e_CX_MAINWINDOW_ADDVIEW 1");
mMainWindow.addView(view);
mViews.insert(viewName, view);
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_12, "msg: e_CX_MAINWINDOW_ADDVIEW 0");
+ }
- OstTrace0( camerax_performance, DUP2_CXUIVIEWMANAGER_MAINWINDOW_ADDVIEW, "msg: e_CX_MAINWINDOW_ADDVIEW 0" );
- OstTrace0( camerax_performance, DUP1_CXUIVIEWMANAGER_CREATEVIEW, "msg: e_CX_CREATE_STILLPRECAPTUREVIEW 0" );
-
- }
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CREATEVIEW_OUT, "msg: e_CX_CREATE_VIEW 0");
CX_DEBUG_EXIT_FUNCTION();
return view;
}
/*!
-* Create scene mode view.
-*/
-CxuiView* CxuiViewManager::createSceneModesView()
-{
- CX_DEBUG_ENTER_FUNCTION();
-
- mSceneModeView = qobject_cast<CxuiSceneModeView*>(createView(STILL_SCENES_VIEW));
- mSceneModeView->loadBackgroundImages();
-
- CX_DEBUG_EXIT_FUNCTION();
- return mSceneModeView;
-}
-
-/*!
* CxuiViewManager::showScenesView
* A private method for displaying Scene Modes selection view
*/
@@ -425,14 +389,11 @@
// Disconnect signals from old view.
disconnectSignals();
- if (!mSceneModeView) {
- createSceneModesView();
- }
- else {
- mSceneModeView->loadBackgroundImages();
- }
- CX_DEBUG_ASSERT(mSceneModeView);
- mMainWindow.setCurrentView(mSceneModeView, false);
+ CxuiSceneModeView *view = qobject_cast<CxuiSceneModeView*>(createView(SCENE_MODE_VIEW));
+ CX_ASSERT_ALWAYS(view);
+ view->loadBackgroundImages();
+
+ mMainWindow.setCurrentView(view, false);
stopStandbyTimer();
connectSceneModeSignals();
@@ -464,23 +425,6 @@
}
/*!
-* Get a pointer to the document loader instance.
-*/
-CxuiDocumentLoader *CxuiViewManager::documentLoader()
-{
- return mCameraDocumentLoader;
-}
-
-/*!
-* Get reference to application state instance.
-*/
-CxuiApplicationState &CxuiViewManager::applicationState()
-{
- return *mApplicationState;
-}
-
-
-/*!
* Move to post-capture view.
*/
void CxuiViewManager::changeToPostcaptureView()
@@ -530,11 +474,16 @@
mEngine.cameraDeviceControl().cameraIndex());
mMainWindow.setCurrentView(view, false);
- if (mSceneModeView){
- mViews.remove(STILL_SCENES_VIEW);
- delete mSceneModeView;
- mSceneModeView = NULL;
+ // Release resources needed by scene view.
+ HbView *sceneView = mViews.take(SCENE_MODE_VIEW);
+ if (sceneView) {
+ // This will not delete the view.
+ mMainWindow.removeView(sceneView);
+ // We can get to this slot from scene view, so don't delete the object too early.
+ sceneView->deleteLater();
+ sceneView = NULL;
}
+
// connecting necessary pre-capture view signals
connectPreCaptureSignals();
@@ -631,15 +580,19 @@
void CxuiViewManager::connectSignals(QObject *view)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CONNECTSIGNALS_1, "msg: e_CX_VIEWMANAGER_CONNECT_SIGNALS 1");
+
if (view) {
if (view == mViews[POSTCAPTURE_VIEW]) {
connectPostCaptureSignals();
- } else if (view == mSceneModeView) {
+ } else if (view == mViews[SCENE_MODE_VIEW]) {
connectSceneModeSignals();
} else {
connectPreCaptureSignals();
}
}
+
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_CONNECTSIGNALS_2, "msg: e_CX_VIEWMANAGER_CONNECT_SIGNALS 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -651,6 +604,7 @@
void CxuiViewManager::disconnectSignals(QObject *view)
{
CX_DEBUG_ENTER_FUNCTION();
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_DISCONNECT_1, "msg: e_CX_VIEWMANAGER_DISCONNECT_SIGNALS 1");
// Disconnect all existing capture key signals
mKeyHandler->disconnect();
@@ -668,6 +622,7 @@
disconnect(this, 0, view, 0);
}
+ OstTrace0(camerax_performance, CXUIVIEWMANAGER_DISCONNECT_2, "msg: e_CX_VIEWMANAGER_DISCONNECT_SIGNALS 0");
CX_DEBUG_EXIT_FUNCTION();
}
@@ -724,6 +679,7 @@
disconnectSignals();
QObject *currentView = mMainWindow.currentView();
if (currentView == mViews[POSTCAPTURE_VIEW]) {
+
connect(currentView, SIGNAL(changeToPrecaptureView()), this, SLOT(changeToPrecaptureView()), Qt::UniqueConnection);
// Standby signals
@@ -745,15 +701,19 @@
CX_DEBUG_ENTER_FUNCTION();
disconnectSignals();
- connectCaptureKeySignals();
+ HbView *currentView = mMainWindow.currentView();
+
+ if (currentView == mViews[SCENE_MODE_VIEW]) {
+
+ connectCaptureKeySignals();
- // Standby signals for releasing camera
- connect(this, SIGNAL(normalStateEntered()), mSceneModeView, SLOT(exitStandby()));
- connect(this, SIGNAL(normalStateExited()), mSceneModeView, SLOT(enterStandby()));
+ // Standby signals for releasing camera
+ connect(this, SIGNAL(normalStateEntered()), currentView, SLOT(exitStandby()));
+ connect(this, SIGNAL(normalStateExited()), currentView, SLOT(enterStandby()));
- // Moving back to pre-capture view
- connect(mSceneModeView, SIGNAL(viewCloseEvent()), this, SLOT(changeToPrecaptureView()));
-
+ // Moving back to pre-capture view
+ connect(currentView, SIGNAL(viewCloseEvent()), this, SLOT(changeToPrecaptureView()));
+ }
CX_DEBUG_EXIT_FUNCTION();
}
--- a/camerauis/cameraxui/cxui/src/main.cpp Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/main.cpp Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,27 +15,35 @@
*
*/
-#include <coemain.h>
-#include <eikenv.h>
#include <QApplication>
#include <QGraphicsProxyWidget>
// needed for localization
+#include <QLocale>
#include <HbTranslator>
-#include <QLocale>
#include <hbmainwindow.h>
+#ifdef Q_OS_SYMBIAN
+#include <coemain.h>
+#include <eikenv.h>
+#endif // Q_OS_SYMBIAN
+
#include "cxeengine.h"
#include "cxecameradevicecontrol.h"
#include "cxuiapplication.h"
#include "cxuiviewmanager.h"
#include "cxuiapplicationstate.h"
+#include "cxuienums.h"
#include "cxutils.h"
#include "cxuiserviceprovider.h"
+#ifdef Q_OS_SYMBIAN
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "mainTraces.h"
-#endif
+#endif // OST_TRACE_COMPILER_IN_USE
+#else
+#include "cxuimacrosdesktop.h"
+#endif // Q_OS_SYMBIAN
using namespace Cxe;
@@ -63,80 +71,94 @@
// Reserve and power on can then proceed in parallel with
// ui construction.
OstTrace0( camerax_performance, DUP7__MAIN, "msg: e_CX_CREATE_ENGINE 1" );
- CxeEngine *eng = CxeEngine::createEngine();
+ CxeEngine *engine = CxeEngine::createEngine();
OstTrace0( camerax_performance, DUP8__MAIN, "msg: e_CX_CREATE_ENGINE 0" );
if (app.activateReason() == Hb::ActivationReasonService) {
// Embedded mode. Engine is inited to correct mode
// by service provider when request arrives
CX_DEBUG(("CxUI: creating serviceprovider"));
- CxuiServiceProvider::create(eng);
+ CxuiServiceProvider::create(engine);
CX_DEBUG(("CxUI: done"));
- } else {
- // Normal mode. Init engine now.
- OstTrace0( camerax_performance, DUP9__MAIN, "msg: e_CX_INIT_ENGINE 1" );
- //! @todo temporarily commented as part of a hack to change the startup sequence
- // to avoid GOOM issues
- //eng->initMode(Cxe::ImageMode);
- OstTrace0( camerax_performance, DUP10__MAIN, "msg: e_CX_INIT_ENGINE 0" );
- }
+ } else if (app.activateReason() == Hb::ActivationReasonActivity) {
+ Cxe::CameraMode mode = Cxe::ImageMode;
+ QString activityId = app.activateId();
+ if (activityId == CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY ||
+ activityId == CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY) {
+ mode = Cxe::VideoMode;
+ }
+
+ if (activityId == CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY ||
+ activityId == CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY) {
+ // init engine only if going to pre-capture
+ engine->initMode(mode);
+ } else {
+ // in post-capture don't init but set the correct mode to engine
+ // so init can be done later
+ engine->setMode(mode);
+ }
+ } else {
+ // normal start
+ engine->initMode(engine->mode());
+ }
+
+#ifdef Q_OS_SYMBIAN
+ //!@todo: Yield run time to system to get enough resources released to start camera.
+ CX_DEBUG(("CxUI: yield control for resource freeing.."));
+ User::After(300*1000); // 300ms
+ CX_DEBUG(("CxUI: waiting done.."));
+#endif // Q_OS_SYMBIAN
// Load language specific application localization file, e.g. "camera_en.qm"
+ // Translations need to be loaded before any widgets are created.
CX_DEBUG(("CxUI: Load translations.."));
OstTrace0( camerax_performance, DUP3__MAIN, "msg: e_CX_LOAD_TRANSLATIONS 1" );
- HbTranslator* trans = new HbTranslator(TRANSLATIONS_PATH, TRANSLATIONS_FILE);
+ HbTranslator translator(TRANSLATIONS_PATH, TRANSLATIONS_FILE);
// Load language specific common localization file
- trans->loadCommon();
+ translator.loadCommon();
OstTrace0( camerax_performance, DUP4__MAIN, "msg: e_CX_LOAD_TRANSLATIONS 0" );
CX_DEBUG(("CxUI: ..translations loaded"));
+ // Create main window
OstTrace0( camerax_performance, DUP5__MAIN, "msg: e_CX_MAINWINDOW_CREATION 1" );
- HbMainWindow *mainWindow = new HbMainWindow(0, Hb::WindowFlagTransparent |
- Hb::WindowFlagNoBackground);
- mainWindow->setAttribute(Qt::WA_NoBackground);
+ HbMainWindow mainWindow(0, Hb::WindowFlagTransparent | Hb::WindowFlagNoBackground);
+ mainWindow.setAttribute(Qt::WA_NoBackground);
OstTrace0( camerax_performance, DUP6__MAIN, "msg: e_CX_MAINWINDOW_CREATION 0" );
- OstTrace0( camerax_performance, DUP11__MAIN, "msg: e_CX_CREATE_VIEW_MANAGER 1" );
- CxuiViewManager *viewManager = new CxuiViewManager(app, *mainWindow, *eng);
- OstTrace0( camerax_performance, DUP12__MAIN, "msg: e_CX_CREATE_VIEW_MANAGER 0" );
-
+ // Set main window to landscape and full screen
OstTrace0( camerax_performance, DUP13__MAIN, "msg: e_CX_MAINWINDOW_SETORIENTATION 1" );
- mainWindow->setOrientation(Qt::Horizontal);
+ mainWindow.setOrientation(Qt::Horizontal);
OstTrace0( camerax_performance, DUP14__MAIN, "msg: e_CX_MAINWINDOW_SETORIENTATION 0" );
+ OstTrace0( camerax_performance, DUP15__MAIN, "msg: e_CX_MAINWINDOW_FULLSCREEN 1" );
- OstTrace0( camerax_performance, DUP15__MAIN, "msg: e_CX_MAINWINDOW_FULLSCREEN 1" );
- mainWindow->showFullScreen();
+#ifdef Q_OS_SYMBIAN
+ mainWindow.showFullScreen();
+#else
+ /*
+ * todo : check if this is an Orbit bug or if there's a better solution
+ */
+ mainWindow.resize(640, 360);
+ mainWindow.setOrientation(Qt::Vertical, false);
+ mainWindow.show();
+ mainWindow.setOrientation(Qt::Horizontal, false);
+#endif //Q_OS_SYMBIAN
OstTrace0( camerax_performance, DUP16__MAIN, "msg: e_CX_MAINWINDOW_FULLSCREEN 0" );
- OstTrace0( camerax_performance, DUP17__MAIN, "msg: e_CX_PREPAREWINDOW 1" );
- eng->viewfinderControl().setWindow(mainWindow->effectiveWinId());
- OstTrace0( camerax_performance, DUP18__MAIN, "msg: e_CX_PREPAREWINDOW 0" );
+ // Create view manager
+ OstTrace0( camerax_performance, DUP11__MAIN, "msg: e_CX_CREATE_VIEW_MANAGER 1" );
+ CxuiViewManager *viewManager = new CxuiViewManager(app, mainWindow, *engine);
+ OstTrace0( camerax_performance, DUP12__MAIN, "msg: e_CX_CREATE_VIEW_MANAGER 0" );
- //! @todo initMode call added here as a temporary hack to change the startup sequence
- // in order to avoid GOOM issues.
- if (app.activateReason() != Hb::ActivationReasonService
- && viewManager->applicationState().currentState() == CxuiApplicationState::Normal) {
- User::After(2000000);
- if (app.activateReason() == Hb::ActivationReasonActivity) {
- // when started by activity, let viewmanager init
- // to correct mode
- viewManager->initEngine();
- } else {
- // normal start
- eng->initMode(eng->mode());
- }
- }
+ // Give main window id to engine for setting up viewfinder window behind it
+ OstTrace0( camerax_performance, DUP17__MAIN, "msg: e_CX_PREPAREWINDOW 1" );
+ engine->viewfinderControl().setWindow(mainWindow.effectiveWinId());
+ OstTrace0( camerax_performance, DUP18__MAIN, "msg: e_CX_PREPAREWINDOW 0" );
int returnValue = app.exec();
delete viewManager;
-
- // delete service provider instance
- CxuiServiceProvider::destroy();
-
- delete mainWindow;
- delete trans;
- delete eng;
+ CxuiServiceProvider::destroy(); // delete service provider instance
+ delete engine;
return returnValue;
}
--- a/camerauis/cameraxui/rom/camerax.iby Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/rom/camerax.iby Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -23,7 +23,6 @@
// Ui
S60_APP_EXE(cxui)
data = DATAZ_\private\10003a3f\import\apps\cxui_reg.rsc \private\10003a3f\import\apps\cxui_reg.rsc
-data = DATAZ_\APP_RESOURCE_DIR\cxui.mif APP_RESOURCE_DIR\cxui.mif
// Sounds
data = DATAZ_\system\sounds\digital\capture.wav system\sounds\digital\capture.wav
--- a/camerauis/cameraxui/rom/camerax_stub.pkg Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/rom/camerax_stub.pkg Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
; All rights reserved.
; This component and the accompanying materials are made available
; under the terms of "Eclipse Public License v1.0"
@@ -30,5 +30,4 @@
"" - "z:\sys\bin\cxui.exe"
"" - "z:\resource\apps\cxui.r*"
"" - "z:\private\10003a3f\import\apps\cxui_reg.rsc"
-"" - "z:\resource\apps\cxui.mif"
"" - "z:\sys\bin\cxengine.dll"
Binary file camerauis/cameraxui/rom/camerax_stub.sis has changed
--- a/camerauis/cameraxui/rom/cameraxresources.iby Thu Jul 15 01:52:14 2010 +0300
+++ b/camerauis/cameraxui/rom/cameraxresources.iby Thu Jul 15 01:53:45 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -20,9 +20,7 @@
#include <data_caging_paths_for_iby.hrh>
-data=DATAZ_\APP_RESOURCE_DIR\camera.rsc APP_RESOURCE_DIR\camera.rsc
-
-data=DATAZ_\QT_TRANSLATIONS_DIR\camera.qm QT_TRANSLATIONS_DIR\camera.qm
+data=DATAZ_\QT_TRANSLATIONS_DIR\camera.qm QT_TRANSLATIONS_DIR\camera.qm
S60_APP_RESOURCE(cxui)