imagingext_plat/ecam_ui_orientation_override_custom_api/inc/ECamUIOrientationOverrideCustomAPI.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 09:22:31 +0200
changeset 0 469c91dae73b
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2008 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:  This Custom API is created to fix the synchronization problem
*                between Camera Application and Camera Server about the current
*                screen orientation. CWsScreenDevice is used as a reference and
*                Camera Application should use its NumScreenModes() and
*                GetScreenModeSizeAndRotation() methods to inform it by the mode
*                index, which mode it is currently in. It is most likely the one
*                also returned by CurrentScreenMode() but also other mode can be
*                given. Camera server then returns an error if that mode is not
*                supported and some alternative value should be used if it's
*                wanted to be set.
*
*/


#ifndef ECAMUIORIENTATIONOVERRIDECUSTOMAPI_H
#define ECAMUIORIENTATIONOVERRIDECUSTOMAPI_H

#include <e32base.h>

// CONSTANTS

const TUid KCameraUIOrientationOverrideUid = { 0x2001E2AE };

// CLASS DECLARATION

/**
*  Custom interface for Orientation setting.
*/
class MCameraUIOrientationOverride
    {

    public: 

        /**
        * Sets Orientation mode and is based on wsini.ini that can be fetched
        * from CWsScreenDevice. This method should be called after calling
        * CCamera::New2L(), before CCamera::Reserve() and before
        * CCamera::CameraInfo().
        * @param aMode Mode that specifies the wanted orientation
        * @leave KErrNotSupported if aMode is not supported
        * @leave KErrGeneral if this method is not supported
        * @leave KErrInUse if this method is not called at the right time
        */
        virtual void SetOrientationModeL( TInt aMode ) = 0;

    };

#endif //ECAMUIORIENTATIONOVERRIDECUSTOMAPI_H