sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // mmcamerasession.cpp sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @internalComponent sl@0: */ sl@0: sl@0: #include "mmcameraserversession.h" sl@0: #include "mmcameraservercontroller.h" sl@0: sl@0: sl@0: CMMCameraServerSession::CMMCameraServerSession() sl@0: :iCameraIndex(0), sl@0: iHandle(KECamHandleNotKnown), sl@0: iPriority(KECamNoPriority), sl@0: iMMCapability(ETrue), sl@0: iCollaborativeClient(EFalse), sl@0: iReserved(EFalse), sl@0: iPoweredUp(EFalse) sl@0: { sl@0: } sl@0: sl@0: void CMMCameraServerSession::CreateL() sl@0: { sl@0: iCameraServer = static_cast(const_cast(CSession2::Server())); sl@0: // Get server policymanager sl@0: iPolicyManager = Server()->PolicyManager(); sl@0: sl@0: //load camera control etc in OpenCamera... sl@0: Server()->AddSession(); sl@0: } sl@0: sl@0: CMMCameraServerSession::~CMMCameraServerSession() sl@0: { sl@0: // CameraController()->Reset(); sl@0: Server()->DropSession(); sl@0: sl@0: //deque the session queued in controller sl@0: iCamSessionLink.Deque(); //safe to deque if it does not exists in the queue. sl@0: iCamSessionLink.iNext = NULL; sl@0: } sl@0: sl@0: void CMMCameraServerSession::Disconnect(const RMessage2 &aMessage) sl@0: { sl@0: if(!iOverthrowMessage.IsNull()) sl@0: { sl@0: iOverthrowMessage.Complete(KErrCancel); sl@0: } sl@0: CSession2::Disconnect(aMessage); sl@0: } sl@0: sl@0: void CMMCameraServerSession::ServiceL(const RMessage2& aMessage) sl@0: { sl@0: sl@0: // Do policy manager checks sl@0: iPolicyManager->ServiceHandlerL(aMessage); sl@0: sl@0: switch (aMessage.Function()) sl@0: { sl@0: case ECamQueryCamerasAvailable: sl@0: { sl@0: CamerasAvailable(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamOpenCamera: sl@0: { sl@0: OpenCamera(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamCameraAccessControl: sl@0: { sl@0: switch(aMessage.Int0()) sl@0: { sl@0: case ECameraRelease: sl@0: { sl@0: Release(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECameraReservedNotification: sl@0: { sl@0: Reserve(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECameraCancelReservedNotification: sl@0: { sl@0: CancelReserve(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECameraOverthrowNotification: sl@0: { sl@0: if(iOverthrowMessage.IsNull()) sl@0: { sl@0: iOverthrowMessage = aMessage; sl@0: } sl@0: else sl@0: { sl@0: aMessage.Complete(KErrServerBusy); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case ECameraCancelOverthrowNotification: sl@0: { sl@0: if(!iOverthrowMessage.IsNull()) sl@0: { sl@0: iOverthrowMessage.Complete(KErrCancel); sl@0: } sl@0: CameraController()->Reset(); //Stops VF, VC. Cancels ImageCapture if issued using this session. sl@0: aMessage.Complete(KErrNone); sl@0: break; sl@0: } sl@0: sl@0: default: sl@0: aMessage.Complete(KErrArgument); sl@0: } sl@0: break; sl@0: } sl@0: case ECamPowerCamera: sl@0: { sl@0: switch(aMessage.Int0()) sl@0: { sl@0: case ECameraPowerOnNotification: sl@0: { sl@0: PowerOn(aMessage); sl@0: break; sl@0: } sl@0: case ECameraPowerOff: sl@0: { sl@0: PowerOff(); sl@0: aMessage.Complete(KErrNone); sl@0: break; sl@0: } sl@0: case ECameraCancelPowerOnNotification: sl@0: { sl@0: CancelPowerOn(); sl@0: aMessage.Complete(KErrNone); sl@0: break; sl@0: } sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case ECamPrepareDirectViewFinder: sl@0: { sl@0: PrepareDirectViewFinder(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamStartDirectViewFinder: sl@0: { sl@0: StartDirectViewFinder(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamStopDirectViewFinder: sl@0: { sl@0: StopDirectViewFinder(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamPauseDirectViewFinder: sl@0: { sl@0: PauseDirectViewFinder(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamResumeDirectViewFinder: sl@0: { sl@0: ResumeDirectViewFinder(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamDirectViewFinderState: sl@0: { sl@0: DirectViewFinderState(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamSetDirectViewFinderMirror: sl@0: { sl@0: SetDirectViewFinderMirror(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamGetDirectViewFinderMirror: sl@0: { sl@0: GetDirectViewFinderMirror(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamDirectViewFinderProperties: sl@0: { sl@0: DirectViewFinderProperties(aMessage); sl@0: break; sl@0: } sl@0: case ECamSetParameter: sl@0: { sl@0: SetCameraParameter(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamGetParameter: sl@0: { sl@0: GetCameraParameter(aMessage); sl@0: break; sl@0: } sl@0: sl@0: case ECamCameraHandle: sl@0: { sl@0: CameraHandle(aMessage); sl@0: break; sl@0: } sl@0: sl@0: default: sl@0: Server()->PanicClient(aMessage, EPanicNotSupported); sl@0: break; sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * Queries controller to find out how many cameras are available to clients. sl@0: */ sl@0: void CMMCameraServerSession::CamerasAvailable(const RMessage2& aMessage) sl@0: { sl@0: TCamerasAvailable info; sl@0: sl@0: CMMCameraServerControllerQuery* query = NULL; sl@0: TRAPD(error, Server()->GetCameraControllerQueryL(query)); sl@0: if (error == KErrNone) sl@0: { sl@0: info.iCameraCount = query->GetCamerasAvailable(); sl@0: delete query; sl@0: sl@0: TCamerasAvailablePckg pckg(info); sl@0: error = aMessage.Write(TInt(0), pckg); sl@0: } sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Stores client information and retrieves camera controller for required camera index. sl@0: * sl@0: * Called when client connects to the server for the first time. sl@0: */ sl@0: void CMMCameraServerSession::OpenCamera(const RMessage2& aMessage) sl@0: { sl@0: TOpenCamera parameters; sl@0: TOpenCameraPckg parametersBuf(parameters); sl@0: sl@0: TInt error = aMessage.Read(TInt(0),parametersBuf); sl@0: if (error != KErrNone) sl@0: { sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: parameters = parametersBuf(); sl@0: sl@0: iCameraIndex = parameters.iCameraIndex; // Store the required member variables sl@0: iPriority = parameters.iPriority; sl@0: iMMCapability = parameters.iMMCapability; sl@0: iHandle = parameters.iHandle; sl@0: iCollaborativeClient = parameters.iCollaborativeClient; sl@0: sl@0: TRAP(error, Server()->GetCameraControllerL(iCameraIndex, iCameraController)); sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Reserves the camera. sl@0: * sl@0: * Delegates the responsibility to the policy manager sl@0: */ sl@0: void CMMCameraServerSession::Release(const RMessage2& aMessage) sl@0: { sl@0: if(!iReserved) sl@0: { sl@0: aMessage.Complete(KErrAlreadyExists); sl@0: } sl@0: else sl@0: { sl@0: CameraController()->Reset(); //Stops VF, VC. Cancels ImageCapture if issued using this session. sl@0: sl@0: iPolicyManager->ReleaseClient(this); sl@0: sl@0: iReserved = EFalse; sl@0: iPoweredUp = EFalse; sl@0: sl@0: if(!iOverthrowMessage.IsNull()) sl@0: { sl@0: iOverthrowMessage.Complete(KErrCancel); sl@0: } sl@0: sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: } sl@0: sl@0: void CMMCameraServerSession::CompleteOverthrow () sl@0: { sl@0: if(!iOverthrowMessage.IsNull()) sl@0: { sl@0: // Complete means sucess sl@0: iOverthrowMessage.Complete(KErrNone); sl@0: } sl@0: sl@0: iPoweredUp = EFalse; sl@0: } sl@0: sl@0: /** sl@0: * Releases the camera. sl@0: * sl@0: * Delegates the responsibility to the policy manager sl@0: */ sl@0: void CMMCameraServerSession::Reserve(const RMessage2& aMessage) sl@0: { sl@0: if (iReserved) sl@0: { sl@0: aMessage.Complete(KErrInUse); sl@0: return; sl@0: } sl@0: sl@0: iReserved = iPolicyManager->ReserveClient(this); sl@0: sl@0: if(!iReserved) sl@0: { sl@0: aMessage.Complete(KErrAccessDenied); sl@0: } sl@0: else sl@0: { sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * Cancels on ongoing Reserve() operation. sl@0: */ sl@0: void CMMCameraServerSession::CancelReserve(const RMessage2& aMessage) sl@0: { sl@0: Release(aMessage); sl@0: } sl@0: sl@0: /** sl@0: * Powers on the device. sl@0: * sl@0: * Simply returns with KErrNone or KErrNotReady since device is not powered on until VF is activated. sl@0: */ sl@0: void CMMCameraServerSession::PowerOn(const RMessage2& aMessage) sl@0: { sl@0: if(!iReserved) sl@0: { sl@0: aMessage.Complete(KErrNotReady); sl@0: } sl@0: else if (iPoweredUp) sl@0: { sl@0: aMessage.Complete(KErrInUse); sl@0: } sl@0: else sl@0: { sl@0: iPoweredUp = ETrue; sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * Powers off the device. sl@0: * sl@0: * Simply stops any viewfinder activity. sl@0: */ sl@0: void CMMCameraServerSession::PowerOff() sl@0: { sl@0: CameraController()->Reset(); sl@0: sl@0: iPoweredUp = EFalse; sl@0: } sl@0: sl@0: void CMMCameraServerSession::CancelPowerOn() sl@0: { sl@0: iPoweredUp = EFalse; sl@0: } sl@0: sl@0: /** sl@0: * Prepares the view finder. sl@0: * sl@0: * First step before viewfinder is started. sl@0: */ sl@0: void CMMCameraServerSession::PrepareDirectViewFinder(const RMessage2& aMessage) sl@0: { sl@0: TDirectViewFinderInfo viewFinderInfo; sl@0: TDirectViewFinderInfoPckg viewFinderInfoPckg(viewFinderInfo); sl@0: sl@0: TInt error = aMessage.Read(TInt(0), viewFinderInfoPckg); sl@0: if(error == KErrNone) sl@0: { sl@0: viewFinderInfo = viewFinderInfoPckg(); sl@0: TRAP(error, CameraController()->PrepareDirectViewFinderL(viewFinderInfo)); sl@0: if(error == KErrNone) sl@0: { sl@0: TDirectViewFinderInfoPckg pckg(viewFinderInfo); sl@0: error = aMessage.Write(TInt(0), pckg); sl@0: } sl@0: } sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Starts the viewfinder sl@0: */ sl@0: void CMMCameraServerSession::StartDirectViewFinder(const RMessage2& aMessage) sl@0: { sl@0: TInt error = CameraController()->StartDirectViewFinder(); sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Stops the viewfinder. sl@0: * sl@0: * Returns KErrNone even if stop is called when the viewfinder is not active, as client API must fail silently if error occurs. sl@0: */ sl@0: void CMMCameraServerSession::StopDirectViewFinder(const RMessage2& aMessage) sl@0: { sl@0: if (CameraController()->GetDirectViewFinderState() == CCamera::CCameraV2DirectViewFinder::EViewFinderActive) sl@0: { sl@0: CameraController()->StopDirectViewFinder(); sl@0: } sl@0: sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: sl@0: /** sl@0: * Pauses the viewfinder. sl@0: * sl@0: * Returns KErrNone even if pause is called when the viewfinder is not active, as client API must fail silently if error occurs. sl@0: */ sl@0: void CMMCameraServerSession::PauseDirectViewFinder(const RMessage2& aMessage) sl@0: { sl@0: if (CameraController()->GetDirectViewFinderState() == CCamera::CCameraV2DirectViewFinder::EViewFinderActive) sl@0: { sl@0: CameraController()->PauseDirectViewFinder(); sl@0: } sl@0: sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: sl@0: /** sl@0: * Resumes the viewfinder if previously paused. sl@0: * sl@0: * Returns KErrNone even if resume is called when the viewfinder is not paused, as client API must fail silently if error occurs. sl@0: */ sl@0: void CMMCameraServerSession::ResumeDirectViewFinder(const RMessage2& aMessage) sl@0: { sl@0: if (CameraController()->GetDirectViewFinderState() == CCamera::CCameraV2DirectViewFinder::EViewFinderPause) sl@0: { sl@0: CameraController()->ResumeDirectViewFinder(); sl@0: } sl@0: sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: sl@0: /** sl@0: * Retrieves the state of the viewfinder sl@0: */ sl@0: void CMMCameraServerSession::DirectViewFinderState(const RMessage2& aMessage) sl@0: { sl@0: TDirectViewFinderState state; sl@0: sl@0: state.iState = CameraController()->GetDirectViewFinderState(); sl@0: sl@0: TDirectViewFinderStatePckg pckg(state); sl@0: TInt error = aMessage.Write(TInt(0), pckg); sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Sets viewfinder mirror mode on or off. sl@0: */ sl@0: void CMMCameraServerSession::SetDirectViewFinderMirror(const RMessage2& aMessage) sl@0: { sl@0: TViewFinderMirror viewFinderMirror; sl@0: TViewFinderMirrorPckg pckg(viewFinderMirror); sl@0: sl@0: TInt error = aMessage.Read(TInt(0), pckg); sl@0: if (error == KErrNone) sl@0: { sl@0: viewFinderMirror = pckg(); sl@0: error = CameraController()->SetDirectViewFinderMirror(viewFinderMirror.iMirror); sl@0: } sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Retrieves whether viewfinder mirror mode is activated or not. sl@0: */ sl@0: void CMMCameraServerSession::GetDirectViewFinderMirror(const RMessage2& aMessage) sl@0: { sl@0: TViewFinderMirror viewFinderMirror; sl@0: sl@0: TInt error = CameraController()->GetDirectViewFinderMirror(viewFinderMirror.iMirror); sl@0: if (error == KErrNone) sl@0: { sl@0: TViewFinderMirrorPckg pckg(viewFinderMirror); sl@0: error = aMessage.Write(TInt(0), pckg); sl@0: } sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Retrieves the viewfinder properties sl@0: */ sl@0: void CMMCameraServerSession::DirectViewFinderProperties(const RMessage2& aMessage) sl@0: { sl@0: TDirectViewFinderInfo info; sl@0: sl@0: TInt error = CameraController()->DirectViewFinderProperties(info.iScreenNum, info.iScreenRect, info.iClipRect); sl@0: if (error == KErrNone) sl@0: { sl@0: TDirectViewFinderInfoPckg pckg(info); sl@0: error = aMessage.Write(TInt(0), pckg); sl@0: } sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Sets various camera parameters depending on what the client wishes to set. sl@0: */ sl@0: void CMMCameraServerSession::SetCameraParameter(const RMessage2& aMessage) sl@0: { sl@0: TInt error = KErrNone; sl@0: sl@0: switch(aMessage.Int0()) sl@0: { sl@0: case EZoomFactor: sl@0: { sl@0: TInt zoom = aMessage.Int1(); sl@0: error = CameraController()->SetZoom(zoom); sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: case EDigitalZoomFactor: sl@0: { sl@0: TInt digitalZoom = aMessage.Int1(); sl@0: error = CameraController()->SetDigitalZoom(digitalZoom); sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: case EContrast: sl@0: { sl@0: TInt contrast = aMessage.Int1(); sl@0: error = CameraController()->SetContrast(contrast); sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: case EBrightness: sl@0: { sl@0: TInt brightness = aMessage.Int1(); sl@0: error = CameraController()->SetBrightness(brightness); sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: case EFlash: sl@0: { sl@0: TCameraFlash flash; sl@0: TCameraFlashPckg pckg(flash); sl@0: sl@0: error = aMessage.Read(TInt(1), pckg); sl@0: if (error == KErrNone) sl@0: { sl@0: flash = pckg(); sl@0: error = CameraController()->SetFlash(flash.iFlash); sl@0: } sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: case EExposure: sl@0: { sl@0: TCameraExposure exposure; sl@0: TCameraExposurePckg pckg(exposure); sl@0: sl@0: error = aMessage.Read(TInt(1), pckg); sl@0: if (error == KErrNone) sl@0: { sl@0: exposure = pckg(); sl@0: error = CameraController()->SetExposure(exposure.iExposure); sl@0: } sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: case EWhiteBalance: sl@0: { sl@0: TCameraWhiteBalance whiteBalance; sl@0: TCameraWhiteBalancePckg pckg(whiteBalance); sl@0: sl@0: error = aMessage.Read(TInt(1), pckg); sl@0: if (error == KErrNone) sl@0: { sl@0: whiteBalance = pckg(); sl@0: error = CameraController()->SetWhiteBalance(whiteBalance.iWhiteBalance); sl@0: } sl@0: aMessage.Complete(error); sl@0: break; sl@0: } sl@0: sl@0: default: sl@0: { sl@0: Server()->PanicClient(aMessage, EPanicNotSupported); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * Gets various camera parameters depending on what information the client wishes to retrieve. sl@0: */ sl@0: void CMMCameraServerSession::GetCameraParameter(const RMessage2& aMessage) sl@0: { sl@0: TInt error = KErrNone; sl@0: sl@0: switch(aMessage.Int0()) sl@0: { sl@0: case EZoomFactor: sl@0: { sl@0: TCameraZoom zoom; sl@0: error = CameraController()->GetZoom(zoom.iZoom); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraZoomPckg pckg(zoom); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case EDigitalZoomFactor: sl@0: { sl@0: TCameraDigitalZoom digitalZoom; sl@0: error = CameraController()->GetDigitalZoom(digitalZoom.iDigitalZoom); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraDigitalZoomPckg pckg(digitalZoom); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case EContrast: sl@0: { sl@0: TCameraContrast contrast; sl@0: error = CameraController()->GetContrast(contrast.iContrast); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraContrastPckg pckg(contrast); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case EBrightness: sl@0: { sl@0: TCameraBrightness brightness; sl@0: error = CameraController()->GetBrightness(brightness.iBrightness); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraBrightnessPckg pckg(brightness); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case EFlash: sl@0: { sl@0: TCameraFlash flash; sl@0: error = CameraController()->GetFlash(flash.iFlash); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraFlashPckg pckg(flash); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case EExposure: sl@0: { sl@0: TCameraExposure exposure; sl@0: error = CameraController()->GetExposure(exposure.iExposure); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraExposurePckg pckg(exposure); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: case EWhiteBalance: sl@0: { sl@0: TCameraWhiteBalance whiteBalance; sl@0: error = CameraController()->GetWhiteBalance(whiteBalance.iWhiteBalance); sl@0: if (error == KErrNone) sl@0: { sl@0: TCameraWhiteBalancePckg pckg(whiteBalance); sl@0: error = aMessage.Write(TInt(1), pckg); sl@0: } sl@0: break; sl@0: } sl@0: sl@0: default: sl@0: { sl@0: Server()->PanicClient(aMessage, EPanicNotSupported); sl@0: break; sl@0: } sl@0: } sl@0: sl@0: aMessage.Complete(error); sl@0: } sl@0: sl@0: /** sl@0: * Retrives the camera handle sl@0: */ sl@0: void CMMCameraServerSession::CameraHandle(const RMessage2& aMessage) sl@0: { sl@0: TCameraHandle cameraHandle; sl@0: sl@0: cameraHandle.iHandle = CameraController()->CameraHandle(); sl@0: TCameraHandlePckg pckg(cameraHandle); sl@0: sl@0: aMessage.Write(TInt(0), pckg); sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: sl@0: void CMMCameraServerSession::SetHandle (TInt aHandle) sl@0: { sl@0: iHandle = aHandle; sl@0: } sl@0: sl@0: void CMMCameraServerSession::SetPriority (TInt aPriority) sl@0: { sl@0: iPriority = aPriority; sl@0: } sl@0: sl@0: void CMMCameraServerSession::SetReserved (TBool aReserved) sl@0: { sl@0: iReserved = aReserved; sl@0: } sl@0: sl@0: CMMCameraServer* CMMCameraServerSession::Server() sl@0: { sl@0: return iCameraServer; sl@0: } sl@0: sl@0: CMMCameraServerController* CMMCameraServerSession::CameraController() sl@0: { sl@0: return iCameraController; sl@0: }