multimediacommsengine/tsrc/MCETestUI/src/createCameraSourceDialog.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/MCETestUI/src/createCameraSourceDialog.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,338 @@
+/*
+* Copyright (c) 2004 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:  
+*
+*/
+
+
+
+
+// INCLUDES
+#include "createCameraSourceDialog.h"
+#include "CMCETestUIEngineVideoStream.h"
+#include "CMCETestUIEngineVideoSource.h"
+#include <MCEAudioStream.h>
+#include <MCEcameraSource.h>
+#include <MCEMediaSource.h>
+#include <ecam.h>
+
+// CONSTANTS
+const TInt KMCETestUiUseDefaultCamera = 99;
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ----------------------------------------------------------------------------
+// CCreateCameraSourceDialog::CCreateCameraSourceDialog( )
+// .
+// ----------------------------------------------------------------------------
+//
+CCreateCameraSourceDialog::CCreateCameraSourceDialog(
+						 CMCETestUIEngineVideoStream& aStream, TInt aIndex ) :
+    iStream(aStream),iSourceIndex( aIndex )
+    {
+    
+    // No implementation required
+    }
+
+// ----------------------------------------------------------------------------
+// CCreateCameraSourceDialog::PreLayoutDynInitL()
+// .
+// ----------------------------------------------------------------------------
+//
+void CCreateCameraSourceDialog::PreLayoutDynInitL()
+    {
+    CAknForm::PreLayoutDynInitL();
+    const RPointerArray<CMCETestUIEngineVideoSource>& sources = 
+            iStream.SourcesL();
+   
+   	CMceMediaSource& mediaSource = static_cast<CMceMediaSource&>(sources[iSourceIndex]->Source());
+    CMceCameraSource& camSource = static_cast<CMceCameraSource&>(mediaSource);
+    	
+    CEikNumberEditor* cameraIndex = static_cast<CEikNumberEditor*>(
+                                  Control( ECameraSourceDialogCameraIndex ) );
+    cameraIndex->SetNumber( KMCETestUiUseDefaultCamera ); // Current value cannot be retrieved from MCE API
+        
+    TCameraInfo camerainfo;
+    camSource.GetCameraInfo( camerainfo );
+    
+    
+    if ( camSource.ZoomFactorL() < camerainfo.iMaxZoom )
+        {
+        CEikNumberEditor* zoomFactor = static_cast<CEikNumberEditor*>(
+                                  Control( ECameraSourceDialogCameraZoomFactor ) );
+        zoomFactor->SetNumber(camSource.ZoomFactorL());
+        
+        //camera->SetZoomFactorL( camera->ZoomFactorL() + 1 );
+        }
+    else if ( camSource.DigitalZoomFactorL() < camerainfo.iMaxDigitalZoom )
+        {
+        CEikNumberEditor* digZoomFactor = static_cast<CEikNumberEditor*>(
+                                  Control( ECameraSourceDialogCameraDigitalZoomFactor ) );
+        digZoomFactor->SetNumber( camSource.DigitalZoomFactorL() );
+        
+        //camera->SetDigitalZoomFactorL( camera->DigitalZoomFactorL() + 1 );
+        }   
+
+
+    
+/*    CEikNumberEditor* maxdigital = static_cast<CEikNumberEditor*>(
+                                  Control( ECameraSourceDialogZoomMax ) );
+    maxdigital->SetNumber( camera.iMaxDigitalZoom );*/
+    /*
+    CEikNumberEditor* brightness = static_cast<CEikNumberEditor*>(
+                                  Control( ECameraSourceDialogCameraBrightness ) );
+    brightness->SetNumber(camSource.BrightnessL());
+    
+    CAknPopupFieldText* popupFieldText1 = 
+        static_cast <CAknPopupFieldText*> (Control(ECameraSourceDialogExposure));
+    TInt exposureState = camSource.ExposureL();
+    switch(exposureState) 
+    	{
+    	//	case CCamera::EExposureAuto:
+    		case 0:
+    			{
+    			popupFieldText1->SetCurrentValueIndex(0);
+    			break;
+    			}
+    	// 	case CCamera::EExposureNight:
+    		case 1:
+    			{
+    			popupFieldText1->SetCurrentValueIndex(1);
+    			break;
+    			}
+    		//case CCamera::EExposureBacklight:
+    		case 2:
+    			{
+    			popupFieldText1->SetCurrentValueIndex(2);
+    			break;
+    			}
+    		//case CCamera::EExposureCenter:
+    		case 3:
+    			{
+    			popupFieldText1->SetCurrentValueIndex(3);
+    			break;
+    			}
+    		default:
+    			{
+    			popupFieldText1->SetCurrentValueIndex(0);
+    			break;
+    			}
+    	}
+    CAknPopupFieldText* popupFieldText2 = 
+        static_cast <CAknPopupFieldText*> (Control(ECameraSourceDialogCameraWhiteBalance));
+    TInt wbState = camSource.WhiteBalanceL();
+    switch(wbState) 
+    	{
+    		//case CCamera::EWBAuto:
+    		case 0:
+    			{
+    			popupFieldText2->SetCurrentValueIndex(0);
+    			break;
+    			}
+    		//case CCamera::EWBDaylight:
+    		case 1:
+    			{
+    			popupFieldText2->SetCurrentValueIndex(1);
+    			break;
+    			}
+    		//case CCamera::EWBCloudy:
+    		case 2:
+    			{
+    			popupFieldText2->SetCurrentValueIndex(2);
+    			break;
+    			}
+    		//case CCamera::EWBTungsten:
+    		case 3:
+    			{
+    			popupFieldText2->SetCurrentValueIndex(3);
+    			break;
+    			}
+    		//case CCamera::EWBFlash:
+    		case 4:
+    			{
+    			popupFieldText2->SetCurrentValueIndex(4);
+    			break;
+    			}
+    		default:
+    			{
+    			popupFieldText2->SetCurrentValueIndex(0);
+    			break;
+    			}
+    	}*/
+    }
+
+// ----------------------------------------------------------------------------
+// CCreateCameraSourceDialog::OkToExitL( TInt )
+// .
+// ----------------------------------------------------------------------------
+//
+
+TBool CCreateCameraSourceDialog::OkToExitL( TInt aKey )
+    {
+    if ( aKey == EEikCmdCanceled )
+        {
+        // Cancel pressed. Just exit.
+        return ETrue;
+        }
+    const RPointerArray<CMCETestUIEngineVideoSource>& sources = 
+            iStream.SourcesL();
+            
+    if(sources[iSourceIndex]->Type() == KMceCameraSource)
+    {
+    	CMceMediaSource& mediaSource = static_cast<CMceMediaSource&>(sources[iSourceIndex]->Source());
+    	CMceCameraSource& camSource = static_cast<CMceCameraSource&>(mediaSource);
+    
+	/*    CEikNumberEditor* cameraIndex = static_cast<CEikNumberEditor*>(
+	                                  Control( ECameraSourceDialogCameraIndex ) );
+	    camSource.SetCameraIndexL(cameraIndex->Number());*/
+	    
+	    CEikNumberEditor* zoomFactor = static_cast<CEikNumberEditor*>(
+	                                  Control( ECameraSourceDialogCameraZoomFactor ) );
+	         
+        TCameraInfo camerainfo;
+        camSource.GetCameraInfo( camerainfo );
+        
+        CEikNumberEditor* digZoomFactor = static_cast<CEikNumberEditor*>(
+	                                  Control( ECameraSourceDialogCameraDigitalZoomFactor ) );
+	                                  
+        if ( zoomFactor->Number() < camerainfo.iMaxZoom )
+            {
+            camSource.SetZoomFactorL(zoomFactor->Number());
+            }
+        else if ( digZoomFactor->Number() < camerainfo.iMaxDigitalZoom )
+            {
+            camSource.SetDigitalZoomFactorL(digZoomFactor->Number());
+            }   
+   
+	    CEikNumberEditor* cameraIndex = static_cast<CEikNumberEditor*>(
+                                  Control( ECameraSourceDialogCameraIndex ) );  
+	    if ( camSource.CamerasAvailable() > 1 && cameraIndex->Number() != KMCETestUiUseDefaultCamera )
+	        {
+	        // Index cannot be changed if camera is in use, pause/resume
+	        //
+	        TBool enabled( camSource.IsEnabled() );
+	        if ( enabled )
+	            {
+	            camSource.DisableL();
+	            }
+	            
+	        camSource.SetCameraIndexL( cameraIndex->Number() );
+	        
+	        if( enabled )
+	            {
+	            camSource.EnableL();
+	            }
+	        }
+	        
+	/*    CEikNumberEditor* contrast = static_cast<CEikNumberEditor*>(
+	                                  Control( ECameraSourceDialogCameraContrast ) );
+	    camSource.SetContrastL(contrast->Number());
+	    
+	    CEikNumberEditor* brightness = static_cast<CEikNumberEditor*>(
+	                                  Control( ECameraSourceDialogCameraBrightness ) );
+	    camSource.SetBrightnessL(brightness->Number());
+	    
+	    CAknPopupFieldText* popupFieldText1 = 
+	        static_cast <CAknPopupFieldText*> (Control(ECameraSourceDialogExposure));
+	     switch(popupFieldText1->CurrentValueIndex())	
+	     	{
+	     		case 0:
+	     			{
+	     		//	camSource.SetExposureL(CCamera::EExposureAuto);
+	     				camSource.SetExposureL(0);
+	     			break;
+	     			}
+	     		case 1:
+	     			{
+	     			//camSource.SetExposureL(CCamera::EExposureNight);
+	     				camSource.SetExposureL(1);
+	     			break;
+	     			}
+	     		case 2:
+	     			{
+	     			//camSource.SetExposureL(CCamera::EExposureBacklight);
+	     			camSource.SetExposureL(2);
+	     			break;
+	     			}
+	     		case 3:
+	     			{
+	     			//camSource.SetExposureL(CCamera::EExposureCenter);
+	     			camSource.SetExposureL(3);
+	     			break;
+	     			}
+	     		default:
+	     			{
+	     			//camSource.SetExposureL(CCamera::EExposureAuto);
+	     			camSource.SetExposureL(0);
+	     			break;
+	     			}
+	     	}
+	    CAknPopupFieldText* popupFieldText2 = 
+	        static_cast <CAknPopupFieldText*> (Control(ECameraSourceDialogCameraWhiteBalance));
+	      switch(popupFieldText2->CurrentValueIndex())	
+	     	{
+	     		case 0:
+	     			{
+		//			camSource.SetWhiteBalanceL(CCamera::EWBAuto);
+					camSource.SetWhiteBalanceL(0);
+	     			break;
+	     			}
+	     		case 1:
+	     			{
+	     			//camSource.SetWhiteBalanceL(CCamera::EWBDaylight);
+	     			camSource.SetWhiteBalanceL(1);
+	     			break;
+	     			}
+	     		case 2:
+	     			{
+	     			//camSource.SetWhiteBalanceL(CCamera::EWBCloudy);
+	     			camSource.SetWhiteBalanceL(2);
+	     			break;
+	     			}
+	     		case 3:
+	     			{
+	     			//camSource.SetWhiteBalanceL(CCamera::EWBTungsten);
+	     			camSource.SetWhiteBalanceL(3);
+	     			break;
+	     			}
+	     		case 4:
+	     			{
+	     			camSource.SetWhiteBalanceL(4);
+	     			//camSource.SetWhiteBalanceL(CCamera::EWBFlash);
+	     			break;
+	     			}
+	     		default:
+	     			{
+	     			camSource.SetWhiteBalanceL(0);
+	     			//camSource.SetWhiteBalanceL(CCamera::EWBAuto);
+	     			break;
+	     			}
+	     	}*/
+      }
+    
+        
+    return ETrue;
+    }
+
+// ----------------------------------------------------------------------------
+// CCreateCameraSourceDialog::~CCreateCameraSourceDialog)
+// .
+// ----------------------------------------------------------------------------
+//
+CCreateCameraSourceDialog::~CCreateCameraSourceDialog()
+    {
+    return;
+    } 
+
+// End of File