camerauis/cameraxui/cxengine/src/cxeautofocuscontrolsymbian.cpp
changeset 28 3075d9b614e6
parent 19 d9aefe59d544
child 39 c5025ea871a1
child 43 0e652f8f1fbd
equal deleted inserted replaced
19:d9aefe59d544 28:3075d9b614e6
    50 
    50 
    51     qRegisterMetaType<CxeAutoFocusControl::State>();
    51     qRegisterMetaType<CxeAutoFocusControl::State>();
    52 
    52 
    53     initializeStates();
    53     initializeStates();
    54 
    54 
       
    55     OstTrace0(camerax_performance, CXEAUTOFOCUSCONTROLSYMBIAN_CREATE_MID1, "msg: e_CX_ENGINE_CONNECT_SIGNALS 1");
    55     // connect signals from cameraDevice, so we recieve events when camera reference changes
    56     // connect signals from cameraDevice, so we recieve events when camera reference changes
    56     QObject::connect( &cameraDevice,
    57     QObject::connect( &cameraDevice,
    57                       SIGNAL(prepareForCameraDelete()),
    58                       SIGNAL(prepareForCameraDelete()),
    58                       this,SLOT(prepareForCameraDelete()) );
    59                       this,SLOT(prepareForCameraDelete()) );
    59 
    60 
    62                       this,SLOT(handleCameraAllocated(CxeError::Id)) );
    63                       this,SLOT(handleCameraAllocated(CxeError::Id)) );
    63 
    64 
    64     QObject::connect( &cameraDevice,
    65     QObject::connect( &cameraDevice,
    65                       SIGNAL(prepareForRelease()),
    66                       SIGNAL(prepareForRelease()),
    66                       this,SLOT(prepareForRelease()) );
    67                       this,SLOT(prepareForRelease()) );
       
    68     OstTrace0(camerax_performance, CXEAUTOFOCUSCONTROLSYMBIAN_CREATE_MID2, "msg: e_CX_ENGINE_CONNECT_SIGNALS 0");
    67 
    69 
    68     initializeResources();
    70     initializeResources();
    69 
    71 
    70     CX_DEBUG_EXIT_FUNCTION();
    72     CX_DEBUG_EXIT_FUNCTION();
    71 }
    73 }
    82 }
    84 }
    83 
    85 
    84 
    86 
    85 /*
    87 /*
    86 * Start Autofocus
    88 * Start Autofocus
    87 */
    89 * \param soundEnabled False if the auto focus sound don't need to be played
    88 CxeError::Id CxeAutoFocusControlSymbian::start()
    90 * Default value for soundEnabled is true
    89 {
    91 */
    90     CX_DEBUG( ("CxeAutoFocusControlSymbian::start() <> state: %d", state() ) );
    92 CxeError::Id CxeAutoFocusControlSymbian::start(bool soundEnabled)
    91 
    93 {
       
    94     CX_DEBUG( ("CxeAutoFocusControlSymbian::start() <> state: %d, sound enabled: %d",
       
    95                state(), soundEnabled ) );
       
    96     mSoundEnabled = soundEnabled;
    92     int err = KErrNone;
    97     int err = KErrNone;
    93 
    98 
    94     CX_ASSERT_ALWAYS(mAdvancedSettings);
    99     CX_ASSERT_ALWAYS(mAdvancedSettings);
    95 
   100 
    96     if ( state() != CxeAutoFocusControl::InProgress && state() != CxeAutoFocusControl::Canceling  ) {
   101     if ( state() != CxeAutoFocusControl::InProgress && state() != CxeAutoFocusControl::Canceling  ) {
   102     } else { // AF was started earlier, can't start until it completes
   107     } else { // AF was started earlier, can't start until it completes
   103         err = KErrInUse;
   108         err = KErrInUse;
   104     }
   109     }
   105 
   110 
   106     CX_DEBUG( ("CxeAutoFocusControlSymbian::start() <= err : %d", err ) );
   111     CX_DEBUG( ("CxeAutoFocusControlSymbian::start() <= err : %d", err ) );
   107 
       
   108     return CxeErrorHandlingSymbian::map(err);
   112     return CxeErrorHandlingSymbian::map(err);
   109 }
   113 }
   110 
   114 
   111 
   115 
   112 
   116 
   197               KUidECamEventCameraSettingsOptimalFocusUidValue,
   201               KUidECamEventCameraSettingsOptimalFocusUidValue,
   198               KUidECamEventCameraSettingAutoFocusType2UidValue ));
   202               KUidECamEventCameraSettingAutoFocusType2UidValue ));
   199 
   203 
   200     // We're only interested in autofocus events
   204     // We're only interested in autofocus events
   201     if ( eventUid == KUidECamEventCameraSettingsOptimalFocusUidValue ||
   205     if ( eventUid == KUidECamEventCameraSettingsOptimalFocusUidValue ||
   202          eventUid == KUidECamEventCameraSettingAutoFocusType2UidValue ) {
   206          eventUid == KUidECamEventCameraSettingAutoFocusType2UidValue ||
       
   207          eventUid == KUidECamEventCameraSettingFocusRangeUidValue) {
   203          // Autofocus Event handle it.
   208          // Autofocus Event handle it.
   204          handleAfEvent(eventUid, error);
   209          handleAfEvent(eventUid, error);
   205     }
   210     }
   206 
   211 
   207     CX_DEBUG_EXIT_FUNCTION();
   212     CX_DEBUG_EXIT_FUNCTION();
   408             if (KErrNone == error) {
   413             if (KErrNone == error) {
   409                 setState(CxeAutoFocusControl::Ready);
   414                 setState(CxeAutoFocusControl::Ready);
   410             } else {
   415             } else {
   411                 setState(CxeAutoFocusControl::Failed, error);
   416                 setState(CxeAutoFocusControl::Failed, error);
   412             }
   417             }
       
   418          } else if (eventUid == KUidECamEventCameraSettingFocusRangeUidValue) {
       
   419              // check for error, we don't need this event for anything else
       
   420              if (error != KErrNone) {
       
   421                  CX_DEBUG(("CxeAutofocusControlSymbian::handleAfEvent <> "
       
   422                          "KUidECamEventCameraSettingFocusRangeUidValue: autofocus failed %d", error));
       
   423                  setState(CxeAutoFocusControl::Failed, error);
       
   424              }
   413          }
   425          }
   414          break;
   426          break;
   415         }
   427         }
   416     case CxeAutoFocusControl::Canceling: {
   428     case CxeAutoFocusControl::Canceling: {
   417         CX_DEBUG(("CxeAutoFocusControlSymbian::handleAfEvent <> Canceling"));
   429         CX_DEBUG(("CxeAutoFocusControlSymbian::handleAfEvent <> Canceling"));
   431     }
   443     }
   432     default:
   444     default:
   433         break;
   445         break;
   434     } // end switch
   446     } // end switch
   435 
   447 
       
   448     CX_DEBUG_EXIT_FUNCTION();
       
   449 }
       
   450 
       
   451 /*!
       
   452   * Public method for checking if auto focus sound is enabled
       
   453   * \return true if enabled
       
   454   */
       
   455 bool CxeAutoFocusControlSymbian::isSoundEnabled() const
       
   456 {
       
   457     return mSoundEnabled;
   436 }
   458 }
   437 
   459 
   438 // end of file
   460 // end of file