--- a/multimediacommscontroller/mmcccontroller/src/mcccamerahandler.cpp Thu Jun 17 22:31:54 2010 +0100
+++ b/multimediacommscontroller/mmcccontroller/src/mcccamerahandler.cpp Thu Jul 22 16:37:27 2010 +0100
@@ -150,6 +150,10 @@
iViewFinderSettings = aSetting;
+ if ( !iViewFinderSettings.iEnabled ){
+ __CONTROLLER( "CMccCameraHandler::EnableViewFinderL, param update, exit" )
+ return;
+ }
__CONTROLLER( "CMccCameraHandler::EnableViewFinderL, starting vf" )
CCamera* cam = IsCameraReady() ? iCamera : NULL;
@@ -217,8 +221,9 @@
iViewFinderSettings.iSize.iWidth)
__CONTROLLER_INT2( "CMccCameraHandler::GetViewFinderSettingsL, location",
iViewFinderSettings.iLocation.iX,
- iViewFinderSettings.iLocation.iY)
- aSetting = iViewFinderSettings;
+ iViewFinderSettings.iLocation.iY)
+ aSetting = iViewFinderSettings;
+ aSetting.iEnabled = iViewFinderEnabled;
__CONTROLLER( "CMccCameraHandler::GetViewFinderSettingsL,exit" )
}
@@ -731,10 +736,16 @@
void CMccCameraHandler::DoPowerOnComplete( TInt aError )
{
__CONTROLLER_INT1( "CMccCameraHandler::DoPowerOnComplete, with value", aError )
+
if ( aError == KErrNone )
{
iState = EPowered;
+ // Notify observers about success, important to do before VF handling
+ // as VF behaves more nicely at enabling when it sees that media recorder
+ // is already using camera.
+ NotifyObservers( aError );
+
// Viewfinder was enabled before resource release, enable again.
// Also set old camera settings.
if ( iViewFinderEnabled )
@@ -757,10 +768,10 @@
{
__CONTROLLER_INT1( "CMccCameraHandler::DoPowerOnComplete, powering failed", aError )
iState = EFailed;
- }
-
- // Notify observers about success or failure
- NotifyObservers( aError );
+
+ // Notify observers about failure
+ NotifyObservers( aError );
+ }
__CONTROLLER( "CMccCameraHandler::DoPowerOnComplete, exit" )
}