diff -r 51dda465e618 -r 38fb6f7eacd5 camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp --- a/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Wed Apr 14 15:41:04 2010 +0300 +++ b/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Tue Apr 27 16:19:06 2010 +0300 @@ -856,6 +856,10 @@ HandleVideoEvent( ECamCameraEventVideoInit, aError ); // DelayCallback( ECamCameraEventVideoInit, aError, 500000 ); #else + if( aError == KErrWrite ) + { + aError = KErrNone; + } if( aError && ( iIveCancel || ( !iIveSequenceActive && iIveRecoveryOngoing ) ) ) // Return if error and recovering process has been started, @@ -994,6 +998,10 @@ #ifdef CAMERAAPP_CAE_ERR_SIMULATION HandleVideoEvent( ECamCameraEventVideoStop, KErrUnknown ); #else + if( aError == KErrWrite ) + { + aError = KErrNone; + } HandleVideoEvent( ECamCameraEventVideoStop, aError ); #endif // CAMERAAPP_CAE_ERR_SIMULATION // Change stopping mode back to default sync mode @@ -2890,7 +2898,7 @@ params().iRect ); (void) SetVfWindowOrdinal( orgPos ); // back to original - if ( ECamActiveCameraSecondary == appUi->ActiveCamera() ) + if ( appUi && ECamActiveCameraSecondary == appUi->ActiveCamera() ) { iCamera->SetViewFinderMirrorL(ETrue); } @@ -2959,7 +2967,10 @@ iInfo.iVfState = ECamTriActive; //view finder started now(set stop status as false) - appUi->SetViewFinderStoppedStatus( EFalse ); + if ( appUi ) + { + appUi->SetViewFinderStoppedStatus( EFalse ); + } break; } // ----------------------------------------------------- @@ -4228,7 +4239,7 @@ iIveRecoveryCount && // Give up eventually !appUi->AppInBackground( EFalse ) && // Only if on the foreground ( !iReleasedByUi || // Try recover if unknown reason - appUi->StandbyStatus() ) && // or known error + ( appUi->StandbyStatus() && appUi->IsRecoverableStatus() ) ) && // or known error !iAppController.InVideocallOrRinging() && // Video telephony parallel use case !iIveRecoveryOngoing // processing recovery sequence ) @@ -6644,7 +6655,7 @@ return; } __ASSERT_DEBUG(view, CamPanic(ECamPanicNullPointer)); - if ( appUi->StandbyStatus() && view->IsInStandbyMode() ) + if ( appUi->StandbyStatus() && appUi->IsRecoverableStatus() && view->IsInStandbyMode() ) { PRINT( _L("Camera <> CCamCameraController::DoIveRecovery - Standby mode active, try to exit") ) TRAP_IGNORE( appUi->HandleControllerEventL( ECamEventCameraChanged, @@ -6699,9 +6710,13 @@ TBool ftOn( EFalse ); iSettingProvider.ProvideCameraSettingL( ECameraSettingFacetracking, &ftOn ); PRINT1( _L("Camera <> Set facetracking: %d"), ftOn ) - iCustomInterfaceFaceTracking->SetFaceTrackingL( ftOn ); - iCustomInterfaceFaceTracking->EnableFaceIndicatorsL( ETrue ); - DirectRequestL( ECamRequestSetAfRange ); + if( ( ftOn && !iCustomInterfaceFaceTracking->FaceTrackingOn() ) || + ( !ftOn && iCustomInterfaceFaceTracking->FaceTrackingOn() ) ) + { + iCustomInterfaceFaceTracking->SetFaceTrackingL( ftOn ); + iCustomInterfaceFaceTracking->EnableFaceIndicatorsL( ETrue ); + DirectRequestL( ECamRequestSetAfRange ); + } } }