updated dependencies; compiles again (including all plugins) with winscw_udeb without error v5backport
authorChristian Morlok <symbian.org@christianmorlok.de>
Tue, 13 Apr 2010 19:36:31 +0200
branchv5backport
changeset 58 d017f79b1bb1
parent 57 564daa8b8e9a
child 67 35a198a504a8
updated dependencies; compiles again (including all plugins) with winscw_udeb without error
dependencies/AknFepInternalCRKeys.h
dependencies/AvkonInternalCRKeys.h
dependencies/CPhCltBaseImageParams.h
dependencies/CPhCltImageHandler.h
dependencies/CPhCltImageParams.h
dependencies/GSFWViewUIDs.h
dependencies/GSLauncher.h
dependencies/GSListBox.h
dependencies/GSPluginInterface.h
dependencies/PUAcodes.hrh
dependencies/PhCltTypes.h
dependencies/PhoneClientServerDomainPSkeys.h
dependencies/PhoneClientServerDomainPStypes.h
dependencies/RPhCltServer.h
dependencies/S3libs/ProfileEng.lib
dependencies/S3libs/bld.inf
dependencies/S3libs/gsecomplugin.lib
dependencies/S3libs/gsframework.lib
dependencies/S3libs/gslauncher.lib
dependencies/S3libs/gslistbox.lib
dependencies/S3libs/keylockpolicyapi.lib
dependencies/S3libs/phoneclient.lib
dependencies/S3libs/sssettings.lib
dependencies/bld.inf
dependencies/gsframeworkrsc.rsg
dependencies/gsfwicon.mbg
dependencies/gsprofilesrv_plat-profiles_engine_api/group/bld.inf
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/CProfileChangeNotifyHandler.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfile.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfile3DToneSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileChangeObserver.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileEngine.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileEngineExtended.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileExtended.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileExtraSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileExtraTones.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileFeedbackSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileName.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilePresence.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilePttSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSet3DToneSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetExtraSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetExtraTones.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetFeedbackSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetName.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetPresence.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetPttSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetTones.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileTones.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileUtilitySingleton.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilesLocalFeatures.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilesNamesArray.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEng.hrh
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEng.rh
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineConstants.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineDomainCRKeys.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineDomainConstants.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineInternalCRKeys.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineInternalPSKeys.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEnginePrivatePSKeys.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileInternal.hrh
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfilesVariant.hrh
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/SecondaryDisplayProfilesAPI.h
dependencies/gsprofilesrv_plat-profiles_engine_api/inc/TProfileToneSettings.h
dependencies/gsprofilesrv_plat-profiles_engine_api/profiles_engine_api.metaxml
dependencies/gsprofilesrv_plat-profiles_engine_api/tsrc/group/bld.inf
dependencies/gsprofilesrv_plat-settings_framework_api/group/bld.inf
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSBaseContainer.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSBaseView.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSChildViewManager.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSCommon.hrh
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSCommon.rh
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSMainView.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSParentContainer.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSParentPlugin.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSPluginLoader.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSPrivatePluginProviderIds.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSPubSubsListener.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSSettingId.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSTabHelper.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSTabbedView.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSTabbedViewOwner.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/GeneralSettingsVariant.hrh
dependencies/gsprofilesrv_plat-settings_framework_api/inc/MGSSettingPSObserver.h
dependencies/gsprofilesrv_plat-settings_framework_api/inc/MGSWatchDog.h
dependencies/gsprofilesrv_plat-settings_framework_api/loc/gs.loc
dependencies/gsprofilesrv_plat-settings_framework_api/settings_framework_api.metaxml
dependencies/gsprofilesrv_plat-settings_framework_api/tsrc/group/bld.inf
dependencies/gsprofilesrv_plat-settings_framework_api/tsrc/group/settings_framework_api.mk
dependencies/keylockpolicyapi.h
dependencies/logs_ui_command_line_api/group/bld.inf
dependencies/logs_ui_command_line_api/inc/LogsUiCmdStarter.h
dependencies/logs_ui_command_line_api/inc/LogsUiCmdStarter.inl
dependencies/logs_ui_command_line_api/inc/LogsUiCmdStarterConsts.h
dependencies/logs_ui_command_line_api/logs_ui_command_line_api.metaxml
dependencies/phonesrv_plat-ss_settings_api/group/bld.inf
dependencies/phonesrv_plat-ss_settings_api/inc/MSSSettingsObserver.h
dependencies/phonesrv_plat-ss_settings_api/inc/MSSSettingsRefreshObserver.h
dependencies/phonesrv_plat-ss_settings_api/inc/RCustomerServiceProfileCache.h
dependencies/phonesrv_plat-ss_settings_api/inc/RSSSettings.h
dependencies/phonesrv_plat-ss_settings_api/ss_settings_api.metaxml
dependencies/publicruntimeids.hrh
idlefw/plugins/devicestatus/src/aibtsappublisher.cpp
idlefw/plugins/mcsplugin/settings/src/mcspluginsettings.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/AknFepInternalCRKeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,344 @@
+/*
+* 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:               Internal Central Repository keys.
+ *
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#ifndef AKNFEP_INTERNAL_CR_KEYS_H
+#define AKNFEP_INTERNAL_CR_KEYS_H
+
+const TUid KCRUidAknFep = { 0x101F876D };
+
+/**
+ * If this feature is enabled, new line can be entered by pressing scroll down.
+ * Value is either integer 1 (enabled) or 0 (disabled).
+ * Default value: 1 in Japanese variant. 0 in other variants.
+ */
+const TUint32 KAknFepEnterWithScrollDown   = 0x00000001;
+
+/**
+ * If this feature is enabled, Latin predictive input candidates are selected
+ * using scroll keys. If the feature is disabled, they are selected using
+ * softkeys. It is recommended to enable this feature in Japanese variant,
+ * because in Japanese input, predictive candidates are always selected using
+ * scroll keys.
+ * Value is either integer 1 (enabled) or 0 (disabled).
+ * Default value: 1 in Japanese variant. 0 in other variants.
+ */
+const TUint32 KAknFepScrollLatinPredictive = 0x00000002;
+
+/**
+ * If this feature is enabled, space can be entered by pressing scroll right.
+ * Value is either integer 1 (enabled) or 0 (disabled).
+ * Default value: 1 in Japanese and Thai variant. 0 in other variants.
+ */
+const TUint32 KAknFepSpaceWithScrollRight  = 0x00000003;
+
+/**
+ * Chinese Input Mode, integer value.
+ *
+ * Used values:
+ *
+ * 0x10  (Pinyin)
+ * 0x20  (Zhuyin)
+ * 0x40  (Stroke)
+ * 0x80  (Latin Upper Case)
+ * 0x100 (Latin Lower Case)
+ *
+ * Default value: 0
+ */
+const TUint32 KAknFepChineseInputMode      = 0x00000004;
+
+/**
+ * Input Text Language, integer value.
+ *
+ * Possible values:
+ * 0 (automatic)
+ * valid Symbian OS language code
+ *
+ * Default value: 0
+ */
+const TUint32 KAknFepInputTxtLang          = 0x00000005;
+
+/**
+ * This key is required for the Japanese predictive text input feature.
+ * General settings uses it to store the user selection for Japanese
+ * predictive text input.
+ *
+ * Default value: 0
+ */
+const TUint32 KAknFepJapanesePredTxtFlag   = 0x00000006;
+
+/**
+ * Predictive Text Input On/Off for ITU-T keypad.
+ *
+ * Possible values:
+ * 0: off (default value)
+ * 1: on
+ */
+const TUint32 KAknFepPredTxtFlag           = 0x00000007;
+
+/**
+ * Multitap timer value.
+ * Replaces the constant KMultiTapTimeoutMS in Japanese variant.
+ *
+ * Default value: 1000000 in Japanese variant. 0 in other variants.
+ */
+const TUint32 KAknFepMultiTapTimer         = 0x00000008;
+
+/**
+ * Chinese CangJie input method for S60 and QWERTY.
+ *
+ * Possible values:
+ * 0 (ECangJieNormal)
+ * 1 (ECangJieEasy)
+ * 2 (ECangJieAdvanced)
+ */
+const TUint32 KAknFepCangJieMode           = 0x00000009;
+
+/**
+ * Test mode key used in emulator.
+ */
+const TUint32 KAknFepTestModeKey           = 0x0000000A;
+
+/**
+ * This key is required for the Japanese special character flag. General 
+ * settings uses it to store the user selection for Japanese special 
+ * character settings.
+ * - Comma: Japanese comma = 0x01
+ *      Western comma != 0x01
+ * - Period: Japanese period = 0x02
+ *      Western period != 0x02
+ * - Width of Space: Full width = 0x04
+ *      Half width != 0x04
+ * - Width of punctuation marks and symbols:
+ *      Full width = 0x08
+ *      Half width != 0x08
+ */
+const TUint32 KAknFepJapaneseSpecialCharFlag = 0x0000000B;
+
+/**
+ * Indicates whether the hash key is used in selections in lists and editors. 
+ * Needed because making Edit key optional in the device. 
+ * Possible values are: 1 (hash key selection in use) or 0 (hash key 
+ * selection not in use).
+ *
+ * Default value: 0
+ */
+const TUint32 KAknFepHashKeySelection      = 0x0000000C;
+
+/**
+ * Indicates whether "edit text" submenu should be added to application 
+ * options-menu by FEP.
+ */
+const TUint32 KAknFepEditTextSubmenu       = 0x0000000D;
+
+/*
+ * The bottom right point of the hwr window in the orientation mode
+ * EGraphicsOrientationNormal.
+ */
+const TUint32 KAknFepHwrWindowPosition0 = 0x0000000E;
+
+/**
+ * The bottom right point of the hwr window in the orientation mode
+ * EGraphicsOrientationRotated90.
+ */	
+const TUint32 KAknFepHwrWindowPosition1 = 0x0000000F;
+	
+
+/**
+ * The bottom right point of the hwr window in the orientation mode
+ * EGraphicsOrientationRotated180.
+ */
+const TUint32 KAknFepHwrWindowPosition2 = 0x00000010;
+	
+/**
+ * The bottom right point of the hwr window in the orientation mode 
+ * EGraphicsOrientationRotated270.
+ */
+const TUint32 KAknFepHwrWindowPosition3 = 0x00000011;
+	
+/**
+ * The last used alpha recognition range.
+ */
+const TUint32 KAknFepLastUsedRange = 0x00000012;
+	
+/**
+ *  Information whether HWR or VKB input method was used last.
+ */
+const TUint32 KAknFepLastUsedInput = 0x00000013;
+
+/**
+ *  Tells which UI language was active when FEP was last initialized.
+ */
+const TUint32 KAknFepLastUsedUILanguage = 0x00000014;
+
+/**
+ * This key is required for the clear direction.
+ * Clear direction value Left side (Backspace function) /
+ * Right side (Delete function).
+ * Possible values are: (defined in AknFepGlobalEnums.h)
+ * EClearDirectionLeft(0)  remove a character on the left side
+ * EClearDirectionRight(1) remove a character on the right side
+ */
+const TUint32 KAknFepClearDirection = 0x00000015;
+
+/**
+ * Predictive Text Auto Word Completion On/Off.
+ *
+ * A bit vector indicating which input types have auto completion on.
+ *
+ * Possible values:
+ * 0: off
+ * 1: on (default value)
+ *
+ * (bitmask values in EKeyboardStyle)
+ *
+ * 0x01 = ITU-T (12-key) predictive input
+ * 0x02 = Qwerty predictive input
+ */
+const TUint32 KAknFepAutoCompleteFlag = 0x00000016;
+
+/**
+ * Predictive Text Typing Correction Level.
+ *
+ * Possible values:
+ * 0: off 
+ * 1: medium (default value)
+ * 2: high
+ */
+const TUint32 KAknFepTypingCorrectionLevel = 0x00000017;
+
+/**
+ * Predictive Text Number Candidate Shown/Not shown.
+ *
+ * Possible values:
+ * 0: Not Shown 
+ * 1: Shown (default value)
+ */
+const TUint32 KAknFepNumberCandidateFlag = 0x00000018;
+
+/**
+ * Predictive Text Primay Candidate Exact/Suggested.
+ *
+ * Possible values:
+ * 0: Suggested (default value)
+ * 1: Exact 
+ */
+const TUint32 KAknFepPrimaryCandidateFlag = 0x00000019;
+
+/** 
+ * Available physical keyboards. 
+ * A bit vector indicating which physical keyboards are connected to the device.
+ * Possible values (combination of these):
+ * 0x01 = 12-key ITU-T,
+ * 0x02 = 4x12 qwerty,
+ * 0x04 = 4x10 qwerty,
+ * 0x08 = 3x11 qwerty,
+ * 0x10 = half qwerty,
+ * 0x20 = custom qwerty
+ */
+const TUint32 KAknFepPhysicalKeyboards = 0x0000001A;
+
+/**
+ * Predictive Text Input On/Off.
+ *
+ * A bit vector indicating which input types have prediction on.
+ *
+ * Possible values:
+ * 0: off
+ * 1: on (default value)
+ *
+ * (bitmask values in EKeyboardStyle)
+ *
+ * 0x01 = ITU-T (12-key) predictive input (should match KAknFepPredTxtFlag)
+ * 0x02 = Qwerty predictive input
+ */
+const TUint32 KAknFepPredTxtFlagExtension = 0x0000001B;
+
+/**
+ * Secondary Input Text Language, integer value.
+ *
+ * Possible values:
+ * 0 (none)
+ * valid Symbian OS language code
+ *
+ * Default value: 0
+ */
+const TUint32 KAknFepInputTxtLangSecondary = 0x0000001C;
+
+/**
+ * Indicate fullscreen qwerty(big one) key preview popup On/Off.
+ *
+ * Possible values:
+ * 0: off
+ * 1: on (default value)
+ */
+const TUint32 KAknFepShowFsqPreview = 0x0000001D;
+
+/**
+ * Indicate vkb (small one) preview popup On/Off.
+ *
+ * Possible values:
+ * 0: off 
+ * 1: on(default value)
+ */
+const TUint32 KAknFepShowVkbPreview  = 0x0000001E;
+
+/**
+ * the value stores the preferred virtual 
+ * qwerty mode in landscape, there are two modes, 
+ * FSQ the bigger one or VKB the smaller one. 
+ * The mode values are from touch input types,  
+ * EPluginInputModeHwr = 1, 
+ * EPluginInputModeVkb = 2,
+ * EPluginInputModeFSQ = 4,
+ * EPluginInputModeItut = 8,
+ * EPluginInputModeFSc = 16.
+ * And only EPluginInputModeVkb and EPluginInputModeFSQ 
+ * are valid here, and the default value is FSQ 4.
+ */
+const TUint32 KAknFepLastUseVkbMode = 0x0000001F;
+
+/**
+ * Long press number entry feature on (hybrid) QWERTY keyboard. When activated, long press of 
+ * keyboard button can be used to enter the character normally mapped behind Fn modifier on that key. 
+ * This setting has no effect if the keyboard does not have Fn key. Possible values: 0 (off), 1 (on)
+ */
+const TUint32 KAknFepLongPressNumberEntryOnQwerty = 0x00000021;
+/**
+ * Copy-pasting with shift + softkeys on QWERTY. When activated, text can be copied by holding 
+ * shift depressed and pressing left softkey and pasted by holding shift depressed and pressing 
+ * right softkey. Similar funtionality is anyway available on ITU-T keypads with the edit key; 
+ * this setting affects only QWERTY keyboards. Possible values: 0 (off), 1 (on)
+ */
+const TUint32 KAknFepShiftCopyPasteOnQwerty = 0x00000022;
+
+#endif
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/AvkonInternalCRKeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,316 @@
+/*
+* Copyright (c) 2004 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:  Internal Central Repository keys.
+ *
+ *
+*/
+
+
+#ifndef AVKON_INTERNAL_CR_KEYS_H
+#define AVKON_INTERNAL_CR_KEYS_H
+
+const TUid KCRUidAvkon = { 0x101F876E };
+
+/**
+ * Id of the currently active UI layout, integer value.
+ * In first boot this key does not exist - will be set during boot.
+ *
+ * Possible values:
+ *
+ * Any value of TAknLayoutId
+ */
+const TUint32 KAknLayoutId              = 0x00000001;
+
+/**
+ * This flag indicates if new contacts note is active. Integer value.
+ *
+ * Value 0 or KErrNotFound return value means that NCN is not active.
+ * Other values mean that NCN is active.
+ */
+const TUint32 KAknNewContactsNoteActive = 0x00000002;
+
+/**
+ * Products must configure this value depending in which orientation
+ * applications are started and run when the application does not want
+ * to specify any orientation.
+ *
+ * Possible orientations are:
+ *
+ * EAppUiOrientationAutomatic = 0
+ * EAppUiOrientationPortrait = 1
+ * EAppUiOrientationLandscape = 2
+ *
+ * EAppUiOrientationAutomatic is default in the platform. Follows the
+ * device orientation.
+ */
+const TUint32 KAknDefaultAppOrientation = 0x00000003;
+
+/**
+ * Qwerty mode status. This key is updated by Avkon according to the
+ * EKeyQwertyOn (=EKeyApplication7) & EKeyQwertyOff (=EKeyApplication8) key events. 
+ * The events are sent by keyboard driver when qwerty mode is
+ * activated and deactivated.
+ *
+ * Possible values:
+ * 0: Qwerty input mode is not active.
+ * 1: Qwerty input mode is active.
+ */
+const TUint32 KAknQwertyInputModeActive = 0x00000004;
+
+/**
+ * String the recently used characters
+ * Total size of this data is 80 byte (40 unicode characters).
+ *
+ * Possible values:
+ *
+ *  1-10 length 
+ * 11-20 length 
+ * 21-30 length 
+ * 31-40 length 
+ *
+ */
+const TUint32 KAknRecentSctData         = 0x00000005;
+
+/**
+ * Id of the currently active UI zoom level, integer value.
+ * In first boot this key does not exist - will be set during boot.
+ *
+ * Possible values:
+ *
+ * Any value of TAknUiZoom
+ */
+const TUint32 KAknGlobalUiZoom              = 0x00000006;
+
+/**
+ * Value indicates if the extended status pane is the default status pane 
+ * type in portrait mode.
+ *
+ * Possible values are:
+ *
+ * 0: Extended status pane is not default status pane
+ * 1: Extended status pane is default status pane
+ *
+ */
+const TUint32 KAknExtendedPortraitStatusPane = 0x00000007;
+
+/**
+ * Value indicates if list stretching is used by default or not.
+ *
+ * Possible values are:
+ *
+ * 0: List stretching is not used by default.
+ * 1: List stretching is used by default.
+ *
+ */
+const TUint32 KAknAutomaticListStretching = 0x00000008;
+
+/**
+ * Value chooses location editor data format
+ *
+ * Possible values are:
+ * 
+ * 0: Degrees and Decimal degrees
+ * 1: degrees, minutes and decimal minutes
+ * 2: degrees, minutes, seconds, decimal seconds
+ *
+ */
+const TUint32 KAknLocationEditorCoordinateDataFormat = 0x00000009;
+
+/**
+ * Value indicates if MiddleSoftKey is enabled or not.
+ *
+ * Possible values are:
+ *
+ * 0: MSK is not used by default.
+ * 1: MSK is used by default.
+ *
+ */
+const TUint32 KAknMiddleSoftkeyEnabled = 0x0000000A;
+
+/**
+ * The QWERTY keyboard layout for generic QWERTY framework.
+ *
+ * Possible values:
+ * 0: No Keyboard
+ * 1: Keyboard with 12 key
+ * 2: QWERTY 4x12 layout
+ * 3: QWERTY 4x10 layout
+ * 4: QWERTY 3 x 11 layout
+ * 5: Half QWERTY
+ * 6: Custom QWERTY
+ */
+
+const TUint32 KAknKeyBoardLayout = 0x0000000B;
+
+/**
+ * Touch compatibility mode settings flags
+ *
+ * Possible values are:
+ *
+ * Bit0: Applications may be started in compa-mode
+ *
+ */
+const TUint32 KAknCompaModeSettings = 0x0000000C;
+
+/**
+ * Value indicates if Avkon components support transparency.
+ * Changing this key needs device restart.
+ *
+ * Using this key needs WSINI.ini configuration with keyword TRANSPARENCY
+ *
+ * Possible values are:
+ *
+ * 0: Transparency code is not executed in Avkon code
+ * 1: Avkon components utilize transparency
+ *
+ */
+const TUint32 KAknAvkonTransparencyEnabled = 0x0000000D;
+
+/**
+ * The value indicates if adaptive search can be utilized with find pane
+ *
+ * The applications itself decide if they will support the feature, if available.
+ *
+ * Possible values are:
+ *
+ * 0: The adaptive search is disabled from the applications
+ * 1: The adaptive search is enabled for the applications
+ *
+ */
+const TUint32 KAknAvkonAdaptiveSearchEnabled = 0x0000000E;
+
+/**
+ * Touch compatibility mode saved transition effects state
+ *
+ * Possible values are:
+ *
+ * Bit0..30: Saved effects state (KThemesTransitionEffects key value)
+ * Bit31: Effects are disabled
+ *
+ */
+const TUint32 KAknCompaModeEffects = 0x0000000F;
+
+/**
+ * The value indicates the input method for adaptive search in 
+ * Simplified Chinese language
+ *
+ * Key is created when user selects the language for the first time.
+ *
+ * Possible values are:
+ *
+ * 0: Pinyin
+ * 1: Stroke
+ *
+ */
+const TUint32 KAknAdaptiveSearchChinesePRC = 0x00000010;
+
+/**
+ * The value indicates the input method for adaptive search in 
+ * Taiwan traditional Chinese language
+ *
+ * Key is created when user selects the language for the first time.
+ *
+ * Possible values are:
+ *
+ * 0: Zhuyin
+ * 1: Stroke
+ *
+ */
+const TUint32 KAknAdaptiveSearchChineseTW = 0x00000011;
+
+/**
+ * The value indicates the input method for adaptive search in 
+ * Hongkong traditional Chinese language
+ *
+ * Key is created when user selects the language for the first time.
+ *
+ * Possible values are:
+ *
+ * 0: Stroke
+ * 1: Cangjie
+ *
+ */
+const TUint32 KAknAdaptiveSearchChineseHongkong  = 0x00000012;
+
+/**
+ * Touch compatibility mode local variation flags
+ *
+ * Possible values are:
+ *
+ * Bit0: Compa-mode is enabled in device
+ *
+ */
+const TUint32 KAknCompaModeFeatures = 0x00000013;
+
+/**
+ * The value indicates the last used input method for 
+ * adaptive search in any Chinese language variant.
+ * 
+ * Value is the CenRep key id of the input methdod. 
+ * One of the following: 
+ * KAknAdaptiveSearchChinesePRC
+ * KAknAdaptiveSearchChineseTW
+ * KAknAdaptiveSearchChineseHongkong
+ *
+ * Key is created when user sets one of the setting items for the first time.
+ *
+ */
+const TUint32 KAknAdaptiveSearchLastChinese = 0x00000014;
+
+/**
+ * The resource file name used by editor to enable emotion icon.
+ *
+ * The key should be enabled in device before used by editor.
+ *
+ * Initial value should be "smiley"
+ *
+ */
+const TUint32 KAknEmotionResourceFileName = 0x00000015;
+
+/**
+ * they store the type of keyboard in slide close/slide open modes
+ * according to the following enumeration:
+ * 0 = no keyboard
+ * 1 = 12 keys keyboard
+ * 2 = 4x12 qwerty keyboard
+ * 3 = 4x10 qwerty keyboard
+ * 4 = 3x11 qwerty keyboard
+ * 5 = half qwerty keyboard
+ * 6 = custom qwerty keyboard
+ * 7 = max layout keyboard
+ */
+const TUint32 KAknKeyboardSlideClose = 0x00000016;
+
+const TUint32 KAknKeyboardSlideOpen = 0x00000017;
+
+const TUid KCRUidLeaveAppsInMemory = { 0x102858F2 };
+
+/**
+ * Key range for the LeaveAppsInMemory apps list. 
+ * To be used with KLeaveAppsInMemoryAppListKeyMask, meaning that listed
+ * app UIDs should have keys of the form 0x0000????
+ */
+const TUint32 KLeaveAppsInMemoryAppListKeyRange = 0x00000000;
+
+/**
+ * Key mask for the LeaveAppsInMemory apps list.
+ * To be used with KLeaveAppsInMemoryAppListKeyRange, meaning that listed
+ * app UIDs should have keys of the form 0x0000????
+ */
+const TUint32 KLeaveAppsInMemoryAppListKeyMask = 0xFFFF0000;
+
+
+#endif
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/CPhCltBaseImageParams.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,239 @@
+/*
+* Copyright (c) 2004-2005 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:  Parameter class definitions.
+*
+*/
+
+
+#ifndef CPHCLTBASEPARAMS_H
+#define CPHCLTBASEPARAMS_H
+
+#include    <CPhCltImageParams.h>
+#include    <e32std.h>
+#include    <e32base.h>
+
+/**
+* Logo types
+*
+* @since Series60 3.0
+*
+* EPhCltLogoTypeOTA - OTA operator logo
+* EPhCltLogoTypeProgrammable - programmable operator logo
+*/
+enum TPhCltExtOperatorLogoType
+    {
+    EPhCltLogoTypeOTA,
+    EPhCltLogoTypeProgrammable
+    };
+       
+ // Country code type definition.
+typedef TInt TPhCltCountryCode;
+
+// Network code type definition.
+typedef TInt TPhCltNetworkCode;
+
+// Constant to be used when deleting operator logo(s).
+const TInt KPhCltDeleteOperatorLogo = 0;
+
+struct TTelephonyOTALogoUpdate
+    {
+    /**
+    * EPSTelephonyLogoChanged - Logo was added or replaced
+    * EPSTelephonyLogoDeleted - Logo was deleted
+    */
+    enum TPSOperatorLogoUpdateEvent
+        {
+        EPSTelephonyLogoChanged,
+        EPSTelephonyLogoDeleted,
+        EPSTelephonyAllLogosDeleted
+        };
+    
+    // Event type
+    TPSOperatorLogoUpdateEvent iEvent;
+
+    /**
+    * Country code associated to logo, N/A if event
+    * is EPSTelephonyAllLogosDeleted
+    */ 
+    TPhCltCountryCode iMCC;
+
+    /**
+    * Network code associated to logo, N/A if event
+    * is EPSTelephonyAllLogosDeleted
+    */ 
+    TPhCltNetworkCode iMNC;
+
+    typedef TPckg<TTelephonyOTALogoUpdate> TOTALogoUpdatePckg;
+    };
+
+// CLASS DECLARATION
+/**
+*  Parameter storage class.
+*
+*  @lib PhoneClient.lib
+*  @since Series60 3.2
+*/
+NONSHARABLE_CLASS( CPhCltBaseImageParams ) 
+: public CPhCltImageParams
+    {
+    public:
+        /**
+         * Returns class type.
+         * @return type number;
+         */
+        virtual TPhCltImageType Type() const;
+
+        /**
+         * Adds an image.
+         * @param aHandle handle to an image.
+         */
+        virtual void AddImageL( TInt aHandle );
+
+        /**
+        * Assignment operator
+        * @param aParamClass parameter class.
+        * @return 'deep' copied parameter class.
+        */
+        virtual CPhCltBaseImageParams& operator=( 
+            const CPhCltBaseImageParams& aParamClass );
+
+        /**
+         * Gets an image.
+         * @param aIndex index of the image to get.
+         * @return image handle
+         */
+        virtual TInt GetImageL( const TInt aIndex ) const;
+
+        /**
+         * Gets image count.
+         * @return image count
+         */
+        virtual TInt Count() const;
+
+        /**
+        * Get all the images
+        * @return package buffered image struct
+        */
+        virtual TPckgBuf< TPhCltImageArray >& Images();
+
+    protected:
+        /**
+         * Cleans class content.
+         */
+        void Clean();
+
+    public: // Constructor and destructor.
+        /**
+         * Destructor.
+         */
+        virtual ~CPhCltBaseImageParams();
+
+    protected:
+
+        /**
+         * Constructor.
+         */
+        CPhCltBaseImageParams( const TPhCltImageType aType  );
+
+    public: // Data.
+        TPckgBuf< TPhCltImageArray > iImages;
+    };
+
+// CLASS DECLARATION
+/**
+*  Parameter storage class.
+*
+*  @lib PhoneClient.lib
+*  @since Series60 3.2
+*/
+NONSHARABLE_CLASS( CPhCltExtVTImageParams ) : public CPhCltBaseImageParams
+    {
+    public: // Constructor and destructor.
+        /**
+         * Destructor.
+         */
+        ~CPhCltExtVTImageParams();
+
+        /**
+         * Symbian 2 phase constructor.
+         */
+        static CPhCltExtVTImageParams* NewL( const TPhCltImageType aType );
+
+    private:
+
+        /**
+         * Constructor.
+         */
+        CPhCltExtVTImageParams( const TPhCltImageType aType );
+    };
+
+// CLASS DECLARATION
+/**
+*  Parameter storage class.
+*
+*  @lib PhoneClient.lib
+*  @since Series60 3.2
+*/
+NONSHARABLE_CLASS( CPhCltExtOperatorLogoParams ) 
+: public CPhCltBaseImageParams
+    {
+    public: // Constructor and destructor.
+        /**
+         * Destructor.
+         */
+        ~CPhCltExtOperatorLogoParams();
+
+        /**
+         * Symbian 2 phase constructor.
+         */
+        static CPhCltExtOperatorLogoParams* NewL( );
+        
+    public: // New functions.
+        
+        /**
+        * @see CPhCltImageParams::operator=.
+        */
+        CPhCltBaseImageParams& operator=( 
+            const CPhCltBaseImageParams& aParamClass );
+            
+        /**
+        * @see CPhCltImageParams::AddImageL.
+        * NOTE: when deleting, set image to KPhCltDeleteOperatorLogo
+        * @see CPhCltExtOperatorLogoParams::SetCodesL
+        */
+        void AddImageL( TInt aHandle );
+        
+        /**
+        * Sets country and network code for operator logo.
+        * @param aCountryCode country code
+        * @param aNetworkCode network code
+        * @param aLogoType OTA/programmable logo
+        * NOTE: delete all: set codes to KPhCltDeleteOperatorLogo
+        */        
+        virtual void SetCodesL( 
+            const TPhCltCountryCode aCountryCode, 
+            const TPhCltNetworkCode aNetworkCode,
+            const TPhCltExtOperatorLogoType aLogoType );
+        
+    private:
+
+        /**
+         * Constructor.
+         */
+        CPhCltExtOperatorLogoParams();
+    };
+
+#endif // CPHCLTBASEPARAMS_H
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/CPhCltImageHandler.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2004-2005 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:  Image storing and loading interface.
+*
+*/
+
+
+#ifndef CPHCLTIMAGEHANDLER_H
+#define CPHCLTIMAGEHANDLER_H
+
+#include <e32base.h>
+#include "CPhCltImageParams.h"
+
+// FORWARD DECLARATIONS
+class RPhCltServer;
+class CPhCltImageParams;
+class RFile;
+
+/**
+* Interface for image saving callback.
+*/
+class MPhCltImageObserver
+    {
+public:
+    /**
+    * Callback for image saving.
+    * @param aResult KErrNone if image saving succeeded, or a Symbian OS
+    *        error code in failure.
+    */
+    virtual void HandleImageSaveCompleteL( TInt aResult ) = 0;
+    };
+    
+/**
+*  Interface used in image storing to PhoneServer.
+*
+*  @lib PhoneClient.lib
+*  @since S60 v3.2
+*/
+class CPhCltImageHandler : public CBase
+    {
+    
+    public:  // Constructors 
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CPhCltImageHandler* NewL();
+        
+    public: // New functions
+
+        /**
+        * Save image(s)
+        * @param aParam parameters passed 
+        * @return KErrNone if successful, Symbian error code otherwise.
+        * NOTE: can be used to delete operator logos,
+        * @see CPhCltExtOperatorLogoParams::SetCodesL
+        * @see CPhCltExtOperatorLogoParams::AddImageL        
+        */
+        virtual TInt SaveImages( CPhCltImageParams& aParams ) = 0;
+            
+        /**
+        * Load image(s)
+        * @param aParam parameters in return passed 
+        * @return KErrNone if successful, Symbian error code otherwise.
+        */
+        virtual TInt LoadImages( CPhCltImageParams*& aParams ) = 0;
+
+        /**
+        * Creates image parameter class.
+        * @param aType type of the implementation class.
+        * @return CPhCltBaseImageParams implementation class. 
+        *         NULL if not supported.
+        *         Ownership transferred.
+        */
+        IMPORT_C virtual CPhCltImageParams* 
+            CPhCltBaseImageParamsL( const TPhCltImageType aType ) = 0; 
+        
+        
+        /**
+        * Saves user defined video call still image file. This makes copy
+        * of original file to secure place.
+        * @param aObserver callback for notifying result of the operation
+        * @param aImagePath full path to image to be saved
+        * @since S60 v5.0
+        */
+        virtual void SaveVtImageL( MPhCltImageObserver& aObserver,
+            const TDesC& aImagePath ) = 0;
+                        
+        /**
+        * Cancels pending image saving. This may be no-op from saving point
+        * of view (image is actually saved) but resets internal state to such
+        * that no operation is pending.
+        * @since S60 v5.0
+        */
+        virtual void CancelSaveVtImage() = 0;
+        
+        /**
+         * Opens user defined video call still image file.
+         * @param aFile file handle that shall to point to image file
+         *        Client should close the file after use.
+         * @return KErrNone if successful, Symbian error code otherwise.
+         * @since S60 v5.0
+         */
+        virtual TInt OpenVtImage( RFile& aFile ) = 0;
+                
+       /**
+        * Opens predefined (read-only) video call still image file.
+        * @param aFile file handle that shall point to image file.
+        *        Client should close the file after use.
+        * @return KErrNone if successful, Symbian error code otherwise.
+        * @since S60 v5.0
+        */
+        virtual TInt OpenDefaultVtImage( RFile& aFile ) = 0;
+
+      protected:
+                               
+        /**
+        * C++ constructor.
+        */
+       CPhCltImageHandler();
+    };
+
+
+#endif      // CPHCLTIMAGEHANDLER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/CPhCltImageParams.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2004-2005 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:  Parameter class definitions.
+*
+*/
+
+
+#ifndef CPHCLTIMAGEPARAMS_H
+#define CPHCLTIMAGEPARAMS_H
+
+#include    <e32std.h>
+#include    <e32base.h>
+
+
+// Number of images in max.
+const TInt KPhCltImagesArrayLen = 10; 
+
+
+/**
+* Enumerates image type.
+* 
+* @since 3.0.
+* 
+* EPhCltVersionNotSet - not set version nbr.
+* EPhCltVersionVTStill - Video telephony still image.
+* EPhCltVersionOperatorLogo - Operator logo.
+* EPhCltTypeVTDefault - Video telephony default image when
+*                       VT still image is not in use.
+*/
+enum TPhCltImageType
+    {
+    EPhCltTypeNotSet         = 0,
+    EPhCltTypeVTStill        = 1,
+    EPhCltTypeOperatorLogo   = 2,
+    EPhCltTypeVTDefault      = 3
+    };
+    
+    
+/**
+* Image handler uses TPhCltImageArray.
+* Identification is done according to the version number, and handled
+* accordingly.
+*/
+struct TPhCltImageArray
+    {
+    TInt iImages[KPhCltImagesArrayLen];
+    TInt iImageCount; 
+    TPhCltImageType iType;
+    };
+
+
+// CLASS DECLARATION
+/**
+*  Parameter storage class.
+*
+*  @lib PhoneClient.lib
+*  @since Series60 3.2
+*/
+class CPhCltImageParams : public CBase
+    {
+    public:
+        /**
+         * Returns class type.
+         * @return type number;
+         */
+        IMPORT_C virtual TPhCltImageType Type() const = 0;
+
+        /**
+         * Adds an image.
+         * @param aHandle handle to an image.
+         */
+        virtual void AddImageL( TInt aHandle ) = 0;
+
+        /**
+         * Gets an image.
+         * @param aIndex index of the image to get.
+         * @return image handle
+         */
+        IMPORT_C virtual TInt GetImageL( const TInt aIndex ) const = 0;
+
+        /**
+         * Gets image count.
+         * @return image count
+         */
+        IMPORT_C virtual TInt Count() const = 0;
+
+        /**
+        * Get all the images
+        * @return package buffered image struct
+        */
+        virtual TPckgBuf< TPhCltImageArray >& Images() = 0;
+    };
+
+#endif // CPHCLTIMAGEPARAMS_H
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/GSFWViewUIDs.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2005 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:   View UIDs for GS FW
+* These UIDs are used to identify the parent of the view/plugin. The same UID
+* is used for both plugin and view identification.
+*
+*/
+
+
+#ifndef GSFWVIEWUIDS_H
+#define GSFWVIEWUIDS_H
+
+
+// Use this UID if plugin belongs to Main view:
+const TUid KGSMainViewUid = { 0x1020723B };
+
+
+// No item is selected in the container's listbox
+const TUid KGSNoneSelected = { 0x00000000 };
+
+// UIDs used by the sub-view plugins:
+
+// Use this UID if plugin belongs to General view:
+const TUid KGSGenPluginUid  = { 0x10207237 };
+
+// Use this UID if plugin belongs to Telephony view:
+const TUid KGSTelPluginUid  = { 0x1020723D };
+
+// Use this UID if plugin belongs to Connection view:
+const TUid KGSConPluginUid  = { 0x10207250 };
+
+// Use this UID if plugin belongs to Applications view:
+const TUid KGSAppsPluginUid = { 0x10207239 };
+
+// Use this UID if plugin belongs to Personalisation view:
+const TUid KGSPrslnPluginUid = { 0x10207252 };
+
+// Use this UID if plugin belongs to Security view:
+const TUid KGSSecurityPluginUid = { 0x1020743A };
+
+// Use this UID if plugin belongs to Standby view:
+const TUid KGSStandbyPluginUid = { 0x1020743F };
+
+// UID of General Settings application.
+// This UID is used for accessing the help IDs controlled by GS help files
+const TUid KUidGS = { 0x100058EC };
+
+// Use this UID if plugin belongs to Packet Data:
+const TUid KGSPDataPluginUid = { 0x1020724E };
+
+// Use this UID if plugin belongs to Interaction:
+const TUid KGSInteractionPluginUid = { 0x10283343 };
+
+// Use this UID if plugin belongs to Administration:
+const TUid KGSAdminPluginUid = { 0x10283341 };
+
+// Use this UID if plugin belongs to Device Management:
+const TUid KGSDeviceManagementPluginUid = { 0x10283317 };
+
+// Use this UID if plugin belongs to Device Updates:
+const TUid KGSDeviceUpdatesPluginUid = { 0x1028331B };
+
+// Use this UID if plugin belongs to Synchronisation view:
+const TUid KGSSynchronisationPluginUid = { 0x10283319 };
+
+// Use this UID if plugin belongs to Installations view:
+const TUid KGSInstallationsPluginUid = { 0x10283321 };
+
+#endif // GSFWVIEWUIDS_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/GSLauncher.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2007-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:   Launches GS views.
+*
+*/
+
+
+
+
+#ifndef C_GSLAUNCHER_H
+#define C_GSLAUNCHER_H
+
+#include <e32std.h>
+#include <e32def.h>
+#include <apgtask.h>
+
+
+
+class CGSLauncherExtension;
+/**
+ *  Launches general settings with specific plug-in opened.
+ *  Using this API, a client may request a general settings view to be shown.
+ *  Implementation will launch general settings if it is not yet running. 
+ *
+ *  Example usage of the interface:
+ *  @code
+ *   CGSLauncher* l = CGSLauncher::NewLC();
+ *   l->LaunchGSViewL ( yourPluginUid, TUid::Uid(0), KNullDesC8 ); 
+ *   CleanupStack::PopAndDestroy(l);
+ *  @endcode
+ *
+ *  @lib gslauncher.lib
+ *  @since S60 5.0
+ */
+NONSHARABLE_CLASS(CGSLauncher) : public CBase
+    {
+
+public:
+
+    /**
+     * Two-phased constructors.
+     */
+    IMPORT_C static CGSLauncher* NewL();
+
+    IMPORT_C static CGSLauncher* NewLC();
+    
+
+    /**
+    * Destructor.
+    */
+    virtual ~CGSLauncher();
+
+    /**
+     * Launches general settings with specific plug-in activated.
+     * Launching of plug-in's local views is not supported. 
+     * General settings application is started if it's not running. 
+     * Any application embedded into general settings will be closed.
+     *
+     * Needs capability: SwEvent
+     * 
+     * @since S60 5.0
+     * @param aTarget 					Target plug-in's view id. (CAknView::Id())
+     * @param aCustomMessageId  For client data. Passed to the plug-in.
+     * @param aCustomMessage  	For client data. Passed to the plug-in.
+     * @return none
+     */
+	IMPORT_C void LaunchGSViewL( const TUid aTarget,const TUid aCustomMessageId
+			,const TDesC8& aCustomMessage );
+
+
+protected:
+
+private:
+
+    CGSLauncher();
+    
+    void ConstructL();
+
+private: // data
+		CGSLauncherExtension* iExt;
+    };
+
+#endif // C_GSLAUNCHER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/GSListBox.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,257 @@
+/*
+* Copyright (c) 2003-2005 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:   
+*     class description for CGSListBox & CGSListBoxItemTextArray.
+*
+*/
+
+
+
+#ifndef GS_LIST_BOX_H
+#define GS_LIST_BOX_H
+
+#include    <e32base.h>
+#include    <e32std.h>
+#include    <barsread.h>
+#include    <coemain.h>
+
+class CAknRadioButtonSettingPage;
+class CEikListBox;
+
+
+/*================================================
+* CGSListboxEntry: class to map feature->item index when selected
+* from a listbox. This is required when there are features which are
+* dynamically shown/hidden.
+================================================*/
+class CGSListboxEntry : public CBase
+	{
+	public:
+		IMPORT_C static CGSListboxEntry* NewLC( TResourceReader& aReader );
+		IMPORT_C static CGSListboxEntry* NewLC( TInt aFeatureId );
+		IMPORT_C static CGSListboxEntry* NewLC( 
+            TUint32 aResId, CCoeEnv& aEnv, TInt aFeatureId );
+			IMPORT_C ~CGSListboxEntry();
+
+	public: // Accessors
+		IMPORT_C TInt FeatureId() const;
+		IMPORT_C const TDesC& Caption() const;
+		IMPORT_C TInt Type() const;
+
+    public: // Manipulators
+		IMPORT_C void SetDynamicTextL( const TDesC& aText );
+		IMPORT_C void SetDynamicTextDoublePaneL( const TDesC& aText );
+
+	private:
+		CGSListboxEntry();
+		void ConstructL( TResourceReader& aReader );
+		void ConstructL( TUint32 aResId, CCoeEnv& aEnv, TInt aFeatureId );
+		
+	private:
+		inline TInt StaticTextLength() const { return iStaticTextLength; }
+
+	private:
+
+		/** 
+		 * The length of the static text which does not change
+		 */
+		TInt iStaticTextLength;
+
+		/**
+		 * The static text and dynamic text combined. We can always
+		 * change the dynamic part due to the fact that we know
+		 * the length (prefix) of the static part.
+		 */
+		HBufC* iCaption;
+
+		/**
+		 * One of either EGSListBoxItemTypeIsAlwaysVisible or
+		 * EGSListBoxItemTypeIsDynamic
+		 */
+		TInt iType;
+
+		/**
+		 * The id of this feature
+		 */
+		TInt iFeatureId;
+		
+		/**
+		* Maximum Length of the Dynamic text which doesnot change.. 
+		* This has been added after inclusion Double Pane List Box
+		*/
+		TInt iDynamicTextSize;
+	};
+
+
+
+/*================================================
+================================================*/
+class CGSItemTextArray : public CBase, public MDesCArray
+    {
+	public:
+	    enum TVisibility
+		    {
+		    EInvisible = 0,
+		    EVisible = 1
+		    };
+
+    public:
+        IMPORT_C static CGSItemTextArray* NewL(
+            TUint32 aResId, 
+            CCoeEnv& aEnv );
+		~CGSItemTextArray();
+
+	protected:
+		CGSItemTextArray();
+		void ConstructL( TUint32 aResId, CCoeEnv& aEnv );
+		void ConstructL( TUint32 aResId, CCoeEnv& aEnv, TInt aCount ); 
+		
+    public: // From MDesCArray
+		IMPORT_C TInt MdcaCount() const;
+		IMPORT_C TPtrC MdcaPoint( TInt aIndex ) const;
+
+	public: // API
+		
+		/** 
+		 * Used to add dynamic text to the end of an existing model item
+		 */
+		IMPORT_C void SetDynamicTextL( TInt aFeatureId, 
+            const TDesC& aAdditionalText );
+
+        /** 
+		 * Used to add dynamic text to the end of an existing model item 
+		 * When Double Pane List box is used CAknDoubleStyleListBox
+		 */
+		IMPORT_C void SetDynamicTextDoublePaneL( TInt aFeatureId, 
+            const TDesC& aAdditionalText );
+            
+		/**
+		 * Specify that this item should be visible / invisible in the
+		 * iCurrentlyDisplayedEntries array
+		 */
+		IMPORT_C void SetItemVisibilityL( TInt aFeatureId, 
+            TVisibility aVisibility );
+
+		/**
+		 * Access the id of the currently selected feature
+		 */
+        IMPORT_C virtual TInt CurrentFeature() const;
+
+		/**
+		 * Set the currently selected feature id
+		 */
+        IMPORT_C TInt IndexForFeatureIdL(TInt aFeatureId) const;
+
+		/**
+		 * Returns the feature id corresponding to an index
+		 */
+        IMPORT_C TInt FeatureIdByIndex(TInt aIndex) const;
+
+        /**
+		 * 
+		 */
+		IMPORT_C const CGSListboxEntry* FeatureByIdL( TInt aFeatureId ) const;
+
+        /**
+		 * 
+		 */
+        IMPORT_C static HBufC* GetItemCaptionFromFeatureIdLC(TUint32 aResourceId, TInt aFeatureId, CCoeEnv& aCone);
+
+
+	private:
+		static TBool CompareEntries( const CGSListboxEntry& aLeft, 
+			const CGSListboxEntry& aRight );
+
+
+	protected:
+
+		/**
+		 * All the entries which may potentially be contained within the listbox
+		 * model. This array is owned and destroyed by this class.
+		 */
+		RPointerArray< CGSListboxEntry > iAllEntries;
+
+		/**
+		 * The entries which are currently displayed within the listbox. These
+		 * pointers are actually owned in the iAllEntries array and therefore
+		 * this array must not be 'ResetAndDestroyed()' (but rather just Reset())
+		 * from within this class' destructor.
+		 */
+		RPointerArray< CGSListboxEntry > iCurrentlyDisplayedEntries;
+    };
+
+
+/*================================================
+================================================*/
+class CGSRadioButtonSettingPageItemTextArray : public CGSItemTextArray
+    {
+	public:
+		IMPORT_C static CGSRadioButtonSettingPageItemTextArray* NewL(
+            TUint32 aResId, 
+            CCoeEnv& aEnv,
+			CAknRadioButtonSettingPage* aSettingPage = NULL
+            );
+
+	private:
+		CGSRadioButtonSettingPageItemTextArray( CAknRadioButtonSettingPage* aSettingPage  );
+
+    public: // FROM CGSItemTextArray
+    	IMPORT_C TInt CurrentFeature() const;
+
+    public: // New API
+        IMPORT_C void SetRadioButtonSettingPage( CAknRadioButtonSettingPage& aPage );
+
+	private:
+
+		/**
+		 * Underlying setting page
+		 */
+		CAknRadioButtonSettingPage* iSettingPage;
+    };
+
+
+
+/*================================================
+* CGSListBoxItemTextArray: This class acts as a wrapper class for
+* CGSListboxEntry. Instance of this class is created from the
+* calling function.
+================================================*/
+class CGSListBoxItemTextArray : public CGSItemTextArray
+	{
+	public:
+		IMPORT_C static CGSListBoxItemTextArray* NewL(
+            TUint32 aResId, 
+			CEikListBox& aListBox,
+            CCoeEnv& aEnv );
+        IMPORT_C static CGSListBoxItemTextArray* NewL( 
+            TUint32 aResId, 
+            CEikListBox& aListBox, 
+            CCoeEnv& aEnv, 
+            TInt aCount );
+            
+ 	private:
+		CGSListBoxItemTextArray( CEikListBox& aListBox );
+
+    public: // FROM CGSItemTextArray
+    	IMPORT_C TInt CurrentFeature() const;
+
+	private:
+
+		/**
+		 * Underlying listbox
+		 */
+		CEikListBox& iListBox;
+	};
+
+#endif //GS_LIST_BOX_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/GSPluginInterface.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,420 @@
+/*
+* Copyright (c) 2005-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:   Header file for CGSPluginInterface class.
+*
+*/
+
+
+#ifndef GSPLUGININTERFACE_H
+#define GSPLUGININTERFACE_H
+
+// System includes
+#include <GSFrameworkRsc.rsg> // For default icons
+#include <gsfwicon.mbg>
+
+#include <aknview.h>
+#include <aknViewAppUi.h>
+#include <gulicon.h>
+#include <AknsUtils.h>
+#include <aknViewAppUi.h>
+#include <data_caging_path_literals.hrh>
+
+// Constant for plugin interface:
+const TUid KGSPluginInterfaceUid        = { 0x10207236 };
+
+// Constant for listbox icon type:
+const TUid KGSIconTypeLbxItem           = { 0x10207357 };
+// Constant for listbox settings item icon type:
+const TUid KGSIconTypeLbxSettingsItem   = { 0x102750C5 };
+// Constant for tab icon type:
+const TUid KGSIconTypeTab               = { 0x10207358 };
+// Constant for icon in D-Column:
+const TUid KGSIconTypeDColumn           = { 0x10207359 };
+
+
+// Constant for indexing (iOrder):
+const TInt KGSPluginNotIndexed      = -1;
+
+_LIT( KGSDefaultIconFileName, "Z:Gsfwicon.mbm" );
+
+/**
+* This enum is used for defining custom operations types.
+*/
+enum TGSCustomOperationType
+    {
+    // This operation type returns current status of the plugin's view.
+    // If the plugin's view is active, ETrue will be returned, otherwise
+    // EFalse. Currently supported by GSStandbyPlugin.
+    EGSCustomOperationViewActive = 1
+    };
+
+/**
+* Used by GetValue(). These are the keys for retrieving a specific
+* value. This enum can be extended to provide other values as well as
+* long as the original keys are not changed.
+*/
+enum TGSPluginValueKeys
+    {
+    // Value for this key is the localized string to be shown in the second row
+    // of a listbox item. Plugins providing second row of text should provide
+    // value for this key. Second row of list item text is used for following
+    // listbox types:
+    //  - EGSListBoxTypeSingleLarge
+    //  - EGSListBoxTypeDouble2Large.
+    // For plugins listed in these listbox types, second row value can either
+    // be defined or left empty.
+    EGSPluginKeySettingsItemValueString = 1,
+    // Localized string to be used in case of custom MSK and menu activation
+    // item. See TGSMenuActivationItems.
+    EGSCustomMenuActivationText
+    };
+
+/**
+* Used by PluginItemType(). These enumerations define the desired appearance
+* of the plugin in a parent plugin's listbox. Please notice that the parent
+* listbox type cannot be altered by a child plugin so plugins using these must
+* be aware of the parent plugin listbox type. Safest alternative is to leave
+* default implementation for ItemType() in which case EGSItemTypeSingleLarge is
+* used. This should fit most of the listbox types. Additionall types can be
+* implemented and defined as long as the old enumerations will not be changed.
+*
+* Different type of items are handled differently:
+* - In case of CAknView type items, such as EGSItemTypeSingleLarge and
+*   EGSItemTypeSetting, the plugin's DoActivate() is called when user selects
+*   the item.
+* - In case of items supporting dialogs, such as EGSItemTypeSettingDialog and
+*   EGSItemTypeSettingIconDialog, HandleSelection() is called instead of
+*   DoActivate().
+*
+* Item types can be described in a matrix:
+* X: Normal list tems with large icon,
+*    settings items,
+*    settings items with icon
+* Y: Items providing CAknView - activated by DoActivate(),
+*    items providing dialog - activated by HandleSelection()
+*
+* All combinations of these are not allowed/supported.
+*/
+enum TGSListboxItemTypes
+    {
+    // CAknSingleLargeStyleListBox item:
+    // Caption of the item is a descriptor from GetCaptionL().
+    // Icon is from CreateIconL( KGSIconTypeLbxItem ).
+    EGSItemTypeSingleLarge = 1, // Default
+    // CAknSettingStyleListBox item providing a CAknView:
+    // 1st row content is a descriptor from GetCaptionL()
+    // 2nd row content is a descriptor (can be empty string id needed) from
+    //    GetValue( ..., EGSPluginKeySettingsItemValueString ).
+    EGSItemTypeSetting,
+    // CAknSettingStyleListBox item providing a CAknView:
+    // 1st row content is a descriptor from GetCaptionL()
+    // 2nd row content is a icon from CreateIconL( KGSIconTypeLbxSettingsItem )
+    // GetValue(, EGSPluginKeySettingsItemValueString ).
+    EGSItemTypeSettingIcon,
+    // CAknSettingStyleListBox item launching a dialog:
+    // 1st row content is a descriptor from GetCaptionL()
+    // 2nd row content is a descriptor (can be empty string id needed) from
+    //    GetValue( ..., EGSPluginKeySettingsItemValueString ).
+    EGSItemTypeSettingDialog,
+    // CAknSingleLargeStyleListBox item launching a dialog:
+    // Caption of the item is a descriptor from GetCaptionL().
+    // Icon is from CreateIconL( KGSIconTypeLbxItem ).
+    EGSItemTypeSingleLargeDialog
+    };
+
+/**
+* These are used to define the type of the menu item which opens the selected
+* plugin. By default, parent plugin's menu has 'Open' item for child plugins.
+* If parent plugin's menu must have 'Change' instead of 'Open' for activating
+* the plugin, use EGSMenuActivationItemChange. This functionality is just for
+* the visual aspects for views in GS - requested by UI design. Plugins are
+* handled logically similarly regardless this value.
+*/
+enum TGSMenuActivationItems
+    {
+    // Default - will use the item defined in menu resource.
+    EGSMenuActivationItemDefault = 0,
+    // Menu should contain 'Open' Item.
+    EGSMenuActivationItemOpen = 1,
+    // Menu should contain 'Change' item.
+    EGSMenuActivationItemChange,
+    // Menu should contain custom text which is defined by GetValue() function:
+    // GetValue( EGSCustomMenuActivationText, ... );
+    // NOTE: When this custom menu item is selected, used menu command ID is
+    // EGSCmdAppChange. This might be checked in for example plugin's
+    // HandleCommand(). If text is empy, MSK is empty and there's no
+    // corresponding item in options menu.
+    EGSMenuActivationItemCustom
+    };
+
+/**
+* Selection types. Used in HandleSelection().
+*/
+enum TGSSelectionTypes
+    {
+    // User selected the item by pressing selection key.
+    EGSSelectionBySelectionKey = 1,
+    // User selected the item by selecting a command from the menu.
+    EGSSelectionByMenu
+    };
+
+/**
+* Interface class for GS plugin. All GS plugins will implement this class.
+*
+* The main functionality GS framework will use from CAknView is:
+* -DoActivate()
+* -DoDeactivate()
+* -Id()
+* functions.
+*
+* Id() function must return the value of the plugin implementation UID. This
+* means that the main view of the plugin will have the same UID as the plugin
+* implementation. This will prevent multiple plugins from having same view
+* UIDs as their main view. If plugin has more views, it is plugin's
+* responsibility to ensure that the UIDs of the other views are unique. This
+* can be done for example reserving a unique UID from Symbian.
+*
+* Most of the functions have implementation using default values. Override
+* functions if different values or implementations are desired.
+*
+* CGSPluginInterface UID = 0x10207236
+*
+* See GSFWViewUIDs.h for plugin UIDs.
+*
+* Plugin implementation UID will be used when defining the parent view of a
+* plugin. If plugin belongs to application settings view, set the
+* ApplicationSettingsView plugin implementation Uid as a value in the plugin's
+* default_data field in plugin's implementation info resource file.
+*
+* Needed libraries (at least):
+* GSEcomPlugin.lib
+* GSFramework.lib
+* egul.lib
+* aknskins.lib
+* efsrv.lib
+*
+* @lib GSFramework.lib
+* @since Series60_3.1
+*/
+class CGSPluginInterface: public CAknView
+    {
+
+    // CGSPluginLoader accesses iOrder which should not be accessed outside.
+    friend class CGSPluginLoader;
+
+    public: // Constructors & destructors
+
+        /**
+        * Creates new GS plugin having the given UID.
+        * Uses Leave code KErrNotFound if implementation is not found.
+        *
+        * @param aImplementationUid Implementation UID of the plugin to be
+        *        created.
+        * @param aInitParams Plugin's initialization parameters. Make sure you know
+        *        what the plugin expects as initialization parameters. This
+        *        should be an agreement between the plugin client and the
+        *        plugin. Parameter can be used for example as sharing a common
+        *        data model between multiple plugins.
+        */
+        IMPORT_C static CGSPluginInterface* NewL(
+            const TUid aImplementationUid,
+            TAny* aInitParams );
+
+        /**
+        * Destructor
+        */
+        IMPORT_C ~CGSPluginInterface();
+
+    public: // New
+
+        /**
+        * Method for getting caption of this plugin. This should be the
+        * localized name of the settings view to be shown in parent view.
+        *
+        * @param aCaption pointer to Caption variable
+        */
+        virtual void GetCaptionL( TDes& aCaption ) const = 0;
+
+        /**
+        * Function for getting plugin's value for a certain key.
+        * Override to provide own functionality.
+        *
+        * @param aKey Key for the value to be retrieved.
+        * @parem aValue Value for the given gey in TDes format.
+        */
+        IMPORT_C virtual void GetValue( const TGSPluginValueKeys aKey,
+                                        TDes& aValue );
+
+        /**
+        * This function is called in case plugin is an item in a settings
+        * listbox and user selects the item. Override this if plugin needs to
+        * provide functionality for item selection.
+        *
+        * Default implementation activates the plugin.
+        * @param aSelectionType Defines how user selected the plugin. See
+        *        TGSSelectionTypes.
+        */
+        IMPORT_C virtual void HandleSelection(
+            const TGSSelectionTypes aSelectionType );
+
+        /**
+        * This defines the appearance of the plugin in a parent plugin listbox.
+        * Default value is EGSItemTypeSingleLarge. Please notice that the
+        * parent listbox type cannot be defined by a child plugin so plugins
+        * using these must be aware of the parent plugin listbox type.
+        *
+        * @return Desired listbox presentation and functional type for the
+        *         plugin.
+        */
+        IMPORT_C virtual TGSListboxItemTypes ItemType();
+
+        /**
+        * This function is only used for child plugins. Defines the dynamic
+        * menu item that activates this plugin from parent plugin. This menu
+        * item will override the item defined in resource file. Normally
+        * 'Open' is used to open the child plugin. Override this to change the
+        * activation to for example 'Change'. TGSMenuActivationItems defines the
+        * different possible menu items that can be used to open this plugin.
+        *
+        * Note: This also defines MSK. Menu activation item and MSK have
+        *       identical label and behaviour. An exception to this is
+        *       when custom text is empty: in this case MSK is empty but there
+        *       is no item in options menu (no empty item in menu).
+        *
+        * @ return Type of the menu item and MSK that should activate this
+        *          child plugin from parent plugin.
+        */
+        IMPORT_C virtual TGSMenuActivationItems MenuActivationItem();
+
+        /**
+        * Creates a new icon of desired type. Override this to provide custom
+        * icons. Othervise default icon is used for KGSIconTypeLbxItem. Other
+        * icons are empty. Ownership of the created icon is transferred to the
+        * caller.
+        * NOTE: Return NULL if icon is not to be displayed.
+        *
+        * Icon type UIDs (use these defined constants):
+        * KGSIconTypeLbxItem            - ListBox item icon.
+        * KGSIconTypeLbxSettingsItem    - Settings item icon.
+        * KGSIconTypeTab                - Tab icon.
+        * KGSIconTypeDColumn            - Small icon in D-column.
+        *
+        * @param aIconType UID Icon type UID of the icon to be created.
+        * @return Pointer of the icon or NULL.
+        */
+        IMPORT_C virtual CGulIcon* CreateIconL( const TUid aIconType );
+
+        /**
+        * Method for reading the ID of the plugin provider category. See
+        * TGSPluginProviderCategory. PluginProviderCategory can be used for
+        * sorting plugins.
+        *
+        * Default value is EGSPluginProvider3rdParty. Override this function
+        * to change the category.
+        *
+        * @return Plugin provider category ID defined by
+        *         TGSPluginProviderCategory
+        */
+        IMPORT_C virtual TInt PluginProviderCategory() const;
+
+        /**
+        * Reserved for future use/plugin's custom functionality. This can be
+        * overwritten if plugin needs to have custom functionality which cannot
+        * be fulfilled otherwise.
+        *
+        * Use TGSCustomOperationType enumeration as aParam1 to
+        * define operation type.
+        */
+        IMPORT_C virtual TAny* CustomOperationL( TAny* aParam1, TAny* aParam2 );
+
+        /**
+        * Method for checking, if plugin should be visible and used in GS FW.
+        * (for example shown in listbox of the parent view).
+        *
+        * On default plugin is visible. Overwrite this function to enable or
+        * disable your plugin dynamically.
+        *
+        * @return ETrue if plugin should be visible in GS.
+        * @return EFalse if plugin should not be visible in GS.
+        */
+        IMPORT_C virtual TBool Visible() const;
+
+        /**
+        * Resets plugin's selected item index if this is supported. Default
+        * implementation does nothing. This is needed when navigating from
+        * child plugin back to parent plugin. In this case child plugin should
+        * reset selected index in its listbox.
+        */
+        IMPORT_C virtual void ResetSelectedItemIndex();
+
+        /**
+        * Sets the Index of the plugin in listbox. Used for CGSPluginLoader. Default
+        * value is KGSPluginNotIndexed which means not ordered. This value is
+        * read, if defined, from the opaque_data field of the plugin's resource
+        * definition. Index starts from 0.
+        */
+        IMPORT_C void SetOrder( TInt aOrder );
+
+        /**
+        * In case plug-in is loaded outside GS application and CGSPluginLoader,
+        * cleaning up plug-in's ECOM resources must be done manually.
+        *
+        * Example:
+        * CGSPluginInterface* myPlugin = CGSPluginInterface::NewL(...);
+        * REComSession::DestroyedImplementation( myPlugin->GetEcomDestructorKey() );
+        * delete myPlugin;
+        *
+        * @return UID of the plug-in instance which can be used to free dependent ECOM resources.
+        */
+        IMPORT_C TUid GetEcomDestructorKey();
+
+    protected: // New
+
+        /**
+        * C++ constructor.
+        */
+        IMPORT_C CGSPluginInterface();
+
+    public: // Enumerations
+
+        /**
+        * Category of the plugin provider. Provider's type affects the sorting
+        * of the plugins. Type EGSPluginProvider3rdParty plugins are allowed
+        * to be loaded only by Applications-plugin. Other categories may exist
+        * but they should be used only internally.
+        **/
+        enum TGSPluginProviderCategory
+            {
+            EGSPluginProviderOEM        = 1,
+            EGSPluginProviderOperator   = 2,
+            EGSPluginProvider3rdParty   = 3
+            };
+
+    private: // Data
+
+        // ECOM plugin instance UID.
+        TUid iDtor_ID_Key;
+
+        /**
+        * Index of the plugin in listbox. Used for CGSPluginLoader. Default
+        * value is KGSPluginNotIndexed which means not ordered. This value is
+        * read, if defined, from the opaque_data field of the plugin's resource
+        * definition. Index starts from 0.
+        */
+        TInt iOrder;
+
+    };
+
+#endif // GSPLUGININTERFACE_H
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/PUAcodes.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,51 @@
+/*
+* 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: 
+*       This file contains the definitions of Unicode Private User Area
+*       codes used in S60 fonts.
+*
+*/
+
+#ifndef __PUACODES_HRH__
+#define __PUACODES_HRH__
+
+// S60 Unicode Private User Area codes
+
+#define KPuaCodeSpaceSymbol             0xF800
+#define KPuaCodeLineFeedSymbol          0xF801
+#define KPuaCodeNarrowDash              0xF802
+#define KPuaCodePhoneSymbol             0xF803
+#define KPuaCodeBrowserArrowDown        0xF804
+#define KPuaCodeAmSymbol                0xF805
+#define KPuaCodePmSymbol                0xF806
+#define KPuaCodeSilentSymbol            0xF807
+#define KPuaCodeChatNewMsgSymbol        0xF808
+#define KPuaCodeMirroredLineFeedSymbol  0xF809
+#define KPuaCodeShortHyphen             0xF80A
+#define KPuaCodeShortSpace              0xF80B
+#define KPuaCodeRightToLeftSymbol       0xF80C
+#define KPuaCodeLeftToRightSymbol       0xF80D
+#define KPuaCodeSmileyIconPadding       0xF80E
+#define KPuaCodeAprofSilentVibra        0xF80F
+#define KPuaCodeAprofSoundVibra         0xF810
+#define KPuaCodeAprofSound              0xF811
+#define KPuaCodeFullWidthSpaceSymbol    0xF812
+#define KPuaCodeHeartSymbol             0xF813
+#define KPuaCodeCarSymbol               0xF814
+#define KPuaCodeFarsiAmSymbol           0xF816     
+#define KPuaCodeFarsiPmSymbol           0xF817
+
+#endif // __PUACODES_HRH__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/PhCltTypes.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2002-2005 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:  Types used in PhoneClient.
+*
+*/
+
+
+#ifndef PHCLTTYPES_H
+#define PHCLTTYPES_H
+
+
+
+// INCLUDES
+#include <e32base.h>
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION // Include should be removed when flag disabled from builds
+#include <cntdef.h>
+#endif
+#include <etelmm.h>
+
+#include <data_caging_path_literals.hrh>
+
+// CONSTANTS
+
+// Lengths of various strings.
+const TInt KPhCltTelephoneNumberLength = 100;  // Telephony number length.
+const TInt KPhCltNameBufferLength = 50;       // The name length.
+const TInt KPhCltSubAddressLength = 21;       // The subaddress length, see
+                                              // ITU-T I.330 and 3GPP TS 11.14.
+const TInt KPhCltBearerLength = 14;           // The bearer length.
+const TInt KPhCltUUILength = 129;             // Max user to user info length
+
+/**
+* Call type.
+*/
+enum TPhCltCallType
+    {
+    EPhCltVoice       = 0, // Voice call.
+    EPhCltVideo       = 1, // Video call.
+    EPhCltForcedVideo = 2,  // Forced video call.
+    EPhCltCallVoIP    = 3 // Internet call
+    };
+
+
+// Type for telephone number.
+typedef TBuf< KPhCltTelephoneNumberLength > TPhCltTelephoneNumber;
+
+// Type for name.
+typedef TBuf< KPhCltNameBufferLength > TPhCltNameBuffer;
+
+
+// Type for result of call.
+typedef TInt TPhCltPhoneResults;
+
+// Type for calling party subaddress.
+typedef TBuf< KPhCltSubAddressLength > TPhCltSubAddress;
+
+// Type for bearer capability.
+typedef TBuf8< KPhCltBearerLength > TPhCltBearerCapability;
+
+#endif      // PHCLTTYPES_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/PhoneClientServerDomainPSkeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2004 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:  Phone Client-Server Domain Publish and Subscribe keys.
+*
+*/
+
+
+#ifndef PHONECLIENTSERVERDOMAINPSKEYS_H
+#define PHONECLIENTSERVERDOMAINPSKEYS_H
+
+#include <e32std.h>
+
+// CONSTANTS
+
+/******************************************************************************
+* Phone Client Server Information API
+******************************************************************************/
+const TUid KPSUidPhoneClientServerInformation = {0x102029AA}; 
+
+/**
+* Indication about operator logo change. 
+* @see TTelOTALogoUpdate in PhoneClientServerDomainPStypes.h
+* @type RProperty::EByteArray
+*/
+
+const TUint32 KTelOperatorLogoUpdated = 0x00000001; 
+
+#endif   // PHONECLIENTSERVERDOMAINPSKEYS_H
+
+// End of file
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/PhoneClientServerDomainPStypes.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2006 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:  Data types passed through Publish and Subscribe
+*
+*/
+
+
+#ifndef PHONECLIENTSERVERDOMAINPSTYPES_H
+#define PHONECLIENTSERVERDOMAINPSTYPES_H
+
+/**
+* Details how OTA operator logo has changed.
+* Data is used as key value with KTelOperatorLogoUpdated.
+* Note: Size of the data must not exceed RProperty::KMaxPropertySize.
+*/
+struct TTelOTALogoUpdate 
+    {
+    /**
+    * EPSTelephonyLogoChanged - Logo was added or replaced
+    * EPSTelephonyLogoDeleted - Logo was deleted
+    */
+    enum TPSOperatorLogoUpdateEvent
+        {
+        EPSTelephonyLogoChanged,
+        EPSTelephonyLogoDeleted,
+        EPSTelephonyAllLogosDeleted
+        };
+    
+    // Event type
+    TPSOperatorLogoUpdateEvent iEvent;
+
+    /**
+    * Country code associated to logo, N/A if event
+    * is EPSTelephonyAllLogosDeleted
+    */ 
+    TPhCltCountryCode iMCC;
+
+    /**
+    * Network code associated to logo, N/A if event
+    * is EPSTelephonyAllLogosDeleted
+    */ 
+    TPhCltNetworkCode iMNC;
+
+    typedef TPckg<TTelOTALogoUpdate> TOTALogoUpdatePckg;
+    };
+    
+#endif    // PHONECLIENTSERVERDOMAINPSTYPES_H
+
+// End of file
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/RPhCltServer.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,128 @@
+/*
+* 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:  It is the client side remote class of phone server session.
+*
+*/
+
+
+#ifndef RPHCLTSERVER_H
+#define RPHCLTSERVER_H
+
+
+//  INCLUDES
+#include <e32std.h>
+#include    <PhCltTypes.h>
+
+// CONSTANTS
+// A version must be specified when creating a session with the server
+// These are the version numbers for PhoneServer.
+const TUint KPhoneServerMajorVersionNumber = 0;
+const TUint KPhoneServerMinorVersionNumber = 1;
+const TUint KPhoneServerBuildVersionNumber = 1;
+
+// Default amount of message slots.
+const TInt KPhCltDefaultMessageSlots = 4;
+
+// DATA TYPES
+
+// PhoneClient panic codes visible to the user.
+enum TPhCltClientSidePanics
+    {
+    EPhCltClientSidePanicNullHandle = 0, // Handle was NULL
+    //
+    EPhCltClientSidePanicLast            // Keep as last enum value.
+    };
+
+
+// CLASS DECLARATION
+
+/**
+*  It is the client side remote class of phone server session.
+*
+*  @lib phoneclient.lib
+*  @since 1.0
+*/
+class RPhCltServer : public RSessionBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * C++ constructor.
+        */
+        IMPORT_C RPhCltServer();
+       
+    public:  // New functions
+
+        /**
+        * Returns the version of the API.
+        *
+        * @return Returns the version encapsulated in TVersion object.
+        */
+        TVersion Version() const;
+
+        /**
+        * Creates connection to the server.
+        * 
+        * @param aMessageSlots It tells the amount of message slots to be used
+        *                      for the connection.
+        * @return Returns error code.
+        */
+        IMPORT_C TInt Connect( TInt aMessageSlots = KPhCltDefaultMessageSlots );
+
+        /**
+        * Creates all submodules in Phone Server side.
+        *
+        * @param aStatus It is used to notify the completion of the request. 
+        *                Then it indicates the success/failure of the operation.
+        * @return error code.
+        */
+        IMPORT_C void CreateAll( TRequestStatus& aStatus );
+
+
+    private: // Panic
+
+        // Panic types to be used in this class.
+        enum TPhCltPanicTypes
+            {
+            // Connection failed.
+            EPhCltPanicServerConnectionFailed = 0,
+            // Server was not found in starting phase.
+            EPhCltPanicServerUnexpectedServerNotFound,
+            // Server startup error.
+            EPhCltPanicServerStartupObservationResultedInError,
+            //
+            EPhCltPanicLast  // Keep as last value.
+            };
+        
+        // Panic function.
+        static void Panic( TPhCltPanicTypes aPanic );
+
+
+    private: // Internal methods
+
+        // Starts the Phone Server.
+        TInt StartServer();
+
+    private:
+   
+        // By default, prohibit copy constructor
+        RPhCltServer( const RPhCltServer& );
+        // Prohibit assigment operator
+        RPhCltServer& operator= ( const RPhCltServer& );
+
+    };
+
+#endif      // RPHCLTSERVER_H   
+            
+// End of File
Binary file dependencies/S3libs/ProfileEng.lib has changed
--- a/dependencies/S3libs/bld.inf	Tue Apr 13 15:16:23 2010 +0300
+++ b/dependencies/S3libs/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -27,4 +27,12 @@
 SWInstCli.lib			\epoc32\release\winscw\udeb\SWInstCli.lib
 fbscli.lib			\epoc32\release\winscw\udeb\fbscli.lib
 peninputClient.lib		\epoc32\release\winscw\udeb\peninputclient.lib
