epoc32/include/mw/mproengprofile.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- 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 <cntdef.h> // 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<TContactItemId> 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<TContactItemId>& 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,<br>
+        * KErrAlreadyExists if the profile name has been changed and there
+        * already is a profile with the same name,<br>
+        * KErrNotFound if a file set as an alert tone cannot be found,<br>
+        * KErrNotSupported if the MIME type of a file set as an alert tone is
+        * not supported to be used as an alert tone,<br>
+        * 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,<br>
+        * 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,<br>
+        * KErrCancel, if a file set as an alert tone is an unactivated DRM file
+        * and user does not want to activate it,<br>
+        * 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,<br>
+        * 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
+