diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/mproengprofile.h --- a/epoc32/include/mw/mproengprofile.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/mproengprofile.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,169 @@ -mproengprofile.h +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Profile settings interface. +* +*/ + + + +#ifndef MPROENGPROFILE_H +#define MPROENGPROFILE_H + +// INCLUDES +#include // TContactItemId + +// FORWARD DECLARATIONS +class MProEngProfileName; +class MProEngTones; +class MProEngToneSettings; +class MProEngProfileExt; + +// CLASS DECLARATION + +/** +* Profile settings interface. +* MProEngProfile offers methods to get the alert for items, profile settings +* and profile name interface. +* How to use: +* @code +* // Get active profile with MProEngEngine::ActiveProfileL(). +* MProEngProfile* profile = iProfileEngine->ActiveProfileL(); +* +* // Use profile object here... +* +* // When you are ready, free resources with MProEngProfile::Release() +* profile->Release(); +* +* // If you release resources in destructor then: +* if( iProfile ) +* { +* iProfile->Release(); +* } +* +* // If you put this class to CleanupStack then use void CleanupReleasePushL() +* CleanupReleasePushL( *profile ); +* @endcode +* +* @lib ProfileEngine.lib +* @since 3.1 +*/ +class MProEngProfile + { + protected: // Destructor + + virtual ~MProEngProfile() {}; + + public: // New functions + + /** + * Free resources of the profile. + * @since 3.1 + */ + virtual void Release() = 0; + + /** + * Return the alert for item array. + * Only the calls coming from people who belong to one or more + * "Alert for" groups returned here trigger an audible alert. + * @since 3.1 + * @return Alert for array + */ + virtual const TArray AlertForL() = 0; + + /** + * This method set alert for items to the profile. + * Only the calls coming from people who belong to one or more + * "Alert for" groups set here trigger an audible alert. + * @since 3.1 + * @param aAlertFor Alert for array. If the length of this array is 0, + * it is interpreted: "alert for all calls". + * @return KErrAccessDenied, if the "Alert for" groups setting of the + * profile is unmodifiable. + * KErrArgument, if the argument array is too large. + * KErrNone, if succesful. + */ + virtual TInt SetAlertForL( + const TArray& aAlertFor ) = 0; + + /** + * Return whether this profile is silent. A profile being silent means + * that either the ringing type is silent or all the alert tones are set + * to "None". + * @since 3.1 + * @return ETrue if this profile is silent. + */ + virtual TBool IsSilent() const = 0; + + /** + * Return profile name interface. + * @since 3.1 + * @return Instance of the profile name interface. + */ + virtual MProEngProfileName& ProfileName() const = 0; + + /** + * Return profile tones interface. + * @since 3.1 + * @return Instance of the profile tones interface. + */ + virtual MProEngTones& ProfileTones() const = 0; + + /** + * Returns tone settings of this profile. + * @since 3.1 + * @return Returns tone settings of this profile. + */ + virtual MProEngToneSettings& ToneSettings() const = 0; + + /** + * Store profile settings. + * Leaves with: + * KErrAccessDenied if one or more of the settings of this profile is/are + * read-only,
+ * KErrAlreadyExists if the profile name has been changed and there + * already is a profile with the same name,
+ * KErrNotFound if a file set as an alert tone cannot be found,
+ * KErrNotSupported if the MIME type of a file set as an alert tone is + * not supported to be used as an alert tone,
+ * KErrArgument if a file set as an alert tone is DRM-protected but the + * platform does not allow the files of this MIME type to be set as alert + * tones when protected,
+ * KErrPermissionDenied, if a file set as an alert tone is not + * DRM-protected and the platform does not allow the files of this MIME + * type to be set as alert tones when unprotected,
+ * KErrCancel, if a file set as an alert tone is an unactivated DRM file + * and user does not want to activate it,
+ * KErrTooBig if the tone file set for ringing tone (line 1 or line 2) is + * too big in case the platform has this kind of limitation set,
+ * another system-wide error code. + * + * Only processes with WriteDeviceData capability can succesfully call + * this method. + * @since 3.1 + */ + virtual void CommitChangeL() = 0; + + private: // Extension interface + + /** + * This member is internal and not intended for use. + */ + virtual MProEngProfileExt* Extension() { return NULL; } + + }; + +#endif // MPROENGPROFILE_H + +// End of File +