diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/common/inc/mcamsettingsmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/common/inc/mcamsettingsmodel.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,337 @@ +/* +* Copyright (c) 2007 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: Interface to object that manages all settings data. +* +*/ + + + +#ifndef MCAMSETTINGSMODEL_H +#define MCAMSETTINGSMODEL_H + +// =========================================================================== +// INCLUDES +#include + +#include "CamSettings.hrh" +#include "CamSettingsInternal.hrh" + +// =========================================================================== +// CONSTANTS + +// =========================================================================== +// FORWARD DECLARATIONS +class CCamVideoQualityLevel; +class MCamSettingsModelObserver; + + +// =========================================================================== +// STRUCTURES +class TIntSetting + { + public: + TInt iItemId; + TInt iValueId; + }; + +class TSceneData + { + public: // Destructor + ~TSceneData (); + + public: // Data + TInt iSceneId; + RPointerArray iSettings; + }; + +class TCamVariantInfo + { + public: + TCamVariantInfo(); + + public: + + TInt iFlags; + TCamSupportFlag iTimeLapseSupport; + TCamSupportFlag iAlwaysOnSupport; + TVersion iVersion; + }; + +// =========================================================================== +// CLASS DECLARATION + +/** +* Interface to object that manages all settings data. +* @since 2.8 +*/ +class MCamSettingsModel + { + public: // Interface + + /** + * This needs to be here to be able to greacefully delete + * an object of inherited class through mixin pointer. + * If this is not defined, deleting through the mixin pointer + * results in User-42 panic! + */ + virtual ~MCamSettingsModel() {}; + + /** + * Add a settings model observer. + * Observers will be notified of settings changes. + */ + virtual void AttachObserverL( const MCamSettingsModelObserver* aObserver ) = 0; + + /** + * Remove a settings model observer. + */ + virtual void DetachObserver( const MCamSettingsModelObserver* aObserver ) = 0; + + /** + * Resets all user scene settings to their defaults. + * @since 2.8 + */ + virtual void ResetUserSceneL() = 0; + + /** + * Previews a new value for the specified integer setting + * @param aSettingItem specifies which setting item that want to preview the value of. + * @param aSettingValue the new integer value for the specified setting item to be previewed. + * @since 2.8 + */ +// virtual void PreviewSettingChangeL( TInt aSettingItem, TInt aSettingValue ) = 0; + + /** + * Cancels all preview changes, since last commit/cancel. + * @since 2.8 + */ +// virtual void CancelPreviewChangesL() = 0; + + /** + * Commits last preview change. + * @since 2.8 + */ +// virtual void CommitPreviewChanges() = 0; + + /** + * Returns the current integer value for the specified setting + * @return the current integer setting value + * @param aSettingItem specifies which setting item that want the value of. + * @since 2.8 + */ + virtual TInt IntegerSettingValue( TInt aSettingItem ) const = 0; + + /** + * Returns the setting value for a specific field of a scene + * @return the setting value + * @param aSceneId specifies which scene. + * @param aSceneId specifies which field of the scene. + * @since 2.8 + */ + virtual TInt SceneSettingValue( TInt aSceneId, TInt aSceneField ) const = 0; + + /** + * Sets a new value for the specified integer setting + * @param aSettingItem specifies which setting item that want to set the value of. + * @param aSettingValue the new integer value for the specified setting item. + * @since 2.8 + */ + virtual void SetIntegerSettingValueL( TInt aSettingItem, TInt aSettingValue ) = 0; + + /** + * Sets a new text value for the specified setting + * @param aSettingItem specifies which setting item that want to set the text value of. + * @param aSettingValue the new text value for the specified setting item. + * @since 2.8 + */ + virtual void SetTextSettingValueL( TInt aSettingItem, + const TDesC& aSettingValue ) = 0; + + /** + * Returns the current text value for the specified setting + * @return the current text setting value + * @param aSettingItem specifies which setting item that want the text value of. + * @since 2.8 + */ + virtual TPtrC TextSettingValue( TInt aSettingItem ) const = 0; + + /** + * Returns whether a particular setting value can be set or not. + * @return ETrue if can be set. Otherwise, EFalse. + * @param aSettingValue the value in question. + * @param aSettingItem the setting item in question. + * @since 2.8 + */ + virtual TBool SettingValueEnabled( TInt aSettingItem, + TInt aSettingValue ) const = 0; + + /** + * Get the default value for a setting item. + * @param aSettingId The id of the setting. + * @return The default value for setting item or KErrNotFound if not found. + */ + virtual TInt DynamicSettingDefaultValue( TInt aSettingId ) const = 0; + + /** + * Sets all dynamic settings to their defaults. + * @since 2.8 + */ + virtual void SetDynamicSettingsToDefaults() = 0; + + /** + * Sets a single dynamic setting to its default. + * @since 2.8 + */ + virtual void SetDynamicSettingToDefault(TInt aSettingItem) = 0; + + /** + * Sets a single dynamic setting to scene default value. + * @param aSceneId Scene which the default value is taken from. + * @param aSceneField Id of the setting in scene data. + * @param aSettingId Id of the setting in dynamic settings. + * @param aVideoScene Is the scene a video scene. + * @return KErrNotFound, if setting could not be set. + */ + virtual TInt SetDynamicSettingToSceneDefaultL( TInt aSceneId, + TInt aSceneField, + TInt aSettingId, + TBool aVideoScene ) = 0; + + /** + * Loads the static settings from shared data. Required to update + * the settings whenever get foreground event, in case of external + * changes to the settings. + * @since 2.8 + * @param aIsEmbedded Specifies whether the application is embedded + * or not. + */ + virtual void LoadStaticSettingsL( TBool aIsEmbedded ) = 0; + + /** + * Return handle to video quality level array + * @since 2.8 + * @return reference to array of video quality levels + */ + virtual const RPointerArray& VideoQualityArray() = 0; + + /** + * Return handle to video resolution array + * @since 2.8 + * @param return reference to array of video resolutions + */ + virtual const RArray& VideoResolutions() = 0; + + /** + * Returns the image resolution for a given resolution index. + * @since 2.8 + * @param aIndex The index to get the resolution for + * @returns The X and Y dimensions in pixels of the resolution. + */ + virtual TSize ImageResolutionFromIndex( TCamPhotoSizeId aIndex ) = 0; + + /** + * Returns the current photo quality. + * @return the quality. + * @since 2.8 + */ + virtual TInt CurrentPhotoCompression() const = 0; + + /** + * Returns the current photo resolution from Settings + * @return the resolution. + * @since 2.8 + */ + virtual TCamPhotoSizeId CurrentPhotoResolution() const = 0; + + /** + * Returns the photo resolution for a particular quality + * @return the resolution. + * @param aQualityIndex The index of the quality + * @since 3.0 + */ + virtual TCamPhotoSizeId PhotoResolution( TInt aQualityIndex ) const = 0; + + /** + * Stores the primary camera settings when changing to secondary camera + * that they can be reapplied when changing back + * @since 2.8 + */ + virtual void StorePrimaryCameraSettingsL() = 0; + + /** + * Restores the primary camera settings + * @since 2.8 + */ + virtual void RestorePrimaryCameraSettingsL() = 0; + + /** + * Return variant info. + */ + virtual const TCamVariantInfo& VariantInfo() = 0; + + /* + * Reset repository file + * @since3.0 + */ + virtual void ResetRepository() = 0; + + /** + * Store FT user defined setting + * @since 5.0 + */ + virtual void StoreFaceTrackingValue() = 0; + + /** + * Returns the face tracking state as it was before the latest scene mode change + */ + virtual TCamSettingsOnOff GetPreviousFaceTrack() = 0; + + /** + * Sets the face tracking state as it was before the latest scene mode change + */ + virtual void SetPreviousFaceTrack( TCamSettingsOnOff aPreviousFaceTrack ) = 0; + + /** + * Returns the scene mode that was in use before the current scene mode was selected + */ + virtual TCamSceneId GetPreviousSceneMode() = 0; + /** + * Sets the scene mode that was in use before the current scene mode was selected + */ + virtual void SetPreviousSceneMode( TCamSceneId aPreviousSceneMode ) = 0; + + /** + * Sets user scene setting to default + */ + virtual void SetUserSceneDefault() = 0; + + /** + * Handles a change in the value for the photo scene setting. + * That is, it updates the rest of the photo dynamic setings. + * @param the new scene value. + * @since 2.8 + */ + virtual void PhotoSceneHasChangedL( TInt aSettingValue ) = 0; + + /** + * Store UserScene settings + * @since 5.1 + */ + virtual void StoreUserSceneSettingsL() = 0; + }; +// =========================================================================== + +#endif // MCAMSETTINGSMODEL_H + +// End of File