-scppnwdl.lib			\epoc32\release\winscw\udeb\scppnwdl.lib
\ No newline at end of file
+scppnwdl.lib			\epoc32\release\winscw\udeb\scppnwdl.lib
+sssettings.lib			\epoc32\release\winscw\udeb\sssettings.lib
+ProfileEng.lib			\epoc32\release\winscw\udeb\ProfileEng.lib
+phoneclient.lib			\epoc32\release\winscw\udeb\phoneclient.lib
+keylockpolicyapi.lib	\epoc32\release\winscw\udeb\keylockpolicyapi.lib
+gslauncher.lib			\epoc32\release\winscw\udeb\gslauncher.lib
+gsframework.lib			\epoc32\release\winscw\udeb\gsframework.lib
+gslistbox.lib			\epoc32\release\winscw\udeb\gslistbox.lib
+gsecomplugin.lib		\epoc32\release\winscw\udeb\gsecomplugin.lib
\ No newline at end of file
Binary file dependencies/S3libs/gsecomplugin.lib has changed
Binary file dependencies/S3libs/gsframework.lib has changed
Binary file dependencies/S3libs/gslauncher.lib has changed
Binary file dependencies/S3libs/gslistbox.lib has changed
Binary file dependencies/S3libs/keylockpolicyapi.lib has changed
Binary file dependencies/S3libs/phoneclient.lib has changed
Binary file dependencies/S3libs/sssettings.lib has changed
--- a/dependencies/bld.inf	Tue Apr 13 15:16:23 2010 +0300
+++ b/dependencies/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -75,6 +75,25 @@
 //AknsPkgID.h		AknsPkgID.h
 //AknsPkgID.inl		AknsPkgID.inl
 
