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.h sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @internalTechnology sl@0: */ sl@0: sl@0: #ifndef MMCAMERASERVERSESSION_H sl@0: #define MMCAMERASERVERSESSION_H sl@0: sl@0: #include "mmcameraserver.h" sl@0: #include "mmcameraserverpolicymanager.h" sl@0: sl@0: sl@0: class CMMCameraServerSession : public CSession2 sl@0: { sl@0: friend class CCameraServerController; sl@0: sl@0: public: sl@0: CMMCameraServerSession(); sl@0: ~CMMCameraServerSession(); // Close the camera channel. Remove Session from the server list sl@0: sl@0: void ServiceL(const RMessage2& aMessage); sl@0: void CreateL(); // Add Session to the Server list. Should open the camera channel. Set Handle no. sl@0: sl@0: // Expose session parameters for use with policy manager sl@0: TBool CollaborativeClient() const { return iCollaborativeClient; } sl@0: TBool MMCapability() const { return iMMCapability; } sl@0: TInt Handle() const { return iHandle; } sl@0: TInt Priority() const { return iPriority; } sl@0: TInt CameraIndex() const { return iCameraIndex; } sl@0: sl@0: void SetHandle(TInt aHandle); sl@0: void SetPriority(TInt aPriority); sl@0: void SetReserved(TBool aReserved); sl@0: void SetMMCapability(TBool aMMCapability); sl@0: void CompleteOverthrow(); sl@0: CMMCameraServerController* CameraController(); // Handle to Camera Controller sl@0: sl@0: private: sl@0: void Disconnect(const RMessage2& aMessage); sl@0: sl@0: void CamerasAvailable(const RMessage2& aMessage); sl@0: sl@0: void OpenCamera(const RMessage2& aMessage); sl@0: sl@0: void Reserve(const RMessage2& aMessage); sl@0: void Release(const RMessage2& aMessage); sl@0: void CancelReserve(const RMessage2& aMessage); sl@0: sl@0: void PowerOn(const RMessage2& aMessage); sl@0: void PowerOff(); sl@0: void CancelPowerOn(); sl@0: sl@0: void PrepareDirectViewFinder(const RMessage2& aMessage); sl@0: void StartDirectViewFinder(const RMessage2& aMessage); sl@0: void StopDirectViewFinder(const RMessage2& aMessage); sl@0: void PauseDirectViewFinder(const RMessage2& aMessage); sl@0: void ResumeDirectViewFinder(const RMessage2& aMessage); sl@0: void SetDirectViewFinderMirror(const RMessage2& aMessage); sl@0: void GetDirectViewFinderMirror(const RMessage2& aMessage); sl@0: void DirectViewFinderState(const RMessage2& aMessage); sl@0: void DirectViewFinderProperties(const RMessage2& aMessage); sl@0: sl@0: void SetCameraParameter(const RMessage2& aMessage); sl@0: void GetCameraParameter(const RMessage2& aMessage); sl@0: sl@0: void CameraHandle(const RMessage2& aMessage); sl@0: sl@0: private: sl@0: CMMCameraServer* Server(); // Handle to Server sl@0: sl@0: void PanicClient(const RMessage2& aMessage, TServerPanic aPanic); sl@0: sl@0: public: sl@0: TDblQueLink iCamSessionLink; // Link Object for Policy manager sl@0: sl@0: private: sl@0: CMMCameraServerController* iCameraController; // Handle to Camera Controller sl@0: CMMCameraServer* iCameraServer; sl@0: CMMCameraServerPolicyManager* iPolicyManager; sl@0: sl@0: TInt iCameraIndex; // details needed sl@0: TInt iHandle; sl@0: TInt iPriority; sl@0: TBool iMMCapability; // comes packed in RMessage2. Checked in open camera call sl@0: TBool iCollaborativeClient; sl@0: sl@0: TBool iReserved; sl@0: TBool iPoweredUp; sl@0: sl@0: RMessagePtr2 iOverthrowMessage; sl@0: }; sl@0: sl@0: #endif // MMCAMERASERVERSESSION_H