gsprofilesrv_plat/profiles_engine_api/inc/MProfileExtended.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:52 +0200
changeset 0 8c5d936e5675
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2002 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:  Extended profile interface.
*
*/



#ifndef __MPROFILEEXTENDED_H__
#define __MPROFILEEXTENDED_H__

//  INCLUDES
#include <MProfile.h>

// DATA TYPES
enum TProfileFlags
    {
    EProfileFlagRingingTone =               0x0001,
    EProfileFlagRingingType =               0x0002,
    EProfileFlagRingingVolume =             0x0004,
    EProfileFlagMessageAlertTone =          0x0008,
    EProfileFlagInstantMessageAlertTone =   0x0010,
    EProfileFlagVibratingAlert =            0x0020,
    EProfileFlagKeypadVolume =              0x0040,
    EProfileFlagWarningTones =              0x0080,
    EProfileFlagAlertFor =                  0x0100,
    EProfileFlagAvailabilityAttribute =     0x0200,
    EProfileFlagStatusMessage =             0x0400,
    EProfileFlagProfileName =               0x0800,
    EProfileFlagEmailAlertTone =            0x1000,
    EProfileFlagVideoCallRingingTone =      0x2000,
    EProfileFlagMediaVolume =               0x4000,
    EProfileFlagTextToSpeechTone =          0x8000,
//  Free slot              =               0x10000,
    EProfileFlagPttTone =                  0x20000,
    EProfileFlagPttStatus =                0x40000,
    EProfileFlag3DEffect =                 0x80000,
    EProfileFlag3DEcho =                  0x100000,
    EProfileFlagTactileFeedback =         0x200000,
    EProfileFlagAudioFeedback =           0x400000,
    EProfileFlagAll =                       0xFFFF
    };

// FORWARD DECLARATIONS
class MProfileSetName;
class MProfileSetTones;
class MProfilePresence;
class MProfileSetPresence;
class MProfileSetExtraTones;
class MProfileSetExtraSettings;
class CRepository;

// CLASS DECLARATION

/**
*  Extended profile interface.
*  This interface extend MProfile interface.
*
*  @lib N/A
*  @since 2.0
*/
class MProfileExtended : public MProfile
    {
    protected:  // Destructor

        virtual ~MProfileExtended() {};

    public: // New functions

        /**
        * This method set alert for items to the profile.
        * @since 2.0
        * @param aAlertFor Alert for item array.
        */
        virtual void SetAlertForL(
            const TArray<TContactItemId>& aAlertFor ) = 0;

        /**
        * Returns set profile name interface.
        * @since 2.0
        * @return Returns set profile name interface.
        */
        virtual MProfileSetName& ProfileSetName() const = 0;

        /**
        * Returns set profile tones interface.
        * @since 2.0
        * @return Returns set profile tones interface.
        */
        virtual MProfileSetTones& ProfileSetTones() const = 0;

        /**
        * Returns profile presence interface.
        * @since 2.0
        * @return Returns profile presence interface.
        */
        virtual const MProfilePresence& ProfilePresence() const = 0;

        /**
        * Returns set profile presence interface.
        * @since 2.0
        * @return Returns set profile presence interface.
        */
        virtual MProfileSetPresence& ProfileSetPresence() const = 0;

        /**
        * Returns set profile extra tones interface.
        * @since 2.0
        * @return Returns set profile extra tones interface.
        */
        virtual MProfileSetExtraTones& ProfileSetExtraTones() const = 0;

        /**
        * Returns profile modifiable flags. See TProfileFlags.
        * @since 2.0
        * @return Returns profile modifiable flags.
        */
        virtual TUint32 ModifiableFlags() const = 0;

        /**
        * Returns profile visible flags. See TProfileFlags.
        * @since 2.0
        * @return Returns profile visible flags.
        */
        virtual TUint32 VisibleFlags() const = 0;

        /**
        * Externalize data to Central Repository.
        * @since 2.8
        * @param aCenRep Central Repository object to write the settings
        */
        virtual void ExternalizeL( CRepository& aCenRep ) = 0;

        /**
        * Returns set profile extra settings interface.
        * @since 3.0
        * @return set profile extra settings interface.
        */
        virtual MProfileSetExtraSettings& ProfileSetExtraSettings() const = 0;

    };

#endif      // __MPROFILEEXTENDED_H__

// End of File