+PUAcodes.hrh     MW_LAYER_PLATFORM_EXPORT_PATH(PUAcodes.hrh)
+publicruntimeids.hrh  publicruntimeids.hrh
+
+PhCltTypes.h     MW_LAYER_PLATFORM_EXPORT_PATH(PhCltTypes.h)
+RPhCltServer.h     MW_LAYER_PLATFORM_EXPORT_PATH(RPhCltServer.h)
+CPhCltImageHandler.h     MW_LAYER_PLATFORM_EXPORT_PATH(CPhCltImageHandler.h)
+CPhCltBaseImageParams.h     MW_LAYER_PLATFORM_EXPORT_PATH(CPhCltBaseImageParams.h)
+CPhCltImageParams.h     MW_LAYER_PLATFORM_EXPORT_PATH(CPhCltImageParams.h)
+PhoneClientServerDomainPStypes.h     MW_LAYER_PLATFORM_EXPORT_PATH(PhoneClientServerDomainPStypes.h)
+PhoneClientServerDomainPSkeys.h     MW_LAYER_PLATFORM_EXPORT_PATH(PhoneClientServerDomainPSkeys.h)
+keylockpolicyapi.h MW_LAYER_PLATFORM_EXPORT_PATH(keylockpolicyapi.h)
+AvkonInternalCRKeys.h     MW_LAYER_PLATFORM_EXPORT_PATH(AvkonInternalCRKeys.h)
+AknFepInternalCRKeys.h     MW_LAYER_PLATFORM_EXPORT_PATH(AknFepInternalCRKeys.h)
+GSLauncher.h     MW_LAYER_PLATFORM_EXPORT_PATH(gslauncher.h)
+GSPluginInterface.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsplugininterface.h)
+GSFWViewUIDs.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsfwviewuids.h)
+GSListBox.h     MW_LAYER_PLATFORM_EXPORT_PATH(gslistbox.h)
+gsframeworkrsc.rsg	gsframeworkrsc.rsg
+gsfwicon.mbg		gsfwicon.mbg
 
 #include "extended_skin_api/bld.inf"
 #include "S3libs/bld.inf"
@@ -100,8 +119,7 @@
 #include "xml_parser_api/group/bld.inf"
 //#include "extended_skins_api/group/bld.inf"
 #include "physics_api/group/bld.inf"
-// #include "/group/bld.inf"
-// #include "/group/bld.inf"
+
 #include "avkon_anim_dll_api/bld.inf"
 #include "avkon_staus_api/bld.inf"
 #include "avkon_ui_server_api/bld.inf"
@@ -116,3 +134,9 @@
 #include "mifconv/group/bld.inf"
 #include "hs_content_control_ui/bld.inf"
 
