camerauis/cameraxui/cxengine/src/cxeenginesymbian.cpp
changeset 43 0e652f8f1fbd
parent 28 3075d9b614e6
child 45 24fd82631616
equal deleted inserted replaced
28:3075d9b614e6 43:0e652f8f1fbd
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    21 #include "cxecameradevicecontrolsymbian.h"
    21 #include "cxecameradevicecontrolsymbian.h"
    22 #include "cxestillcapturecontrolsymbian.h"
    22 #include "cxestillcapturecontrolsymbian.h"
    23 #include "cxevideocapturecontrolsymbian.h"
    23 #include "cxevideocapturecontrolsymbian.h"
    24 #include "cxesettingscontrolsymbian.h"
    24 #include "cxesettingscontrolsymbian.h"
    25 #include "cxeviewfindercontrolsymbian.h"
    25 #include "cxeviewfindercontrolsymbian.h"
       
    26 #include "cxesnapshotcontrol.h"
    26 #include "cxefilenamegeneratorsymbian.h"
    27 #include "cxefilenamegeneratorsymbian.h"
    27 #include "cxeautofocuscontrolsymbian.h"
    28 #include "cxeautofocuscontrolsymbian.h"
    28 #include "cxezoomcontrolsymbian.h"
    29 #include "cxezoomcontrolsymbian.h"
    29 #include "cxequalitypresetssymbian.h"
    30 #include "cxequalitypresetssymbian.h"
    30 #include "cxutils.h"
    31 #include "cxutils.h"
    36 #include "cxesensoreventhandlersymbian.h"
    37 #include "cxesensoreventhandlersymbian.h"
    37 #include "cxefilesavethread.h"
    38 #include "cxefilesavethread.h"
    38 #include "cxecameradevice.h"
    39 #include "cxecameradevice.h"
    39 #include "cxememorymonitor.h"
    40 #include "cxememorymonitor.h"
    40 #include "cxediskmonitor.h"
    41 #include "cxediskmonitor.h"
       
    42 #include "cxegeotaggingtrail.h"
    41 
    43 
    42 #include "OstTraceDefinitions.h"
    44 #include "OstTraceDefinitions.h"
    43 #ifdef OST_TRACE_COMPILER_IN_USE
    45 #ifdef OST_TRACE_COMPILER_IN_USE
    44 #include "cxeenginesymbianTraces.h"
    46 #include "cxeenginesymbianTraces.h"
    45 #endif
    47 #endif
    49 
    51 
    50 CxeEngineSymbian::CxeEngineSymbian()
    52 CxeEngineSymbian::CxeEngineSymbian()
    51     : mCameraDeviceControl(NULL),
    53     : mCameraDeviceControl(NULL),
    52       mCameraDevice(NULL),
    54       mCameraDevice(NULL),
    53       mViewfinderControl(NULL),
    55       mViewfinderControl(NULL),
       
    56       mSnapshotControl(NULL),
    54       mStillCaptureControl(NULL),
    57       mStillCaptureControl(NULL),
    55       mVideoCaptureControl(NULL),
    58       mVideoCaptureControl(NULL),
    56       mSettingsControl(NULL),
    59       mSettingsControl(NULL),
    57       mAutoFocusControl(NULL),
    60       mAutoFocusControl(NULL),
    58       mZoomControl(NULL),
    61       mZoomControl(NULL),
    60       mFeatureManager(NULL),
    63       mFeatureManager(NULL),
    61       mSettingsModel(NULL),
    64       mSettingsModel(NULL),
    62       mFilenameGenerator(NULL),
    65       mFilenameGenerator(NULL),
    63       mSensorEventHandler(NULL),
    66       mSensorEventHandler(NULL),
    64       mQualityPresets(NULL),
    67       mQualityPresets(NULL),
    65       mFileSaveThread(NULL)
    68       mFileSaveThread(NULL),
    66 {
    69       mDiskMonitor(NULL),
    67     CX_DEBUG_ENTER_FUNCTION();
    70       mMemoryMonitor(NULL),
    68 
    71       mGeoTaggingTrail(NULL)
    69     // Do secondary construction during reserve call.
    72 {
    70     //! @todo temporarily commented as part of a hack to change the startup sequence
    73     CX_DEBUG_IN_FUNCTION();
    71     // to avoid GOOM issues
       
    72    // connect(this, SIGNAL(reserveStarted()), this, SLOT(construct()));
       
    73 
       
    74     CxeCameraDeviceControlSymbian *deviceControl = new CxeCameraDeviceControlSymbian();
       
    75     mCameraDeviceControl = deviceControl;
       
    76     mCameraDevice = deviceControl->cameraDevice();
       
    77     CX_ASSERT_ALWAYS(mCameraDeviceControl);
       
    78     CX_ASSERT_ALWAYS(mCameraDevice);
       
    79 
       
    80     mCameraDeviceControl->init();
       
    81     //! @todo calling construct here is a hack to change the startup sequence
       
    82     // to avoid GOOM issues
       
    83     construct();
       
    84     
       
    85     CX_DEBUG_EXIT_FUNCTION();
       
    86 }
    74 }
    87 
    75 
    88 
    76 
    89 /*!
    77 /*!
    90     Create all control classes and connect relevant signals
    78     Create all control classes and connect relevant signals
   108 {
    96 {
   109     CX_DEBUG_ENTER_FUNCTION();
    97     CX_DEBUG_ENTER_FUNCTION();
   110 
    98 
   111     // Check we do this only once.
    99     // Check we do this only once.
   112     if (!mSettingsModel) {
   100     if (!mSettingsModel) {
   113         OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_IN, "e_CX_ENGINE_CREATE_CONTROLS 1");
   101         OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_IN, "msg: e_CX_ENGINE_CREATE_CONTROLS 1");
       
   102 
       
   103         CxeCameraDeviceControlSymbian *deviceControl = new CxeCameraDeviceControlSymbian();
       
   104         mCameraDeviceControl = deviceControl;
       
   105         mCameraDevice = deviceControl->cameraDevice();
       
   106 
       
   107         CX_ASSERT_ALWAYS(mCameraDeviceControl);
       
   108         CX_ASSERT_ALWAYS(mCameraDevice);
       
   109 
       
   110         mCameraDeviceControl->init();
   114 
   111 
   115         CxeSettingsCenRepStore *settingsStore(NULL);
   112         CxeSettingsCenRepStore *settingsStore(NULL);
   116         if (XQServiceUtil::isService()) {
   113         if (XQServiceUtil::isService()) {
   117             settingsStore = new CxeSettingsLocalStore();
   114             settingsStore = new CxeSettingsLocalStore();
   118         } else {
   115         } else {
   122         mSettingsModel = new CxeSettingsModelImp(settingsStore);
   119         mSettingsModel = new CxeSettingsModelImp(settingsStore);
   123         // assert if settings model fails to intialize
   120         // assert if settings model fails to intialize
   124         CX_DEBUG_ASSERT(mSettingsModel);
   121         CX_DEBUG_ASSERT(mSettingsModel);
   125 
   122 
   126         mSettings = new CxeSettingsImp(*mSettingsModel);
   123         mSettings = new CxeSettingsImp(*mSettingsModel);
   127         
   124 
       
   125         // Loading current camera mode value from settings store and updating
       
   126 		// devicecontrol
       
   127         Cxe::CameraMode cameraMode = Cxe::ImageMode;
       
   128         int value;
       
   129         CxeError::Id err = mSettings->get(CxeSettingIds::CAMERA_MODE, value);
       
   130         if (!err) {
       
   131             cameraMode = static_cast<Cxe::CameraMode>(value);
       
   132         }
       
   133         // set current camera mode to devicecontrol.
       
   134         mCameraDeviceControl->setMode(cameraMode);
       
   135 
   128         //! @todo a temporary hack to change the startup sequence to avoid GOOM problems
   136         //! @todo a temporary hack to change the startup sequence to avoid GOOM problems
   129         static_cast<CxeSettingsImp*>(mSettings)->loadSettings(mode());
   137         static_cast<CxeSettingsImp*>(mSettings)->loadSettings(mode());
   130         
   138 
   131         
   139 
   132         // Connect P&S key updates to settings signal.
   140         // Connect P&S key updates to settings signal.
   133         connect(settingsStore, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)),
   141         connect(settingsStore, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)),
   134                 mSettings, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)));
   142                 mSettings, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)));
   135 
   143 
   136         mFeatureManager = new CxeFeatureManagerImp(*mSettingsModel);
   144         mFeatureManager = new CxeFeatureManagerImp(*mSettingsModel);
   151             mode());
   159             mode());
   152 
   160 
   153         mViewfinderControl = new CxeViewfinderControlSymbian(*mCameraDevice,
   161         mViewfinderControl = new CxeViewfinderControlSymbian(*mCameraDevice,
   154             *mCameraDeviceControl);
   162             *mCameraDeviceControl);
   155 
   163 
   156         mAutoFocusControl = new CxeAutoFocusControlSymbian(*mCameraDevice);
   164         mSnapshotControl = new CxeSnapshotControl(*mCameraDevice);
       
   165 
       
   166         mAutoFocusControl = new CxeAutoFocusControlSymbian(*mCameraDevice,
       
   167 		                            *mSettings);
   157 
   168 
   158         mFileSaveThread = CxeFileSaveThreadFactory::createFileSaveThread();
   169         mFileSaveThread = CxeFileSaveThreadFactory::createFileSaveThread();
   159 
   170 
   160         mStillCaptureControl = new CxeStillCaptureControlSymbian(
   171         mStillCaptureControl = new CxeStillCaptureControlSymbian(
   161             *mCameraDevice, *mViewfinderControl, *mCameraDeviceControl,
   172             *mCameraDevice, *mViewfinderControl, *mSnapshotControl, *mCameraDeviceControl,
   162             *mFilenameGenerator, *mSensorEventHandler, *mAutoFocusControl,
   173             *mFilenameGenerator, *mSensorEventHandler, *mAutoFocusControl,
   163             *mSettings, *mQualityPresets, *mFileSaveThread, *mDiskMonitor);
   174             *mSettings, *mQualityPresets, *mFileSaveThread, *mDiskMonitor);
   164 
   175 
   165         mZoomControl = new CxeZoomControlSymbian( *mCameraDevice,
   176         mZoomControl = new CxeZoomControlSymbian(
   166             *mCameraDeviceControl, *mSettings, *mFeatureManager);
   177             *mCameraDevice, *mCameraDeviceControl, *mSettings, *mFeatureManager);
   167 
   178 
   168         mVideoCaptureControl = new CxeVideoCaptureControlSymbian(
   179         mVideoCaptureControl = new CxeVideoCaptureControlSymbian(
   169             *mCameraDevice, *mViewfinderControl, *mCameraDeviceControl,
   180             *mCameraDevice, *mViewfinderControl, *mSnapshotControl, *mCameraDeviceControl,
   170             *mFilenameGenerator, *mSettings, *mQualityPresets, *mDiskMonitor);
   181             *mFilenameGenerator, *mSettings, *mQualityPresets, *mDiskMonitor);
   171 
   182 
   172         mSettingsControl = new CxeSettingsControlSymbian(*mCameraDevice, *mSettings);
   183         mSettingsControl = new CxeSettingsControlSymbian(*mCameraDevice, *mSettings);
   173 
   184 
   174         OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_OUT, "e_CX_ENGINE_CREATE_CONTROLS 0");
   185         mGeoTaggingTrail = new CxeGeoTaggingTrail(*mStillCaptureControl,
       
   186                                                   *mVideoCaptureControl,
       
   187                                                   *mSettings);
       
   188 
       
   189         OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_OUT, "msg: e_CX_ENGINE_CREATE_CONTROLS 0");
   175     }
   190     }
   176 
   191 
   177     CX_DEBUG_EXIT_FUNCTION();
   192     CX_DEBUG_EXIT_FUNCTION();
   178 }
   193 }
   179 
   194 
   181     Connect internal signals for control classes
   196     Connect internal signals for control classes
   182 */
   197 */
   183 void CxeEngineSymbian::connectSignals()
   198 void CxeEngineSymbian::connectSignals()
   184 {
   199 {
   185     CX_DEBUG_ENTER_FUNCTION();
   200     CX_DEBUG_ENTER_FUNCTION();
   186     OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_IN, "e_CX_ENGINE_CONNECT_SIGNALS 1");
   201     OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_IN, "msg: e_CX_ENGINE_CONNECT_SIGNALS 1");
   187 
   202 
   188     // enabling scene setting change callbacks to Autofocus control
   203     // enabling scene setting change callbacks to Autofocus control
   189     connect(mSettings,
   204     connect(mSettings,
   190             SIGNAL(sceneChanged(CxeScene&)),
   205             SIGNAL(sceneChanged(CxeScene&)),
   191             mAutoFocusControl,
   206             mAutoFocusControl,
   198             SLOT(handleAutofocusStateChanged(CxeAutoFocusControl::State,CxeError::Id)));
   213             SLOT(handleAutofocusStateChanged(CxeAutoFocusControl::State,CxeError::Id)));
   199 
   214 
   200     // Connect signals for ECam events
   215     // Connect signals for ECam events
   201     connect(mCameraDeviceControl,
   216     connect(mCameraDeviceControl,
   202             SIGNAL(cameraEvent(int,int)),
   217             SIGNAL(cameraEvent(int,int)),
   203             mVideoCaptureControl,
   218             mSnapshotControl,
   204             SLOT(handleCameraEvent(int,int)));
   219             SLOT(handleCameraEvent(int,int)));
   205 
   220 
   206     connect(mCameraDeviceControl,
   221     connect(mCameraDeviceControl,
   207             SIGNAL(cameraEvent(int,int)),
   222             SIGNAL(cameraEvent(int,int)),
   208             mAutoFocusControl,
   223             mAutoFocusControl,
       
   224             SLOT(handleCameraEvent(int,int)));
       
   225 
       
   226     connect(mCameraDeviceControl,
       
   227             SIGNAL(cameraEvent(int,int)),
       
   228             mStillCaptureControl,
   209             SLOT(handleCameraEvent(int,int)));
   229             SLOT(handleCameraEvent(int,int)));
   210 
   230 
   211     // Connect signal for device ready events
   231     // Connect signal for device ready events
   212     connect(mCameraDeviceControl,
   232     connect(mCameraDeviceControl,
   213             SIGNAL(deviceReady()),
   233             SIGNAL(deviceReady()),
   238             SLOT(prepareZoomForVideo()));
   258             SLOT(prepareZoomForVideo()));
   239 
   259 
   240     // Connect file saving thread to snapshot signals and video saved signal.
   260     // Connect file saving thread to snapshot signals and video saved signal.
   241     // Image saving it handles internally.
   261     // Image saving it handles internally.
   242     connect(mStillCaptureControl,
   262     connect(mStillCaptureControl,
   243             SIGNAL(snapshotReady(CxeError::Id, const QPixmap&, int)),
   263             SIGNAL(snapshotReady(CxeError::Id, const QImage&, int)),
   244             mFileSaveThread,
   264             mFileSaveThread,
   245             SLOT(handleSnapshotReady(CxeError::Id, const QPixmap&, int)));
   265             SLOT(handleSnapshotReady(CxeError::Id, const QImage&, int)));
   246     connect(mVideoCaptureControl,
   266     connect(mVideoCaptureControl,
   247             SIGNAL(videoComposed(CxeError::Id, const QString&)),
   267             SIGNAL(videoComposed(CxeError::Id, const QString&)),
   248             mFileSaveThread,
   268             mFileSaveThread,
   249             SLOT(handleVideoSaved(CxeError::Id, const QString&)));
   269             SLOT(handleVideoSaved(CxeError::Id, const QString&)));
   250     connect(mVideoCaptureControl,
   270     connect(mVideoCaptureControl,
   251             SIGNAL(snapshotReady(CxeError::Id, const QPixmap&, const QString&)),
   271             SIGNAL(snapshotReady(CxeError::Id, const QImage&, const QString&)),
   252             mFileSaveThread,
   272             mFileSaveThread,
   253             SLOT(handleSnapshotReady(CxeError::Id, const QPixmap&, const QString&)));
   273             SLOT(handleSnapshotReady(CxeError::Id, const QImage&, const QString&)));
   254 
   274 
   255     OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_OUT, "e_CX_ENGINE_CONNECT_SIGNALS 0");
   275 
       
   276     // stop location trail when releasing camera.
       
   277     connect(mCameraDevice,
       
   278             SIGNAL(prepareForRelease()),
       
   279             mGeoTaggingTrail,
       
   280             SLOT(stop()),
       
   281             Qt::UniqueConnection);
       
   282 
       
   283     OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_OUT, "msg: e_CX_ENGINE_CONNECT_SIGNALS 0");
   256 
   284 
   257     CX_DEBUG_EXIT_FUNCTION();
   285     CX_DEBUG_EXIT_FUNCTION();
   258 }
   286 }
   259 
   287 
   260 CxeEngineSymbian::~CxeEngineSymbian()
   288 CxeEngineSymbian::~CxeEngineSymbian()
   261 {
   289 {
   262     CX_DEBUG_ENTER_FUNCTION();
   290     CX_DEBUG_ENTER_FUNCTION();
   263 
   291 
       
   292     // Saving current camera mode to cenrep
       
   293     saveMode();
       
   294 
       
   295     delete mGeoTaggingTrail;
   264     delete mAutoFocusControl;
   296     delete mAutoFocusControl;
   265     delete mZoomControl;
   297     delete mZoomControl;
   266     delete mSettingsControl;
   298     delete mSettingsControl;
   267     delete mStillCaptureControl;
   299     delete mStillCaptureControl;
   268     delete mVideoCaptureControl;
   300     delete mVideoCaptureControl;
       
   301     delete mSnapshotControl;
   269     delete mViewfinderControl;
   302     delete mViewfinderControl;
   270     delete mFilenameGenerator;
   303     delete mFilenameGenerator;
   271     delete mDiskMonitor;
   304     delete mDiskMonitor;
   272     delete mMemoryMonitor;
   305     delete mMemoryMonitor;
   273     delete mFeatureManager;
   306     delete mFeatureManager;
   288 CxeViewfinderControl &CxeEngineSymbian::viewfinderControl()
   321 CxeViewfinderControl &CxeEngineSymbian::viewfinderControl()
   289 {
   322 {
   290     return *mViewfinderControl;
   323     return *mViewfinderControl;
   291 }
   324 }
   292 
   325 
       
   326 CxeSnapshotControl &CxeEngineSymbian::snapshotControl()
       
   327 {
       
   328     return *mSnapshotControl;
       
   329 }
       
   330 
   293 CxeStillCaptureControl &CxeEngineSymbian::stillCaptureControl()
   331 CxeStillCaptureControl &CxeEngineSymbian::stillCaptureControl()
   294 {
   332 {
   295     return *mStillCaptureControl;
   333     return *mStillCaptureControl;
   296 }
   334 }
   297 
   335 
   308 CxeZoomControl &CxeEngineSymbian::zoomControl()
   346 CxeZoomControl &CxeEngineSymbian::zoomControl()
   309 {
   347 {
   310     return *mZoomControl;
   348     return *mZoomControl;
   311 }
   349 }
   312 
   350 
   313 // Get the settings handle
   351 /*!
       
   352 Returns the settings handle
       
   353 */
   314 CxeSettings &CxeEngineSymbian::settings()
   354 CxeSettings &CxeEngineSymbian::settings()
   315 {
   355 {
   316     return *mSettings;
   356     return *mSettings;
   317 }
   357 }
   318 
   358 
   319 // Get the sensor event  handle
   359 /*!
       
   360 Returns the sensor event  handle
       
   361 */
   320 CxeSensorEventHandler &CxeEngineSymbian::sensorEventHandler()
   362 CxeSensorEventHandler &CxeEngineSymbian::sensorEventHandler()
   321 {
   363 {
   322     return *mSensorEventHandler;
   364     return *mSensorEventHandler;
   323 }
   365 }
   324 
   366 
   327 {
   369 {
   328     return *mFeatureManager;
   370     return *mFeatureManager;
   329 }
   371 }
   330 
   372 
   331 /*!
   373 /*!
   332 * Get memory monitor utility handle.
   374 * Returns memory monitor utility handle.
   333 */
   375 */
   334 CxeMemoryMonitor &CxeEngineSymbian::memoryMonitor()
   376 CxeMemoryMonitor &CxeEngineSymbian::memoryMonitor()
   335 {
   377 {
   336     return *mMemoryMonitor;
   378     return *mMemoryMonitor;
   337 }
   379 }
   338 
   380 
   339 /*
   381 
       
   382 /*!
       
   383  Returns geotaggingtrail handle
       
   384  */
       
   385 CxeGeoTaggingTrail &CxeEngineSymbian::geoTaggingTrail()
       
   386 {
       
   387     return *mGeoTaggingTrail;
       
   388 }
       
   389 
       
   390 /*!
   340 * Returns true, if the engine is ready or else false.
   391 * Returns true, if the engine is ready or else false.
   341 */
   392 */
   342 bool CxeEngineSymbian::isEngineReady()
   393 bool CxeEngineSymbian::isEngineReady()
   343 {
   394 {
   344     bool ready = false;
   395     bool ready = false;
   362     CxeStillCaptureControl in still image mode).
   413     CxeStillCaptureControl in still image mode).
   363 */
   414 */
   364 void CxeEngineSymbian::doInit()
   415 void CxeEngineSymbian::doInit()
   365 {
   416 {
   366     CX_DEBUG_ENTER_FUNCTION();
   417     CX_DEBUG_ENTER_FUNCTION();
   367     OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_IN, "e_CX_ENGINE_DO_INIT 1");
   418     OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_IN, "msg: e_CX_ENGINE_DO_INIT 1");
   368 
   419 
   369     mFilenameGenerator->init(mode());
   420     mFilenameGenerator->init(mode());
   370     // load settings whenever we change mode or start camera or switch camera
   421     // load settings whenever we change mode or start camera or switch camera
   371     CxeSettingsImp *settingsImp = qobject_cast<CxeSettingsImp*>(mSettings);
   422     CxeSettingsImp *settingsImp = qobject_cast<CxeSettingsImp*>(mSettings);
   372     if (settingsImp) {
   423     if (settingsImp) {
   373         settingsImp->loadSettings(mode());
   424         settingsImp->loadSettings(mode());
   374     }
   425     }
   375 
   426 
   376 
       
   377     if (mode() == Cxe::ImageMode) {
   427     if (mode() == Cxe::ImageMode) {
       
   428         // start geotagging trail in image mode.
       
   429         startGeotaggingTrail();
   378         mVideoCaptureControl->deinit();
   430         mVideoCaptureControl->deinit();
   379         mStillCaptureControl->init();
   431         mStillCaptureControl->init();
   380     } else if (mode() == Cxe::VideoMode) {
   432     } else if (mode() == Cxe::VideoMode) {
   381         mStillCaptureControl->deinit();
   433         mStillCaptureControl->deinit();
       
   434         if (mGeoTaggingTrail) {
       
   435             // in video mode, Geotagging is not supported for now.
       
   436             mGeoTaggingTrail->stop();
       
   437         }
   382         mVideoCaptureControl->init();
   438         mVideoCaptureControl->init();
   383     }
   439     }
   384 
   440 
   385     OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_OUT, "e_CX_ENGINE_DO_INIT 0");
   441     OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_OUT, "msg: e_CX_ENGINE_DO_INIT 0");
   386 
   442 
   387     CX_DEBUG_EXIT_FUNCTION();
   443     CX_DEBUG_EXIT_FUNCTION();
   388 }
   444 }
   389 
   445 
       
   446 /*!
       
   447  * Returns camera mode.
       
   448  */
   390 Cxe::CameraMode CxeEngineSymbian::mode() const
   449 Cxe::CameraMode CxeEngineSymbian::mode() const
   391 {
   450 {
   392     return mCameraDeviceControl->mode();
   451     return mCameraDeviceControl->mode();
   393 }
   452 }
   394 
   453 
       
   454 /*!
       
   455  * Sets the camera mode.
       
   456  * \parama mode New camera mode
       
   457  */
       
   458 void CxeEngineSymbian::setMode(Cxe::CameraMode mode)
       
   459 {
       
   460     CX_DEBUG_ENTER_FUNCTION();
       
   461     mCameraDeviceControl->setMode(mode);
       
   462     CX_DEBUG_EXIT_FUNCTION();
       
   463 }
   395 /*!
   464 /*!
   396     Check if we need to reserve camera.
   465     Check if we need to reserve camera.
   397 */
   466 */
   398 bool CxeEngineSymbian::reserveNeeded()
   467 bool CxeEngineSymbian::reserveNeeded()
   399 {
   468 {
   455 }
   524 }
   456 
   525 
   457 void CxeEngineSymbian::initMode(Cxe::CameraMode cameraMode)
   526 void CxeEngineSymbian::initMode(Cxe::CameraMode cameraMode)
   458 {
   527 {
   459     CX_DEBUG_ENTER_FUNCTION();
   528     CX_DEBUG_ENTER_FUNCTION();
       
   529     OstTrace0(camerax_performance, CXEENGINE_INITMODE_IN, "msg: e_CX_ENGINE_INIT_MODE 1");
   460 
   530 
   461     if (mode() == cameraMode) {
   531     if (mode() == cameraMode) {
   462         CX_DEBUG(("initMode() called for current mode"));
   532         CX_DEBUG(("initMode() called for current mode"));
   463 
   533 
   464         // We're already in the requested mode. However, it is possible
   534         // We're already in the requested mode. However, it is possible
   506             // Camera device control is in Initializing state. Initialization will continue
   576             // Camera device control is in Initializing state. Initialization will continue
   507             // when we get the deviceReady() callback.
   577             // when we get the deviceReady() callback.
   508         }
   578         }
   509     }
   579     }
   510 
   580 
       
   581     OstTrace0(camerax_performance, CXEENGINE_INITMODE_OUT, "msg: e_CX_ENGINE_INIT_MODE 0");
   511     CX_DEBUG_EXIT_FUNCTION();
   582     CX_DEBUG_EXIT_FUNCTION();
   512 }
   583 }
   513 
   584 
   514 void CxeEngineSymbian::reserve()
   585 void CxeEngineSymbian::reserve()
   515 {
   586 {
   517     mCameraDeviceControl->reserve();
   588     mCameraDeviceControl->reserve();
   518     emit reserveStarted();
   589     emit reserveStarted();
   519     CX_DEBUG_EXIT_FUNCTION();
   590     CX_DEBUG_EXIT_FUNCTION();
   520 }
   591 }
   521 
   592 
       
   593 
       
   594 /*!
       
   595 * Saves current mode to the cenrep
       
   596 */
       
   597 void CxeEngineSymbian::saveMode()
       
   598 {
       
   599     CX_DEBUG_ENTER_FUNCTION();
       
   600 
       
   601     if (mCameraDeviceControl && mSettings) {
       
   602         int value = mCameraDeviceControl->mode();
       
   603         mSettings->set(CxeSettingIds::CAMERA_MODE, value);
       
   604     }
       
   605 
       
   606     CX_DEBUG_EXIT_FUNCTION();
       
   607 }
       
   608 
       
   609 
       
   610 /*!
       
   611 * Start geotagging trail.
       
   612 */
       
   613 void CxeEngineSymbian::startGeotaggingTrail()
       
   614 {
       
   615     CX_DEBUG_ENTER_FUNCTION();
       
   616     OstTrace0(camerax_performance, CXEENGINE_START_GEO_IN, "msg: e_CX_ENGINE_START_GEOTAGGING 1");
       
   617 
       
   618     if (mGeoTaggingTrail && mSettings) {
       
   619         // location trail is limited to image mode only for now.
       
   620         int value = Cxe::GeoTaggingDisclaimerDisabled;
       
   621         mSettings->get(CxeSettingIds::GEOTAGGING_DISCLAIMER, value);
       
   622 
       
   623         // we start location trail only when Geotagging First-time-use note is accepted by user.
       
   624         if (value == Cxe::GeoTaggingDisclaimerDisabled) {
       
   625             mGeoTaggingTrail->start();
       
   626         }
       
   627     }
       
   628 
       
   629     OstTrace0(camerax_performance, CXEENGINE_START_GEO_OUT, "msg: e_CX_ENGINE_START_GEOTAGGING 0");
       
   630     CX_DEBUG_EXIT_FUNCTION();
       
   631 }
       
   632 
   522 // End of file
   633 // End of file