+#include "gsprofilesrv_plat-settings_framework_api/group/bld.inf"
+#include "gsprofilesrv_plat-profiles_engine_api/group/bld.inf"
+#include "phonesrv_plat-ss_settings_api/group/bld.inf"
+#include "logs_ui_command_line_api/group/bld.inf"
+// #include "/group/bld.inf"
+// #include "/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsframeworkrsc.rsg	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,1 @@
+#define R_GS_PLUGIN_DEFAULT_ICON_ARRAY            0x25109002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsfwicon.mbg	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,10 @@
+
+/* This file has been generated, DO NOT MODIFY. */
+enum TMifGsfwicon
+	{
+	EMbmGsfwiconQgn_prop_set_default_sub = 16384,
+	EMbmGsfwiconQgn_prop_set_default_sub_mask = 16385,
+	EMbmGsfwiconQgn_prop_set_device_tab4 = 16386,
+	EMbmGsfwiconQgn_prop_set_device_tab4_mask = 16387,
+	EMbmGsfwiconLastElement
+	};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/group/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2006 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:  File that exports the files belonging to 
+:                Profiles Engine API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/ProfileEngineDomainConstants.h   MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEngineDomainConstants.h)
+../inc/CProfileChangeNotifyHandler.h    MW_LAYER_PLATFORM_EXPORT_PATH(CProfileChangeNotifyHandler.h)
+../inc/ProfileInternal.hrh              MW_LAYER_PLATFORM_EXPORT_PATH(ProfileInternal.hrh)
+../inc/MProfileEngine.h                 MW_LAYER_PLATFORM_EXPORT_PATH(MProfileEngine.h)
+../inc/MProfilePttSettings.h            MW_LAYER_PLATFORM_EXPORT_PATH(MProfilePttSettings.h)
+../inc/MProfileFeedbackSettings.h       MW_LAYER_PLATFORM_EXPORT_PATH(MProfileFeedbackSettings.h)
+../inc/MProfile3DToneSettings.h         MW_LAYER_PLATFORM_EXPORT_PATH(MProfile3DToneSettings.h)
+../inc/MProfileExtraSettings.h          MW_LAYER_PLATFORM_EXPORT_PATH(MProfileExtraSettings.h)
+../inc/ProfileEngineDomainCRKeys.h      MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEngineDomainCRKeys.h)
+../inc/ProfilesVariant.hrh              MW_LAYER_PLATFORM_EXPORT_PATH(ProfilesVariant.hrh)
+../inc/TProfileToneSettings.h           MW_LAYER_PLATFORM_EXPORT_PATH(TProfileToneSettings.h)
+../inc/MProfileChangeObserver.h         MW_LAYER_PLATFORM_EXPORT_PATH(MProfileChangeObserver.h)
+../inc/MProfilesNamesArray.h            MW_LAYER_PLATFORM_EXPORT_PATH(MProfilesNamesArray.h)
+../inc/MProfileExtraTones.h             MW_LAYER_PLATFORM_EXPORT_PATH(MProfileExtraTones.h)
+../inc/MProfileTones.h                  MW_LAYER_PLATFORM_EXPORT_PATH(MProfileTones.h)
+../inc/MProfileName.h                   MW_LAYER_PLATFORM_EXPORT_PATH(MProfileName.h)
+../inc/MProfile.h                       MW_LAYER_PLATFORM_EXPORT_PATH(MProfile.h)
+
+../inc/MProfileEngineExtended.h         MW_LAYER_PLATFORM_EXPORT_PATH(MProfileEngineExtended.h)
+../inc/MProfileExtended.h               MW_LAYER_PLATFORM_EXPORT_PATH(MProfileExtended.h)
+../inc/MProfilePresence.h               MW_LAYER_PLATFORM_EXPORT_PATH(MProfilePresence.h)
+../inc/MProfileSetPresence.h            MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetPresence.h)
+../inc/ProfileEng.hrh                   MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEng.hrh)
+../inc/ProfileEngineConstants.h         MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEngineConstants.h)
+../inc/MProfileSetExtraTones.h          MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetExtraTones.h)
+../inc/MProfileSetName.h                MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetName.h)
+../inc/ProfileEng.rh                    MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEng.rh)
+../inc/MProfilesLocalFeatures.h         MW_LAYER_PLATFORM_EXPORT_PATH(MProfilesLocalFeatures.h)
+../inc/MProfileUtilitySingleton.h       MW_LAYER_PLATFORM_EXPORT_PATH(MProfileUtilitySingleton.h)
+../inc/ProfileEngineInternalCRKeys.h    MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEngineInternalCRKeys.h)
+../inc/ProfileEngineInternalPSKeys.h    MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEngineInternalPSKeys.h)
+
+../inc/MProfileSet3DToneSettings.h      MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSet3DToneSettings.h)
+../inc/MProfileSetExtraSettings.h       MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetExtraSettings.h)
+../inc/MProfileSetFeedbackSettings.h    MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetFeedbackSettings.h)
+../inc/MProfileSetPttSettings.h         MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetPttSettings.h)
+../inc/MProfileSetTones.h               MW_LAYER_PLATFORM_EXPORT_PATH(MProfileSetTones.h)
+
+../inc/SecondaryDisplayProfilesAPI.h    MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/SecondaryDisplayProfilesAPI.h)
+
+../inc/ProfileEnginePrivatePSKeys.h	MW_LAYER_PLATFORM_EXPORT_PATH(ProfileEnginePrivatePSKeys.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/CProfileChangeNotifyHandler.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,152 @@
+/*
+* 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:  Profile change notify handler.
+*
+*/
+
+
+
+#ifndef __CPROFILECHANGENOTIFYHANDLER_H__
+#define __CPROFILECHANGENOTIFYHANDLER_H__
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32property.h>
+
+// FORWARD DECLARATIONS
+class CRepository;
+
+class MProfileChangeObserver;
+
+// CLASS DECLARATION
+
+/**
+*  Profile change notify handler.
+*  How to use:
+*  class CMyClass : public CBase, public MProfileChangeObserver
+*      {
+*      ...
+*      virtual void HandleActiveProfileEventL(
+*              TProfileEvent aProfileEvent, TInt aProfileId );
+*      ...
+*      private:    // data
+*          CProfileChangeNotifyHandler* iHandler;
+*
+*      }
+*  void CMyClass::ConstructL()
+*      {
+*      iHandler = CProfileChangeNotifyHandler::NewL( this );
+*      }
+*
+*  void CMyClass::HandleActiveProfileEventL(
+*              TProfileEvent aProfileEvent,
+*              TInt aProfileId )
+*      {
+*      // handle event
+*      }
+*
+*  @lib ProfileEng.lib
+*  @since 2.0
+*/
+
+NONSHARABLE_CLASS(CProfileChangeNotifyHandler) : public CBase
+    {
+    private: // class definitions
+
+        NONSHARABLE_CLASS(CProfilePSObserver) : public CActive
+            {
+            public:  // constructor and destructor
+                CProfilePSObserver( TUint32 aPSKey );
+                ~CProfilePSObserver(); 
+
+            public: // New functions:
+
+                /**
+                 * Requests notifications from P&S of KProEngActiveProfile-
+                 * Modified value changes.
+                 */
+                void RequestNotificationL();
+
+            private: // Functions from base classes
+
+                /**
+                 * From CActive.
+                 */
+                void RunL();
+                void DoCancel();
+
+            public: // Data:
+
+                // The P&S key to observe
+                TUint32 iPSKey;
+
+                // Ref:
+                CRepository* iCenRep;
+
+                // Own:
+                RProperty iProperty;
+
+                // Ref: Active profile change observer
+                MProfileChangeObserver* iProfileChangeObserver;
+
+                TBool iAttached;
+
+            };
+
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        * @param aProfileChangeObserver Profile change observer.
+        */
+        IMPORT_C static CProfileChangeNotifyHandler* NewL(
+            MProfileChangeObserver* aProfileChangeObserver );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CProfileChangeNotifyHandler();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        * @param aProfileChangeObserver Profile change observer.
+        */
+        CProfileChangeNotifyHandler(
+            MProfileChangeObserver* aProfileChangeObserver );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private:    // Data
+
+        // Ref: Active profile change observer
+        MProfileChangeObserver* iProfileChangeObserver;
+
+        // Own:
+        CProfilePSObserver* iActiveProfileObserver;
+
+        // Own:
+        CProfilePSObserver* iPSObserver;
+
+        // Own:
+        CRepository* iRepository;
+    };
+
+#endif      //  __CPROFILECHANGENOTIFYHANDLER_H__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfile.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,115 @@
+/*
+* 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:  Profile settings interface.
+*
+*/
+
+
+
+#ifndef __MPROFILE_H__
+#define __MPROFILE_H__
+
+//  INCLUDES
+#include <cntdef.h> // TContactItemId
+
+// FORWARD DECLARATIONS
+class MProfileName;
+class MProfileTones;
+class MProfileExtraTones;
+class MProfileExtraSettings;
+
+// CLASS DECLARATION
+
+/**
+*  Profile settigns interface.
+*  MProfile offers methods to get the alert for items, profile name interface,
+*  profile tones interface and profile extra tones interface.
+*  How to use:
+*  Get active profile with MProfileEngine::ActiveProfileL().
+*     MProfile* profile = iProfileEngine->ActiveProfileL();
+*  Free resources with MProfile::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 );
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfile
+    {
+    protected:  // Destructor
+
+        virtual ~MProfile() {};
+
+    public: // New functions
+
+        /**
+        * Free resources of the profile.
+        * @since 2.0
+        */
+        virtual void Release() = 0;
+
+        /**
+        * Return the alert for item array.
+        * @since 2.0
+        * @return Alert for array
+        */
+        virtual const TArray<TContactItemId> AlertForL() = 0;
+
+        /**
+        * Is silent profile.
+        * @since 2.0
+        * @return ETrue if profile is silent
+        */
+        virtual TBool IsSilent() const = 0;
+
+        /**
+        * Return profile name.
+        * @since 2.0
+        * @return Instance of the profile name
+        */
+        virtual const MProfileName& ProfileName() const = 0;
+
+        /**
+        * Return tone settings.
+        * @since 2.0
+        * @return Instance of the MProfileTones
+        */
+        virtual const MProfileTones& ProfileTones() const = 0;
+
+        /**
+        * Return extra tone settings.
+        * @since 2.0
+        * @return Instance of the MProfileExtraTones
+        */
+        virtual const MProfileExtraTones& ProfileExtraTones() const = 0;
+
+        /**
+        * Return Profiles extra settings.
+        * @since 3.0
+        * @return Instance of the MProfileExtraSettings
+        */
+        virtual const MProfileExtraSettings& ProfileExtraSettings() const = 0;
+
+    };
+
+#endif      //  __MPROFILE_H__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfile3DToneSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,59 @@
+/*
+* 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:  Profile 3D tone settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILE3DTONESETTINGS_H
+#define MPROFILE3DTONESETTINGS_H
+
+//  INCLUDES
+#include <ProfileInternal.hrh>
+
+// CLASS DECLARATION
+
+/**
+*  Profile 3D tone settings interface.
+*  @since 3.1
+*/
+class MProfile3DToneSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfile3DToneSettings() {};
+
+    public: // New functions
+
+        /**
+        * Returns PTT ringing tone file name.
+        * @since 3.1
+        * @return Returns PTT ringing tone file name.
+        */
+        virtual TProfile3DToneEffect Effect() const = 0;
+
+        /**
+         * Returns PTT status of the profile.
+         * @since 3.1
+         * @return Returns PTT status of the profile.
+         */
+        virtual TProfile3DToneEcho Echo() const = 0;
+
+    };
+
+#endif      //  MPROFILE3DTONESETTINGS_H
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileChangeObserver.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,63 @@
+/*
+* 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:  Abstract interface for handling the active profile events.
+*
+*/
+
+
+
+#ifndef __MPROFILECHANGEOBSERVER_H
+#define __MPROFILECHANGEOBSERVER_H
+
+// INCLUDES
+#include <e32std.h>
+
+// DATA TYPES
+enum TProfileEvent
+    {
+    EProfileNewActiveProfile = 0,
+    EProfileActiveProfileModified,
+    EProfileUnknownEvent = 0xFFFFFFFF
+    };
+
+// CLASS DECLARATION
+
+/**
+*  Abstract interface for handling the active profile events.
+*  User derives his class from this and implements HandleActiveProfileEventL().
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileChangeObserver
+    {
+    public: // New functions
+
+        /**
+        * This is a callback function which is called when a active profile event
+        * completes. User must derive his class from MProfileChangeObserver
+        * and implement this method if he is to use notify services.
+        * @since 2.0
+        * @param aProfileEvent Profile event
+        * @param aProfileId Active profile id
+        */
+        virtual void HandleActiveProfileEventL(
+            TProfileEvent aProfileEvent, TInt aProfileId ) = 0;
+
+
+    };
+
+#endif      // __MPROFILECHANGEOBSERVER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileEngine.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,194 @@
+/*
+* 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:  Profile Engine interface.
+*
+*/
+
+
+
+#ifndef __MPROFILEENGINE_H__
+#define __MPROFILEENGINE_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <Profile.hrh>          // TProfileRingingVolume 
+
+// DATA TYPES
+enum TProfileFeatureId
+    {
+    EProfileFeatureVTRingingTone,
+    EProfileFeatureWmaDemoPlay  // if this is true, demo-play is DISABLED
+    };
+
+// FUNCTION PROTOTYPES
+class MProfileEngine;
+class RFs;
+
+/**
+* Create profile engine, ownership transfered.
+*
+*  @lib ProfileEng.lib
+*  @since 2.0
+*/
+IMPORT_C MProfileEngine* CreateProfileEngineL();
+
+/**
+* Create profile engine, ownership transfered.
+*
+*  @param aFs An open file server session, ownership is NOT transferred.
+*  aFs must remain connected for the lifetime of the returned object.
+*  @lib ProfileEng.lib
+*  @since 3.0
+*/
+IMPORT_C MProfileEngine* CreateProfileEngineL( RFs* aFs );
+
+// FORWARD DECLARATIONS
+class MProfile;
+class MProfilesNamesArray;
+
+// CLASS DECLARATION
+
+/**
+*  Profile engine interface.
+*  This class offers methods to get active profile, active profile ID,
+*  profile names array and set active profile.
+*  How to use:
+*  Create profile engine with CreateProfileEngineL();
+*      MProfileEngine* profileEngine = CreateProfileEngineL();
+*  Free resources with MProfileEngine::Release();
+*      profileEngine->Release();
+*  or if you release resources in destructor:
+*      ( iProfileEngine )
+*          {
+*          iProfileEngine->Release();
+*          }
+*
+*  If you put this class to CleanupStack then use void CleanupReleasePushL()
+*     CleanupReleasePushL( *profileEngine );
+*
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileEngine
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileEngine() {};
+
+    public:
+
+        /**
+        * Frees resources.
+        * @since 2.0
+        */
+        virtual void Release() = 0;
+
+        /**
+        * Return active profile, ownership transfered.
+        * @since 2.0
+        * @return Instance of the MProfile
+        */
+        virtual MProfile* ActiveProfileLC() = 0;
+
+        /**
+        * Return active profile, ownership transfered.
+        * @since 2.0
+        * @return Instance of the MProfile
+        */
+        virtual MProfile* ActiveProfileL() = 0;
+
+        /**
+        * Return active profile ID or system error code.
+        * @since 2.0
+        * @return Active profile ID or system error code.
+        */
+        virtual TInt ActiveProfileId() = 0;
+
+        /**
+        * Return profiles names array, ownership transfered.
+        * @since 2.0
+        * @return Instance of the profiles names array
+        */
+        virtual MProfilesNamesArray* ProfilesNamesArrayLC() = 0;
+
+        /**
+        * Set active profile if ID is incorrect then leave with KErrNotFound.
+        * @since 2.0
+        * @param aId Profile ID
+        */
+        virtual void SetActiveProfileL( TInt aId ) = 0;
+
+        /**
+         * Sets the temporary ringing volume of the current active profile to
+         * the given value. Temporary means that if another profile is
+         * activated and after that the original is reactivated the temporary
+         * value will be lost. Leaves with KErrAccessDenied if the ringing
+         * volume setting of the current profile is read-only.
+         * @since 2.6
+         * @param aVolume the new value for the temporary ringing volume level.
+         */
+        virtual void SetTempRingingVolumeL( TProfileRingingVolume aVolume ) = 0;
+
+        /**
+         * Gets the temporary ringing volume of the current active profile.
+         * Temporary means that if another profile is activated and after
+         * that the original is reactivated the temporary value will be lost.
+         * @since 2.6
+         * @return the temporary ringing volume level of the active profile.
+         */
+        virtual TProfileRingingVolume TempRingingVolumeL() const = 0;
+
+        /**
+         * Sets the temporary media volume of the current active profile to
+         * the given value. Temporary means that if another profile is
+         * activated and after that the original is reactivated the temporary
+         * value will be lost. Leaves with KErrAccessDenied if the media
+         * volume setting of the current profile is read-only.
+         * @since 2.6
+         * @param aVolume the new value for the temporary media volume level.
+         */
+        virtual void SetTempMediaVolumeL( TProfileRingingVolume aVolume ) = 0;
+
+        /**
+         * Gets the temporary media volume of the current active profile.
+         * Temporary means that if another profile is activated and after
+         * that the original is reactivated the temporary value will be lost.
+         * @since 2.6
+         * @return the temporary media volume level of the active profile.
+         */
+        virtual TProfileRingingVolume TempMediaVolumeL() const = 0;
+
+        /**
+         * Checks whether the given feature is supported by Profiles Engine.
+         * @since 2.8
+         * @param aFeatureId the feature to be checked.
+         * @return ETrue if the given feature is supported, EFalse otherwise.
+         */
+        virtual TBool IsFeatureSupported(
+            TProfileFeatureId aFeatureId ) const = 0;
+
+        /**
+        * Checks if the current active profile is timed or not.
+        * @since 3.2
+        * @return ETrue if the current active profile is timed, EFalse
+        * otherwise.
+        */
+        virtual TBool IsActiveProfileTimedL() = 0;
+
+    };
+
+#endif      //  __MPROFILEENGINE_H__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileEngineExtended.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,163 @@
+/*
+* 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 engine interface.
+*
+*/
+
+
+
+#ifndef __MPROFILEENGINEEXTENDED_H__
+#define __MPROFILEENGINEEXTENDED_H__
+
+//  INCLUDES
+#include <MProfileEngine.h>
+
+// DATA TYPES
+enum TProfileUtilityObjectType
+    {
+    EProfileUtilityObjectPresenceTool      = 0
+    };
+
+// FUNCTION PROTOTYPES
+class MProfileEngineExtended;
+class MProfilesLocalFeatures;
+
+/**
+* Create extended profile engine, ownership transfered.
+*
+*  @lib ProfileEng.lib
+*  @since 2.0
+*/
+IMPORT_C MProfileEngineExtended* CreateProfileEngineExtendedL();
+
+/**
+* Create extended profile engine, ownership transfered.
+*
+*  @param aFs An open file server session, ownership is NOT transferred.
+*  aFs must remain connected for the lifetime of the returned object.
+*  @lib ProfileEng.lib
+*  @since 3.0
+*/
+IMPORT_C MProfileEngineExtended* CreateProfileEngineExtendedL( RFs* aFs );
+
+// FORWARD DECLARATIONS
+class MProfileExtended;
+class MProfilePresence;
+
+// CLASS DECLARATION
+
+/**
+*  Extended profile engine interface.
+*  This interface extend MProfileEngine interface and
+*  offers methods to get profile settings and store profile settings.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileEngineExtended : public MProfileEngine
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileEngineExtended() {};
+
+    public: // New functions
+
+        /**
+        * Create extended profile, ownership transfered.
+        * @since 2.0
+        * @param aId Profile ID
+        * @return Instance of the MProfileExtended
+        */
+        virtual MProfileExtended* ProfileLC( TInt aId ) = 0;
+
+        /**
+        * Create extended profile, ownership transfered.
+        * @since 2.0
+        * @param aId Profile ID
+        * @return Instance of the MProfileExtended
+        */
+        virtual MProfileExtended* ProfileL( TInt aId ) = 0;
+
+        /**
+        * Store profile settings. Leaves with KErrAccessDenied if one or more
+        * of the settings of the target profile is/are read-only.
+        * @since 2.0
+        * @param aProfile Profile
+        */
+        virtual void CommitChangeL( MProfileExtended& aProfile ) = 0;
+
+        /**
+        * Send presence settings.
+        * @since 2.1
+        * @param aProfile Profile
+        */
+        virtual void SendPresenceSettingsL(
+            const MProfilePresence& aPresence ) = 0;
+
+        /**
+        * Delete profile.
+        * @since 2.1
+        * @param aId Profile ID
+        * @return Error code
+        */
+        virtual TInt DeleteProfileL( TInt aId ) = 0;
+
+        /**
+        * Create new profile, ownership transfered.
+        * @since 2.1
+        * @return Instance of the MProfileExtended
+        */
+        virtual MProfileExtended* CreateProfileL() = 0;
+
+        /**
+        * Returns is profile default profile.
+        * @since 2.0
+        * @param aId Profile ID
+        * @return Is profile default profile
+        */
+        virtual TBool IsDefaultProfile( TInt aId ) = 0;
+
+        /**
+        * Returns locally variated features of Profiles.
+        * @since 2.6
+        */
+        virtual MProfilesLocalFeatures& LocalFeatures() = 0;
+
+        /**
+         * Returns an utility object needed for a specific task. The returned
+         * object can be generally of any class and the caller must know what
+         * it wants and cast the returned object to the correct class.
+         * The ownership is not transferred.
+         * @param aType the type of the utility object to be returned.
+         * @param aImpl the utility object needed by the client on return, NULL
+         * if there isn't any of the given type
+         */
+        virtual void GetProfileUtilityObject(
+                TProfileUtilityObjectType aType, TAny*& aImpl ) = 0;
+
+        /**
+        * Set timed active profile. When the time expires the profile which was
+        * active before calling this method will be reactivated.
+        * If ID is incorrect then leave with KErrNotFound.
+        * @since 3.2
+        * @param aId Profile ID
+        * @param aTime time when the profile activation expires
+        */
+        virtual void SetActiveProfileTimedL( TInt aId, TTime aTime ) = 0;
+
+    };
+
+#endif      // __MPROFILEENGINEEXTENDED_H__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileExtended.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,156 @@
+/*
+* 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileExtraSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,70 @@
+/*
+* 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:  Profile settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILEEXTRASETTINGS_H
+#define MPROFILEEXTRASETTINGS_H
+
+//  INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+class MProfilePttSettings;
+class MProfileFeedbackSettings;
+class MProfile3DToneSettings;
+
+// CLASS DECLARATION
+
+/**
+*  Profile extra settings interface.
+*  @since 3.1
+*/
+class MProfileExtraSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileExtraSettings() {};
+
+    public: // New functions
+
+        /**
+         * Returns MProfilePttSettings set for this profile.
+         * @return MProfilePttSettings set for this profile.
+         * @since 3.1
+         */
+        virtual const MProfilePttSettings& ProfilePttSettings() const = 0;
+
+       /**
+         * Returns MProfileFeedbackSettings set for this profile.
+         * @return MProfileFeeedbackSettings set for this profile.
+         * @since 5.0
+         */
+        virtual const MProfileFeedbackSettings& ProfileFeedbackSettings() const = 0;
+
+       /**
+         * Returns MProfile3DToneSettings set for this profile.
+         * @return MProfile3DToneSettings set for this profile.
+         * @since 3.1
+         */
+        virtual const MProfile3DToneSettings& Profile3DToneSettings() const = 0;
+    };
+
+#endif      //  MPROFILEEXTRASETTINGS_H
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileExtraTones.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,69 @@
+/*
+* 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:  Profile extra tones interface.
+*
+*/
+
+
+
+#ifndef __MPROFILEEXTRATONES_H
+#define __MPROFILEEXTRATONES_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Profile extra tones interface.
+*  This interface offers method to get IM message alert tone file name.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileExtraTones
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileExtraTones() {};
+
+    public:
+
+        /**
+        * Returns IM message alert tone file name.
+        * @since 2.0
+        * @return Returns IM message alert tone file name.
+        */
+        virtual const TDesC& IMMessageAlertTone() const = 0;
+
+        /**
+        * Returns Email alert tone file name.
+        * @since 2.0
+        * @return Returns Email alert tone file name.
+        */
+        virtual const TDesC& EmailAlertTone() const = 0;
+
+        /**
+        * Returns Video call ringing tone file name.
+        * @since 2.6
+        * @return Returns Video call ringing tone file name.
+        */
+        virtual const TDesC& VideoCallRingingTone() const = 0;
+
+    };
+
+
+#endif      // __MPROFILEEXTRATONES_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileFeedbackSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,59 @@
+/*
+* 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:  Profile tactile/audio feedback settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILEFEEDBACKSETTINGS_H
+#define MPROFILEFEEDBACKSETTINGS_H
+
+//  INCLUDES
+#include <ProfileInternal.hrh>
+
+// CLASS DECLARATION
+
+/**
+*  Profile feedback settings interface.
+*  @since 3.1
+*/
+class MProfileFeedbackSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileFeedbackSettings() {};
+
+    public: // New functions
+
+        /**
+        * Returns Tactile feedback status of the profile.
+        * @since 5.0
+        * @return Tactile feedback status of the profile.
+        */
+        virtual TProfileTactileFeedback TactileFeedback() const = 0;
+
+        /**
+         * Returns Audio feedback status of the profile.
+         * @since 5.0
+         * @return Audio feedback status of the profile.
+         */
+        virtual TProfileAudioFeedback AudioFeedback() const = 0;
+
+    };
+
+#endif      //  MPROFILEFEEDBACKSETTINGS_H
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileName.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,87 @@
+/*
+* 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:  Profile name interface.
+*
+*/
+
+
+
+#ifndef __MPROFILENAME_H
+#define __MPROFILENAME_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Profile name interface.
+*  This interface offers methods to get profile ID and profile name.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileName
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileName() {};
+
+    public:
+        /**
+        * Returns ID of the profile.
+        * @since 2.0
+        * @return Returns ID of the profile.
+        */
+        virtual TInt Id() const = 0;
+
+        /**
+        * Returns name of the profile.
+        * @since 2.0
+        * @return Returns name of the profile.
+        */
+        virtual const TDesC& Name() const = 0;
+
+        /**
+        * Returns the default short name of the profile. The localised string
+        * returned by the method has the correct layout for navi pane with 5
+        * tabs. If user has changed the name, this method returns the same as
+        * Name().
+        * @since 3.1
+        * @return Returns short name of the profile.
+        */
+        virtual const TDesC& ShortName() const = 0;
+
+        /**
+        * Returns the name of the profile to be used in navi pane (that is,
+        * the localised string has correct layout for navi pane). If user has
+        * changed the name, this method returns the same as Name().
+        * @since 3.2
+        * @return Returns navi name of the profile.
+        */
+        virtual const TDesC& NaviName() const = 0;
+
+        /**
+        * Returns the name of the profile to be used in title pane (that is,
+        * the localised string has correct layout for title pane). If user has
+        * changed the name, this method returns the same as Name().
+        * @since 3.2
+        * @return Returns title name of the profile.
+        */
+        virtual const TDesC& TitleName() const = 0;
+    };
+
+#endif      // __MPROFILENAME_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilePresence.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,62 @@
+/*
+* 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:  Profile presence interface.
+*
+*/
+
+
+
+#ifndef __MPROFILEPRESENCE_H
+#define __MPROFILEPRESENCE_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Profile presence interface.
+*  This interface offers methods to get status message and
+*  availability attribute.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfilePresence
+    {
+    protected:  // Destructor
+
+        virtual ~MProfilePresence() {};
+
+    public: // New functions
+
+        /**
+        * Return status message of the profile.
+        * @since 2.1
+        * @return Status message of the profile.
+        */
+        virtual const TDesC& StatusMessage() const = 0;
+
+        /**
+        * Return availability attribute of the profile.
+        * @since 2.1
+        * @return Return availability attribute of the profile.
+        */
+        virtual TUint32 AvailabilityAttribute() const = 0;
+
+    };
+
+#endif      // __MPROFILEPRESENCE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilePttSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,60 @@
+/*
+* 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:  Profile PTT settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILEPTTSETTINGS_H
+#define MPROFILEPTTSETTINGS_H
+
+//  INCLUDES
+#include <e32def.h>
+#include <ProfileInternal.hrh>
+
+// CLASS DECLARATION
+
+/**
+*  Profile PTT settings interface.
+*  @since 3.1
+*/
+class MProfilePttSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfilePttSettings() {};
+
+    public: // New functions
+
+        /**
+        * Returns PTT ringing tone file name.
+        * @since 3.1
+        * @return Returns PTT ringing tone file name.
+        */
+        virtual const TDesC& PttRingingTone() const = 0;
+
+        /**
+         * Returns PTT status of the profile.
+         * @since 3.1
+         * @return Returns PTT status of the profile.
+         */
+        virtual TProfilePttStatus PttStatus() const = 0;
+
+    };
+
+#endif      //  MPROFILEPTTSETTINGS_H
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSet3DToneSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,61 @@
+/*
+* 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:  Profile set 3D tone settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILESET3DTONESETTINGS_H
+#define MPROFILESET3DTONESETTINGS_H
+
+//  INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  Profile set 3D tone settings interface.
+*  @since 3.1
+*/
+class MProfileSet3DToneSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSet3DToneSettings() {};
+
+    public: // New functions
+
+        /**
+        * Set 3D tone effect of the profile.
+        * @since 3.1
+        */
+        virtual void SetEffect( TProfile3DToneEffect aEffect ) = 0;
+
+        /**
+         * Set 3D tone echo of the profile.
+         * @since 3.1
+         */
+        virtual void SetEcho( TProfile3DToneEcho aEcho ) = 0;
+
+    };
+
+#endif      //  MPROFILESET3DTONESETTINGS_H
+
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetExtraSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,72 @@
+/*
+* 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:  Profile settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILESETEXTRASETTINGS_H
+#define MPROFILESETEXTRASETTINGS_H
+
+//  INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+class MProfileSetPttSettings;
+class MProfileSetFeedbackSettings;
+class MProfileSet3DToneSettings;
+
+// CLASS DECLARATION
+
+/**
+*  Interface for modifying Profiles extra settings.
+*  @since 3.1
+*/
+class MProfileSetExtraSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetExtraSettings() {};
+
+    public: // New functions
+
+        /**
+         * Returns set profile ptt settings interface.
+         * @return set profile ptt settings interface.
+         * @since 3.1
+         */
+        virtual MProfileSetPttSettings& ProfileSetPttSettings() const = 0;
+
+        /**
+         * Returns set profile feedback settings interface.
+         * @return set profile feedback settings interface.
+         * @since 5.0
+         */
+        virtual MProfileSetFeedbackSettings& ProfileSetFeedbackSettings() const = 0;
+
+        /**
+         * Returns set profile 3D tone settings interface.
+         * @return set profile 3D tone settings interface.
+         * @since 3.1
+         */
+        virtual MProfileSet3DToneSettings& ProfileSet3DToneSettings() const = 0;
+
+    };
+
+#endif      //  MPROFILESETEXTRASETTINGS_H
+
+// End of File
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetExtraTones.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,72 @@
+/*
+* 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:  Set profile extra tones interface.
+*
+*/
+
+
+
+#ifndef __MPROFILESETEXTRATONES_H
+#define __MPROFILESETEXTRATONES_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Set profile extra tones interface.
+*  This interface offers methods to set IM message alert tone file name.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileSetExtraTones
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetExtraTones() {};
+
+    public: // New functions
+
+        /**
+        * Set IM message alert tone file name.
+        * @since 2.0
+        * @param aIMMessageAlertTone IM message alert tone.
+        */
+        virtual void SetIMMessageAlertToneL(
+            const TDesC& aIMMessageAlertTone ) = 0;
+
+        /**
+        * Set Email alert tone file name.
+        * @since 2.0
+        * @param aEmailAlertTone Email alert tone.
+        */
+        virtual void SetEmailAlertToneL(
+            const TDesC& aEmailAlertTone ) = 0;
+
+        /**
+        * Set Video call ringing tone file name.
+        * @since 2.6
+        * @param aRingingTone Video call ringing tone file name.
+        */
+        virtual void SetVideoCallRingingToneL(
+            const TDesC& aRingingTone ) = 0;
+
+    };
+
+
+#endif      // __MPROFILESETEXTRATONES_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetFeedbackSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,61 @@
+/*
+* 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:  Profile set feedback settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILESETFEEDBACKSETTINGS_H
+#define MPROFILESETFEEDBACKSETTINGS_H
+
+//  INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  Profile set feedback settings interface.
+*  @since 5.0
+*/
+class MProfileSetFeedbackSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetFeedbackSettings() {};
+
+    public: // New functions
+
+        /**
+        * Set tactile feedback of the profile.
+        * @since 5.0
+        */
+        virtual void SetTactileFeedback( TProfileTactileFeedback aTactileFeedback ) = 0;
+
+        /**
+         * Set audio feedback of the profile.
+         * @since 5.0
+         */
+        virtual void SetAudioFeedback( TProfileAudioFeedback aAudioFeedback ) = 0;
+
+    };
+
+#endif      //  MPROFILESETFEEDBACKSETTINGS_H
+
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetName.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,54 @@
+/*
+* 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:  Set profile name interface.
+*
+*/
+
+
+
+#ifndef __MPROFILESETNAME_H
+#define __MPROFILESETNAME_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Set profile name interface.
+*  This interface offers method to set profile name.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileSetName
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetName() {};
+
+    public: // New functions
+
+        /**
+        * Set name of the profile.
+        * @since 2.0
+        * @param aName Name of the profile.
+        */
+        virtual void SetNameL( const TDesC& aName ) = 0;
+
+    };
+
+#endif      // __MPROFILESETNAME_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetPresence.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,62 @@
+/*
+* 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:  Set profile presence settings interface.
+*
+*/
+
+
+
+#ifndef __MPROFILESETPRESENCE_H
+#define __MPROFILESETPRESENCE_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Set profile presence settings interface.
+*  This interface offers methods to set profile status message and
+*  availability attribute.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileSetPresence
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetPresence() {};
+
+    public: // New functions
+
+        /**
+        * Set status message of the profile.
+        * @since 2.0
+        * @param aStatusMessage status message of the profile.
+        */
+        virtual void SetStatusMessageL( const TDesC& aStatusMessage ) = 0;
+
+        /**
+        * Set availability attribute of the profile.
+        * @since 2.0
+        * @param aAvailabilityAttribute Availability attribute of the profile.
+        */
+        virtual void SetAvailabilityAttribute(
+            const TUint32 aAvailabilityAttribute ) = 0;
+    };
+
+#endif      // __MPROFILESETPRESENCE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetPttSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,60 @@
+/*
+* 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:  Profile set PTT settings interface.
+*
+*/
+
+
+
+#ifndef MPROFILESETPTTSETTINGS_H
+#define MPROFILESETPTTSETTINGS_H
+
+//  INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  Profile set PTT settings interface.
+*  @since 3.1
+*/
+class MProfileSetPttSettings
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetPttSettings() {};
+
+    public: // New functions
+
+        /**
+        * Set PTT ringing tone file name.
+        * @since 3.1
+        */
+        virtual void SetPttRingingToneL( const TDesC& aPttRingingTone ) = 0;
+
+        /**
+         * Set PTT status of the profile.
+         * @since 3.1
+         */
+        virtual void SetPttStatus( TProfilePttStatus aPttStatus ) = 0;
+
+    };
+
+#endif      //  MPROFILESETPTTSETTINGS_H
+
+// End of File
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileSetTones.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,80 @@
+/*
+* 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:  Set tone settings interface.
+*
+*/
+
+
+
+#ifndef __MPROFILESETTONES_H
+#define __MPROFILESETTONES_H
+
+// INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+struct TProfileToneSettings;
+
+// CLASS DECLARATION
+
+/**
+*  Set tone settings interface.
+*  This interface offers methods to set line 1 and 2 ringing tone,
+*  message alert tone and tone settings.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileSetTones
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileSetTones() {};
+
+    public: // New functions
+
+        /**
+        * Set line 1 ringing tone.
+        * @since 2.0
+        * @param aRingingTone File name of the ringing tone.
+        */
+        virtual void SetRingingTone1L( const TDesC& aRingingTone ) = 0;
+
+        /**
+        * Set line 2 ringing tone.
+        * @since 2.0
+        * @param aRingingTone File name of the ringing tone.
+        */
+        virtual void SetRingingTone2L( const TDesC& aRingingTone ) = 0;
+
+        /**
+        * Set message alert tone.
+        * @since 2.0
+        * @param aMessageAlertTone File name of the message alert tone.
+        */
+        virtual void SetMessageAlertToneL(
+            const TDesC& aMessageAlertTone ) = 0;
+
+        /**
+        * Set tone settings of the profile.
+        * @since 2.0
+        * @return Tone settings structure.
+        */
+        virtual TProfileToneSettings& SetToneSettings() = 0;
+
+    };
+
+#endif      // __MPROFILESETTONES_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileTones.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,78 @@
+/*
+* 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:  Profile tones interface.
+*
+*/
+
+
+
+#ifndef __MPROFILETONES_H
+#define __MPROFILETONES_H
+
+// INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+struct TProfileToneSettings;
+
+// CLASS DECLARATION
+
+/**
+*  Profile tones interface.
+*  This interface offers methods to get line 1 and 2 ringing tone,
+*  message alert tone and tone settings.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileTones
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileTones() {};
+
+    public:
+
+        /**
+        * Returns line 1 ringing tone file name.
+        * @since 2.0
+        * @return Returns line 1 ringing tone file name.
+        */
+        virtual const TDesC& RingingTone1() const = 0;
+
+        /**
+        * Returns line 2 ringing tone file name.
+        * @since 2.0
+        * @return Returns line 2 ringing tone file name.
+        */
+        virtual const TDesC& RingingTone2() const = 0;
+
+        /**
+        * Returns message alert tone file name.
+        * @since 2.0
+        * @return Returns message alert tone file name.
+        */
+        virtual const TDesC& MessageAlertTone() const = 0;
+
+        /**
+        * Returns tone settings structure.
+        * @since 2.0
+        * @return Returns tone settings structure.
+        */
+        virtual const TProfileToneSettings& ToneSettings() const = 0;
+    };
+
+#endif      // __MPROFILETONES_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfileUtilitySingleton.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,76 @@
+/*
+* 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:  Profile Utility interface.
+*
+*/
+
+
+
+#ifndef __MPROFILEUTILITYSINGLETON_H__
+#define __MPROFILEUTILITYSINGLETON_H__
+
+//  INCLUDES
+
+// FORWARD DECLARATIONS
+class MProfileUtilitySingleton;
+class MProfilesLocalFeatures;
+
+// FUNCTION PROTOTYPES
+/**
+* Return reference to MProfileUtilitySingleton instance. Create it if
+* necessary. For each succesful InstanceL() call there must be a corres-
+* ponding Release() call, so that the internal reference counting works.
+* @since 3.2
+* @return Reference to the only MProfileUtilitySingleton instance.
+*/
+IMPORT_C MProfileUtilitySingleton& ProfileUtilityInstanceL();
+
+/**
+* Release the resources of MProfileUtilitySingleton (when there are no
+* references to it anymore). For each succesful InstanceL() call there
+* must be a corresponding Release() call, so that the internal
+* reference counting works.
+* @since 3.2
+*/
+IMPORT_C void ReleaseProfileUtility();
+
+
+// CLASS DECLARATION
+/**
+*  Profile utility class.
+*
+*  @lib profileeng.lib
+*  @since 3.2
+*/
+class MProfileUtilitySingleton
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileUtilitySingleton() {};
+
+    public: // New functions
+
+        /**
+        * Returns a reference to MProfilesLocalFeatures instance owned by
+        * this MProfileUtility instance.
+        * @since 3.2
+        */
+        virtual MProfilesLocalFeatures& ProfilesLocalFeatures() = 0;
+
+    };
+
+#endif      // __MPROFILEUTILITYSINGLETON_H__
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilesLocalFeatures.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,110 @@
+/*
+* 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:  Interface for locally variated features of Profiles.
+*
+*/
+
+
+
+#ifndef __MPROFILESLOCALFEATURES_H__
+#define __MPROFILESLOCALFEATURES_H__
+
+// CLASS DECLARATION
+
+/**
+*  Profiles local feature variation interface.
+*  MProfilesLocalFeatures offers simple interface to get locally variated
+*  features of Profiles.
+*  How to use:
+*  Get local features object with MProfileEngineExtended::LocalFeaturesL().
+*     MProfilesLocalFeatures& features = iProfileEngine->LocalFeatures();
+*  Check whether a feature is supported (use the ID:s defined in
+*  ProfilesVariant.hrh):
+*     if( features.IsFeatureSupported( KFeatureIdSomeFeature ) )
+*         {
+*         // do stuff
+*         }
+*
+*  @lib N/A
+*  @since 2.6
+*/
+class MProfilesLocalFeatures
+    {
+    protected:  // Destructor
+
+        virtual ~MProfilesLocalFeatures() {};
+
+    public: // New functions
+
+        /**
+        * Checks if the given feature is supported or not.
+        * @since 2.6
+        * @return ETrue if the feature is supported, EFalse otherwise.
+        */
+        virtual TBool IsFeatureSupported( TInt aFeatureId ) const = 0;
+
+        /**
+         * Checks if the given MIME-type is explicitly blocked from using as
+         * an alert tone.
+         * @since 3.1
+         * @param aMimeType the MIME-type to be checked.
+         * @return ETrue if the MIME-type is blocked, EFalse otherwise.
+         */
+        virtual TBool IsBlockedType( const TDesC& aMimeType ) = 0;
+
+        /**
+         * Checks if the given MIME-type is explicitly blocked from using as
+         * an alert tone if the alert tone file of the type is unprotected.
+         * @since 3.1
+         * @param aMimeType the MIME-type to be checked.
+         * @return ETrue if the MIME-type is blocked if the alert tone file is
+         *         unprotected, EFalse otherwise.
+         */
+        virtual TBool IsBlockedUnprotectedType( const TDesC& aMimeType ) = 0;
+
+        /**
+         * Checks if the given MIME-type is explicitly blocked from using as
+         * an alert tone if the alert tone file of the type is protected.
+         * @since 3.1
+         * @param aMimeType the MIME-type to be checked.
+         * @return ETrue if the MIME-type is blocked if the alert tone file is
+         *         protected, EFalse otherwise.
+         */
+        virtual TBool IsBlockedProtectedType( const TDesC& aMimeType ) = 0;
+
+        /**
+         * Checks if the given MIME-type is explicitly blocked from demo
+         * playing.
+         * @since 3.1
+         * @param aMimeType the MIME-type to be checked.
+         * @return ETrue if the MIME-type is blocked from demo-playing,
+         *         EFalse otherwise.
+         */
+        virtual TBool IsBlockedDemoPlayType( const TDesC& aMimeType ) = 0;
+
+        /**
+         * Checks if the given MIME-type is explicitly excluded from the tone
+         * selection list. Also when tried to be set as alert tones through
+         * other means, should behave as the tone would be in blocked type list.
+         * @since 3.1
+         * @param aMimeType the MIME-type to be checked.
+         * @return ETrue if the MIME-type is excluded from the tone selection
+         *         list, EFalse otherwise.
+         */
+        virtual TBool IsExcludedType( const TDesC& aMimeType ) = 0;
+    };
+
+#endif      //  __MPROFILESLOCALFEATURES_H__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/MProfilesNamesArray.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* 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:  Profile names array interface.
+*
+*/
+
+
+
+#ifndef MPROFILESNAMESARRAY_H
+#define MPROFILESNAMESARRAY_H
+
+//  INCLUDES
+#include <bamdesca.h> // MDesCArray
+
+// FORWARD DECLARATIONS
+class MProfileName;
+
+// CLASS DECLARATION
+
+/**
+*  Profile names array interface.
+*
+*  How to use:
+*  Get profile names array with MProfileEngine::ProfilesNamesArrayLC().
+*      MProfilesNamesArray* nameArray = iProfileEngine->ProfilesNamesArrayLC();
+*
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfilesNamesArray : public MDesCArray
+    {
+    public: // New functions
+
+        /**
+        * Return pointer of the profile name interface.
+        * @since 2.0
+        * @param aIndex index of the profile.
+        * @return Return pointer of the profile name interface.
+        *         Pointer is NULL if profile doesn't found.
+        */
+        virtual const MProfileName* ProfileName( TInt aIndex ) const = 0;
+
+        /**
+        * Find profile index by ID of the profile.
+        * @since 2.0
+        * @param aId ID of the profile.
+        * @return Return index of the profile. KErrNotFound if
+        *         profile doesn't found.
+        */
+        virtual TInt FindById( TInt aId ) const = 0;
+
+        /**
+        * Find profile index by name of the profile.
+        * @since 2.0
+        * @param aProfileName name of the profile.
+        * @return Return index of the profile. KErrNotFound if
+        *         profile doesn't found.
+        */
+        virtual TInt FindByName( const TDesC& aProfileName ) const = 0;
+
+    };
+
+#endif      // MPROFILESNAMESARRAY_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEng.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,72 @@
+/*
+* 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:  Profiles Engine enumeration TProfileSettingKeyType
+*		and TProfileSettingId.
+*
+*/
+
+
+#ifndef __PROFILEENG_HRH__
+#define __PROFILEENG_HRH__
+
+#define PROFILES_ENGINE_RESOURCE_SIGNATURE 75
+#define PROFILES_MAX_NAME_LENGTH           64
+#define PROFILES_MAX_STATUS_MSG_LENGTH     40
+#define PROFILES_MAX_CALL_OBJECT_TEXT_LENGTH 1000
+
+// DATA TYPES
+enum TProfileSettingKeyType
+    {
+    EProfileSettingKeyTypeInt = 0,
+    EProfileSettingKeyTypeString = 1,
+    EProfileSettingKeyTypeBin = 2,
+    EProfileSettingKeyTypeReal = 3
+    };
+
+enum TProfileSettingId
+    {
+    EProfileSettingIdModifiableFlags = 0x00000000,
+    EProfileSettingIdVisibleFlags = 0x00000001,
+    EProfileSettingIdProfileName = 0x00000002,
+    EProfileSettingIdAlertForGroups = 0x00000003,
+    EProfileSettingIdRingingTone = 0x00000004,
+    EProfileSettingIdRingingTone2 = 0x00000005,
+    EProfileSettingIdMsgTone = 0x00000006,
+    EProfileSettingIdRingingType = 0x00000007,
+    EProfileSettingIdKeypadVolume = 0x00000008,
+    EProfileSettingIdRingingVolume = 0x00000009,
+    EProfileSettingIdVibra = 0x0000000A,
+    EProfileSettingIdWarnAndGameTones = 0x0000000B,
+    EProfileSettingIdImTone = 0x0000000C,
+    EProfileSettingIdEmailTone = 0x0000000D,
+    EProfileSettingIdVideoCallTone = 0x0000000E,
+    EProfileSettingIdStatusMsg = 0x0000000F,
+    EProfileSettingIdAvailAttribute = 0x00000010,
+    EProfileSettingIdMediaVolume = 0x00000011,
+    EProfileSettingIdTextToSpeechTone = 0x00000012,
+    EProfileSettingIdNameChanged = 0x00000013,
+    EProfileSettingIdCallObjectContent = 0x00000014,
+    EProfileSettingIdPttTone = 0x00000015,
+    EProfileSettingIdPttStatus = 0x00000016,
+    EProfileSettingId3DEffect = 0x00000017,
+    EProfileSettingId3DEcho = 0x00000018,
+    EProfileSettingIdTactileFeedback = 0x00000019,
+    EProfileSettingIdAudioFeedback = 0x0000001A,
+    EProfileSettingIdEmailVibra=0x0000001B
+    };
+
+#endif // __PROFILEENG_HRH__
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEng.rh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,66 @@
+/*
+* 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:  Profiles Engine resource structures.
+*
+*/
+
+
+//  STRUCTURE DEFINITIONS
+
+// -----------------------------------------------------------------------------
+// DEFAULT_PROFILES
+// Default profiles
+// -----------------------------------------------------------------------------
+//
+STRUCT DEFAULT_PROFILES
+    {
+    STRUCT items[];
+    }
+
+// -----------------------------------------------------------------------------
+// PROFILE
+// profile default name and ID
+// -----------------------------------------------------------------------------
+//
+STRUCT PROFILE
+    {
+    LONG id = 0;
+    LTEXT name = "";
+    LTEXT shortname = "";
+    LTEXT naviname = "";
+    LTEXT titlename = "";
+    }
+
+// -----------------------------------------------------------------------------
+// PROFILE_SETTINGS
+// Profile settings
+// -----------------------------------------------------------------------------
+//
+STRUCT PROFILE_SETTINGS
+    {
+    STRUCT items[];
+    }
+
+// -----------------------------------------------------------------------------
+// PROFILE SETTING
+// profile setting for dynamic profiles
+// -----------------------------------------------------------------------------
+//
+STRUCT PROFILE_SETTING
+    {
+    LONG id = 0;
+    LONG key_type = 0;
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineConstants.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,47 @@
+/*
+* 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:  Profiles engine constants
+*
+*/
+
+
+
+#ifndef PROFILEENGINECONSTANTS_H
+#define PROFILEENGINECONSTANTS_H
+
+//  INCLUDES
+#include <e32std.h>
+#include "ProfileEng.hrh"
+
+// CONSTANTS
+const TInt KProfileFileEstimationSize( 400 );
+const TInt KProfilesMaxNumberOfDynamicProfiles( 20 );
+const TInt KProfilesMaxTIntLength( 11 );
+const TInt KProfileMaxNameLength( PROFILES_MAX_NAME_LENGTH );
+const TInt KProfileMaxCallObjectTextLength( 1000 );
+const TInt KProfileBaseDynamicProfileId( 30 );    // first dynamic profile ID
+// Used for profile settings cenrep-keys - profile id is encoded in the MSB:
+const TInt KProfileIdShift( 24 );    
+
+_LIT( KProfileDriveC,           "c:" );
+_LIT( KProfileDriveZ,           "z:" );
+_LIT( KProfileFilePrefix,       "Profile" );
+_LIT( KProfileFileExtension,    ".dat" );
+_LIT( KProfileFilePath,         "\\System\\Data\\Profiles\\" );
+_LIT( KProfileEngineResourceDriveAndDir, "Z:ProfileEng.rsc" );
+_LIT( KProfileMutexName,        "ProfileFileAccessMutexName" );
+
+#endif      // PROFILEENGINECONSTANTS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineDomainCRKeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,213 @@
+/*
+* 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:  Profiles engine domain Central Repository keys.
+*
+*/
+
+
+
+#ifndef PROFILEENGINEDOMAINCRKEYS_H
+#define PROFILEENGINEDOMAINCRKEYS_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <ProfileEngineSDKCRKeys.h>
+
+// CONSTANTS
+
+/**
+ * Default ringing tone for all profiles. String value. Read-only.
+ * This ringing tone is used if some error condition prevents using the user-set
+ * ringing tone for alerting of incoming call.
+ *
+ * Central Repository file of the key: KCRUidProfileEngine.
+ *
+ */
+const TUint32 KProEngDefaultRingingTone = 0x7F000004;
+
+/**
+ * Default message alert tone for all profiles. String value. Read-only.
+ * This alert tone is used if some error condition prevents using the user-set
+ * alert tone for alerting of incoming message.
+ *
+ * Central Repository file of the key: KCRUidProfileEngine.
+ *
+ */
+const TUint32 KProEngDefaultMessageTone = 0x7F000006;
+
+/**
+ * Default Instant Message alert tone for all profiles. String value. Read-only.
+ * @deprecated IM does not use Profiles-dependent alert tone anymore.
+ *
+ * Central Repository file of the key: KCRUidProfileEngine.
+ *
+ */
+const TUint32 KProEngDefaultImTone = 0x7F00000C;
+
+/**
+ * This integer indicates the maximum file size (kilo bytes) of ring tone
+ * files that can be selected as voice call ringing tone.
+ *
+ * Central Repository file of the key: KCRUidProfileEngine.
+ *
+ * Possible values:
+ *
+ * 0   switches off file size checking. I.e. then all files can be selected.
+ * >0  max size. For example 100 would set the maximum file size as 100 kB.
+ *
+ */
+const TUint32 KProEngRingingToneMaxSize = 0x80000103;
+
+
+
+/**
+ * Profiles local variation CR file.
+ */
+const TUid KCRUidProfilesLV = {0x101F8799};
+
+/**
+ * Standard bitmask type of key used for local variation of Profiles.
+ * One bit is used to control one feature. If the bit is on (= 1) the feature
+ * is enabled and if the bit is off the feature is off.
+ * The meaning of each bit are defined in ProfilesVariant.hrh.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * Integer value.
+ *
+ * @since 3.0
+ *
+ * Default values:
+ * S60 3.1: 1 (KProEngFeatureIdVTRingingTone enabled)
+ * S60 3.2: 1
+ * S60 4.0: 1
+ */
+const TUint32 KProfilesLVFlags             = 0x00000000;
+
+/**
+ * Standard bitmask type of key used for local variation of Profiles Tones View
+ * (in General Settings). One bit is used to control one feature. If the bit is
+ * on (= 1) the feature is enabled and if the bit is off the feature is off.
+ * The meanings for each bit used are defined in the end of this file.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * Integer value.
+ *
+ * @since 3.1
+ *
+ * Default values:
+ * S60 3.1: 0 (KTonesViewFeatureIdHac disabled)
+ * S60 3.2: 1 (KTonesViewFeatureIdHac enabled)
+ */
+const TUint32 KProEngTonesViewLVFlags = 0x00000001;
+
+/**
+ * This key defines the set of MIME-types that are not allowed as alert tones.
+ * When the user is trying to set an alert tone, this list must be checked
+ * first before the following 2 lists and act accordingly. Trying to set a tone
+ * of a type given in this list as alert tone should result in an error note: 
+ * "Not allowed" or similar.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * String value.
+ *
+ * Possible values: space separated list of MIME-types to be blocked.
+ *
+ * Default value:""
+ */
+const TUint32 KProEngBlockedTones = 0x00000002;
+
+/**
+ * This key defines the set of MIME-types that are not allowed as alert tones
+ * if the tone file in question is NOT DRM protected. Trying to set a tone of
+ * a type given in this list as alert tone should result in an error note:
+ * "Unprotected file. Cannot be selected as ringing tone." or similar.
+ * Note, if a MIME-type is already included in KProEngBlockedTones, it should
+ * not have to be included in this list.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * String value.
+ *
+ * Possible values: space separated list of MIME-types to be blocked.
+ *
+ * Default value:""
+ */
+const TUint32 KProEngBlockedUnprotectedTones = 0x00000003;
+
+/**
+ * This key defines the set of MIME-types that are not allowed as alert tones
+ * if the tone file in question IS DRM protected. Trying to set a tone of a
+ * type given in this list as alert tone should result in an error note:
+ * "Protected file. Cannot be selected as ringing tone." or similar.
+ * Note, if a MIME-type is already included in KProEngBlockedTones, it should
+ * not have to be included in this list.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * String value.
+ *
+ * Possible values: space separated list of MIME-types to be blocked.
+ *
+ * Default value:""
+ */
+const TUint32 KProEngBlockedProtectedTones = 0x00000004;
+
+/**
+ * This key defines the set of MIME-types that are not allowed to be demo-played
+ * in Tone Selection dialog.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * String value.
+ *
+ * Possible values: space separated list of MIME-types to be blocked. If the
+ * list is empty, the demo-play of tones are not blocked at all (if the MIME
+ * type is otherwise supported by MMF).
+ */
+const TUint32 KProEngBlockedDemoPlayTones = 0x00000005;
+
+/**
+ * This key defines the set of MIME-types that are to be excluded from the list
+ * of tones in Tone Selection dialog. If the attempt to set the tone is carried
+ * out by other means than using Tone Selection dialog, the behaviour will be
+ * the same as with the tones in KProEngBlockedTones list.
+ *
+ * Central Repository file of the key: KCRUidProfilesLV.
+ *
+ * String value.
+ *
+ * Possible values: space separated list of MIME-types to be excluded/blocked.
+ * If the list is empty, the demo-play of tones are not excluded at all (if the
+ * MIME type is otherwise supported by MMF).
+ */
+const TUint32 KProEngExcludedTones = 0x00000006;
+
+
+//
+// Bit definitions for KProEngTonesViewLVFlags
+//
+
+/**
+ * This bit indicates whether HAC hearing aid compatibility support for 
+ * size architecture feature is enabled.
+ * @since 3.1
+ */
+const TUint32 KTonesViewFeatureIdHac = 0x00000001;
+
+#endif      // PROFILEENGINEDOMAINCRKEYS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineDomainConstants.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,43 @@
+/*
+* 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:  Profiles engine constants for S60 applications to use.
+*
+*/
+
+
+
+#ifndef PROFILEENGINEDOMAINCONSTANTS_H
+#define PROFILEENGINEDOMAINCONSTANTS_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// CONSTANTS
+/**
+ * The tone to be used when an "Off" tone is needed for an alert tone. With
+ * this tone the vibra can be played even if no sound is heard. This file is
+ * exported by Profiles Engine and it will always be located in ROM, so this
+ * value must be appended to the ROM-drive letter, for example like this:
+ * @code
+ * TFileName* tf = new ( ELeave ) TFileName(
+ *         TParsePtrC( PathInfo::RomRootPath() ).Drive() );
+ * CleanupStack::PushL( tf );
+ * tf->Append( KProfileNoSoundPath );
+ * @endcode
+ */
+_LIT( KProfileNoSoundPath, "\\resource\\No_Sound.wav" );
+
+#endif      // PROFILEENGINEDOMAINCONSTANTS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineInternalCRKeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,89 @@
+/*
+* 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:  Profiles engine internal Central Repository keys.
+*
+*/
+
+
+
+#ifndef PROFILEENGINEINTERNALCRKEYS_H
+#define PROFILEENGINEINTERNALCRKEYS_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <ProfileEngineDomainCRKeys.h>
+
+// CONSTANTS
+
+/**
+ * Information about whether self recorded tones can be used as ringing tones
+ * or not. Integer value.
+ *
+ * Possible values:
+ *
+ * 0 (disabled)
+ * 1 (enabled)
+ */
+const TUint32 KProEngRecordedRingingTones = 0x80000100;
+
+/**
+ * If this is true, DRM protected MP4 tones are not allowed as ringing tones.
+ *
+ * Possible values:
+ *
+ * 0 (allowed, default)
+ * 1 (not allowed)
+ */
+const TUint32 KProEngNoDrmMP4RingingTones = 0x80000101;
+
+/**
+ * If this is true, WMA tones are not allowed as ringing tones.
+ *
+ * Possible values:
+ *
+ * 0 (allowed, default)
+ * 1 (not allowed)
+ */
+const TUint32 KProEngNoWmaRingingTones = 0x80000102;
+
+/**
+ * Tactile feedback setting for the currently active profile.
+ * THIS COULD BE MOVED TO THE SDK HEADER LATER?
+ *
+ * Possible values:
+ *
+ * 0 (Off)
+ * 1 (Level 1)
+ * 2 (Level 2)
+ * 3 (Level 3)
+ */
+const TUint32 KProEngActiveTactileFeedback = 0x7E000019;
+
+/**
+ * Audio feedback setting for the currently active profile.
+ * THIS COULD BE MOVED TO THE SDK HEADER LATER?
+ *
+ * Possible values:
+ *
+ * 0 (Off)
+ * 1 (Level 1)
+ * 2 (Level 2)
+ * 3 (Level 3)
+ */
+const TUint32 KProEngActiveAudioFeedback = 0x7E00001A;
+
+
+#endif      // PROFILEENGINEINTERNALCRKEYS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEngineInternalPSKeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,32 @@
+/*
+* 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:  Profiles engine internal Publish & Subscribe keys.
+*
+*/
+
+
+
+#ifndef PROFILEENGINEINTERNALPSKEYS_H
+#define PROFILEENGINEINTERNALPSKEYS_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// CONSTANTS
+const TUid KPSUidProfileEngine = {0x101F879F};
+
+#endif      // PROFILEENGINEINTERNALPSKEYS_H
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileEnginePrivatePSKeys.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,53 @@
+/*
+* 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:  Profiles engine internal Publish & Subscribe keys.
+*
+*/
+
+
+
+#ifndef PROFILEENGINEPRIVATEPSKEYS_H
+#define PROFILEENGINEPRIVATEPSKEYS_H
+
+//  INCLUDES
+#include <e32std.h>
+#include "ProfileEngineInternalPSKeys.h"
+
+// CONSTANTS
+
+/**
+ * A setting in the current active profile was modified. This is used
+ * internally by Profiles Engine notification mechanism.
+ * Default value: 0.
+ */
+const TUint32 KProEngActiveProfileModified = 0x7D000001;
+
+/**
+ * The current active profile has changed (or the active profile has been
+ * reactivated). This is used internally by Profiles Engine notification
+ * mechanism.
+ * Default value: 0.
+ */
+const TUint32 KProEngActiveProfileChanged = 0x7D000002;
+
+/**
+ * Power save mode has changed.
+ * This is used internally by Profiles Engine.
+ * Default value: 0.
+ */
+const TUint32 KProEngPsmChanged = 0x7D000003;
+
+#endif      // PROFILEENGINEPRIVATEPSKEYS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfileInternal.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,72 @@
+/*
+* 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:  Profiles Engine enumeration TProfilePttStatus
+*
+*/
+
+
+#ifndef PROFILEINTERNAL_HRH
+#define PROFILEINTERNAL_HRH
+
+// DATA TYPES
+enum TProfilePttStatus
+    {
+    EProfilePttActive = 0,
+    EProfilePttSilent = 1,
+    EProfilePttDoNotDisturb = 2
+    };
+
+enum TProfileTactileFeedback
+    {
+    EProfileTactileFeedbackOff		= 0,
+    EProfileTactileFeedbackLevel1	= 1,
+    EProfileTactileFeedbackLevel2	= 2,
+    EProfileTactileFeedbackLevel3	= 3
+    };
+
+enum TProfileAudioFeedback
+    {
+    EProfileAudioFeedbackOff		= 0,
+    EProfileAudioFeedbackLevel1		= 1,
+    EProfileAudioFeedbackLevel2		= 2,
+    EProfileAudioFeedbackLevel3		= 3
+    };
+
+enum TProfile3DToneEffect
+    {
+    EProfile3DEffectOff                 = 0,
+    EProfile3DEffectCircle              = 1,
+    EProfile3DEffectFlyby               = 2,
+    EProfile3DEffectZigZag              = 3,
+    EProfile3DEffectRandomWalk          = 4,
+    EProfile3DEffectChaos               = 5,
+    EProfile3DEffectStereoWidening      = 6
+    };
+
+// The magic numbers come from CEnvironmentalReverbUtility, although they are
+// not documented anywhere:
+enum TProfile3DToneEcho
+    {
+    EProfile3DEchoOff           = 0,
+    EProfile3DEchoLivingRoom    = 14,
+    EProfile3DEchoCave          = 5,
+    EProfile3DEchoStoneCorridor = 26,
+    EProfile3DEchoForest        = 8,
+    EProfile3DEchoSewerPipe     = 24,
+    EProfile3DEchoUnderwater    = 28
+    };
+
+#endif // PROFILEINTERNAL_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/ProfilesVariant.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2003 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:  Profiles subsystem local variation
+*
+*  The file contains values for Central Repository keys specifying
+*  Profiles specific software settings. 
+*
+*
+*/
+
+
+
+#ifndef PROFILESVARIANT_HRH
+#define PROFILESVARIANT_HRH
+
+
+/**
+* User's guide to Profiles variation:
+* Central Repository file: KCRUidProfilesLV (101F8799.txt)
+* How to use: 
+*     CRepository* cenrep = CRepository::NewLC( KCRUidProfilesLV );
+*     // if value fetch fails, assume all variated features are off:
+*     TInt featureBitmask( 0 );
+*     cenrep->Get( KProfilesLVFlags, featureBitmask );
+* 
+*     //
+*     // Get the value once and save it for later use.
+*     // No need to access Central Repository every time when a value is needed
+* 
+*     if  ( featureBitmask & KProEngFeatureXxx )
+*         {
+*         // This feature is ON, so act accordingly
+*         }
+*/
+
+
+
+/**
+* If KProEngFeatureIdVTRingingTone is on, Profiles supports setting of a
+* dedicated ringing tone for a video call.
+*/
+#define KProEngFeatureIdVTRingingTone 0x01
+
+/**
+ * If KProEngFeatureIdForceSilentMode is enabled, no other sounds than the
+ * camera shutter and video recorder start tones can be heard in silent
+ * profile. Also the tone settings of the silent profile will be hidden.
+ */
+#define KProEngFeatureIdForceSilentMode 0x02
+
+/**
+ * If KProEngFeatureIdTimedProfiles is enabled, Profiles supports timed
+ * profiles.
+ */
+#define KProEngFeatureIdTimedProfiles 0x04
+
+/**
+ * If KProEngFeatureIdTTSRingingTone is enabled, Profiles supports
+ * text-to-speech feature (aka "Say caller's name").
+ * Feature dependency to __SIND (Speaker Independent Name Dialing).
+ * Must be disabled when SIND is disabled.
+ */
+#define KProEngFeatureIdTTSRingingTone 0x08
+
+#endif // PROFILESVARIANT_HRH
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/SecondaryDisplayProfilesAPI.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,60 @@
+/*
+* 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:  The set of messages provided to Secondary Display software by
+*              : Profiles subsystem.
+*
+*/
+
+#ifndef __SECONDARYDISPLAYPROFILESAPI_H
+#define __SECONDARYDISPLAYPROFILESAPI_H
+
+// INCLUDES
+#include <e32base.h>
+
+/*
+* ==============================================================================
+* This file contains the following sections:
+*   - Dialog definitions
+*   - Command definitions
+*   - Event definitions
+*   - Parameter definitions
+* ==============================================================================
+*/
+
+// The category UID for the messages in this header file.
+//
+const TUid KCatProfiles = {0x2000B471}; 
+
+/*
+* ==============================================================================
+* Dialogs shown by Profiles subsystem. These messages are handled using the
+* Secondary Display support in Avkon.
+* ==============================================================================
+*/
+enum TSecondaryDisplayProfilesDialogs
+    {
+    /**
+    * No note. Error condition if this comes to CoverUI
+    */
+    ECmdNoNoteProfiles = 0,
+    
+    /**
+    * A command for showing the "Timed profile expired" note on secondary display.
+    */
+    ECmdShowTimedProfileExpiryNote,
+ 
+    };
+#endif      // __SECONDARYDISPLAYPROFILESAPI_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/inc/TProfileToneSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,49 @@
+/*
+* 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:  Profile tone settings structure.
+*
+*/
+
+
+
+#ifndef __TPROFILETONESETTINGS_H
+#define __TPROFILETONESETTINGS_H
+
+// INCLUDES
+#include <Profile.hrh>
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Profile tone settings structure.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+struct TProfileToneSettings
+    {
+    TProfileRingingType  iRingingType;
+    TProfileKeypadVolume iKeypadVolume;
+    TInt                 iRingingVolume;         // 1 - 10
+    TBool                iVibratingAlert;        // ETrue = On
+    TBool                iEmailVibratingAlert;
+    TBool                iWarningAndGameTones;   // ETrue = On
+    TInt                 iMediaVolume;           // 1 - 10
+    TBool                iTextToSpeech;          // ETrue = On
+    };
+
+#endif      // __TPROFILETONESETTINGS_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/profiles_engine_api.metaxml	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" ?>
+<api id="7cd90304c0aac4ddc7309afb22964708" dataversion="2.0">
+  <name>Profiles Engine API</name>
+  <description>For creating Profiles Engine, getting the active profile,
+getting the profile names and setting the active profile.</description>
+  <type>c++</type>
+  <collection>profilesservices</collection>
+  <libs>
+    <lib name="ProfileEng.lib" />
+    <lib name="ProfileEngine.lib" />
+  </libs>
+  <release category="platform"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-profiles_engine_api/tsrc/group/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* 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: 
+*     This file provides the information required for building
+*     Profiles Engine API test cases.
+*
+*/
+
+////////////////////////////////////////////////////////////
+// bld.inf
+// Part of EUnit library test
+
+#include "../../../../profilesapplication/Profiles/ProfileEngine/tsrc/public/basic/EngineMdlTest/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/group/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2006-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:   File that exports the files belonging to
+:                Settings Framework API
+*
+*/
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/GSCommon.rh     MW_LAYER_PLATFORM_EXPORT_PATH(gscommon.rh)
+../inc/GSSettingId.h     MW_LAYER_PLATFORM_EXPORT_PATH(gssettingid.h)
+../inc/GSChildViewManager.h     MW_LAYER_PLATFORM_EXPORT_PATH(gschildviewmanager.h)
+../inc/MGSSettingPSObserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(mgssettingpsobserver.h)
+../inc/GSBaseView.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsbaseview.h)
+../loc/gs.loc     MW_LAYER_LOC_EXPORT_PATH(gs.loc)
+../inc/GSPrivatePluginProviderIds.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsprivatepluginproviderids.h)
+../inc/GSTabbedViewOwner.h     MW_LAYER_PLATFORM_EXPORT_PATH(gstabbedviewowner.h)
+../inc/GeneralSettingsVariant.hrh     MW_LAYER_PLATFORM_EXPORT_PATH(generalsettingsvariant.hrh)
+../inc/GSBaseContainer.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsbasecontainer.h)
+../inc/GSParentPlugin.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsparentplugin.h)
+../inc/GSTabHelper.h     MW_LAYER_PLATFORM_EXPORT_PATH(gstabhelper.h)
+../inc/GSPluginLoader.h     MW_LAYER_PLATFORM_EXPORT_PATH(gspluginloader.h)
+../inc/GSMainView.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsmainview.h)
+../inc/GSCommon.hrh     MW_LAYER_PLATFORM_EXPORT_PATH(gscommon.hrh)
+../inc/GSTabbedView.h     MW_LAYER_PLATFORM_EXPORT_PATH(gstabbedview.h)
+../inc/GSParentContainer.h     MW_LAYER_PLATFORM_EXPORT_PATH(gsparentcontainer.h)
+../inc/GSPubSubsListener.h     MW_LAYER_PLATFORM_EXPORT_PATH(gspubsubslistener.h)
+../inc/MGSWatchDog.h     MW_LAYER_PLATFORM_EXPORT_PATH(mgswatchdog.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSBaseContainer.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2005 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:   Base class for GS plugin containers.
+*
+*/
+
+
+#ifndef GSBASECONTAINER_H
+#define GSBASECONTAINER_H
+
+// INCLUDES
+#include    <coeccntx.h>
+#include    <eikclb.h>
+
+// CLASS DECLARATION
+
+/**
+*  Base class for GS view containers. Use not necessary.
+*
+*  @lib GSFramework.lib
+*  @since Series60_3.1
+*/
+class CGSBaseContainer : public CCoeControl
+{
+    public: // Constructors and destructor
+
+        /**
+        * Symbian OS default constructor.
+        */
+        IMPORT_C virtual void ConstructL( const TRect& aRect ) = 0;
+
+        /**
+        * Constructs all common parts of the container.
+        *
+        * @param aRect Listbox control's rect.
+        * @param aResTitleId Resource id for title.
+        * @param aResLbxId Resource id for listbox.
+        */
+        IMPORT_C void BaseConstructL(   const TRect& aRect,
+                                        TInt aResTitleId,
+                                        TInt aResLbxId );
+
+        /**
+        * Constructor.
+        */
+        IMPORT_C CGSBaseContainer();
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CGSBaseContainer();
+
+    public: // New
+
+        /**
+        * Sets selected item in the listbox.
+        * @param aIndex Index of the item.
+        */
+        IMPORT_C virtual void SetSelectedItem( TInt aIndex );
+
+        /**
+        * Returns selected item in the listbox.
+        * @return Seleced item index or 0 if no valid lbx.
+        */
+        IMPORT_C virtual TInt SelectedItem();
+
+        /**
+        * Set focus on the selected listbox. For animated skins feature.
+        */
+        IMPORT_C void FocusChanged( TDrawNow aDrawNow );
+
+    public: // From CCoeControl
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void HandleResourceChange( TInt aType );
+
+    protected: // New
+
+        /**
+        * Constructs listbox.
+        * @param aResLbxId Resource id for listbox.
+        */
+        virtual void ConstructListBoxL( TInt aResLbxId );
+
+    private: // From CCoeControl
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void SizeChanged();
+
+        /**
+        * See base class.
+        */
+        IMPORT_C TInt CountComponentControls() const;
+
+        /**
+        * See base class.
+        */
+        IMPORT_C CCoeControl* ComponentControl( TInt /*aIndex*/ ) const;
+
+        /**
+        * See base class.
+        */
+        IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+                                              TEventCode aType );
+
+    public: // Data
+
+        // Pointer to newly created list box.
+        CEikTextListBox* iListBox;
+
+    protected: // Data
+
+        // European look and feel.
+        TBool iElaf;
+};
+
+#endif // GSBASECONTAINER_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSBaseView.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,213 @@
+/*
+* Copyright (c) 2002-2005 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:  
+*     Base class for settings views.
+*
+*/
+
+
+#ifndef GSBASEVIEW_H
+#define GSBASEVIEW_H
+
+// INCLUDES
+#include    <gsplugininterface.h>
+
+#include    <aknnavi.h>
+#include    <aknview.h>
+#include    <bldvariant.hrh>
+#include    <ConeResLoader.h>
+#include    <eikclb.h>
+
+// FORWARD DECLARATIONS
+class CGSBaseContainer;
+class CAknNavigationDecorator;
+
+// CLASS DECLARATION
+
+/**
+*  CGSBaseView view class
+*  Base class for GS plugin views.
+*
+*  @lib GSFramework.lib
+*  @since Series60_3.1
+*/
+class CGSBaseView : public CGSPluginInterface , public MEikListBoxObserver
+    {
+    public:
+
+        // Panic code used in this class
+        enum KGSViewPanicCodes
+            {
+            EGSViewPanicNullPtr = 1
+            };
+
+    public: // Constructors and destructor
+
+        /**
+        * C++ default constructor
+        */
+        IMPORT_C CGSBaseView();
+
+        /**
+        * Symbian OS default constructor.
+        */
+        IMPORT_C virtual void ConstructL()=0;
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C ~CGSBaseView();
+
+    public: // New
+
+        /**
+        * This function is used to set the current item in the listbox.
+        * @param aIndex Current item. Default value is 0 i.e. the first item
+        *        of the list.
+        */
+        IMPORT_C virtual void SetCurrentItem( TInt aIndex = 0 );
+
+        /**
+        * Returns the container this view has.
+        * @return pointer to container, does not transfer ownership.
+        */
+        IMPORT_C CGSBaseContainer* Container();
+
+        /**
+        * Opens the nearest localized resourcefile using aResourceLoader.
+        * aResourceLoader should be opened only once before closing it.
+        * Otherwise it will raise a panic. Therefore it is better to have
+        * multiple resource loaders. Uses KDC_RESOURCE_FILES_DIR.
+        *
+        * @param aResourceFileName Drive and name of resource file in format
+        *                          <path>:<rsc_file_name>
+        * @param aResourceLoader Resource loader for the resource. The loader
+        *                        must not be opened allready or it will raise
+        *                        a panic. It is caller's responsibility to
+        *                        close the resource loader after using the
+        *                        resource.
+        */
+        IMPORT_C void OpenLocalizedResourceFileL(
+            const TDesC& aResourceFileName,
+            RConeResourceLoader& aResourceLoader );
+
+    public: // From CGSPluginInterface
+
+        /**
+        * See base class.
+        */
+        IMPORT_C virtual void ResetSelectedItemIndex();
+
+    public: // From CAknView
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void DoActivateL( const TVwsViewId& aPrevViewId,
+                                   TUid /*aCustomMessageId*/,
+                                   const TDesC8& /*aCustomMessage*/ );
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void DoDeactivate();
+
+    protected: // New
+
+        /**
+        * Sets the correct navi pane for the view (eg. tabs, string etc.).
+        */
+        IMPORT_C virtual void SetNaviPaneL();
+
+        /**
+        * Creates context for view's navi pane.
+        * @param aResourceId Resource id for navi pane context's resource.
+        */
+        IMPORT_C virtual void CreateNaviPaneContextL( TInt aResourceId );
+
+        /**
+        * Creates container,
+        */
+        IMPORT_C virtual void CreateContainerL();
+
+        /**
+        * Functionality for creating a container. Called by DoActivateL().
+        * Implemented by sub-class.
+        */
+        IMPORT_C virtual void NewContainerL() = 0;
+
+    protected: // From CAknView
+
+        /**
+        * See base class.
+        */
+        void HandleClientRectChange();
+
+    protected: // From MEikListBoxObserver
+
+        /**
+        * See base class.
+        */
+        void HandleListBoxEventL( CEikListBox* aListBox,
+            TListBoxEvent aEventType );
+
+    private: // New
+
+        /**
+        * Handles listbox selection. Called by HandleListBoxEventL.
+        * Implement by sub-class.
+        */
+        virtual void HandleListBoxSelectionL() = 0;
+        
+        /**
+        *  Creates navi control container when needed
+        */
+        CAknNavigationControlContainer* NaviControlContainerL();
+
+    public: // Data
+
+        TVwsViewId iPrevViewId; // Previous view UID
+
+    protected: // Data
+
+        // Pointer to application UI.
+        CAknViewAppUi* iAppUi;
+
+        // Pointer to the container
+        CGSBaseContainer* iContainer;
+
+        // Navi pane
+        CAknNavigationDecorator* iNaviPaneContext;
+
+        // Pointer to the navi control container
+        CAknNavigationControlContainer* iNaviControlContainer;
+
+        // Currently selected listbox item
+        TInt iCurrentItem;
+
+        // First item in the listbox
+        TInt iTopItemIndex;
+
+        // European look and feel
+        TBool iElaf;
+
+        // Resource loader
+        RConeResourceLoader iResourceLoader;
+
+    private: // Data
+
+    };
+
+#endif // GSBASEVIEW_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSChildViewManager.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2005 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:   
+*
+*/
+
+
+#ifndef GSChildViewManager_H
+#define GSChildViewManager_H
+
+// Classes referenced
+class CGSPluginInterface;
+
+class MGSChildViewManager
+    {
+public:
+    virtual void TransferDynamicPluginL( CGSPluginInterface* aPlugin ) = 0;
+    };
+
+
+#endif // GSChildViewManager_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSCommon.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2005 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:   Common GS menu commands and other common constants.
+*
+*/
+
+
+#ifndef GSCOMMON_HRH
+#define GSCOMMON_HRH
+
+// Common GS menu commands. Start from 500 so everything below 500 is free for
+// use for plugins. The values are based on the assumption that Avkon process
+// commands constants start from 4000 and CBA constants start from 3000 so 
+// these will not be overwritten.
+//
+enum TGSMenuCommands
+    {
+    EGSCmdAppChange = 500,
+    EGSCmdAppEdit,
+    EGSCmdAppHelp,
+    EGSCmdAppNew,
+    EGSCmdAppOpen,
+    EGSMSKCmdAppChange
+    };
+
+enum TGSListBoxItemVisibility
+    {
+    EGSListBoxItemTypeIsAlwaysVisible = 0,
+    EGSListBoxItemTypeIsDynamic
+    };
+
+#endif // GSCOMMON_HRH
+//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSCommon.rh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2003-2005 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:   Contains common declarations for resources of GS.
+*                 The file can be included only in resource file.
+*
+*/
+
+
+#ifndef GSCOMMON_RH
+#define GSCOMMON_RH
+
+#include <gscommon.hrh>
+
+// Global definitions
+
+//  STRUCTURE DEFINITIONS
+
+// ---------------------------------------------------------
+//    gs_link_apps
+//    It defines structure to contain information about apps 
+//    to be able to included in the softkey list.
+// ---------------------------------------------------------
+//
+STRUCT GS_LINK_APPS
+    {
+    STRUCT apps[];
+    }
+
+// ---------------------------------------------------------
+//    gs_app
+//    It defines structure that contains information about 
+//    a single app.
+// ---------------------------------------------------------
+//
+STRUCT GS_APP
+    {
+    WORD id;    
+    LONG app = -1;
+    }
+
+// ---------------------------------------------------------
+//    gs_feature_array
+//    It defines structure to contain information about items 
+//    to be able to included in the listbox.
+// ---------------------------------------------------------
+//
+STRUCT GS_FEATURE_ARRAY
+    {
+    STRUCT items[];
+    }
+
+// ---------------------------------------------------------
+//    gs_feature
+//    It defines structure that contains information about 
+//    a single listbox item.
+// ---------------------------------------------------------
+//
+STRUCT GS_FEATURE
+    {
+    LTEXT txt = "";    
+    WORD item = -1;
+    BYTE type = EGSListBoxItemTypeIsAlwaysVisible;
+    }
+
+#endif // GSCOMMON_RH
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSMainView.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,194 @@
+/*
+* Copyright (c) 2005 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:   Main view.
+*
+*/
+
+
+
+#ifndef GSMAINVIEW_H
+#define GSMAINVIEW_H
+
+// INCLUDES
+#include    "gspluginloader.h"
+#include    "gschildviewmanager.h"
+#include    <data_caging_path_literals.hrh>
+#include    <ConeResLoader.h>
+#include    <gstabbedviewowner.h>
+#include    <aknview.h>
+#include    <eikmenup.h>
+
+// CONSTANTS
+_LIT( KGSMainViewResourceFileName, "z:GSApp.rsc" );
+
+// FORWARD DECLARATIONS
+class CGSMainContainer;
+class CGSPluginInterface;
+
+// CLASS DECLARATION
+
+/**
+* CGSMainView view class
+*
+* Main view of GS
+*
+* This view is responsible for visualizing the first level of settings
+* plugins.
+*
+*/
+class CGSMainView :
+    public CAknView,
+    public MGSPluginLoadObserver,
+    public MGSTabbedViewOwner,
+    public MGSChildViewManager
+    {
+    public: // Constructors and destructor
+
+        CGSMainView();
+
+        /**
+        * Symbian OS two-phased constructor
+        * @return GS main view.
+        */
+        static CGSMainView* NewL();
+
+        /**
+        * Symbian OS two-phased constructor
+        * @return GS main view.
+        */
+        static CGSMainView* NewLC();
+
+        /**
+        * Symbian OS default constructor.
+        */
+        void ConstructL();
+
+        /**
+        * Destructor
+        */
+        ~CGSMainView();
+
+    public: // New
+
+        /**
+        * Returns pointer to the owned plugins.
+        */
+        CArrayPtrFlat<CGSPluginInterface>* Plugins();
+
+        /**
+        * Updates plugin's view. This can be used when child plugin's values
+        * are changed.
+        */
+        void UpdateView();
+
+    public: // From CAknView
+
+        /**
+        * See base view.
+        */
+        TUid Id() const;
+
+    public: // From MGSPluginLoadObserver
+
+        /**
+        * See base view.
+        */
+        void HandlePluginLoaded( KGSPluginLoaderStatus aStatus );
+
+    public: // From MGSChildViewManager
+
+        /**
+        * See base view.
+        */
+        void TransferDynamicPluginL( CGSPluginInterface* aPlugin );
+
+    public: // From MGSTabbedViewOwner
+
+        /**
+        * See base view.
+        */
+        CArrayPtrFlat<CGSPluginInterface>* TabbedViews();
+
+        /**
+        * See base class.
+        */
+        void TabChangedL( TUid selectedTabUid );
+
+    protected: // From CAknView
+
+        /**
+        * See base view.
+        */
+        void DoActivateL(
+            const TVwsViewId& aPrevViewId,
+            TUid aCustomMessageId,
+            const TDesC8& aCustomMessage );
+
+        /**
+        * See base view.
+        */
+        void DoDeactivate();
+
+        /**
+        * See base view.
+        */
+        void HandleCommandL( TInt aCommand );
+    
+    protected: // From MEikMenuObserver
+
+        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+    private:
+
+        /**
+        * Opens the nearest localized resourcefile.
+        */
+        void OpenLocalizedResourceFileL( const TDesC& aResourceFileName );
+
+        /**
+        * Creates new container.
+        */
+        void NewContainerL();
+
+    private: // Data
+
+        // Pointer to Application UI. Not owned.
+        CAknViewAppUi* iAppUi;
+
+        // Pointer to owned container.
+        CGSMainContainer* iContainer;
+
+        // GS plug-ins owned by this view. CGSPluginLoader defines the
+        // ordering of items.
+        CArrayPtrFlat<CGSPluginInterface>* iPluginArray;
+
+        // Asynchronous loader for the GS plug-ins.
+        CGSPluginLoader* iPluginLoader;
+
+        // Resource loader.
+        RConeResourceLoader iResourceLoader;
+
+        // UID of the selected plugin in the container's lbx.
+        TUid iSelectedPluginUid;
+        
+        //keep the exact position of the listbox including current item index,
+        //iVerticalOffset and  TopItemindex
+        RArray<TInt> iPosition;
+        
+        //record the screen mode, portrait/landscape
+        TBool iScreenMode;
+    };
+
+#endif  // GSMAINVIEW_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSParentContainer.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,241 @@
+/*
+* Copyright (c) 2005 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:   Container for GSParentPlugin.
+*
+*/
+
+
+#ifndef GSPARENTCONTAINER_H
+#define GSPARENTCONTAINER_H
+
+#include    "gsparentplugin.h"
+#include    <bldvariant.hrh>
+#include    <AknIconArray.h>
+#include    <AknsUtils.h>     // For loading icons
+#include    <coecntrl.h>
+#include    <eiklbx.h>
+#include    <eiktxlbx.h>
+
+// CLASS DECLARATION
+class CAknViewAppUi;
+class CGSPluginInterface;
+class CAknSingleLargeStyleListBox;
+class MGSWatchDog;
+
+/**
+*  Container class for the GS Main view.
+*  @lib GSFramework.lib
+*  @since Series60_3.1
+*/
+class CGSParentContainer : public CCoeControl, public MEikListBoxObserver
+    {
+    public: // Constructors and destructor
+
+        /**
+        * Symbian OS constructor.
+        * Required by the base class.
+        */
+        /*void ConstructL(
+            const TRect& aRect,
+            CAknViewAppUi* aAppUi,
+            CArrayPtrFlat<CGSPluginInterface>* aPluginArray,
+            TInt aTitleRscId );*/
+
+        /**
+        * Symbian OS constructor.
+        * Required by the base class.
+        */
+        void ConstructL(
+            const TRect& aRect,
+            CAknViewAppUi* aAppUi,
+            CArrayPtrFlat<CGSPluginInterface>* aPluginArray,
+            TInt aTitleRscId,
+            CGSParentPlugin* aParentPlugin,
+            TGSListboxTypes aListBoxType =
+                EGSListBoxTypeSingleLarge );
+
+	      /**
+        * Destructor.
+        */
+        ~CGSParentContainer();
+
+    public: // New
+
+        /**
+        * Updates iListBox. Listbox is updated depending on the type of the
+        * listbox. Plugins are inserted to listbox only if they are visible.
+        */
+        void UpdateListBoxL();
+
+        /**
+        * @return Pointer to owned listbox
+        */
+        CEikListBox* ListBox();
+
+        /**
+        * @return Plugin which is selected in the lbx or NULL if no plugins
+        *         exist.
+        */
+        CGSPluginInterface* SelectedPlugin();
+
+        /**
+        * Sets selected lbx item using the UID of the item. If the item is not
+        * existing or visible anymore, selected item is the first item in the
+        * lbx.
+        */
+        void SetSelectedItem( TUid aSelectedItemUid );
+        
+        /**
+        * @return Plugin which is top in the lbx or NULL if no plugins
+        *         exist.
+        */
+        CGSPluginInterface* TopPlugin();
+        
+        /**
+        * Sets top lbx item using the UID of the item.
+        */
+        void SetTopItem( TUid aTopItemUid );
+
+        /**
+         * Set the empty text of list box.
+         */
+        void SetListBoxEmptyTextL(const TDes& aEmpty );
+        
+        /**
+         * @return the exact position of the listbox containing current item index,
+         * iVerticalOffset and  TopItemindex
+         */
+        void GetPositionL(RArray<TInt>& aPosition);
+
+        /**
+         * set listbox's exact position.
+         */
+        void SetPosition(const RArray<TInt>& aPosition, TBool aChangeMode);   
+        
+
+    public: // From CCoeControl
+
+        /**
+        * Set focus on the selected listbox. For animated skins feature.
+        */
+        IMPORT_C void FocusChanged( TDrawNow aDrawNow );
+
+        /**
+        * See base class.
+        */
+        void HandleResourceChange( TInt aType );
+
+        /**
+        * See base class.
+        */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+    public: //New
+
+        void HandleSelectionKeyL();
+
+    protected: // From MEikListBoxObserver
+
+        /**
+        * Handles listbox events.
+        * @param aListBox Listbox where the event occurred.
+        * @param aEventType Event type.
+        */
+        void HandleListBoxEventL( CEikListBox* aListBox,
+            TListBoxEvent aEventType );
+
+    private: // New
+
+        /**
+        * Creates a listbox.
+        */
+        void CreateListBoxL( TGSListboxTypes aListBoxType );
+
+        /**
+        * Adds plugin data to listbox.
+        * @param aPlugin A plugin whose data is to be used.
+        * @param aItemTextArray Array for plugin texts and format strings used
+        *        by lbx.
+        * @param aIconArray Array for icons used in lbx.
+        * @param aIconCounter Counter for inserted icons, will be updated.
+        */
+        void AddPluginDataToLbxL( CGSPluginInterface* aPlugin,
+                                  CDesCArray* aItemTextArray,
+                                  CAknIconArray* aIconArray,
+                                  TInt& aIconCounter );
+
+    private: // From CCoeControl
+
+        /**
+        * See base class.
+        */
+        void SizeChanged();
+
+        /**
+        * See base class.
+        */
+        TInt CountComponentControls() const;
+
+        /**
+        * See base class.
+        */
+        CCoeControl* ComponentControl(TInt /*aIndex*/) const;
+
+        /**
+        * See base class.
+        */
+        TKeyResponse OfferKeyEventL(
+            const TKeyEvent& aKeyEvent,
+            TEventCode aType );
+
+    private: // Data
+
+        // Application UI. Not owned.
+        CAknViewAppUi* iAppUi;
+
+        // Owned listbox.
+        CEikListBox* iListBox;
+
+        // Type of iListBox.
+        TGSListboxTypes iListBoxType;
+
+        // Pointer to listbox model's item texts. Note that the indexes of
+        // listbox items are mapped directly to the indexes in plugin array.
+        // Plugin which maps to selected listbox item index in plugin array is
+        // activated when item is selected in listbox.
+        //
+        // Owned by iListBox.
+        //
+        CDesCArray* iItemTextArray;
+
+        // Array of the child plugins. Owned by CGSParentPlugin.
+        CArrayPtrFlat<CGSPluginInterface>* iPluginArray;
+
+        // Array of pointers to iPluginArray plugins which are visible.
+        // This is the actual array which is displayed by the listbox.
+        // It is needed because iPluginArray also contains non-visible plugins
+        // and therefore the indexes do not match to lbx items.
+        CArrayPtrFlat<CGSPluginInterface>* iVisiblePlugins;
+
+        // Pointer to parent plugin. Not owned.
+        CGSParentPlugin* iParentPlugin;
+
+        // Pointer to GSWatchDog owned by GS Application document. Not owned.
+        MGSWatchDog* iGSWatchDog;
+       
+    };
+
+
+#endif // GSPARENTCONTAINER_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSParentPlugin.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,342 @@
+/*
+* Copyright (c) 2005-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:   Base class header for plugins containing other plugins.
+*
+*/
+
+
+#ifndef GSPARENTPLUGIN_H
+#define GSPARENTPLUGIN_H
+
+// INCLUDES
+#include    "gspluginloader.h"
+#include    "gsplugininterface.h"
+#include    "gschildviewmanager.h"
+
+#include    <data_caging_path_literals.hrh>
+#include    <ConeResLoader.h>
+#include    <babitflags.h>
+
+// CONSTANTS
+_LIT( KGSParentPluginResourceFileName, "z:GSParentPluginRsc.rsc" );
+
+/**
+* Used by CGSParentPlugin::ListBoxType(). These enumerations are used to define
+* the desired type of the listbox. Enumerations here are currently implemented
+* by CGSParentPlugin. Additional types can be defined later as long as the
+* values for previous types are not changed.
+*/
+enum TGSListboxTypes
+    {
+    // CAknSingleLargeStyleListBox for
+    // list_single_large_pane
+    EGSListBoxTypeSingleLarge = 1, // Default
+    // CAknSettingStyleListBox for
+    // list_setting_pane and
+    // list_big_single_setting_pane
+    EGSListBoxTypeSettings,
+    // CAknDouble2LargeStyleListBox for
+    // list_double2_large_graphic_pane
+    EGSListBoxTypeDouble2Large,
+    // CAknDoubleLargeStyleListBox for
+    // list_double_large_graphic_pane
+    // Note: Only different layout than EGSListBoxTypeDouble2Large
+    EGSListBoxTypeDoubleLarge
+    };
+
+/**
+* Indexes to flags that are used for different customisation options for parent
+* plugin. The flags define for example optimization options for loading child
+* plugins.
+*/
+enum TGSOptionFlagIndexes
+    {
+    // On:  Will load child plugins when parent plugin is activated.
+    // Off: Will load child plugins on initialization of the parent plugin.
+    EGSLoadChildrenOnActivation,
+    // On:  Will delete child plugins when parent plugin is deactivated.
+    // Off: Will delete child plugins when parent plugin is destroyed.
+    EGSDeleteChildrenOnDeactivation // CURRENTLY NOT IMPLEMENTED!
+    };
+
+// FORWARD DECLARATIONS
+class CGSParentContainer;
+
+// CLASS DECLARATION
+
+/**
+* CGSParentPlugin view class. Thus is a base class for plugins owning other
+* plugins as their sub-views.
+*
+* @lib GSFramework.lib
+* @since Series60_3.1
+*/
+class CGSParentPlugin : public CGSPluginInterface,
+                        public MGSPluginLoadObserver,
+                        public MGSChildViewManager
+{
+    public: // Constructors and destructor
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C ~CGSParentPlugin();
+
+    public: // New
+
+        /**
+        * Opens the nearest localized resourcefile using aResourceLoader.
+        * aResourceLoader should be opened only once before closing it.
+        * Otherwise it will raise a panic. Therefore it is better to have
+        * multiple resource loaders. Uses KDC_RESOURCE_FILES_DIR.
+        *
+        * @param aResourceFileName Drive and name of resource file in format
+        *                          <path>:<rsc_file_name>
+        * @param aResourceLoader Resource loader for the resource. The loader
+        *                        must not be opened allready or it will raise
+        *                        a panic. It is caller's responsibility to
+        *                        close the resource loader after using the
+        *                        resource.
+        */
+        IMPORT_C void OpenLocalizedResourceFileL(
+            const TDesC& aResourceFileName,
+            RConeResourceLoader& aResourceLoader );
+
+        /**
+        * Symbian OS default constructor. Call this from sub classes.
+        *
+        * @param aViewTitleRscId    Id for the view's resource.
+        * @parem aTitleRscId        Id for the view's title resource.
+        */
+        IMPORT_C void BaseConstructL( TInt aViewRscId, TInt aTitleRscId );
+
+        /**
+        * @return UID of the upper level view which launched this view. Note
+        *         that it is not always the previous view because a view can
+        *         be activated also by returning from another view.
+        */
+        IMPORT_C virtual TUid UpperLevelViewUid();
+
+        /**
+        * Defines the type of the used listbox visualising the child plugins.
+        * Classes deriving from CGSParentContainer can override this function
+        * to define the used type of the listbox. Otherwise default value
+        * EGSListBoxTypeSingleLarge is used.
+        *
+        * @return Type of the listbox. See TGSListboxTypes for
+        *         types.
+        */
+        IMPORT_C virtual TGSListboxTypes ListBoxType();
+
+        /**
+        * Updates plugin's view. This can be used when child plugin's values
+        * are changed.
+        */
+        IMPORT_C virtual void UpdateView();
+
+        /**
+        * Defines custom options for parent plugin. Use TGSOptionFlagIndexes to
+        * enable a combination of bit flags.
+        *
+        * @param aOptionFlags Option combination created by combining binary
+        *        option flags.
+        */
+        IMPORT_C virtual void SetOptionFlags( TBitFlags& aOptionFlags );
+
+        /**
+        * Gets currently used option flags.
+        *
+        * @return Binary option flags used by this plugin.
+        */
+        IMPORT_C virtual const TBitFlags& OptionFlags() const;
+
+        /**
+        * Provides help context. This should be implemented by CGSParentPlugin
+        * sub class in case help is needed. Normally this is defined in
+        * CCoeControl derived class but since all parent plugin implementations
+        * have only CGSParentContainer class as the only CCoeControl derived
+        * class, and need still their own unique help contexts, this function
+        * is needed in view level class.
+        */
+        IMPORT_C virtual void GetHelpContext( TCoeHelpContext& aContext );
+
+        /**
+        * @return Plugin which is selected in the lbx or NULL if no plugins
+        *         or iContainer exist.
+        */
+        IMPORT_C CGSPluginInterface* SelectedPlugin();
+
+        /**
+        * Attempts to change child plugin load priority on next RunL cycle.
+        * Use this if parent needs to change plugin loader priority. Normally
+        * when parent plugin view is opened, it is advisable to increase loader
+        * priority to get child plugins loaded faster.
+        *
+        * @param aPriority Desired priority.
+        */
+        void RequestPriority( CActive::TPriority aPriority );
+
+    public: // From CGSPluginInterface
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void ResetSelectedItemIndex();
+
+    public: // From MGSPluginLoadObserver
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void HandlePluginLoaded( KGSPluginLoaderStatus aStatus );
+
+    public: //New
+
+        /**
+        * Checks if the MSK label needs to be adjusted.
+        */
+        void CheckMiddleSoftkeyLabelL();
+
+        /**
+        * Adds given resource text as MSK to CBA. Use either this or
+        * SetMiddleSoftKeyLabelTextL in in case text is used deirectly instead
+        * of resource.
+        *
+        * @param aResourceId middle softkey label.
+        * @param aCommandId command that should be performed when MSK
+        *        is pressed.
+        * @since S60 v3.1
+        */
+        void SetMiddleSoftKeyLabelL( const TInt aResourceId, const TInt aCommandId );
+
+        /**
+        * Adds given text as MSK to CBA.
+        *
+        * @param aMskLabel middle softkey label.
+        * @param aCommandId command that should be performed when MSK
+        *        is pressed.
+        * @since S60 v3.1
+        */
+        void SetMiddleSoftKeyLabelTextL( const TPtr aMskLabel, const TInt aCommandId );
+
+    public: // From MGSChildViewManager
+
+        IMPORT_C void TransferDynamicPluginL( CGSPluginInterface* aPlugin );
+
+    protected: // From CAknView
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void DoActivateL( const TVwsViewId& aPrevViewId,
+                                   TUid aCustomMessageId,
+                                   const TDesC8& aCustomMessage );
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void DoDeactivate();
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void HandleCommandL( TInt aCommand );
+
+        /**
+        * See base class.
+        */
+        IMPORT_C CGSParentPlugin();
+
+    protected: // From MEikMenuObserver
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void DynInitMenuPaneL( TInt aResourceId,
+                                        CEikMenuPane* aMenuPane );
+
+    private: // New
+
+        /**
+        * Constructs container for this view.
+        */
+        void ConstructContainerL();
+
+        /**
+        * Remove command from MSK.
+        * @param aMskCommandId ID of the command to be removed.
+        */
+        void RemoveCommandFromMSK( TInt aMskCommandId );
+
+        /**
+         * Used in lazy loading. Starts loading the plugins.
+         */
+        void StartAsyncPluginLoadL();
+
+    protected: // Data
+
+        // Previous view UID.
+        TVwsViewId iPrevViewId;
+
+    private: // Data
+
+        // Application UI.
+        CAknViewAppUi* iAppUi;
+
+        // Owned container.
+        CGSParentContainer* iContainer;
+
+        // GS plug-ins owned by this view.
+        // CGSPluginLoader defines the ordering of plugins.
+        CArrayPtrFlat<CGSPluginInterface>* iPluginArray;
+
+        // Asynchronous loader for the GS plug-ins.
+        CGSPluginLoader* iPluginLoader;
+
+        // Resource loader.
+        RConeResourceLoader iResourceLoader;
+
+        // Resource id for the title.
+        TInt iTitleRscId;
+
+        // UID of the selected plugin in the container's lbx. Uid is used
+        // instead of simple index because it is unambiguous whereas index
+        // could refer to wrong plugin in case plugin order or count is
+        // changed.
+        TUid iSelectedPluginUid;
+
+        // Combination of binary flags that can be set to alter parent plugin
+        // behaviour.
+        TBitFlags iOptionFlags;
+
+        // This stores the desired MSK command ID.
+        TInt iMskCommandId;
+        
+        // UID of the top plugin in the container's lbx. Uid is used
+        // instead of simple index because it is unambiguous whereas index
+        // could refer to wrong plugin in case plugin order or count is
+        // changed.
+        TUid iTopPluginUid;
+        
+        //keep the exact position of the listbox including current item index,
+        //iVerticalOffset and  TopItemindex
+        RArray<TInt> iPosition;
+        
+        //record the screen mode, portrait/landscape
+        TBool iScreenMode;
+};
+
+
+#endif // GSPARENTPLUGIN_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSPluginLoader.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,368 @@
+/*
+* Copyright (c) 2005-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:   Class definition for CGSPluginLoader
+*
+*/
+
+
+
+#ifndef  GSPLUGINLOADER_H
+#define  GSPLUGINLOADER_H
+
+// INCLUDES
+#include    <e32base.h>
+#include    <ecom/implementationinformation.h>
+
+// CONSTANTS
+
+// Value for a to b comparison result when logically a == b.
+const TInt KGSComparisonEqual     = 0;
+
+// Value for a to b comparison result when logically a < b.
+const TInt KGSComparisonBefore    = -1;
+
+// Value for a to b comparison result when logically a > b.
+const TInt KGSComparisonAfter     = 1;
+
+// CLASS DEFINITIONS
+class CGSPluginInterface;
+class MGSPluginLoadObserver;
+class CAknViewAppUi;
+class REComSession;
+class CAknColumnListBox;
+class CAknInfoPopupNoteController;
+class CGSBaseDocument;
+class MGSWatchDog;
+
+/**
+* CGSPluginLoader. Mechanism used to load plugins asynchronously. Uses
+* MGSPluginLoadObserver as a callback.
+*
+* @lib GSFramework.lib
+* @since Series60_30.1
+*/
+class CGSPluginLoader : public CActive
+    {
+    public:  // Constructor and destructor
+
+        /**
+        * Two-phased constructor.
+        *
+        * @param aAppUi Pointer to application UI. Does not take ownership.
+        */
+        IMPORT_C static CGSPluginLoader* NewL( CAknViewAppUi* aAppUi );
+
+        /**
+        * Destructor
+        */
+        IMPORT_C ~CGSPluginLoader();
+
+    private: // Internal construction
+
+        /**
+        * Default C++ contructor
+        */
+        CGSPluginLoader();
+
+        /**
+        * Symbian OS default constructor
+        * @return void
+        */
+        void ConstructL( CAknViewAppUi* aAppUi );
+
+    public: // API
+
+        /**
+        * Starts loading GS plug-ins asynchronously. Will call
+        * MGSPluginLoadObserver::HandlePluginLoaded() each time a plug-in is
+        * loaded and when all plugins are loaded.
+        *
+        * CGSPluginLoader transfers the ownership of each loaded plugin view to
+        * CAknViewAppUi. It is client's responsibility to remove the views from
+        * CAknViewAppUi and delete the plugins if necessary.
+        *
+        * @param aInterfaceUid Uid ofthe interfaces to be loaded.
+        * @param aParentUid Uid of the parent. Only children of this parent
+        *        will be loaded.
+        * @param aPluginArray An array for the loaded GS plug-ins.
+        *        CGSPluginLoader does not take the ownership of this array.
+        */
+        IMPORT_C void LoadAsyncL(
+            TUid aInterfaceUid,
+            TUid aParentUid,
+            CArrayPtrFlat<CGSPluginInterface>* aPluginArray );
+
+        /**
+        * Load a specific plugin instance synchronously.
+        *
+        * @param aInterfaceUid Uid ofthe interfaces to be loaded.
+        * @param aImplementationUid Uid of the implementation to load
+        */
+        CGSPluginInterface& LoadSyncL( TUid aInterfaceUid, TUid aImplementationUid );
+
+        /**
+        * Sets observer for this loader. Only one observer per loader in one
+        * time is possible.
+        */
+        IMPORT_C void SetObserver(MGSPluginLoadObserver* aObserver);
+
+        /**
+        * Aborts asynchronous loading of the GS plug-ins.
+        */
+        IMPORT_C void AbortAsyncLoad();
+
+        /**
+        * Sorts the plugin array.
+        *
+        * Sorting criterias:
+        *
+        * 1. Order number if provider category is Internal.
+        * 2. Provider category. Precedence as follows:
+        *       1. KGSPluginProviderInternal
+        *       2. EGSPluginProviderOEM
+        *       3. EGSPluginProviderOperator
+        *       4. EGSPluginProvider3rdParty
+        * 3. Alphabetical
+        *
+        * @param aPlugins The array which will be sorted.
+        */
+        IMPORT_C void SortPluginsL( CArrayPtrFlat<CGSPluginInterface>* aPlugins );
+
+
+        /**
+        * Attempts to change CActive priority on next RunL cycle. Use this if
+        * needed to change plugin loader priority. Normally when parent plugin
+        * view is opened, it is advisable to increase loader priority to get
+        * child plugins loaded faster.
+        *
+        * @param aPriority Desired priority.
+        */
+        IMPORT_C void RequestPriority( CActive::TPriority aPriority );
+
+    private: // Internal methods
+
+        /**
+        * Starts loading next plugin.
+        */
+        void LoadNextPluginL();
+
+        /**
+        * Creates a plugin instance from given UID. Ownership is transferred.
+        */
+        CGSPluginInterface& CreatePluginInstanceL(
+                const CImplementationInformation& aImpInfo );
+
+        /**
+        * Notifies MGSPluginLoadObserver.
+        */
+        void NotifyProgress();
+
+        /**
+        * Notifies MGSPluginLoadObserver.
+        */
+        void NotifyFinished();
+
+        /**
+        * Wait for the next round of CActive execution.
+        */
+        void CompleteOwnRequest();
+
+        // Insertion function used by sorting:
+
+        /**
+        * Inserts plugin in the correct position in the array using sorting
+        * criterias. Assumes aPlugins is ordered.
+        *
+        * @param aPlugin The plugin to be inserted.
+        * @param aPlugins Array in which the plugin is inserted into the
+        *        corresponding location.
+        */
+        void InsertPluginInOrderL(
+            CGSPluginInterface* aPlugin,
+            CArrayPtrFlat<CGSPluginInterface>* aPlugins );
+
+        // Comparison functions:
+
+        /**
+        * Compares plugins according to comparison criterias.
+        *
+        * Note: GS internal comparison constants such as KGSComparisonEqual are
+        * different from the ones outputted by this function. This is because
+        * this function is also usable by RArray sort -functionality but BC
+        * cannot be broken in GS.
+        *
+        * @return Negative value: If aFirst before aSecond.
+        *                      0: If equal.
+        *         Positive value: If aSecond before aFirst.
+        */
+        static TInt Compare( const CGSPluginInterface& aFirst,
+                             const CGSPluginInterface& aSecond );
+
+        /**
+        * Precedence is as follows:
+        * 1. KGSPluginProviderInternal
+        * 2. EGSPluginProviderOEM
+        * 3. EGSPluginProviderOperator
+        * 4. EGSPluginProvider3rdParty
+        *
+        * @return   KGSComparisonEqual  = equal categories
+        *           KGSComparisonBefore = aFirst is before aSecond
+        *           KGSComparisonAfter  = aFirst is after aSecond
+        */
+        static TInt CompareCategory(
+                const CGSPluginInterface& aFirst,
+                const CGSPluginInterface& aSecond );
+        /**
+        *
+        * @return   KGSComparisonEqual  = equal captions
+        *           KGSComparisonBefore = aFirst is before aSecond
+        *           KGSComparisonAfter  = aFirst is after aSecond
+        */
+        static TInt CompareCaption(
+                const CGSPluginInterface& aFirst,
+                const CGSPluginInterface& aSecond );
+        /**
+        *
+        * @return   KGSComparisonEqual  = equal indexes
+        *           KGSComparisonBefore = aFirst is before aSecond
+        *           KGSComparisonAfter  = aFirst is after aSecond
+        */
+        static TInt CompareIndex(
+                const CGSPluginInterface& aFirst,
+                const CGSPluginInterface& aSecond );
+
+    private: // Utility methods
+
+        /**
+        * Parses descriptor to UID.
+        */
+        static TInt ParseToUid( const TDesC8& aSource, TUid& aTarget );
+
+        /**
+        * Parsers plugin's order number
+        */
+        static TInt ParseOrderNumber( const TDesC8& aSource, TInt& aOrderNumber );
+
+        /**
+        * Print debug information.
+        */
+        static void PrintInfoDebugL( const CImplementationInformation& aInfo,
+                                    TInt aIterator,
+                                    TInt aPluginCount );
+        /**
+         * Print ordering debug data.
+         */
+        void CGSPluginLoader::PrintOrderTracesL(
+                CArrayPtrFlat<CGSPluginInterface>* aPlugins );
+
+        /**
+         * Display loading error popup message.
+         */
+        void DisplayErrorPopupL( TInt aError,
+                                 const CImplementationInformation* aInfo );
+
+    private: // From CActive
+
+        /**
+        * See base class.
+        */
+        void RunL();
+
+        /**
+        * See base class.
+        */
+        TInt RunError( TInt aError );
+
+        /**
+        * See base class.
+        */
+        void DoCancel();
+
+    private: // Data
+
+
+        // Pluginloader goes through this array and loads the plugins into
+        // iPluginArray if they fulfill the criterias.
+        RImplInfoPtrArray iImplInfoArray;
+
+        // Used as an iterator to maintain location in iImplInfoArray.
+        TInt iImplInfoArrayIterator;
+
+        // Array of loaded plugins.Plugins are owned by iAppUi. Only the array
+        // pointers are owned by this class and therefore only reset array.
+        CArrayPtrFlat<CGSPluginInterface>* iPluginArray;
+
+        // UID for plugin parent.
+        TUid iParentUid;
+
+        // Pointer to app UI. Not owned.
+        CAknViewAppUi* iAppUi;
+
+        // Pointer to observer. Not owned.
+        MGSPluginLoadObserver* iObserver;
+
+        // Number of RunL calls.
+        TInt iRunLDebugCount;
+
+        // For debugging: shows a note in case of a crashing plugin
+        CAknInfoPopupNoteController* iErrorPopup;
+
+        // Reference to GS application owned watchdog. Not onwed.
+        MGSWatchDog* iWatchDog;
+
+        // Reference to document. Not owned.
+        CGSBaseDocument* iDocument;
+
+        // Desired oactive object priority for loading child plugins.
+        CActive::TPriority iRequestedPriority;
+    };
+
+
+/**
+* Interface for GSPluginLoader observer. MGSPluginLoadObserver gets
+* notifications when plugins are loaded.
+*
+* @lib GSFramework.lib
+* @since Series60_30.1
+*/
+class MGSPluginLoadObserver
+    {
+    public: // Enums
+        enum KGSPluginLoaderStatus
+            {
+            // One plugin loaded successfully, continue to next.
+            EGSSuccess,
+            // Loading one plugin failed, contiue to next.
+            EGSFail,
+            // Client called AbortAsyncLoad(), finished loading.
+            EGSAborted,
+            // All plugins loaded successfully, finished loading.
+            EGSFinished,
+            // Severe error with loader, finished loading.
+            EGSError
+            };
+
+    public: // New
+
+        /**
+        * CGSPluginLoader calls this function when each plug-in is loaded or
+        * loading is finished..
+        */
+        IMPORT_C virtual void HandlePluginLoaded(
+            KGSPluginLoaderStatus aStatus ) = 0;
+    };
+
+
+#endif // GSPLUGINLOADER_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSPrivatePluginProviderIds.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2005 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:   Ids for private plug-in providers.
+*
+*/
+
+
+
+#ifndef GSPRIVATEPROVIDERIDS_H
+#define GSPRIVATEPROVIDERIDS_H
+
+// CONSTANTS
+
+/**
+* Private id used for S60 internally provided GS plug-ins. This must not be 
+* disclosed to other parties. Using this id allows the plugin to be handled 
+* with more rights than other plugins:
+*   - Inserted before other plugins in listboxes.
+*   - Can define their order in the listbox.
+*   - Plug-in can belong also to other views than applications-view.
+*
+*/
+const TInt KGSPluginProviderInternal = 87329234;
+
+
+#endif // GSPRIVATEPROVIDERIDS_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSPubSubsListener.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2005 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:   Listener for Publish and subscribe data.
+*
+*/
+
+
+
+#ifndef GSPUBSUBSGSETTINGS_H
+#define GSPUBSUBSGSETTINGS_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include <e32property.h>
+
+// FORWARD DECLARATIONS
+class MGSSettingPSObserver;
+
+// CLASS DECLARATION
+
+/**
+*  RProperty poller.
+*
+*  @lib gs.lib
+*  @since Series 60 3.0
+*/
+NONSHARABLE_CLASS( CGSPubSubsListener ) : public CActive
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * @param aUid the Uid to use
+        * @param aKey item's key
+        * @param aObserver callback interface for notification
+        * @return instance of CVtEngPubSubsListener
+        */
+        IMPORT_C static CGSPubSubsListener* NewL( const TUid aUid, 
+            const TInt aKey, MGSSettingPSObserver* aObserver );
+        
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CGSPubSubsListener();
+        
+    public: // New functions.
+
+        /**
+        * Gets integer value from P & S.
+        * @param aVal a value in return
+        * @return error code
+        */       
+        IMPORT_C TInt Get( TInt& aVal );
+
+        /**
+        * Gets 8 bit string value from P&S.
+        * @param aVal a value in return
+        * @return error code
+        */
+        IMPORT_C TInt Get( TDes8& aVal );
+        
+        /**
+        * Gets 16 bit descriptor value from P&S.
+        * @param aVal a value in return
+        * @return error code
+        */
+        IMPORT_C TInt Get( TDes16& aVal );
+        
+    private: // From CActive.
+
+        /** @see CActive::RunL */
+        virtual void RunL();
+
+        /** @see CActive::Cancel */
+        virtual void DoCancel();
+
+        /** @see CActive::RunError */
+        virtual TInt RunError( TInt aError );
+
+        /**
+        * Starts the listening (RunL).
+        */
+        void StartListening();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        * @param aUid the Uid to use
+        * @param aKey item's key
+        * @param aObserver callback interface for notification
+        */
+        CGSPubSubsListener( const TUid aUid,  TInt aKey, 
+            MGSSettingPSObserver* aObserver );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+    
+    private:    // Data
+    
+        // UID of the monitored item.
+        TUid        iUid;
+        
+        // ID of the monitored item.
+        TInt        iId;
+        
+        // Property to subscribe to.
+        RProperty   iProperty;
+        
+        // The notification interface.
+        MGSSettingPSObserver* iCallback;
+    };
+
+#endif // GSPUBSUBSGSETTINGS_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSSettingId.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2005 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:   All the setting IDs are declared here
+*
+*/
+
+
+#ifndef GSSETTINGID_H
+#define GSSETTINGID_H
+
+
+// CONSTANTS
+
+// buffer size constants
+const TInt KGSBufSize128 = 128;
+
+const TInt KGSMapSize = 8;
+
+// connection packet data
+const TInt KGSSettIdV42Comp = 1;
+
+//    accessory display
+const TInt KGSSettIdAccIU = 0;
+
+
+enum {
+    KGSHeadsetDefProfile,
+    KGSLoopsetDefProfile,
+    KGSBTAudioDefProfile,
+    KGSTTYDefProfile
+    };
+
+// call display
+enum {
+    KGSSettIdOwnNumberSending,
+    KGSSettIdCallWaiting,
+    KGSSettIdCallCompletionWhenBusy,   
+    KGSSettIdSummaryAfterCall,
+    KGSSettIdPhoneLineUsed,
+    KGSSettIdPhoneLineBlocking,
+    KGSSettIdSoftRejectText
+    };
+
+#endif // GSSETTINGID_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSTabHelper.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,170 @@
+/*
+* Copyright (c) 2005 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:   Utility class for creating tab groups.
+*
+*/
+
+
+#ifndef GSTABHELPER_H
+#define GSTABHELPER_H
+
+#include "gsplugininterface.h"
+#include "gstabbedviewowner.h"
+
+#include <AknTabObserver.h>
+#include <e32base.h>
+#include <e32cmn.h>
+
+
+// Forward declarations
+class CAknNavigationControlContainer;
+class CAknNavigationDecorator;
+class CAknTabGroup;
+class MGSTabbedView;
+
+
+/**
+* CGSTabHelper is used to create dynamic tabs from either
+*   - CGSPluginInterface* array (plugins)
+*   - MGSTabbedView* interface Array (local views owned by plugin).
+*
+* How to use:
+*
+* 1. Call CreateTabGroupL() from the plugin's/view's DoActivate(). Providing an
+*    array of all the plugins/views which should be in the tab group including
+*    the plugin/view itself.
+*
+* 2. Call RemoveTabGroup() from the plugin's/view's DoDeactivate().
+*
+* 3. It is recommended to use CGSTabHelper* as an member variable owned by the
+*    plugin/view class.
+*
+* @lib GSFramework.lib
+* @since Series60_3.1
+*/
+class CGSTabHelper : public CBase, public MAknTabObserver
+    {
+    public: // Constructors & destructors
+
+        /**
+        * Symbian OS two-phased constructor
+        * @return
+        */
+        IMPORT_C static CGSTabHelper* NewL();
+
+        /**
+        * Symbian OS two-phased constructor
+        * @return
+        */
+        IMPORT_C static CGSTabHelper* NewLC();
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C ~CGSTabHelper();
+
+    public: // New
+
+        /**
+        * This function is for views implementing MGSTabbedViewOwner. Such may
+        * be needed in case view needs to update its selected item according to
+        * tab selection.
+        *
+        * Creates and adds a tab group to navipane. The number of visible tabs
+        * is 4 unless there are less tabbed views in which case the number of
+        * tabs equal the number of tabbed views.
+        *
+        * @param aActiveViewUid UID of the view whose tab should be activated
+        *                       when the tab group is added to the navi pane.
+        * @param aTabOwner Reference to the owner of the tabbed views.
+        */
+        IMPORT_C void CreateTabGroupL( TUid aActiveViewUid,
+                                       MGSTabbedViewOwner* aTabOwner );
+
+        /**
+        * This function is for plugin implementation.
+        *
+        * Creates and adds a tab group to navipane. The number of visible tabs
+        * is 4 unless there are less tabbed views in which case the number of
+        * tabs equal the number of tabbed views.
+        *
+        * @param aActiveViewUid UID of the view whose tab should be activated
+        *                       when the tab group is added to the navi pane.
+        * @param aTabbedViews References to the views which belong to the tab
+        *                     group.
+        */
+        IMPORT_C void CreateTabGroupL(
+            TUid aActiveViewUid,
+            CArrayPtrFlat<CGSPluginInterface>* aTabbedViews );
+
+       /**
+        * This function is for local view implementation.
+        *
+        * Creates and adds a tab group to navipane. The number of visible tabs
+        * is 4 unless there are less tabbed views in which case the number of
+        * tabs equal the number of tabbed views.
+        *
+        * @param aActiveViewUid UID of the view whose tab should be activated
+        *                       when the tab group is added to the navi pane.
+        * @param aTabbedViews References to the views which belong to the tab
+        *                     group.
+        */
+        IMPORT_C void CreateTabGroupL(
+            TUid aActiveViewUid,
+            CArrayPtrFlat<MGSTabbedView>* aTabbedViews );
+
+        /**
+        * Removes the topmost tab group from navi pane.
+        */
+        IMPORT_C void RemoveTabGroup();
+
+    public: // From MAknTabObserver
+
+        /**
+        * See base class.
+        */
+        IMPORT_C void TabChangedL( TInt aIndex );
+
+    protected: // New
+
+        /**
+        * C++ default constructor.
+        */
+        CGSTabHelper();
+
+        /**
+        * Symbian OS default constructor.
+        */
+        void ConstructL();
+
+    private: // Data
+
+        // Container for navigation control object.
+        CAknNavigationControlContainer* iNaviContainer;
+
+        // Navigation decorator object. Created and owned.
+        CAknNavigationDecorator* iNaviDecorator;
+
+        // Tab group.
+        CAknTabGroup* iTabGroup;
+
+        // Pointer to App UI. Not owned.
+        CAknViewAppUi* iAppUi;
+
+        // Pointer to owner (parent) of the tabbed views.
+        MGSTabbedViewOwner* iTabOwner;
+    };
+
+#endif // GSTABHELPER_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSTabbedView.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2005 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:  
+*        Header file for MGSTabbedView class.
+*
+*/
+
+
+#ifndef GSTABBEDVIEW_H
+#define GSTABBEDVIEW_H
+
+#include <e32cmn.h>
+
+class CGulIcon;
+
+/**
+* Interface to be used when creating tab groups. Used by CGSTabHelper.
+*
+*/
+class MGSTabbedView
+    {
+    public: // New
+        
+        /**
+        * Creates new icon for tab. Ownership is transferred to client.
+        */
+        virtual CGulIcon* CreateTabIconL() = 0;
+        
+        /**
+        * UID of the tab.
+        */
+        virtual TUid Id() const = 0;
+    
+    };
+    
+#endif // GSTABBEDVIEW_H
+//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GSTabbedViewOwner.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2005 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:   Header file for MGSTabbedViewOwner class.
+*
+*/
+
+
+#ifndef GSTABBEDVIEWOWNER_H
+#define GSTABBEDVIEWOWNER_H
+
+#include <e32base.h>
+
+class CGSPluginInterface;
+
+/**
+* Interface for MGSTabbedView owner class. Views owning tabbed sub-views
+* implement this.
+*/
+class MGSTabbedViewOwner
+    {
+    public:
+        /**
+        * @return Reference to owned tabbed views which should be included in
+        *         the sub-view's tab group.
+        */
+        virtual CArrayPtrFlat<CGSPluginInterface>* TabbedViews() = 0;
+
+        /**
+        * Parent view implements this to handle switching tabs. This is needed
+        * in case parent view needs to update selected item index according to
+        * tab selection.
+        *
+        * @param selectedTabUid UID of the selected tab item.
+        */
+        virtual void TabChangedL( TUid selectedTabUid ) = 0;
+    };
+
+#endif // GSTABBEDVIEWOWNER_H
+//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/GeneralSettingsVariant.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2003-2005 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:  
+*
+*/
+
+
+
+#ifndef GENERALSETTINGSVARIANT_HRH
+#define GENERALSETTINGSVARIANT_HRH
+
+/** 
+* EGSConfigOTAAutoUpdate is on/off setting for Automatic update of service.
+* When it is set on in TGeneralSettingsLocalVariantFlags OTA is enabled.
+*/
+#define EGSConfigOTAAutoUpdate 0x00000001
+
+/** 
+* EGSConfigAutoRedial is on/off setting for Automatic redial.
+* When it is set on in TGeneralSettingsLocalVariantFlags 
+* automatic redial is enabled.
+*/
+#define EGSConfigAutoRedial 0x00000002
+
+/** 
+* EGSConfig2G3GNetworkIcon is on/off setting for 2G/3G network icon display.
+* When it is set ON in KGeneralSettingsLVFlags 
+* display of 2G/3G icon in network selection list is enabled.
+* Used in GSM/WCDMA builds ONLY.
+*/
+#define EGSConfig2G3GNetworkIcon 0x00000004
+
+/**
+* EGSConfigPowerSaveLed is on/off setting for Power Save LED mode setting.
+* When it is set ON in KGeneralSettingsLVFlags
+* Power Save LED mode item is displayed in the Display settings.
+*/
+#define EGSConfigPowerSaveLed 0x00000008
+
+/**
+* EGSConfigRestrictedSendCallerId is on/off setting for Restricted Send 
+* Caller ID setting.
+* When it is set ON in KGeneralSettingsLVFlags
+* Send Caller ID "Set by network" mode item is hidden in the Call settings.
+*/
+#define EGSConfigRestrictedSendCallerId 0x00000010
+
+/**
+* EGSConfigSecureSendCallerId is on/off setting for Secure Send Caller ID 
+* setting.
+* When it is set ON in KGeneralSettingsLVFlags
+* Send Caller ID mode item can only be changed in the Call settings
+* if a valid security code is entered.
+*/
+#define EGSConfigSecureSendCallerId 0x00000020
+
+/**
+* EGSConfigNoAutoToAutoNetworkSearch is on/off setting for Network search when 
+* the network selection setting is Automatic and the user selects Automatic
+* again. This contradicts the Telefonica request that this should be disabled.
+* 
+* If this value is set, auto-to-auto net search is disabled == Telefonica.
+*
+* Default: Automatic to Automatic Network search is enabled = 0.
+*/
+#define EGSConfigNoAutoToAutoNetworkSearch 0x00000040
+
+/**
+* EGSConfigOperatorIdle is on/off setting for enabling Operator Idle when 
+* this is been supported by the operator. 
+* If this value is set, The user can use the Operator Idle
+* instead of Active Idle.
+* This feature is Operator Specific
+*/
+#define EGSConfigOperatorIdle 0x00000080
+
+
+#endif // GENERALSETTINGSVARIANT_HRH
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/MGSSettingPSObserver.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2005 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:   Observer interface for indicating publish and subscribe 
+*				         setting changes
+*
+*/
+
+
+
+
+#ifndef MGSSETTINGPSOBSERVER_H
+#define MGSSETTINGPSOBSERVER_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+*  Observer interface for indicating setting changes
+*
+*  @lib GSTelPlugin
+*  @since 3.1
+*/
+class MGSSettingPSObserver
+    {
+    public:  // New functions
+
+        /**
+        * Handler for setting changed event
+        * @param aUid uid of setting        
+        * @param aId id of setting
+        * @param aStatus status of completed AO operation
+        */
+        virtual void HandleNotifyPSL( const TUid aUid, const TInt& aKey, 
+                                      const TRequestStatus& aStatus ) = 0;
+    };
+
+#endif // MGSSETTINGPSOBSERVER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/inc/MGSWatchDog.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,96 @@
+/*
+* 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:  
+*
+*/
+
+
+
+#ifndef GSWATCHDOG_INTERFACE_H
+#define GSWATCHDOG_INTERFACE_H
+
+// System includes
+#include <e32base.h>
+
+// CONSTANTS
+
+// CLASS DECLARATION
+
+/**
+*  MGSWatchDog is responsible for quarantining plugins and updating blacklist
+*  for crashing GS plugins. This is the class responsible for keeping GS
+*  application functional even if some plugin to panics all the time.
+*
+*  This is the interface for GSWatchDog. Client has no need to know the actual
+*  implementation as it is owned by GS application.
+*
+*  @since Series60_3.2
+*/
+class MGSWatchDog
+    {
+    public: // New
+
+        /**
+        * Adds plugin to quarantine. In case GS crashes, quarantined plugin
+        * will be blacklisted so it is not loaded in next GS run. Same plugin
+        * can be quarantined multiple times or even have several uid instances
+        * in quarantine if needed as long as all these are removed
+        * correspondingly.
+        *
+        * NOTE: Plugin must ALWAYS be removed from quarantine after plugin's
+        * function execution.
+        * 1. QuarantineL().
+        * 2. Call quarantined plugin function.
+        * 3. RemoveFromQuarantineL().
+        *
+        * @param aPluginUid uid of the quarantined plugin.
+        */
+        virtual void QuarantineL( TUid aPluginUid ) = 0;
+
+        /**
+        * Removes plugin from quarantine. In case plugin is not removed from
+        * quarantine before GS exits, the plugin will be blacklisted during
+        * next GS startup.
+        *
+        * @param aPluginUid uid of the plugin to be removed from quarantine.
+        */
+        virtual void RemoveFromQuarantineL( TUid aPluginUid ) = 0;
+
+        /**
+        * @return ETrue if GS exited cleanly last time.
+        *         EFalse if GS crashed during last execution.
+        */
+        virtual TBool WasCleanExitL() = 0;
+
+        /**
+        * This must be called in all the cases GS exits normally. If GS panics,
+        * this will not be called resulting in banning of all quarantined
+        * plugins.Increments iRunsAfterCrash counter for blacklisted plugins.
+        * Sets iGSAppRunning to EFalse.
+        */
+        virtual void ReportCleanExitL() = 0;
+
+        /**
+        * Checks if plugin is in blacklist. This can be used to determine if
+        * plugin should be loaded.
+        *
+        * @return ETrue in case plugin is in blacklist and should not be loaded.
+        *         EFalse in case plugin should not be loaded
+        */
+        virtual TBool IsInBlackList( TUid aPluginUid ) = 0;
+
+    };
+
+#endif // GSWATCHDOG_INTERFACE_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/loc/gs.loc	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2005 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:   Common localization strings for General Settings
+*
+*/
+
+
+
+//  LOCALISATION STRINGS
+
+// **OPTIONS MENU
+
+//d:Command in Options list
+//d:Opens the highlighted item
+//l:list_single_pane_t1_cp2
+//w:
+//r: 3.1
+//
+#define qtn_set_options_open "Open"
+
+//d:Command in Options list
+//d:Opens value changing dialog of highlighted item
+//l:list_single_pane_t1_cp2
+//w:
+//r: 3.1
+//
+#define qtn_set_options_change "Change"
+
+// **IMAGE LOADING WAIT NOTE
+
+//d:Text for image loading wait note
+//d:Shown when welcome note image or background image has been selected from image list
+//l:popup_note_wait_window
+//w:
+//r:3.1
+//
+#define qtn_set_loading_image "Loading the image..."
+
+
+// **IMAGE ERROR INFORMATION NOTES
+
+//d:Text for image corrupted information note
+//d:Shown when selected background or welcome note image is corrupted or in wrong format.
+//l:popup_note_window
+//w:
+//r:3.1
+//
+#define qtn_set_image_format_wrong "Image is corrupted or in wrong format. Can not be selected."
+
+//d:Text for image too large information note
+//d:Shown when selected background or welcome note image is too large to be opened 
+//  in memory
+//l:popup_note_window
+//w:
+//r:3.1
+//
+#define qtn_set_image_too_large "Image size is too large. Image can not be selected."
+
+
+// End of File
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/settings_framework_api.metaxml	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="12d79fdf49c0dc289e8341bfc1ae458d" dataversion="2.0">
+  <name>Settings Framework API</name>
+  <description>Loads device settings plug-ins. Provides extensions &amp; utilities for plugins.</description>
+  <type>c++</type>
+  <collection>gssettingsuis</collection>
+  <libs>
+    <lib name="GSFramework.lib" />
+  </libs>
+  <release category="platform"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/tsrc/group/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,30 @@
+/*
+* 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 "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: 
+*
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+../../../../gssettingsuis/Gs/tsrc/public/basic/group/MT_GSFramework.mmp
+gnumakefile settings_framework_api.mk
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/gsprofilesrv_plat-settings_framework_api/tsrc/group/settings_framework_api.mk	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,41 @@
+#
+# 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 "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: 
+#
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+	del \epoc32\RELEASE\winscw\udeb\Z\sys\bin\MT_GSFramework.dll /f
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES : do_nothing
+
+FINAL :
+	echo COPYING
+	copy \epoc32\RELEASE\winscw\udeb\MT_GSFramework.dll \epoc32\RELEASE\winscw\udeb\Z\sys\bin /y
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/keylockpolicyapi.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,169 @@
+/*
+* 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:  Keylock policy component offers a configuration support for keyguard
+*
+*/
+
+
+#ifndef ___CKEYLOCKPOLICYAPI__
+#define ___CKEYLOCKPOLICYAPI__
+
+#include <w32std.h>
+#include <e32base.h>
+
+/**
+ * Keylock policy component supports three policy types:
+ *
+ * EPolicyActivateKeyguard keys used for keyguard locking
+ * EPolicyDeactivateKeyguard keys used for keyguard unlocking
+ * EPolicyDevicelockQuery keys used for showing devicelock query
+ */
+enum TLockPolicyType
+	{
+	EPolicyActivateKeyguard = 1,
+	EPolicyDeactivateKeyguard,
+	EPolicyDevicelockQuery,
+	};
+
+// FORWARD DECLARATIONS
+class CKeyLockPolicyApiImpl;
+
+/**
+ *  CKeyLockPolicyApi. Trough CKeyLockPolicyApi users can
+ *
+ *  @lib keylockpolicy.lib
+ *  @since 3.2
+ */
+class CKeyLockPolicyApi : public CBase
+	{
+public:
+
+	/**
+	 * Use this to create keylock policy
+	 * @param TLockPolicyType aType the policy used
+	 */
+	IMPORT_C static CKeyLockPolicyApi* NewL( TLockPolicyType aType );
+
+	/**
+	 * Destructor.
+	 */
+	IMPORT_C ~CKeyLockPolicyApi();
+
+	/**
+	 * If no policy has been defined for the type it cannot be used.
+	 * @return ETrue if has succesfully loaded policy
+	 */
+	IMPORT_C TBool HasConfiguration();
+
+	/**
+	 * Activates support for keyguard feature so  the phone keys cannot
+	 * be locked with keyguard. Does not affect the devicelock.
+	 * @return standard Symbian error code
+	 */
+	IMPORT_C TInt EnableKeyguardFeature();
+
+	/**
+	 * Disables support for keyguard feature so the phone keys cannot
+	 * be locked with keyguard. Does not affect the devicelock.
+	 * @return standard Symbian error code
+	 */
+	IMPORT_C TInt DisableKeyguardFeature();
+
+	/**
+	 * Whether keyguard feature is currently enabled or disabled.
+	 * @return ETrue if keyguard can be locked.
+	 */
+	IMPORT_C TBool static KeyguardAllowed();
+
+	/**
+	 * Adds a key combination for the policy type defined in the construction.
+	 *
+	 * @param TUint scan code for primary key
+	 * @param TUint scan code for secondary key
+	 * @return standard Symbian error code
+	 */
+	IMPORT_C TInt AddKeyCombination(TUint32 aPrimaryKey, TUint32 aSecondaryKey);
+
+	/**
+	 * Removes a key combination for the policy type defined in the construction.
+	 *
+	 * @param TUint scan code for primary key
+	 * @param TUint scan code for secondary key
+	 * @return standard Symbian error code
+	 */
+	IMPORT_C TInt RemoveKeyCombination(TUint32 aPrimaryKey, TUint32 aSecondaryKey);
+
+	/**
+	 * Retrieve a key combination on the given index.
+	 *
+	 * @param TInt aIndex index on the list that stores key combinations
+	 * @param TUint key code for primary key
+	 * @param TUint key code for secondary key
+	 * @return standard Symbian error code
+	 */
+	IMPORT_C TInt GetKeyCombination(TInt aIndex, TUint32 &aPrimaryKey, TUint32 &aSecondaryKey);
+
+	/**
+	 * Clears all the defined key combinations from the policy.
+	 *
+	 * @return standard Symbian error code
+	 */
+	IMPORT_C TInt ClearKeycombinations();
+
+	/**
+	 * Handles Key events, returns ETrue the key events match any of the
+	 * defined key combinations. Only uses scancodes with type EEventKeyDown.
+	 *
+	 * @param TKeyEvent aKeyEvent the actual key event
+	 * @param TEventCode aType the type of the received key event
+	 * @return ETrue if a match was found.
+	 */
+	IMPORT_C TBool HandleKeyEventL(const TKeyEvent& aKeyEvent, const TEventCode aType );
+
+	/**
+	 * Returns true if primary button is pressed and note should be shown.
+	 * @return boolean true if primary key is pressed.
+	 */
+	IMPORT_C TBool PrimaryKeyPressed();
+
+	/**
+	 * Returns Primary key scan code that has been pressed last.
+	 * @return scan code value of the primary key if found, NULL if not
+	 */
+	IMPORT_C TUint GetLastPrimaryKey();
+
+private:
+
+	/**
+	 * C++ default constructor (private so cannot be derived).
+	 */
+	CKeyLockPolicyApi( );
+
+	/**
+	 * Second constructor initializes the policy
+	 * @param TLockPolicyType aType the policy (TLockPolicyType) used
+	 */
+	void ConstructL( TLockPolicyType aType );
+
+private:
+
+	/**
+	 * Actual implemetation.
+	 */
+	CKeyLockPolicyApiImpl* iKeylockpolicyImplementation;
+
+	};
+
+#endif // ___CKEYLOCKPOLICYAPI__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/logs_ui_command_line_api/group/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2006 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:  File that exports the files belonging to 
+:                Logs UI Command Line API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/LogsUiCmdStarter.inl     APP_LAYER_PLATFORM_EXPORT_PATH(LogsUiCmdStarter.inl)
+../inc/LogsUiCmdStarterConsts.h     APP_LAYER_PLATFORM_EXPORT_PATH(LogsUiCmdStarterConsts.h)
+../inc/LogsUiCmdStarter.h     APP_LAYER_PLATFORM_EXPORT_PATH(LogsUiCmdStarter.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/logs_ui_command_line_api/inc/LogsUiCmdStarter.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2007-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:  Provides Command line API to start LogsUI application 
+*
+*/
+
+#ifndef LOGSUICMDSTARTER_H
+#define LOGSUICMDSTARTER_H
+
+#include <LogsUiCmdStarterConsts.h> 
+
+namespace LogsUiCmdStarter
+    {
+    /**
+     * Requests to start Logs application. If Logs is already running,
+     * activates the requested view.
+     *
+     * @since S60 3.2
+     * @param aView   The view to be activated in Logs. Constants are defined
+     *                in LogsUiCmdStarterConsts.h
+     */
+    void CmdStartL( const TPtrC8 aView ); 
+    
+    /**
+     * Requests to start Logs application. If Logs is already running,
+     * activates the requested view.
+     *
+     * @since S60 3.2     
+     * @param aView   The view to be activated in Logs. Constants are defined
+     *                in LogsUiCmdStarterConsts.h
+     *
+     * @return        KErrNone when request submitted successfully. Otherwise  
+     *                system wide error code.     
+     */
+    TInt CmdStart( const TPtrC8 aView );
+    }
+
+#include <LogsUiCmdStarter.inl> 
+
+#endif  //LOGSUICMDSTARTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/logs_ui_command_line_api/inc/LogsUiCmdStarter.inl	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2006 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: 
+*     Provides implementation of interface to start Logs application 
+*
+*/
+
+#ifndef LOGSUICMDSTARTER_INL
+#define LOGSUICMDSTARTER_INL
+
+//  INCLUDES
+#include <ApGTask.h>
+#include <ApGCli.h>
+
+// --------------------------------------------------------------------------
+// LogsUiCmdStarter::CmdStart
+// --------------------------------------------------------------------------
+//
+inline TInt LogsUiCmdStarter::CmdStart( const TPtrC8 aView )
+    {
+    TInt err( KErrNone );
+    TRAP(err, LogsUiCmdStarter::CmdStartL( aView ));
+    return err;
+    }
+
+
+// --------------------------------------------------------------------------
+// LogsUiCmdStarter::CmdStartL
+// --------------------------------------------------------------------------
+//
+
+inline void LogsUiCmdStarter::CmdStartL( const TPtrC8 aView )
+    {
+    /***********************************************
+    FIXME: Replaced by code below. Remove this code when sure that new code 
+           works better than this with the new ui effects implementation.
+    TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
+    TApaTask task = taskList.FindApp( LogsUiCmdStarterConsts::KLogsUID3 );
+    TPtrC8 msg;
+    msg.Set( aView );
+    
+    if( task.Exists() ) //Logs already open. Request it to
+        {               //activate the correct view
+        const TUid dummyUID = { 0x0 };
+        task.SendMessage( dummyUID, msg );
+        task.BringToForeground();  
+        }
+    else                //Start Logs and request it to activate
+        {               //the correct view
+        TApaAppInfo appInfo;
+        RApaLsSession lsSession;
+        User::LeaveIfError( lsSession.Connect() );        
+        CleanupClosePushL( lsSession );
+        
+        if( lsSession.GetAppInfo( appInfo, LogsUiCmdStarterConsts::KLogsUID3 ) == KErrNone )
+            {
+            CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+            cmdLine->SetExecutableNameL( appInfo.iFullName );
+            cmdLine->SetCommandL( EApaCommandRun );
+            cmdLine->SetTailEndL( msg );
+
+            lsSession.StartApp( *cmdLine );
+            CleanupStack::PopAndDestroy( cmdLine );
+            }
+
+        CleanupStack::PopAndDestroy();  // lsSession
+        }
+    ***********************************************/        
+
+    TPtrC8 msg;
+    msg.Set( aView );
+
+    // Check that Logs application exists
+    TApaAppInfo appInfo;
+    RApaLsSession lsSession;
+    User::LeaveIfError( lsSession.Connect() );        
+    CleanupClosePushL( lsSession );
+    User::LeaveIfError( lsSession.GetAppInfo( appInfo, LogsUiCmdStarterConsts::KLogsUID3 ) );
+
+    // Create command line for starting Logs
+    CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+    cmdLine->SetExecutableNameL( appInfo.iFullName );
+    cmdLine->SetCommandL( EApaCommandRun );
+
+    // Check if Logs is already running
+    TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
+    TApaTask task = taskList.FindApp( LogsUiCmdStarterConsts::KLogsUID3 );
+
+    if( task.Exists() )
+        {
+        // Logs already running. Request it to activate the correct view
+        const TUid dummyUID = { 0x0 };
+        task.SendMessage( dummyUID, msg );
+        
+        // The below is just to secure an unlikely case that StartApp() would in future anyhow 
+        // send command line parameter to application that is already running (currently
+        // it doesn't). The "dontactivate" just prevents double attempt of activation of
+        // view requested in msg SendMessage'd to Logs.
+        _LIT8(dontActivate, "dontactivate");
+        TPtrC8 dontActivateMsg = dontActivate(); 
+        cmdLine->SetTailEndL( dontActivateMsg );  
+        }
+    else                
+        {
+        // Logs not yet running. Request it to activate the correct view
+        cmdLine->SetTailEndL( msg );  
+       	// Start Logs 
+    	lsSession.StartApp( *cmdLine );
+        }
+  
+    CleanupStack::PopAndDestroy( cmdLine );
+    CleanupStack::PopAndDestroy();  //lsSession 
+    }
+
+#endif  //LOGSUICMDSTARTER_INL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/logs_ui_command_line_api/inc/LogsUiCmdStarterConsts.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2007-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:  Provides constants for Logs Command line API to start LogsUI 
+*                application 
+*
+*/
+
+#ifndef LOGSUICMDSTARTERCONSTS_H
+#define LOGSUICMDSTARTERCONSTS_H
+
+namespace LogsUiCmdStarterConsts
+    {
+    _LIT8( KMissedView,         "missed");          //Logs missed calls view
+    _LIT8( KDialledView,        "dialled");         //Logs dialled calls view
+    _LIT8( KReceivedView,       "received");        //Logs received calls view
+    _LIT8( KCountersView,       "counters");        //Logs main view  
+    
+    const TUid KLogsUID3    =   { 270486741 };      //101F4CD5
+    }
+    
+#endif  //LOGSUICMDSTARTERCONSTS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/logs_ui_command_line_api/logs_ui_command_line_api.metaxml	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,17 @@
+<?xml version="1.0" ?>
+<api id="998eb8746c020d6eb930a97a0f904690" dataversion="2.0">
+  <name>Logs UI Command Line API</name>
+  <description></description>
+  <type>c++</type>
+  <collection>logsui</collection>
+  <libs>
+  </libs>
+  <release category="platform"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/phonesrv_plat-ss_settings_api/group/bld.inf	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2006 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:  File that exports the files belonging to 
+:                SS Settings API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/MSSSettingsRefreshObserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(MSSSettingsRefreshObserver.h)
+../inc/MSSSettingsObserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(MSSSettingsObserver.h)
+../inc/RCustomerServiceProfileCache.h     MW_LAYER_PLATFORM_EXPORT_PATH(RCustomerServiceProfileCache.h)
+../inc/RSSSettings.h     MW_LAYER_PLATFORM_EXPORT_PATH(RSSSettings.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/phonesrv_plat-ss_settings_api/inc/MSSSettingsObserver.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,47 @@
+/*
+* 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:  Interface for getting observer events.
+*
+*/
+
+
+#ifndef MSSSETTINGSOBSERVER_H
+#define MSSSETTINGSOBSERVER_H
+
+//  INCLUDES
+#include <RSSSettings.h>
+
+// CLASS DECLARATION
+
+/**
+* It's the observer interface for some phone related settings.
+* @lib sssettings.lib
+* @since 1.0
+*/
+class MSSSettingsObserver
+    {
+    public: // New functions
+        /*
+        * Observer functoin 
+        * @param aSetting Current setting
+        * @param aNewValue New value for the setting
+        */
+        virtual void PhoneSettingChanged( 
+            TSSSettingsSetting aSetting, 
+            TInt aNewValue ) = 0;
+    };
+
+#endif //MSSSETTINGSOBSERVER_H 
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/phonesrv_plat-ss_settings_api/inc/MSSSettingsRefreshObserver.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2004 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:  Observer to listen refresh events
+*
+*/
+
+
+
+#ifndef MSSSETTINGSREFRESHOBSERVER_H
+#define MSSSETTINGSREFRESHOBSERVER_H
+
+
+//  INCLUDES
+#include <e32std.h>
+#include <etelsat.h>
+#include <msatrefreshobserver.h>
+
+
+// DATA TYPES
+
+// CLASS DECLARATION
+
+/**
+*  Observer to listen refresh events
+*
+*  @lib SSSettings.lib
+*  @since 2.8
+*/
+class MSSSettingsRefreshObserver 
+    {
+    public: // New functions
+        
+        /**
+        * Refresh query. Client should determine whether it allow the
+        * refresh to happen.
+        * 
+        * @param aType  Refresh type.
+        * @param aFiles Elementary files which are to be changed. 
+        *               May be zero length. 
+        * @return ETrue to allow refresh, EFalse to decline refresh.
+        */
+        virtual TBool AllowRefresh(
+            const TSatRefreshType aType,
+            const TSatElementaryFiles aFiles ) = 0;
+
+        /**
+        * Notification of refresh.
+        * 
+        * @param aType Type of refresh which has happened.
+        * @param aFiles List of elementary files which have been changed.
+        *               May be zero length.
+        */
+        virtual void Refresh(
+            const TSatRefreshType aType,
+            const TSatElementaryFiles aFiles ) = 0;
+    };
+
+#endif      // MSSSETTINGSREFRESHOBSERVER_H  
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/phonesrv_plat-ss_settings_api/inc/RCustomerServiceProfileCache.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,193 @@
+/*
+* Copyright (c) 2002-2005 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:  Customer service profile cache
+*
+*/
+
+
+#ifndef RCUSTOMERSERVICEPROFILECACHE_H
+#define RCUSTOMERSERVICEPROFILECACHE_H
+
+//  INCLUDES
+#include <etelmm.h>
+#include <e32property.h>           // RProperty.
+
+
+// FORWARD DECLARATIONS
+class RProperty;
+
+// CLASS DECLARATION
+
+/**
+* Customer service profile cache
+* @since    1.0
+* @lib      SsSettings.lib
+*/
+class RCustomerServiceProfileCache
+    {
+    public: // Constructor and destructor
+        IMPORT_C RCustomerServiceProfileCache();
+        IMPORT_C ~RCustomerServiceProfileCache();
+
+    public: // New functions
+        //Settings categories
+        enum TSsGroups
+            {
+            ESsCspGroup1, // contains Call Offering, Call Restriction,
+                          // Call Completion and Teleservices
+            ESsCspGroup2  // contains Value Added Services
+            };
+
+        /**
+        * Opens connections. Must be done before fetching any items.
+        * @return Error code.
+        */
+        IMPORT_C TInt Open();
+
+        /**
+        * Closes connections.
+        */
+        IMPORT_C void Close();
+
+        /**
+        * Get call completion flags from CSP.
+        * @param aParams Call completion parameters.
+        * @return Error code.
+        */
+        IMPORT_C TInt CspCallCompletion( 
+            RMobilePhone::TCspCallCompletion& aParams );
+
+        /**
+        * Get call offering flags from CSP.
+        * @param aParams Call offering parameters.
+        * @return Error code.
+        */
+        IMPORT_C TInt CspCallOffering( 
+            RMobilePhone::TCspCallOffering& aParams );
+
+        /**
+        * Get call restriction flags from CSP.
+        * @param aParams Call restriction parameters.
+        * @return Error code.
+        */
+        IMPORT_C TInt CspCallRestriction( 
+            RMobilePhone::TCspCallRestriction& aParams );
+
+        /**
+        * Get CPHS tele services flags from CSP.
+        * @param aParams Tele services parameters.
+        * @return Error code.
+        */
+        IMPORT_C TInt CspCPHSTeleservices( 
+            RMobilePhone::TCspCPHSTeleservices& aParams );
+
+        /**
+        * Handles refresh.
+        * @return Error code.
+        */
+        IMPORT_C TInt HandleRefresh();
+
+        /**
+        * Get value added services flags from CSP.
+        * @since 1.2.
+        * @param aParams Value added services parameters.
+        * @return Error code.
+        */
+        IMPORT_C TInt CspCPHSValueAddedServices(
+            RMobilePhone::TCspValueAdded& aParams );
+        
+        /**
+        * Get tele services flags from CSP.
+        * @since 2.8.
+        * @param aParams Tele services parameters.
+        * @return Error code.
+        */
+        IMPORT_C TInt CspTeleServices(
+            RMobilePhone::TCspTeleservices& aParams );
+
+        /**
+        * Get the changed CSP information after Refresh.
+        * @since 2.8.
+        * @param aChangedCsps The changed CSP fields, 
+        *                     type RMobilePhone::TMobilePhoneCspFileV1Pckg.
+        * @param aNewValues The new values of CSP fields, 
+        *                   type RMobilePhone::TMobilePhoneCspFileV1Pckg.
+        * @return Error code.  KErrNone if successful.
+        */
+        IMPORT_C TInt ChangedCspTable( 
+            TDes8& aChangedCsps,
+            TDes8& aNewValues );
+
+    private:
+
+        // Opens connections
+        void DoOpenL();
+
+        // Gets the values
+        TInt DoGetValues( TInt& aValue, TSsGroups aGroup );
+
+        // Reset the iOldCspFile.
+        void DoResetOldCspFile();
+
+        // Define and set the Publish and subscribe value.
+        TInt DefineAndSetValue(
+            TUid aCategory,
+            TUint aKey,
+            TInt aValue );
+
+        // Prohibit copy constructor if not deriving from CBase.
+        RCustomerServiceProfileCache(
+            const RCustomerServiceProfileCache& );
+        // Prohibit assigment operator if not deriving from CBase.
+        RCustomerServiceProfileCache& operator= (
+            const RCustomerServiceProfileCache& );
+
+    private:
+
+        // Member data structure.
+        class TCspCacheData
+            {
+            public:
+                TCspCacheData();
+                
+            // ETel connection.
+            RTelServer iEtel;
+            
+            // Provides client access to mobile phone functionality 
+            // provided by TSY.
+            RMobilePhone iPhone;
+            
+            // Defines contents of the CSP (Customer Service Profile) 
+            // on the SIM.
+            RMobilePhone::TMobilePhoneCspFileV1 iCspFile;
+            
+            // Packaged contents of the CSP (Customer Service Profile) 
+            // on the SIM.
+            RMobilePhone::TMobilePhoneCspFileV1Pckg iCspFilePckg;
+            
+            // RProperty.
+            RProperty       iProperty;
+            };
+
+        //Pointer to the above.
+        TCspCacheData* iData;
+
+        // Defines the old content of the CSP (Customer Service Profile) on 
+        // the SIM before refresh.
+        RMobilePhone::TMobilePhoneCspFileV1* iOldCspFile;
+    };
+
+#endif      // RCUSTOMERSERVICEPROFILECACHE_H  
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/phonesrv_plat-ss_settings_api/inc/RSSSettings.h	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,383 @@
+/*
+* Copyright (c) 2002-2005 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: 
+*     Class for getting information about the Clir, Cug, Als and Als blocking
+*     status in the phone. 
+*
+*/
+
+
+#ifndef RSSSETTINGS_H
+#define RSSSETTINGS_H
+
+//  INCLUDES
+#include <etelmm.h>
+#include <RCustomerServiceProfileCache.h>
+
+// DATA TYPES
+
+/**
+* All enumerations are fixed - DO NOT CHANGE!!
+*/
+
+/**
+* It enumerates all SSSettings settings.
+*
+* ESSSettingsCug         - closed user group setting, 
+*                     for some values see TSSSettingsCugValue.
+* ESSSettingsClir        - default setting for calling line identification 
+*                     restriction, see TSSSettingsClirValue.
+* ESSSettingsAls         - selected line, see TSSSettingsAlsValue.
+* ESSSettingsAlsBlocking - line selection blocking, see TSSSettingsAlsBlocking.
+* ESSSettingsCugDefault - value for cug default.
+*/
+enum TSSSettingsSetting
+    {
+    ESSSettingsCug = 0,  
+    ESSSettingsClir = 1, 
+    ESSSettingsAls = 2,
+    ESSSettingsAlsBlocking = 3,
+    ESSSettingsDefaultCug = 4
+    };
+
+/**
+* It enumerates all values for CLIR.
+*
+* ESSSettingsClirNetworkDefault - use network default
+* ESSSettingsClirExplicitInvoke - by default, invoke CLIR
+* ESSSettingsClirExplicitSuppress - by default, suppress CLIR
+*/
+enum TSSSettingsClirValue
+    {
+    ESSSettingsClirNetworkDefault,
+    ESSSettingsClirExplicitInvoke,
+    ESSSettingsClirExplicitSuppress
+    };
+
+/**
+* It enumerates SOME values for CUG.
+* 
+* Alternative CUG default (and min value) can be set on/off from 
+* shared data (shareddatakeys.h, key: KPhoneCUGIndexStartValue).
+*
+* CUG value is basically interger.
+*
+* ESSSettingsCugSuppress - special, suppress CUG
+* ESSSettingsCugDefault - special, use network default CUG
+* ESSSettingsCugMin - minimum value for proper CUG index.
+* ESSSettingsCugMax - maximum value for proper CUG index.
+* ESSSettingsAltCugDefault - special, alternative default CUG
+* ESSSettingsAltCugMin - special, alternative minimum for CUG
+*/
+enum TSSSettingsCugValue
+    {
+    ESSSettingsCugSuppress = -1,
+    ESSSettingsCugDefault = 0, //Note: default can be 0 or 65535 (see above)
+    ESSSettingsCugMin = 1,     //Note: min value can be 0 or 1 (see above)
+    ESSSettingsCugMax = 32767,
+    ESSSettingsAltCugDefault = 65535,
+    ESSSettingsAltCugMin = 0
+    };
+
+/**
+* It enumerates all values for ALS.
+*
+* ESSSettingsAlsNotSupported - ALS not supported, always primary line.
+* ESSSettingsAlsPrimary - ALS supported, primary line selected.
+* ESSSettingsAlsAlternate - ALS supported, alternate line selected.
+*/
+enum TSSSettingsAlsValue
+    {
+    ESSSettingsAlsNotSupported = 0,
+    ESSSettingsAlsPrimary = 1,
+    ESSSettingsAlsAlternate = 2
+    };
+
+/**
+* It enumerates all values for ALS blocking.
+*
+* ESSSettingsAlsBlockingNotSupported - ALS blocking not supported.
+* ESSSettingsAlsBlockingOff - ALS blocking off.
+* ESSSettingsAlsBlockingOn - ALS blocking on.
+*/
+enum TSSSettingsAlsBlockingValue
+    {
+    ESSSettingsAlsBlockingNotSupported,
+    ESSSettingsAlsBlockingOff,
+    ESSSettingsAlsBlockingOn
+    };
+
+// FORWARD DECLARATIONS
+class MSSSettingsObserver;
+class CSSSettingsNotifier;
+class RMmCustomAPI;
+class CRepository;
+
+
+// CLASS DECLARATION
+
+/**
+*  It is class that can be used to fetch phone related settings.
+*  @since 1.0
+*  @lib sssettings.lib
+*/
+class RSSSettings
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ default constructor.
+        */
+        IMPORT_C RSSSettings();
+
+    public: // New functions
+        
+        /**
+        * Closes SsSettings.
+        *
+        * After the use of the class, the method must be called.
+        */
+        IMPORT_C void Close();
+
+        /**
+        * Opens SsSettings.
+        *
+        * Before using the class, one of Open methods must be called.
+        *
+        * @return error code. KErrNone, if success.
+        */
+        IMPORT_C TInt Open();
+
+        /**
+        * Opens SsSettings.
+        *
+        * Ownership of parameters is NOT transferred. If parameter
+        * is NULL, then the instance creates its own sessions.
+        *
+        * Before using the class, one of Open methods must be called.
+        *
+        * @param aTelServer ETel server session.
+        * @return error code. KErrNone, if success.
+        */
+        IMPORT_C TInt Open(
+            RTelServer* aTelServer );
+
+
+        // CHANGE NOTIFICATIONS
+
+        /**
+        * Registers an observer to receive all changes.
+        *
+        * @param aObserver observer.
+        * @return error code. If other than KErrNone, CancelAll is called 
+        *                     automatically.
+        */
+        IMPORT_C TInt RegisterAll( 
+            MSSSettingsObserver& aObserver );
+
+        /**
+        * Registers an observer to receive changes of a setting.
+        *
+        * @param aSetting setting.
+        * @param aObserver observer.
+        * @return error code. KErrNone: observer is added
+        *                     KErrAlreadyExists: observer is already added
+		*					  KErrNotReady: Possible when BT SAP is on.
+        *                     KErrNotSupported: Possible with ALS.
+        *                     other: observer not registered
+        */
+        IMPORT_C TInt Register( 
+            TSSSettingsSetting aSetting, 
+            MSSSettingsObserver& aObserver );
+
+        /**
+        * Cancels all registrations of the observer.
+        *
+        * @param aObserver observer.
+        */
+        IMPORT_C void CancelAll( 
+            MSSSettingsObserver& aObserver );
+
+        /**
+        * Cancel specific setting.
+        *
+        * @param aSetting setting.
+        * @param aObserver observer.
+        */
+        IMPORT_C void Cancel( 
+            TSSSettingsSetting aSetting,
+            MSSSettingsObserver& aObserver );
+
+        // CHANGE & FETCH VALUE
+
+        /**
+        * Fetch value of a setting.
+        *
+        * @param aSetting setting.
+        * @param aValue result will be stored here (if success).
+        * @return error code: KErrNone, all ok aValue updated.
+        *                     KErrCorrupt, value in shared data is not OK.
+        *                     KErrNotSupported, aSetting is not a "real" setting
+        *                     KErrNotReady, get CSP from ETEL has failed.
+        *                     KErrServerBusy, get CSP from ETEL has failed.
+        */
+        IMPORT_C TInt Get( 
+            TSSSettingsSetting aSetting,
+            TInt& aValue );
+
+        /**
+        * Changes value of a setting. Successfull function call generates notify
+        * call to each observer in this object even if the value is the same. 
+        * From other objects of this class the observers will get only change 
+        * notifications.
+        *
+        * @param aSetting setting.
+        * @param aValue new value for setting.
+        * @return error code. KErrNone in case of non-error.
+        *                     KErrArgument: parameter not valid
+        *                     KErrNotSupported: In als, if ME doesn't support
+        *                     other, from Shared data or from ETel
+        */
+        IMPORT_C TInt Set(
+            TSSSettingsSetting aSetting,
+            TInt aValue );
+
+        // SIM CHANGE EVENT
+        
+        /**
+        * It is called when SIM changes.
+        *
+        * @return error code.
+        */
+        IMPORT_C TInt HandleSIMChanged();
+
+        /**
+        * Get previous CUG value
+        * @param aPreviousValue Old value is saved here. 0 if not set
+        * @return Error code
+        */
+        IMPORT_C TInt PreviousCugValue( TInt& aPreviousValue );
+
+        /**
+        * Reset previous CUG value
+        * @return Error code
+        */
+        IMPORT_C TInt ResetPreviousCugValue();
+
+        /**
+        * Handle refresh
+        * @return Error code
+        */
+        IMPORT_C TInt HandleRefresh();
+
+        /**
+        * Check whether or not the given CUG index is valid.
+        * @param aValue CUG index
+        * @return Boolean, is it valid CUG index or not
+        */
+        IMPORT_C TBool IsValueValidCugIndex( const TInt& aValue ) const;
+
+    private:
+    
+        /**
+        * Checks if Alternate Line is to be supported.
+        * @param aPpAlsValue parameter to be checked.
+        * @param aSimAlsValue parameter to be checked.
+        * @param aAlsCspSupport parameter to be checked.
+        * @param aAlsCspError parameter to be checked.
+        * @return error code. KErrNone in case of ALS supported.
+        *                     KErrNotSupported in case if ME doesn't support
+        */    
+        TInt IsALSSupported( TInt aPpAlsValue, TInt aSimAlsValue, 
+            TBool aAlsCspSupport, TInt aAlsCspError ) const;
+			
+	    // Gets ALS setting value.
+        TInt GetALSSettingValue( TInt& aValue, const TInt aSimState );
+
+        // Prohibit copy constructor if not deriving from CBase.
+        RSSSettings( const RSSSettings& );
+        // Prohibit assigment operator if not deriving from CBase.
+        RSSSettings& operator= ( const RSSSettings& );
+
+        // Opens connection. Leaves on error cases
+        void OpenL( RTelServer* aTelServer );
+
+        // Closes all connections and deletes own data
+        void DeleteSettingsData();
+
+        // Finds if observer is already added
+        TBool ExistsObserver( TSSSettingsSetting aSetting, 
+                    MSSSettingsObserver& aObserver );
+
+        // Informs observers about the value change
+        void InformChange( TSSSettingsSetting aSetting , TInt aNewValue );
+
+        // Finds next observer, NULL if there isn't any. Used in deleting data.
+        MSSSettingsObserver* FindOneObserver() const;
+
+        // Async call back for informing observer about own changes.
+        static TInt InformCallBack( TAny* aPtr );
+
+        // CUG value is divided into two parts - needs special handling...
+        TInt GetCug( TInt& aValue ) const;
+        TInt GetDefaultCugL( TInt& aValue ) const;
+        TInt SetCug( const TInt aValue, const TInt aCugDefault ) const;
+
+    private:    // Data
+
+        //Private Array type for RSSSettings.
+        typedef RPointerArray<MSSSettingsObserver> RSSSettingsObserverArray;
+
+        /**
+        * All data members are included in one structure.
+        * This it can be changed accoring to needs, but the
+        * BC stays the same.
+        */
+        struct TSSSettingsData
+            {
+            RTelServer*          iTelServer;         // ETel client
+            TBool                iOwnTelServer;      // ETrue if own
+            RMobilePhone         iMobilePhone;       // Mobile Phone
+            RArray<RSSSettingsObserverArray> iObservers;// Array for obs. arrays
+            CAsyncCallBack*      iCallBack;          // Async call back
+            TInt                 iCallBackSetting;   // Setting that is changed
+            TInt                 iCallBackValue;     // New value.
+            CSSSettingsNotifier* iNotifier;          // Change notifier
+            RMmCustomAPI*        iCustomPhone;       // Custom Phone
+            TInt                 iCUGDefault;        // CUG default
+            CRepository*         iRepository;        // Central repository.           
+            };
+
+        TSSSettingsData* iData;                         // The data
+
+    protected:
+        // Friend class uses all members in iData. This procedure saves
+        // a lot of function from the API which are not meant for
+        // external use.
+        friend class CSSSettingsNotifier;
+    };
+
+// Panic enums
+enum TSSSettingsPanic
+    {
+    SSSettingsPanicOpenNotDone = 6000,  // Some function is called before Open()
+    SSSettingsPanicInvalidRequest,      // Given Setting is out of range.
+    SSSettingsPanicConflictInAls        // Can't determine ALS state.
+    };
+
+GLREF_C void Panic( TSSSettingsPanic aPanic );
+
+#endif      // RSSSETTINGS_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/phonesrv_plat-ss_settings_api/ss_settings_api.metaxml	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="4d70161d1fa4a704f11df267a152325f" dataversion="1.0">
+  <name>SS Settings API</name>
+  <description>SS (Supplementary Service) Settings API provides an interface to query, change and receive change indications of the SIM or the network settings that are stored in the mobile device. The settings are CUG, CLIR, ALS and ALS blocking.</description>
+  <type>c++</type>
+  <subsystem>phonesettings</subsystem>
+  <libs>
+    <lib name="SsSettings.lib" />
+  </libs>
+  <release category="domain"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>yes</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/publicruntimeids.hrh	Tue Apr 13 19:36:31 2010 +0200
@@ -0,0 +1,632 @@
+/*
+* Copyright (c) 2006 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: 
+*
+*/
+
+
+#ifndef __PUBLICRUNTIMEIDS_HRH
+#define __PUBLICRUNTIMEIDS_HRH
+
+#define KFeatureId3DRingingTones                            1720
+
+#define KFeatureIdFf3gCellbroadcast                         175
+
+#define KFeatureIdFfAbcAgressiveUi                          252
+
+#define KFeatureIdFfAdaptiveWlanScanningSupport             140
+
+#define KFeatureIdFfAdditionalFonts                         241
+
+#define KFeatureIdFfAiWlansnifferWidget                     172
+
+#define KFeatureIdAsynchFileSaveQueue                       1703
+
+#define KFeatureIdFfAudt                                    63
+
+#define KFeatureIdAutoRedialForVideoCall                    1723
+
+#define KFeatureIdFfAvkonEmotionIconEnabled                 211
+
+#define KFeatureIdFfBirthdayImprovement                     189
+
+#define KFeatureIdFfBluetoothDataProfilesDisabled           271
+
+#define KFeatureIdFfBluetoothDisabled                       270
+
+#define KFeatureIdBrowserProgressiveDownload                1724
+
+#define KFeatureIdFfCalMeetingRequestUi                     296
+
+#define KFeatureIdFfCapacitiveDisplay                       183
+
+#define KFeatureIdChineseFontsHires                         138
+
+#define KFeatureIdFfChineseSelectionKey                     233
+
+#define KFeatureIdFfClockMultiprocolSupport                 190
+
+#define KFeatureIdFfCmailIntegration                        247
+
+#define KFeatureIdCommsDatCreationFromXml                   67
+
+#define KFeatureIdFfConnectionOverride                      179
+
+#define KFeatureIdFfContactsCompanyNames                    236
+
+#define KFeatureIdFfContactsMerge                           268
+
+#define KFeatureIdffContactsMycard                          267
+
+#define KFeatureIdFfContactsNickname                        182
+
+#define KFeatureIdFfContactsPredictiveSearch                235
+
+#define KFeatureIdFfContactsRemoteLookup                    234
+
+#define KFeatureIdFfContactsSocial                          273
+
+#define KFeatureIdFfContextProfiles                         254
+
+#define KFeatureIdFfDeviceEncryptionFeature                 250
+
+#define KFeatureIdFfDisableOmaSuplV2                        308
+
+#define KFeatureIdFfDmConnmoAdapter                         277
+
+#define KFeatureIdDmInstallSecurity                         5065
+
+#define KFeatureIdFfDualLanguageSupport                     194
+
+#define KFeatureIdDualModem                                 230
+
+#define KFeatureIdFfEmailFramework                          135
+
+#define KFeatureIdFfEmailIpsServices                        137
+
+#define KFeatureIdEmailMceIntegration                       126
+
+#define KFeatureIdFfEmailProtocolPlugins                    215
+
+#define KFeatureIdFfEmailUi                                 136
+
+#define KFeatureIdCertificationTesting                      309
+
+#define KFeatureIdFfEnhancedCalendarEventUi                 295
+
+#define KFeatureIdFfFarsiCalendar                           213
+
+#define KFeatureIdFmtx                                      1705
+
+#define KFeatureIdFfFmtxRdsText                             220
+
+#define KFeatureIdFullscrHwrInput                           66
+
+#define KFeatureIdFfGenericAccessNetwork                    257
+
+#define KFeatureIdFfGenericFontsAssets                      188
+
+#define KFeatureIdFfHdmi                                    169
+
+#define KFeatureIdFfHelpTutorialMerge                       164
+
+#define KFeatureIdFfHijriCalendar                           212
+
+#define KFeatureIdHitchcockAppShell                         1708
+
+#define KFeatureIdFfHomescreenSwitchableRoot                154
+
+#define KFeatureIdIAUpdate                                  30
+
+#define KFeatureIdFfIaupdatePhase2                          185
+
+#define KFeatureIdFfInputsPerOrientation                    192
+
+#define KFeatureIdFfIntelligentTextInput                    216
+
+#define KFeatureIdFfItiVirtualTouchFirstGenerationSupport   218
+
+#define KFeatureIdFfJavaGlobalIndicatorsApi                 134
+
+#define KFeatureIdFfKeypadNoSendKey                         278
+
+#define KFeatureIdKorean                                    180
+
+#define KFeatureIdFfLayout480640Vga3                        240
+
+#define KFeatureIdFfLayout640480Vga3                        239
+
+#define KFeatureIdFfLimitedMessageAndAlarmToneSize          300
+
+#define KFeatureIdFfLinkedFontsChinese                      159
+
+#define KFeatureIdFfLocationMwApeCentricArchSupport         258
+
+#define KFeatureIdFfMecoXmpp                                232
+
+#define KFeatureIdFfMeetingRequestUi                        174
+
+#define KFeatureIdFfMenuTexturePreloading                   118
+
+#define KFeatureIdS60MtpController                          272
+
+#define KFeatureIdFfNcdEngine                               61
+
+#define KFeatureIdFfNcdUi                                   62
+
+#define KFeatureIdNfc                                       117
+
+#define KFeatureIdNltSupport                                155
+
+#define KFeatureIdFfNoCugSupport                            195
+
+#define KFeatureIdNoIdleSoftkeys                            68
+
+#define KFeatureIdFfOdeLegalNotice                          217
+
+#define KFeatureIdFfOfnFeature                              193
+
+#define KFeatureIdFfOmaScomoAdapter                         197
+
+#define KFeatureIdFfOssLegalNotice                          196
+
+#define KFeatureIdFfPnpmsProvFilter                         133
+
+#define KFeatureIdPnpmsServiceHelpPlugin                    128
+
+#define KFeatureIdPowerSave                                 1709
+
+#define KFeatureIdPreminetCatalogsClient                    1719
+
+#define KFeatureIdProvAuthtypePlugin                        100
+
+#define KFeatureIdFfQt                                      238
+
+#define KFeatureIdQwertyFnKey                               1714
+
+#define KFeatureIdRockerKey                                 120
+
+#define KFeatureIdFfRuntimeDeviceCapabilityConfiguration    198
+
+#define KFeatureIdSelectableEmail                           125
+
+#define KFeatureIdFfSipCustomPdpHandling                    269
+
+#define KFeatureIdFfSmallScreenTouch                        279
+
+#define KFeatureStartupOmaDmSupport                         40
+
+#define KFeatureIdFfStrokeInputmodeInTaiwan                 280
+
+#define KFeatureIdFfSuplImsiGeneratedServerPriorityDefault  301
+
+#define KFeatureIdFfSyncmlStatusExtendedErrorCodes          299
+
+#define KFeatureIdFfTacticons                               184
+
+#define KFeatureIdTactileFeedback                           1718
+
+#define KFeatureIdFfTarmCapabilityBasedAccess               214
+
+#define KFeatureIdFfTarmCapabilityChecking                  237
+
+#define KFeatureIdTcpMyfavesFeature                         1722
+
+#define KFeatureIdFfTcpMyprofile                            186
+
+#define KFeatureIdFfTdScdma                                 274
+
+#define KFeatureIdTouchscreencalibInStartup                 69
+
+#define KFeatureIdFfTouchUnlockStroke                       173
+
+#define KFeatureIdUpnpFramework20                           70
+
+#define KFeatureIdUsbCharging                               119
+
+#define KFeatureIdUsbHost                                   1704
+
+#define KFeatureIdUsbModem                                  265
+
+#define KFeatureIdUseEGprsIcon                              121
+
+#define KFeatureIdFfUseNavikeyForVolume                     248
+
+#define KFeatureIdFfVideoAudioBranding                      266
+
+#define KFeatureIdVirtualFullscrQwertyInput                 64
+
+#define KFeatureIdVirtualItutInput                          65
+
+#define KFeatureIdVmbxCallDivertIcon                        116
+
+#define KFeatureIdFfVoiceCallContinuity                     152
+
+#define KFeatureIdFfVpnClient                               99
+
+#define KFeatureIdWebvideoPh2                               39
+
+#define KFeatureIdFfWlanExtensions                          177
+
+#define KFeatureIdFfWlanWapi                                129
+
+#define KFeatureIdSymbianIncludeLocationNpeDsm              261
+
+#define KFeatureIdSymbianIncludeLocationSuplPosInit         263
+
+#define KFeatureIdSymbianIncludeLocationSuplProxy           262
+
+#define KFeatureId3DMenu                                    1511
+
+#define KFeatureId3GpExtension                              1592
+
+#define KFeatureIdAacEncoderPlugin                          1141
+
+#define KFeatureIdAacPlusDecoderPlugin                      1143
+
+#define KFeatureIdActiveIdle                                1119
+
+#define KFeatureIdAllowUpgradeHelix                         1699
+
+#define KFeatureIdAppCsdSupport                             110
+
+#define KFeatureIdAudioEffectsApi                           497
+
+#define KFeatureIdAudioMessaging                            1565
+
+#define KFeatureIdAudioResourceIndications                  499
+
+#define KFeatureIdAutoAccessoryIdentification               206
+
+#define KFeatureIdAvkonApac                                 1015
+
+#define KFeatureIdAvkonELaf                                 1010
+
+#define KFeatureIdBasicLocationInfoDisplay                  1513
+
+#define KFeatureIdBassBoostEffectUi                         1673
+
+#define KFeatureIdBrightnessControl                         1072
+
+#define KFeatureIdBrowserIMEINotification                   161
+
+#define KFeatureIdBticBinariesCheckEnabled                  1601
+
+#define KFeatureIdBtFaxProfile                              18
+
+#define KFeatureIdBtSap                                     222
+
+#define KFeatureIdCamera                                    2
+
+#define KFeatureIdCameraFullscreenViewfinder                1607
+
+#define KFeatureIdCameraLensCover                           209
+
+#define KFeatureIdCameraLocationSupport                     158
+
+#define KFeatureIdChinese                                   1096
+
+#define KFeatureIdChinesePrcFonts                           1133
+
+#define KFeatureIdChineseTaiwanHkFonts                      1134
+
+#define KFeatureIdCommDBProtection                          1507
+
+#define KFeatureIdCoverDisplay                              3
+
+#define KFeatureIdCsVideoTelephony                          89
+
+#define KFeatureIdCustomisedRFS                             1670
+
+#define KFeatureIdDefaultConnection                         1693
+
+#define KFeatureIdDrm                                       91
+
+#define KFeatureIdDrmClock                                  96
+
+#define KFeatureIdDrmFull                                   93
+
+#define KFeatureIdDrmOma2                                   98
+
+#define KFeatureIdDrmPhase2                                 95
+
+#define KFeatureIdEditKey                                   1672
+
+#define KFeatureIdEmailOverSms                              1092
+
+#define KFeatureIdEqualizer                                 1502
+
+#define KFeatureIdFlashLiteBrowserPlugin                    1146
+
+#define KFeatureIdFlashLiteViewer                           1145
+
+#define KFeatureIdFmRadio                                   5
+
+#define KFeatureIdHandwritingRecognitionInput               1604
+
+#define KFeatureIdHsxpaSupport                              1666
+
+#define KFeatureIdIm                                        33
+
+#define KFeatureIdImageViewer                               1682
+
+#define KFeatureIdImpsStandaloneIpCir                       34
+
+#define KFeatureIdIncludeAacCMMFCodec                       492
+
+#define KFeatureIdIncludeAmrNbCMMFCodec                     289
+
+#define KFeatureIdIncludeAmrWbCMMFCodec                     491
+
+#define KFeatureIdIncludeEaacplusCmmfcodec                  1521
+
+#define KFeatureIdIncludeMp3CMMFCodec                       493
+
+#define KFeatureIdIncludeQcelpCMMFCodec                     494
+
+#define KFeatureIdIpsec                                     102
+
+#define KFeatureIdIrda                                      11
+
+#define KFeatureIdJapanese                                  1080
+
+#define KFeatureIdJapaneseLargerDictionary                  1517
+
+#define KFeatureIdJapanesePicto                             1079
+
+#define KFeatureIdJapanPrefixChange                         1131
+
+#define KFeatureIdJava                                      1687
+
+#define KFeatureIdJavaStubs                                 1688
+
+#define KFeatureIdLayout208_208                             1124
+
+#define KFeatureIdLayout240_320                             1125
+
+#define KFeatureIdLayout240_320_LargeScreen                 1621
+
+#define KFeatureIdLayout240_320_QVGA3                       1677
+
+#define KFeatureIdLayout320_240                             1126
+
+#define KFeatureIdLayout320_240_LargeScreen                 1622
+
+#define KFeatureIdLayout320_240_QVGA3                       1678
+
+#define KFeatureIdLayout360_640_Touch                       1701
+
+#define KFeatureIdLayout640_360_Touch                       1700
+
+#define KFeatureIdLocationGpsHw                             1138
+
+#define KFeatureIdLocationCentre                            1702
+
+#define KFeatureIdMacromediaFlash6                          79
+
+#define KFeatureIdMediaTransferProtocol                     1697
+
+#define KFeatureIdMmsNonDestructiveForward                  242
+
+#define KFeatureIdMMSNotificationsView                      1132
+
+#define KFeatureIdMmsPostcard                               1509
+
+#define KFeatureIdMpegAacEncoding                           282
+
+#define KFeatureIdMpeg4VideoEncoding                        80
+
+#define KFeatureIdMrtSdkLibraries                           1663
+
+#define KFeatureIdMtpProtocolSupport                        504
+
+#define KFeatureIdNewsticker                                166
+
+#define KFeatureIdNoPowerkey                                1639
+
+#define KFeatureIdOcr                                       1593
+
+#define KFeatureIdOcrHanwang                                1594
+
+#define KFeatureIdOcrRomdb                                  1595
+
+#define KFeatureIdOmaPoc                                    1538
+
+#define KFeatureIdOnScreenDialer                            1696
+
+#define KFeatureIdOpenGLES3DApi                             10
+
+#define KFeatureIdOpenGLESSWImplementation                  210
+
+#define KFeatureIdOperatorCache                             1071
+
+#define KFeatureIdOperatorMenu                              1058
+
+#define KFeatureIdPenSupport                                410
+
+#define KFeatureIdPenSupportCalibration                     1658
+
+#define KFeatureIdPresence                                  36
+
+#define KFeatureIdProductRemconTsp                          1689
+
+#define KFeatureIdProtocolWcdma                             82
+
+#define KFeatureIdProtocolWlan                              109
+
+#define KFeatureIdQos                                       101
+
+#define KFeatureIdQvga2LayoutInUse                          1596
+
+#define KFeatureIdQwertyInput                               409
+
+#define KFeatureIdRssFeeds                                  167
+
+#define KFeatureIdRtpStack                                  1589
+
+#define KFeatureIdRV9                                       1094
+
+#define KFeatureIdS60FmRadioApplication                     1539
+
+#define KFeatureIdSdnd                                      283
+
+#define KFeatureIdSenduiMmsUpload                           1135
+
+#define KFeatureIdSendFileInCall                            1087
+
+#define KFeatureIdAmbientLightSensor                        1529
+
+#define KFeatureIdHelp                                      1012
+
+#define KFeatureIdKeypadNoSlider                            1013
+
+#define KFeatureIdKeypadNoVoiceKey                          1014
+
+#define KFeatureIdLunarCalendar                             1017
+
+#define KFeatureIdSeries60NativeBrowser                     168
+
+#define KFeatureIdPhoneTty                                  1032
+
+#define KFeatureIdShowPanics                                1075
+
+#define KFeatureIdSideVolumeKeys                            207
+
+#define KFeatureIdSind                                      72
+
+#define KFeatureIdSipSimplePresenceProtocol                 1635
+
+#define KFeatureIdSlideshowScreensaver                      1676
+
+#define KFeatureIdStereoWideningEffectUi                    1674
+
+#define KFeatureIdSvgtViewer                                1139
+
+#define KFeatureIdSyncMlDmDiagnostics                       1681
+
+#define KFeatureIdSyncMlDmFota                              58
+
+#define KFeatureIdSyncMlDmImps                              57
+
+#define KFeatureIdSyncMlDmObex                              54
+
+#define KFeatureIdSyncMlDmOta                               1679
+
+#define KFeatureIdSyncMlDmSIP                               60
+
+#define KFeatureIdSyncMlDmVoIP                              59
+
+#define KFeatureIdSyncMlDmWlan                              55
+
+#define KFeatureIdSyncMlDsBookmark                          1706
+
+#define KFeatureIdSyncMlDsMMS                               43
+
+#define KFeatureIdSyncMlDsNotepad                           53
+
+#define KFeatureIdSyncMlDsSms                               1599
+
+#define KFeatureIdSyncMlIsync                               1680
+
+#define KFeatureIdSyncMlTwinSuite                           1675
+
+#define KFeatureIdThai                                      1081
+
+#define KFeatureIdThaiCalendar                              1646
+
+#define KFeatureIdTvOut                                     1540
+
+#define KFeatureIdUpnpAvcp                                  1533
+
+#define KFeatureIdUpnpMediaserver                           1661
+
+#define KFeatureIdUpnpPrintFramework                        1535
+
+#define KFeatureIdUpnpRemoteStorage                         1536
+
+#define KFeatureIdUpnpStack                                 1528
+
+#define KFeatureIdUseAacCMMFCodec                           286
+
+#define KFeatureIdUseAmrNbCMMFCodec                         284
+
+#define KFeatureIdUseAmrWbCMMFCodec                         285
+
+#define KFeatureIdUseEaacplusCmmfCodec                      1522
+
+#define KFeatureIdUseMp3CMMFCodec                           287
+
+#define KFeatureIdUseQcelpCMMFCodec                         288
+
+#define KFeatureIdVfpHwSupport                              1669
+
+#define KFeatureIdVibra                                     411
+
+#define KFeatureIdVideocallMenuVisibility                   1519
+
+#define KFeatureIdVideoCenterSupported                      1698
+
+#define KFeatureIdVideoRecorder                             208
+
+#define KFeatureIdVirtualKeyboardInput                      1603
+
+#define KFeatureIdWebWidgets                                1691
+
+#define KFeatureIdWlanWep256Enabled                         1530
+
+#define KFeatureIdWma                                       503
+
+#define KFeatureIdWorldClock                                1098
+
+#define KFeatureIdXdm                                       1523
+
+#define KFeatureIdXdmLocalStorage                           1525
+
+#define KFeatureIdXdmXcap                                   1524
+
+/** Features added from customswruntimeids.hrh (removed from customswruntimeids.hrh)  */
+
+#define KFeatureIdFfMtpAlbumArt                             5229
+
+#define KFeatureIdFfMusicPathPlugin                         5232
+
+#define KFeatureIdFfPowerKeyAsKeyguard                      5243
+
+#define KFeatureIdFfDisplayNetworkNameAfterCsRegistration   5217
+
+#define KFeatureIdFfManualSelectionPopulatedPlmnList        5184
+
+#define KFeatureIdFfMobilityManagementErrors                5228
+
+#define KFeatureIdFfServiceCallWhilePhoneLocked             5198
+
+#define KFeatureIdFfLocationsysuiHidePositioningMenu        5224
+
+#define KFeatureIdFfMasterResetAndClearSubmenu              5195
+
+#define KFeatureIdFfSimlockUi                               5197
+
+#define KFeatureIdFfEntryPointForVideoShare                 5225
+
+#define KFeatureIdFfImsDeregistrationInOffline              5230
+
+#define KFeatureIdFfImsDeregistrationInRfs                  5231
+
+#define KFeatureIdFfImsDeregistrationInVpn                  5209
+
+#define KFeatureIdFfIntranetBrowsing                        5109
+
+#define KFeatureIdProductIncludesHomeScreenEasyDialing      5085
+
+#endif // __PUBLICRUNTIMEIDS_HRH
--- a/idlefw/plugins/devicestatus/src/aibtsappublisher.cpp	Tue Apr 13 15:16:23 2010 +0300
+++ b/idlefw/plugins/devicestatus/src/aibtsappublisher.cpp	Tue Apr 13 19:36:31 2010 +0200
@@ -22,6 +22,9 @@
 #include <BTSapDomainPSKeys.h>
 #include <StringLoader.h>
 #include <featmgr.h>
+
+#include <publicruntimeids.hrh>
+
 #include "aibtsappublisher.h"
 #include "aiprioritizer.h"
 #include "ainwidpriorities.h"
--- a/idlefw/plugins/mcsplugin/settings/src/mcspluginsettings.cpp	Tue Apr 13 15:16:23 2010 +0300
+++ b/idlefw/plugins/mcsplugin/settings/src/mcspluginsettings.cpp	Tue Apr 13 19:36:31 2010 +0200
@@ -32,6 +32,8 @@
 #include <mcspluginsettingsres.rsg>
 #include <aisystemuids.hrh>
 
+#include <publicruntimeids.hrh>
+
 #include "mcspluginsettings.hrh"
 #include "mcspluginsettings.h"
 #include "mcspluginsettingscontainer.h"