--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/BTSapDomainPSKeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* 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:
+*
+*/
+#ifndef __BTSAP_DOMAIN_PS_KEYS_H__
+#define __BTSAP_DOMAIN_PS_KEYS_H__
+
+const TUid KPSUidBluetoothSapConnectionState = {0x10204DB1};
+
+/**
+* Information about the state of the BTSap connection
+*
+* Possible integer values:
+* 0 (EBTSapNotConnected) Not connected
+* 1 (EBTSapConnecting) Connection under negotiation
+* 2 (EBTSapConnected) Connected
+*
+* Default value: 0 (EBTSapNotConnected)
+*
+* (Shared data key: KSapState)
+*/
+const TUint KBTSapConnectionState = 0x00000001;
+
+// Enumeration that defines the different SAP connection states
+enum TBTSapState
+ {
+ EBTSapNotConnected = 0,
+ EBTSapConnecting = 1,
+ EBTSapConnected = 2,
+ EBTSapAccepted = 3,
+ EBTSapRejected = 4
+ };
+
+#endif // __BTSAP_DOMAIN_PS_KEYS_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/BTSapInternalPSKeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,22 @@
+/*
+* 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:
+*
+*/
+#ifndef __BTSAP_INTERNAL_PS_KEYS_H__
+#define __BTSAP_INTERNAL_PS_KEYS_H__
+
+#include "BTSapDomainPSKeys.h"
+
+#endif // __BTSAP_INTERNAL_PS_KEYS_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/CommonEngineDomainCRKeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2004-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: Domain Central Repository key definitions for
+* CommonEngine subsystem
+*
+*/
+
+
+#ifndef COMMONENGINEDOMAINCRKEYS_H
+#define COMMONENGINEDOMAINCRKEYS_H
+
+
+// INCLUDES
+#include <e32std.h>
+
+// =============================================================================
+// General CR API for publishing CR keys needed in base services
+// =============================================================================
+
+const TUid KCRUidCommonEngineKeys = {0x1020503B};
+
+/**
+* Display Text Language, integer value
+*
+* Possible values are:
+* 0 (automatic)
+* Valid Symbian OS language code
+*
+* Default value: 0
+**/
+const TUint32 KGSDisplayTxtLang = 0x00000001;
+
+#endif // COMMONENGINEDOMAINCRKEYS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ETELEXT.H Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,144 @@
+// Copyright (c) 1997-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:
+//
+
+
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#ifndef __ETELEXT_H__
+#define __ETELEXT_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif // __E32BASE_H__
+
+//
+// TEtelDataPackageType
+// Data package description that passing between client to Server
+// specified in p[1]
+//
+enum TEtelDataPackageType
+ {
+ EIsaNull =0,
+ EIsaDesTobeSet =1,
+ EIsaDesTobeRead =2,
+ EIsaDoubleDesTobeSet =3,
+ EIsaDoubleDesTobeRead =4,
+ EIsaCancelMessage =5,
+ EIsaCancelSubSession =6,
+ EIsaNarrowAndUnicodeDoubleDesTobeSet = 7, // narrow comes first then unicode
+ EIsaNarrowAndUnicodeDoubleDesTobeRead = 8,
+ EIsaNarrowDesToSetAndGet = 9,
+ EIsaNarrowDesToGetUnicodeDesToSet = 10,
+ EIsaUnicodeDesToSetAndGet = 11,
+ EIsaUnicodeDesToGetNarrowDesToSet = 12,
+
+ EIsaUnicodeDesTobeSet =0x0101,
+ EIsaUnicodeDesTobeRead = 0x0102,
+ EIsaUnicodeDoubleDesTobeSet =0x0103,
+ EIsaUnicodeDoubleDesTobeRead =0x0104,
+
+ EIsPriorityClientReqWithNull =0x1000,
+ EIsPriorityClientReqWithaDesTobeSet =0x1001,
+ EIsPriorityClientReqWithaDesTobeRead =0x1002,
+ EIsPriorityClientReqWithaDoubleDesTobeSet =0x1003,
+ EIsPriorityClientReqWithaDoubleDesTobeRead =0x1004,
+ EIsPriorityClientReqWithaNarrowAndUnicodeDoubleDesTobeSet = 0x1007,
+ EIsPriorityClientReqWithaNarrowAndUnicodeDoubleDesTobeRead = 0x1008,
+ EIsPriorityClientReqWithaNarrowDesToSetAndGet = 0x1009,
+ EIsPriorityClientReqWithaNarrowDesToGetUnicodeDesToSet = 0x1010,
+ EIsPriorityClientReqWithaUnicodeDesToSetAndGet = 0x1011,
+ EIsPriorityClientReqWithaDesToGetNarrowDesToSet = 0x1012,
+
+ EIsPriorityClientReqWithaUnicodeDesTobeSet =0x1101,
+ EIsPriorityClientReqWithaUnicodeDesTobeRead = 0x1102,
+ EIsPriorityClientReqWithaUnicodeDoubleDesTobeSet = 0x1103,
+ EIsPriorityClientReqWithaUnicodeDoubleDesTobeRead = 0x1104
+ };
+
+const TInt KUnicodeReq =0x0100;
+const TInt KPriorityClientReq =0x1000;
+const TInt KEmergencyClientReq =0x1000;
+
+/**
+ETel Panics
+*/
+enum TEtelPanic
+ {
+ EEtelPanicBadPhoneHandle, // 0
+ EEtelPanicBadDescriptor, // 1
+ EEtelPanicInvalidRequestType, // 2
+ EEtelPanicRequestAsyncTwice, // 3
+ EEtelPanicBadSubSessionHandle, // 4
+ EEtelPanicZeroLengthDes, // 5
+ EEtelPanicDesLengthNegative, // 6
+ EEtelPanicNullPtrArray, // 7
+ EEtelPanicNullHandle, // 8
+ EEtelPanicHandleNotOpen, // 9
+ EEtelPanicIndexOutOfRange, // 10
+ EEtelPanicHandleNotClosed, // 11
+ EEtelPanicBadCallGroupType, // 12
+ EEtelPanicBadName, // 13
+ EEtelPanicExceededAllowedNoOfEmergencyClientSessions //14
+ };
+
+/**
+ETel Faults
+*/
+enum TEtelFault
+ {
+ EEtelFaultMainSchedulerError, // 0
+ EEtelFaultSvrCreateServer, // 1
+ EEtelFaultSvrStartServer, // 2
+ EEtelFaultCommServerNotRunning, // 3
+ EEtelFaultCreateTrapCleanup, // 4
+ EEtelFaultCompletionReceivedWithNoReqPackage, // 5
+ EEtelFaultWaitingReqLostCObject, // 6
+ EEtelFaultCompleteReqWithoutReqEntry, // 7
+ EETelFaultRequestWithoutBuffer, // 8
+ EEtelFaultCallTsyServiceWithoutReqPackage, // 9
+ EEtelFaultMessageTypeCorrupted, // 10
+ EEtelFaultNotRecognisedTsyHandle, // 11
+ EEtelFaultInvalidIpcForCancel, // 12
+ EEtelFaultCanNotRelinquishOwnership, // 13
+ EEtelFaultBadTelSessionPointer, // 14
+ EEtelFaultBadSubSessionHandle, // 15
+ EEtelFaultBadPhoneFactoryPointer, // 16
+ EEtelFaultBadPhonePointer, // 17
+ EEtelFaultBadTelObjectPointer, // 18
+ EEtelFaultDes1DoesNotExist, // 19
+ EEtelFaultDes2DoesNotExist, // 20
+ EEtelFaultNegativeFlowcontrolCount, // 21
+ EEtelFaultNegativeSessionCount, // 22
+ EEtelFaultNegativeActiveReqCount, // 23
+ EEtelFaultBadMessageType, // 24
+ EEtelFaultClientNotPostedNotification, // 25
+ EEtelFaultUpdatingBufferOfDifferentIpc, // 26
+ EEtelFaultUpdatingIdenticalBuffer, // 27
+ EEtelFaultMaxDesLengthNegative, // 28
+ EEtelFaultPreviousReqNonNull, // 29
+ EEtelFaultNullBooleanArrayPointer, // 30
+ EEtelFaultCancelErrorWithoutCancelled, // 31
+ };
+
+#define ETEL_SERVER_NAME _L("!EtelServer") // EKA2 Server names need a "!" prepended
+
+#define ETEL_SERVER_START_SEQUENCE 5
+
+#endif // __ETELEXT_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ET_CLSVR.H Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,243 @@
+// Copyright (c) 1997-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:
+// This version of the file contains the reordered version of the IPC table for the purpose
+// of having a more efficient policy table as part of the platform security framework.
+// Previously IPCs were ordered by functional area and now they are ordered by the capability
+// associated with them.
+// All IPCs policed with SIDs should be added here.
+//
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#if !defined (__ET_CLISVR_H__)
+#define __ET_CLISVR_H__
+
+#define IPC_ETEL_CORE (0)
+
+/**
+Used by extension APIs to offset their cancel IPC values
+*/
+#define EMobileCancelOffset 500
+
+//
+// None
+//
+enum
+ {
+ EEtelOpenFromSession = 0, // 0
+ EEtelOpenFromSubSession, // 1
+ EEtelOpenByNameFromSession, // 2
+ EEtelOpenByNameFromSubSession, // 3
+ EEtelClose, // 4
+ EEtelCancelSubSession, // 5
+ EETelLineCapsChangeNotification, // 6
+ EETelLineCapsChangeNotificationCancel, // 7
+ EETelPhoneCapsChangeNotification, // 8
+ EETelPhoneCapsChangeNotificationCancel, // 9
+ EEtelCallCapsChangeNotification, // 10
+ EEtelCallCapsChangeNotificationCancel, // 11
+ EEtelCallGetBearerServiceInfo, // 12
+ EEtelCallGetCallDuration, // 13
+ EEtelCallGetCallParams, // 14
+ EEtelCallGetCaps, // 15
+ EEtelCallGetFaxSettings, // 16
+ EEtelCallGetInfo, // 17
+ EEtelCallGetOwnershipStatus, // 18
+ EEtelCallGetStatus, // 19
+ EEtelCallNotifyDurationChange, // 20
+ EEtelCallNotifyDurationChangeCancel, // 21
+ EEtelCallNotifyHookChange, // 22
+ EEtelCallNotifyHookChangeCancel, // 23
+ EEtelCallNotifyStatusChange, // 24
+ EEtelCallNotifyStatusChangeCancel, // 25
+ EEtelCallReferenceCount, // 26
+ EEtelDbgCheckHeap, // 27
+ EEtelDbgDoDumpDebugInfo, // 28
+ EEtelDbgFailNext, // 29
+ EEtelDbgMarkEnd, // 30
+ EEtelDbgMarkHeap, // 31
+ EEtelDbgSetDebugPrintMask, // 32
+ EEtelFaxWaitForEndOfPage, // 33
+ EEtelLineEnumerateCall, // 34
+ EEtelLineGetCallInfo, // 35
+ EEtelLineGetCaps, // 36
+ EEtelLineGetHookStatus, // 37
+ EEtelLineGetInfo, // 38
+ EEtelLineGetStatus, // 39
+ EEtelLineNotifyCallAdded, // 40
+ EEtelLineNotifyCallAddedCancel, // 41
+ EEtelLineNotifyHookChange, // 42
+ EEtelLineNotifyHookChangeCancel, // 43
+ EEtelLineNotifyStatusChange, // 44
+ EEtelLineNotifyStatusChangeCancel, // 45
+ EEtelPhoneEnumerateLines, // 46
+ EEtelPhoneGetCaps, // 47
+ EEtelPhoneGetInfo, // 48
+ EEtelPhoneGetLineInfo, // 49
+ EEtelPhoneGetStatus, // 50
+ EEtelPhoneNotifyModemDetected, // 51
+ EEtelPhoneNotifyModemDetectedCancel, // 52
+ EEtelServerClosePhoneModule, // 53
+ EEtelServerEnumeratePhones, // 54
+ EEtelServerGetTsyName, // 55
+ EEtelServerGetTsyVersionNo, // 56
+ EEtelServerLoadPhoneModule, // 57
+ EEtelServerOpen, // 58
+ EEtelServerPhoneInfoByIndex, // 59
+ EEtelServerQueryTsyFunctionality, // 60
+ EEtelServerSetExtendedErrorGranularity // 61
+ };
+
+//
+// NetworkServices
+//
+enum
+ {
+ EEtelAdoptFaxSharedHeaderFile = 62, // 62
+ EEtelCallAcquireOwnership, // 63
+ EEtelCallAcquireOwnershipCancel, // 64
+ EEtelCallConnect, // 65
+ EEtelCallConnectCancel, // 66
+ EEtelCallHangUp, // 67
+ EEtelCallHangUpCancel, // 68
+ EEtelCallTransferOwnership, // 69
+ EEtelFaxTerminateFaxSession, // 70
+ EEtelLineNotifyIncomingCall, // 71
+ EEtelLineNotifyIncomingCallCancel // 72
+ };
+
+//
+// WriteDeviceData
+//
+enum
+ {
+ EEtelCallSetFaxSettings = 73, // 73
+ };
+
+//
+// NetworkControl
+//
+enum
+ {
+ EEtelGlobalKernelObjectHandle = 74, // 74
+ };
+
+//
+// None
+//
+enum
+ {
+ EEtelPhoneInitialise = 75, // 75
+ EEtelPhoneInitialiseCancel, // 76
+ };
+
+//
+// NetworkControl + SID
+//
+enum
+ {
+ EEtelServerSetPriorityClient = 77, // 77
+ };
+
+//
+// NetworkControl NetworkServices
+//
+enum
+ {
+ EEtelCallAnswer = 78, // 78
+ EEtelCallAnswerCancel, // 79
+ EEtelCallDial, // 80
+ EEtelCallDialCancel, // 81
+ EEtelCallLoanDataPort, // 82
+ EEtelCallLoanDataPortCancel, // 83
+ EEtelCallRecoverDataPort // 84
+ };
+
+//
+// NetworkServices ReadUserData
+//
+enum
+ {
+ EEtelFaxRead = 85, // 85
+ };
+
+//
+// NetworkServices WriteUserData
+//
+enum
+ {
+ EEtelFaxWrite = 86, // 86
+ };
+
+//
+// None
+//
+enum
+ {
+ EEtelDbgFailNextAvail = 87, //87
+ };
+
+//
+// WriteDeviceData
+//
+enum
+ {
+ EETelPhoneSetEmergencyClient = 88, // 88
+ };
+
+//
+// SID
+//
+enum
+ {
+ EEtelOpenFromSubSessionLcs = 89, // 89
+ };
+
+//
+// NetworkControl + SID
+//
+enum
+ {
+ EEtelServerSetPriorityClientV2 = 90, // 90
+ };
+
+
+//
+// NetworkServices NetworkControl SID
+//
+enum
+ {
+ EMobileCallDialCallControl = 91 // 91
+ };
+
+//
+// None
+//
+enum
+ {
+ EEtelFlushInterfaceQueue = 92 // 92
+ };
+
+enum
+ {
+ EMobileCallDialCallControlCancel = EMobileCallDialCallControl + EMobileCancelOffset // 591
+ };
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/PSVariables.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* 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: Event enumerations and UIDs of Publish And Subscribe. PubSub
+* clients can include this file and listen to these events.
+* These events will be routed through Publish And Subscribe.
+*
+*/
+
+
+#ifndef __PSVARIABLES_H__
+#define __PSVARIABLES_H__
+
+// INCLUDES
+#include <e32cmn.h>
+
+// CONSTANTS
+
+/**
+ * First value of each enumeration
+ */
+const TInt KEnumerationFirstValue = 0;
+
+/**
+ * GPRS availability. Indicates wheter GPRS is available or not
+ *
+ * Possible values:
+ * - EPSGprsAvailable GPRS network is available
+ * - EPSGprsNotAvailable GPRS netwotk is not available
+ * - EPSGprsAvailabilityUnknown GPRS network availability is not known
+ *
+ * Usage for requesting event notifications:
+ * @code
+ * void MyClass::RequestNotifications()
+ * {
+ * RProperty::Attach( KUidSystemCategory, KPSUidGprsAvailabilityValue );
+ * RProperty::Subscribe( iStatus ); // From CActive
+ * SetActive();
+ * }
+ *
+ * void MyClass::RunL()
+ * {
+ * TInt gprsAvailability( EPSGprsAvailabilityUninitialized );
+ * RProperty::Get( KUidSystemCategory,
+ * KPSUidGprsAvailabilityValue,
+ * gprsAvailability );
+ * //gprsAvailability contains current value of GPRS network availability
+ * }
+ * @endcode
+ */
+const TInt KPSUidGprsAvailabilityValue = 0x100052DA;
+const TUid KPSUidGprsAvailability = {KPSUidGprsAvailabilityValue};
+
+enum EPSGprsAvailability
+ {
+ EPSGprsAvailabilityUninitialized = KEnumerationFirstValue,
+ EPSGprsAvailable,
+ EPSGprsNotAvailable,
+ EPSGprsAvailabilityUnknown
+ };
+
+/**
+ * Current GPRS connection status. Indicates current status of GPRS network
+ *
+ * Possible values:
+ * - EPSGprsUnattached Not attached to GPRS network
+ * - EPSGprsAttach Attached to GPRS network
+ * - EPSGprsContextActive One context active on GPRS network
+ * - EPSGprsSuspend GPRS network suspended but not closed
+ * - EPSGprsContextActivating GPRS context activating but not yet active
+ * - EPSGprsMultibleContextActive Multiple active contexts on GPRS network
+ *
+ * Usage for requesting event notifications:
+ * @code
+ * void MyClass::RequestNotifications()
+ * {
+ * RProperty::Attach( KUidSystemCategory, KPSUidGprsStatusValue );
+ * RProperty::Subscribe( iStatus ); // From CActive
+ * SetActive();
+ * }
+ *
+ * void MyClass::RunL()
+ * {
+ * TInt gprsStatus( EPSGprsStatusUninitialized );
+ * RProperty::Get( KUidSystemCategory,
+ * KPSUidGprsStatusValue,
+ * gprsStatus );
+ * //gprsStatus contains current value of GPRS network status
+ * }
+ * @endcode
+ */
+const TInt KPSUidGprsStatusValue = 0x100052DB;
+const TUid KPSUidGprsStatus = {KPSUidGprsStatusValue};
+enum EPSGprsStatus
+ {
+ EPSGprsStatusUninitialized = KEnumerationFirstValue,
+ EPSGprsUnattached,
+ EPSGprsAttach,
+ EPSGprsContextActive,
+ EPSGprsSuspend,
+ EPSGprsContextActivating,
+ EPSGprsMultibleContextActive
+ };
+
+/**
+ * Current WCDMA connection status. Indicates current status of WCDMA network
+ *
+ * Possible values:
+ * - EPSWcdmaUnattached Not attached to WCDMA network
+ * - EPSWcdmaAttach Attached to WCDMA network
+ * - EPSWcdmaContextActive One context active on WCDMA network
+ * - EPSWcdmaSuspend WCDMA network suspended but not closed
+ * - EPSWcdmaContextActivating WCDMA context activating but not active
+ * - EPSWcdmaMultibleContextActive Multiple active contexts on WCDMA network
+ *
+ * Usage for requesting event notifications:
+ * @code
+ * void MyClass::RequestNotifications()
+ * {
+ * RProperty::Attach( KUidSystemCategory, KPSUidWcdmaStatusValue );
+ * RProperty::Subscribe( iStatus ); // From CActive
+ * SetActive();
+ * }
+ *
+ * void MyClass::RunL()
+ * {
+ * TInt wcdmaStatus( EPSWcdmaStatusUninitialized );
+ * RProperty::Get( KUidSystemCategory,
+ * KPSUidWcdmaStatusValue,
+ * wcdmaStatus );
+ * //wcdmaStatus contains current value of WCDMA network status
+ * }
+ * @endcode
+ */
+const TInt KPSUidWcdmaStatusValue = 0x100052FF;
+const TUid KPSUidWcdmaStatus = {KPSUidWcdmaStatusValue};
+enum EPSWcdmaStatus
+ {
+ EPSWcdmaStatusUninitialized = KEnumerationFirstValue,
+ EPSWcdmaUnattached,
+ EPSWcdmaAttach,
+ EPSWcdmaContextActive,
+ EPSWcdmaSuspend,
+ EPSWcdmaContextActivating,
+ EPSWcdmaMultipleContextActive
+ };
+
+#endif // __PSVARIABLES_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/RMmCustomAPI.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,2734 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @deprecated
+*/
+#ifndef RMMCUSTOMAPI_H
+#define RMMCUSTOMAPI_H
+
+// INCLUDES
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <etelpckt.h>
+
+// CONSTANTS
+const TInt KIpcCustomExt = 1000000;
+const TInt KIpcCustomMaxLimi = 1000299;
+const TInt KIpcCustomAPIExtensionExt = 1000450;
+
+_LIT(KCustomAPIName,"CUSTOMAPI");
+_LIT(KTerminateAllCalls,"ALL_CALLS");
+const TInt KSimLockMaxPasswordSize = 15;
+const TInt KSimCbTopicNameLength = 20;
+const TInt KSubAddressSize = 20;
+const TInt KBearerCapabilitySize = 14;
+
+// alpha tag length is 124
+const TInt KMaxOperatorNameLength = 124;
+// max length of operator length
+const TInt KMaxOperatorLogoLength = 6405;
+
+const TUint16 KFlexibleNameSeparator = 0x007C; // '|'
+const TUint8 KFlexibleLongNameMaxLength = 30;
+const TUint8 KFlexibleShortNameMaxLength = 20;
+
+// Sim file definitions
+const TUint8 KSimFilePathLength = 8;
+const TUint16 KSimFileMaxLength = 0xFFFF;
+
+// Viag HomeZone setting flags
+const TUint8 KUHziUeActive = 0x00001;
+const TUint8 HCbHziUeActive = 0x00002;
+
+// ADPU buffer maximum length 258 according to
+// ISI ADPU server description
+typedef TBuf8<258> TApduBuffer;
+
+// PDP context activation failure in case of APN not in EFACL
+const TInt KErrPacketDataTsyInvalidAPN = -6001;
+
+// Cell info constant
+const TInt KMaxTimeSlotIscpAmount = 1; //14; Changed from 14 to 1. Memory problem!!
+const TInt KMaxCellMeasuredResults = 32;
+const TInt KMaxNetworkMeasureReports = 8;
+const TInt KMaxNmrAmount = 15;
+
+// DATA TYPES
+/** Enumerates IPC values used by Custom API. */
+enum TCustomIPC
+ {
+ /** Notify ss additional info */
+ ECustomSsAdditionalInfoNotificationIPC = KIpcCustomExt, //1000000
+ /** Notify ss request complete */
+ ECustomNotifySsRequestCompleteIPC, //1000001
+ /** Cancel USSD session */
+ ECustomCancelUssdSessionIPC, //1000002
+ /** Start SIM CB topic browsing */
+ ECustomStartSimCbTopicBrowsingIPC, //1000003
+ /** Get next SIM CB topic */
+ ECustomGetNextSimCbTopicIPC, //1000004
+ /** Delete SIM DB topic */
+ ECustomDeleteSimCbTopicIPC, //1000005
+ /** Read SIM File */
+ ECustomReadSimFileIPC, //1000006
+ /** Get wlan sim authentication data */
+ ECustomGetSimAuthenticationDataIPC, //1000007
+ /** Set SIM SMS to "read" */
+ ECustomSetSimMessageStatusReadIPC, //1000008
+ /** Notify Dtmf event */
+ ECustomNotifyDtmfEventIPC, //1000009
+ /** Get Diagnostic Octets */
+ ECustomGetDiagnosticOctetsIPC, //1000010
+ /** Set Als Blocked */
+ ECustomSetAlsBlockedIPC, //1000011
+ /** Get Als Blocked */
+ ECustomGetAlsBlockedIPC, //1000012
+ /** Check Als Pp Support */
+ ECustomCheckAlsPpSupportIPC, //1000013
+ /** Remote Alerting Tone Status */
+ ECustomGetRemoteAlertingToneStatusIPC, //1000014
+ /** Call Origin */
+ ECustomCallOriginIPC, //1000015
+ /** Notify Als Blocked Change */
+ ECustomNotifyAlsBlockedChangedIPC, //1000016
+ /** Terminate a Call */
+ ECustomTerminateCallIPC, //1000017
+ /** Clear call blacklist */
+ ECustomClearCallBlackListIPC, //1000018
+ /** Read HSxPA Status */
+ ECustomReadHSxPAStatusIPC, //1000019
+ /** Write HSxPA Status */
+ ECustomWriteHSxPAStatusIPC, //1000020
+ /** Notify HSxPA Status change */
+ ECustomNotifyHSxPAStatusIPC, //1000021
+ /** Get cell(s) info */
+ ECustomGetCellInfoIPC, //1000022
+ /** Notify cell(s) info change */
+ ECustomNotifyCellInfoChangeIPC, //1000023
+ /** Activate SIM Lock */
+ ECustomSimLockActivateIPC, //1000024
+ /** Deactivate SIM Lock */
+ ECustomSimLockDeActivateIPC, //1000025
+ /** Read VIAG Home Zone Parameters */
+ EReadViagHomeZoneParamsIPC, //1000026
+ /** Read VIAG Home Zone Cache */
+ EReadViagHomeZoneCacheIPC, //1000027
+ /** Write VIAG Home Zone Cache */
+ EWriteViagHomeZoneCacheIPC, //1000028
+ /** Get ciphering information */
+ ECustomGetCipheringInfoIPC, //1000029
+ /** Notify ciphering information */
+ ECustomNotifyCipheringInfoChangeIPC, //1000030
+ /** Notify NSPS status */
+ ECustomNotifyNSPSStatusIPC, //1000031
+ /** Wake net from NSPS */
+ ECustomNetWakeupIPC, //1000032
+ /** Get network provider name */
+ ECustomGetNetworkProviderNameIPC, //1000033
+ /** Get operator name */
+ ECustomGetOperatorNameIPC, //1000034
+ /** Get programmable operator logo */
+ ECustomGetProgrammableOperatorLogoIPC, //1000035
+ /** Reset the net server */
+ ECustomResetNetServerIPC, //1000036
+ /** Notify programmable operator logo change */
+ ECustomNotifyProgrammableOperatorLogoChangeIPC, //1000037
+ /** Notify network connection failure */
+ ECustomNotifyNetworkConnectionFailureIPC, //1000038
+ /** Get Air time duration */
+ ECustomGetAirTimeDurationIPC, //1000039
+ /** Notify phonebook cache ready */
+ ECustomNotifyPndCacheReadyIPC, //1000040
+ /** Get phonebook cache status */
+ ECustomGetPndCacheStatusIPC, //1000041
+ /** Notify SS network event */
+ ECustomNotifySsNetworkEventIPC, //1000042
+ /** Check two digit dial support */
+ ECustomCheckTwoDigitDialSupportIPC, //1000043
+ /** Send APDU request */
+ ECustomSendAPDUReqIPC, //1000044
+ /** Get the life timer's info */
+ ECustomGetLifeTimeIPC, //1000045
+ /** Power SIM on */
+ ECustomPowerSimOnIPC, //1000046
+ /** Power SIM off */
+ ECustomPowerSimOffIPC, //1000047
+ /** Perform SIM warm reset */
+ ECustomSimWarmResetIPC, //1000048
+ /** Get Answer To Reset */
+ ECustomGetATRIPC, //1000049
+ /** Send APDU */
+ ECustomSendAPDUReqV2IPC, //1000050
+ /** Get SIM card reader status */
+ ECustomGetSimCardReaderStatusIPC, //1000051
+ /** Notify SIM card status */
+ ECustomNotifySimCardStatusIPC, //1000052
+ /** Set Drive Mode status */
+ ECustomSetDriveModeIPC, //1000053
+ /** Check if security code is blocked or not */
+ ECustomIsBlockedIPC, //1000054
+ /** Check security code */
+ ECustomCheckSecurityCodeIPC, //1000055
+ /** Check emergency number */
+ ECustomCheckEmergencyNumberIPC, //1000056
+ /** SAT refresh complete notification */
+ ECustomSatRefreshCompleteNotificationIPC, //1000057
+ /** Disable phone lock */
+ ECustomDisablePhoneLockIPC, //1000058
+ /** Get currently active PIN */
+ ECustomGetActivePinIPC, //1000059
+ /** Release CommDB file */
+ ECustomReleaseFileIPC, //1000060
+ /** Restart reading CommDB */
+ ECustomRestartFileIPC, //1000061
+ /** Notify GPRS connection change */
+ ECustomNotifyEGprsInfoChange, //1000062
+ /** Get GPRS connection information */
+ ECustomGetEGprsInfo, //1000063
+ /** Get phonebook 3G info */
+ EGet3GPBInfoIPC, //1000064
+ /** Get system network modes */
+ ECustomGetSystemNetworkModesIPC, //1000065
+ /** Set system network mode */
+ ECustomSetSystemNetworkModeIPC, //1000066
+ /** Get current system network modes */
+ ECustomGetCurrentSystemNetworkModesIPC, //1000067
+ /** Write WCDMA HomeZone */
+ EWriteViagHomeZoneUHZIUESettingsIPC, //1000068
+ /** SetAlwaysOn Mode */
+ ECustomSetAlwaysOnMode, //1000069
+ /** Notify Rau event */
+ ECustomNotifyRauEventIPC, //1000070
+ /** Get Call forwarding info */
+ ECustomGetIccCallForwardingStatusIPC, //1000071
+ /** Notify call forwarding info change */
+ ECustomNotifyIccCallForwardingStatusChangeIPC, //1000072
+ /** Get 3G radio frequency band*/
+ ECustomGetBandSelectionIPC, //1000073
+ /** Set 3G radio frequency band*/
+ ECustomSetBandSelectionIPC, //1000074
+ /** Set 3G radio frequency band*/
+ ECustomGetServiceTableSupportbyApplicationIPC, //1000075
+ /* Notify remote alerting tone status change IPC */
+ ECustomNotifyRemoteAlertingToneStatusChangeIPC, //1000076
+ /** Maximum IPC enumeration value */
+ ECustomMaxIpcLimit = KIpcCustomMaxLimi
+ };
+
+// FORWARD DECLARATIONS
+class CMmCustomPtrHolder;
+
+// CLASS DECLARATION
+
+/**
+ * RMmCustomAPI contains multimode API's vendor specific functionality.
+ * RMmCustomAPI is a subsession extension i.e. it derives
+ * from RtelSubSessionBase class.
+ *
+ * Notice that Custom TSY is able to handle only one instance of each
+ * Custom API Set-method call at a time. Overlapping Set-method calls occurs
+ * if same Set-method is called from an other instance of RMmCustomAPI
+ * object. Through one RMmCustomAPI object overlapping calls are not allowed
+ * - trying this will panic Etel Server. For each overlapping request to the
+ * client is returned error code KErrServerBusy either as a return value in
+ * case of synchronous call or in a variable of type TRequestStatus in case of
+ * an asynchronous call. This rule applies also in a situation where previous
+ * identical request has been cancelled by client but the triggered operation
+ * on DOS side has not been completed yet.
+ *
+ * On the other hand Custom TSY is able to handle several instances of each
+ * Get-method call at a time. Again overlapping Get-method call can be
+ * activated only from an other instance of RMmCustomAPI object.
+ *
+ * Consider carefully consequences and implications of request cancellations.
+ * If a request has triggered an operation on DOS side, the subsequent
+ * calcellation of the request will not undo the operation on DOS side. It is
+ * the responsibility of the Custom API's client to undo the operation if
+ * necessary. Cancel request completes only when awaited DOS side response
+ * arrives. Then if it is an OK-response, the request is completed normally
+ * with error code KErrNone. . Or if the response is a FAILURE, the request is
+ * completed with error code KErrCancel.
+ *
+ * APDU functionality:
+ * Etel Server and Custom TSY are able to handle multiple SendAPDUReq calls
+ * simultaneously.
+ * However each RMmCustoAPI instance can have only one request active at
+ * a time.
+ *
+ * Packet data related functionality:
+ * Custom TSY implements functionality that is not supported by the packetAPI.
+ *
+ * Call realted functionality:
+ * Custom TSY implements functionality that is not supported by the
+ * MM ETEL API.
+ *
+ * @publishedPartner
+ * @deprecated
+ */
+class RMmCustomAPI : public RTelSubSessionBase
+ {
+ public:
+
+ /** Enumerates the Custom API version number.*/
+ enum TMultimodeETelCustomV1Api
+ {
+ /** Version of Custom API extension */
+ KETelCustomExtMultimodeV1=10000,
+ /** Version of TTCustomCallParams */
+ KETelCustomExtCustomCallParamsV3
+ };
+
+ /** Defines SS statuses to be used */
+ enum TSsStatus
+ {
+ /** Active status */
+ KSsStatusGsmActive = 0x01,
+ /** Registered status */
+ KSsStatusGsmRegistered = 0x02,
+ /** Provisioned status */
+ KSsStatusGsmProvisioned = 0x04,
+ /** Quiescent status */
+ KSsStatusGsmQuiescent = 0x08,
+ /** Error status */
+ KSsStatusReturnError = 0xFFFF,
+ /** Network failure */
+ KSsStatusNetworkFailure = 0xFFFE
+ };
+
+
+ /**
+ * Maximum length of parameter data is 16 for Random parameter, SRES, AUTN,
+ * CK, IK and AUTS
+ */
+ enum { KMaxParametersLength = 16 };
+ /** Max length of ChipheringKey is 3 */
+ enum { KMaxKCLength = 3 };
+ /** Max length of RES is 4 */
+ enum { KMaxRESLength = 4 };
+
+ //Max length of iBTid, iKeyLifeTime, iNafId, iImpi, iMikey, iMtkSalt
+ enum { KMaxAuthenticationParameterLength = 255 };
+
+ // KMaxMikeyLength enum for maximum MIKEY protocol data length
+ enum { KMaxMikeyLength = 255 };
+
+ // KMaxKeyDomainIdLength enum for maximum key domain id length
+ enum{ KMaxKeyDomainIdLength = 3 };
+
+ // KMaxKeyGroupIdLength enum for maximum key group id length
+ enum { KMaxKeyGroupIdLength = 2 };
+
+
+ /** Parameter buffer */
+ typedef TBuf8< KMaxParametersLength > TParameter;
+
+ // GBA
+ typedef TBuf8< KMaxAuthenticationParameterLength > TAuthenticationParameter;
+
+ // TMikey datatype to be used for MIKEY data
+ typedef TBuf8< KMaxMikeyLength > TMikey;
+
+ // TKeyDomainId datatype to be used for key domain id information
+ typedef TBuf8< KMaxKeyDomainIdLength > TKeyDomainId;
+
+ // TKeyGroupId datatype to be used for key group id information
+ typedef TBuf8< KMaxKeyGroupIdLength > TKeyGroupId;
+
+ // Datatype for parental rating data information
+ typedef TBuf8< KMaxKeyGroupIdLength > TParentalRating;
+
+ // Datatype for parental control operation information
+ typedef TBuf8< KMaxKeyDomainIdLength > TParentalControl;
+ /**
+ * Base class for TSimAuthenticationEapSim and
+ * TSimAuthenticationEapAka
+ */
+ class TSimAuthenticationBase
+ {
+ public:
+
+ /** Possible values for the authentication method */
+ enum
+ {
+ /** EAP-SIM authentication method */
+ EEapSim = 0x01,
+ /** EAP-AKA authentication method */
+ EEapAka = 0x02,
+ EGbaBootstrap = 0x03,
+ EGbaBootstrapUpdate = 0x04,
+ EGbaBootstrapNafDerivation = 0x05,
+ EMgvMtkGeneration = 0x06,
+ EMgvMskDeletion = 0x07,
+ EMgvMskUpdate = 0x08
+ };
+
+ /** Gets the value of iExtensionId
+ * @return iExtensionId */
+ inline TInt ExtensionId() { return iExtensionId; };
+ protected:
+ TInt iExtensionId;
+ };
+
+// Class for holding GBA Bootstrap parameters
+ class TSimAuthenticationGbaBootstrap : public TSimAuthenticationBase
+ {
+ public:
+
+ IMPORT_C TSimAuthenticationGbaBootstrap ();
+
+ public:
+
+ // Random parameters from client
+ TParameter iRandomParameters;
+ // AUTN parameters from client
+ TParameter iAUTN;
+ // RES to client
+ TParameter iRES;
+ // AUTS to client
+ TParameter iAUTS;
+ };
+ typedef TPckg< TSimAuthenticationGbaBootstrap > TGbaBootstrapDataPckg;
+
+
+// Class for holding GBA Bootstrap updating parameters
+ class TSimAuthenticationGbaBootstrapUpdate : public TSimAuthenticationBase
+ {
+ public:
+
+ IMPORT_C TSimAuthenticationGbaBootstrapUpdate ();
+
+ public:
+
+ // B-TID from client
+ TAuthenticationParameter iBTid;
+ // Key lifetime from client
+ TAuthenticationParameter iKeyLifeTime;
+ // Random parameters to client
+ TParameter iRandomParameters;
+ };
+ typedef TPckg< TSimAuthenticationGbaBootstrapUpdate > TGbaBootstrapUpdateDataPckg;
+
+
+// Class for holding GBA NAF Derivation parameters
+ class TSimAuthenticationGbaNafDerivation : public TSimAuthenticationBase
+ {
+ public:
+
+ IMPORT_C TSimAuthenticationGbaNafDerivation ();
+
+ public:
+
+ // Naf_id from client
+ TAuthenticationParameter iNafId;
+ // Impi from client
+ TAuthenticationParameter iImpi;
+ // Ks_ext_NAF to client
+ TBuf8 < 32 > iKsExtNaf;
+
+ };
+ typedef TPckg< TSimAuthenticationGbaNafDerivation > TGbaNafDerivationDataPckg;
+
+
+// Class for holding MGV MSK update parameters
+ class TSimAuthenticationMgvMskUpdate : public TSimAuthenticationBase
+ {
+ public:
+
+ IMPORT_C TSimAuthenticationMgvMskUpdate ();
+
+ public:
+
+ // MIKEY to client
+ TMikey iMikey;
+ // OMA BCAST management data object to client
+ TParameter iBCASTManagement;
+ // OMA BCAST SPE parental rating data operation to client
+ TParentalRating iParentalRating;
+ // Security Policy Extension to client
+ TParameter iSecurityPolicyExt;
+
+ };
+ typedef TPckg< TSimAuthenticationMgvMskUpdate > TSimAuthenticationMgvMskUpdatePckg;
+
+
+// Class for holding MGV MTK generation parameters
+ class TSimAuthenticationMgvMtkGeneration : public TSimAuthenticationBase
+ {
+ public:
+
+ IMPORT_C TSimAuthenticationMgvMtkGeneration ();
+
+ public:
+
+ // MIKEY from client
+ TMikey iMikey;
+ // MTK salt to client
+ TMikey iMtkSalt;
+
+ // Smartcard support for MobileTV
+ // OMA BCAST management data object to client
+ TParameter iBCASTManagement;
+ // OMA BCAST SPE parental control operation to client
+ TParentalControl iParentalControl;
+ // TEK (Traffic Encryption Key) to client
+ TParameter iTrafficEncryptionKey;
+ };
+ typedef TPckg< TSimAuthenticationMgvMtkGeneration > TMgvMtkGenerationDataPckg;
+
+
+// Class for holding MGV MSK deletion parameters
+ class TSimAuthenticationMgvMskDeletion : public TSimAuthenticationBase
+ {
+ public:
+
+ IMPORT_C TSimAuthenticationMgvMskDeletion ();
+
+ public:
+
+ // Key domain Id from client
+ TKeyDomainId iKeyDomainId;
+ // Key Group Id from client
+ TKeyGroupId iKeyGroupIdPart;
+
+ };
+ typedef TPckg< TSimAuthenticationMgvMskDeletion > TMgvMskDeletionDataPckg;
+
+
+ /**
+ * Possible values for Multiple Subscriber Profile IDs
+ */
+ enum TMultipleSubscriberProfileID
+ {
+ /** Multiple Subscriber Profile ID 1 */
+ KProfileIdentityOne = 0x01,
+ /** Multiple Subscriber Profile ID 2 */
+ KProfileIdentityTwo = 0x02,
+ /** Multiple Subscriber Profile ID 3 */
+ KProfileIdentityThree = 0x03,
+ /** Multiple Subscriber Profile ID 4 */
+ KProfileIdentityFour = 0x04,
+ };
+
+ /** Class for holding Call Forwarding parameters */
+ class TCFIndicators: public RMobilePhone::TMobilePhoneCFUIndicatorV3
+ {
+ public:
+ /** Default constructor */
+ IMPORT_C TCFIndicators();
+
+ public:
+
+ /** CFU number . */
+ RMobilePhone::TMobileAddress iCFNumber;
+
+ /** MSP Profile ID */
+ TMultipleSubscriberProfileID iMultipleSubscriberProfileID;
+ };
+
+ /** Package buffer to hold TCFIndicators objects */
+ typedef TPckg<TCFIndicators> TCFIndicatorsPckg;
+
+ /** Class for holding EAP SIM authentication parameters */
+ class TSimAuthenticationEapSim : public TSimAuthenticationBase
+ {
+ public:
+ /** Default constructor */
+ IMPORT_C TSimAuthenticationEapSim();
+
+ public:
+
+ /** Random parameters from client */
+ TParameter iRandomParameters;
+ /** SRES to client */
+ TParameter iSRES;
+ /** Ciphering Key to Client */
+ TParameter iKC;
+ };
+
+ /** Package buffer to hold TSimAuthenticationEapSim objects */
+ typedef TPckg<TSimAuthenticationEapSim> TSimDataPckg;
+
+ /** Class for holding EAP AKA authentication parameters */
+ class TSimAuthenticationEapAka : public TSimAuthenticationBase
+ {
+ public:
+ /** Default constructor */
+ IMPORT_C TSimAuthenticationEapAka();
+
+ public:
+
+ /** Random parameters from client */
+ TParameter iRandomParameters;
+ /** AUTN parameters from client */
+ TParameter iAUTN;
+ /** RES to client */
+ TParameter iRES;
+ /** UMTS Ciphering Key to client */
+ TParameter iCK;
+ /** UMTS Integrity Key to client */
+ TParameter iIK;
+ /** AUTS to client */
+ TParameter iAUTS;
+ };
+
+ /** Package buffer to hold TSimAuthenticationEapAka objects */
+ typedef TPckg<TSimAuthenticationEapAka> TAkaDataPckg;
+
+ /**
+ * TTApdu defines the pointers to the Send APDU request details
+ */
+ class TApdu
+ {
+ public:
+
+ TApdu()
+ {
+ iInfo = 0;
+ iData = 0;
+ }
+
+ TApdu
+ (
+ TDes8& aInfo,
+ TDes8& aData
+ )
+ {
+ iInfo = &aInfo;
+ iData = &aData;
+ }
+
+ public:
+
+ TDes8* iInfo; // Servicetype, Card Reader number, Application
+ // Type, Padding Byte
+ TDes8* iData; // Transparent data
+ };
+
+ /**
+ * TApduParameters
+ */
+ class TApduParameters
+ {
+ public:
+
+ TApduParameters()
+ {
+ iCardReaderId = 0;
+ }
+
+ public: // Data
+ /** Card Reader ID */
+ TUint8 iCardReaderId;
+ /** Cmd Data */
+ TApduBuffer iCmdData;
+ /** RSP data */
+ TApduBuffer iRspData;
+ };
+
+ /**
+ * TSimCardReaderStatus
+ */
+ class TSimCardReaderStatus
+ {
+ public:
+
+ /**
+ * Default constructor
+ */
+ TSimCardReaderStatus() { iSimCardReaderStatus = 0; }
+
+ /**
+ * Constructor
+ *
+ * @param status Reader status
+ * @return None
+ */
+ TSimCardReaderStatus( TUint8 aStatus )
+ {
+ iSimCardReaderStatus = aStatus;
+ }
+
+ /**
+ * Set Card Status
+ *
+ * @param newStatus new reader status
+ */
+ IMPORT_C void SetStatus( TUint8 aNewStatus );
+
+ /**
+ * Get Card Status
+ *
+ * @return Reader status
+ */
+ IMPORT_C TUint8 GetStatus();
+
+ /**
+ * Get Card Reader ID.
+ *
+ * @return Reader ID
+ */
+ IMPORT_C TUint8 GetCardReaderID();
+
+ /**
+ * Is Card Reader Removable
+ *
+ * @return Is Card Reader Removable
+ */
+ IMPORT_C TBool IsCardReaderRemovable();
+
+ /**
+ * Is Card Reader Present
+ *
+ * @return Is Card Reader Present
+ */
+ IMPORT_C TBool IsCardReaderPresent();
+
+ /**
+ * Is Card Present
+ *
+ * @return Is Card Present
+ */
+ IMPORT_C TBool IsCardPresent();
+
+ /**
+ * Is Card Powered
+ *
+ * @return Is Card Powered
+ */
+ IMPORT_C TBool IsCardPowered();
+
+ private:
+ TUint8 iSimCardReaderStatus; // Reader status
+ };
+
+ /** TLockNumber defines SIMLock types to be used */
+ enum TLockNumber
+ {
+ /** Operator */
+ EOperator = 1,
+ /** GID1 */
+ EGid1,
+ /** GID2 */
+ EGid2,
+ /** IMSI */
+ EImsi,
+ /** Operator GID1 */
+ EOperator_Gid1,
+ /** Operator GID2 */
+ EOperator_Gid2,
+ /** Global unlock */
+ EGlobalUnlock
+ };
+
+ /** Package buffer to hold TSimLockPassword objects */
+ typedef TBuf<KSimLockMaxPasswordSize> TSimLockPassword;
+
+ /** Constants for VIAG Home Zone data */
+ enum TViagDataType
+ {
+ /** NBR size */
+ KViagParamNbrSize = 15,
+ /** Name size */
+ KViagElemNameSize = 13,
+ /** Element count */
+ KViagElementCount = 4
+ };
+
+ /** VIAG parameter data structure */
+ struct TViagParams
+ {
+ TBuf<KViagParamNbrSize> iSmsC;
+ TBuf<KViagParamNbrSize> iScp;
+ TUint8 iSubscribedZoneAndVersion;
+ };
+
+ /** Coordinates */
+ struct TCoordinates
+ {
+ /** X */
+ TUint32 iX;
+ /** Y */
+ TUint32 iY;
+ /** R2 */
+ TUint32 iR2;
+ /** Zone ID */
+ TUint iZoneId;
+ };
+
+ /** Active Flag values */
+ enum TActiveFlag
+ {
+ /** Not active */
+ ENotActive,
+ /** Home Zone */
+ EHomeZone,
+ /** City Zone */
+ ECityZone
+ };
+
+ /** VIAG Element data structure */
+ struct TViagElement
+ {
+ /** Coordinates */
+ TCoordinates iCoordinates;
+ /** Name */
+ TBuf<KViagElemNameSize> iName;
+ /** Active flag */
+ TActiveFlag iActiveFlag;
+ };
+
+ /** Array of TViagElement objects */
+ typedef CArrayFixFlat <TViagElement> TViagElements;
+
+ /** VIAG Cache Record ID data structure */
+ struct TViagCacheRecordId
+ {
+ /** Cache ID */
+ TInt iCacheId;
+ /** Record ID */
+ TInt iRecordId;
+ };
+
+ /** VIAG Cache Record Content data structure */
+ struct TViagCacheRecordContent
+ {
+ /** LAC */
+ TUint16 iLac;
+ /** Cell ID */
+ TUint16 iCellId;
+ };
+
+ /** VIAG UHZIUE settings data structure */
+ struct TViagUHZIUESettings
+ {
+ /** Settings */
+ TUint8 iSettings;
+ /** Version */
+ TUint8 iVersion;
+ };
+
+ /** Security code types */
+ enum TSecurityCodeType
+ {
+ /** PIN1 code */
+ ESecurityCodePin1,
+ /** PIN2 code */
+ ESecurityCodePin2,
+ /** Universal PIN code */
+ ESecurityUniversalPin,
+ /** PUK1 code */
+ ESecurityCodePuk1,
+ /** PUK2 code */
+ ESecurityCodePuk2,
+ /** Phone SIM lock and phone device lock codes */
+ ESecurityCodePassPhrase
+ };
+
+ /** Emergency number check modes */
+ enum TCheckMode
+ {
+ /** Normal */
+ EEmerNumberCheckNormal,
+ /** Advanced */
+ EEmerNumberCheckAdvanced
+ };
+
+ /** Caching status */
+ enum TPndCacheStatus
+ {
+ /** Not ready */
+ ECacheNotReady,
+ /** Ready */
+ ECacheReady,
+ /** Not used */
+ ECacheNotUsed,
+ /** Failed */
+ ECacheFailed
+ };
+
+ /** CB SIM Topics data type */
+ struct TSimCbTopic
+ {
+ /** Number */
+ TUint iNumber;
+ /** Name */
+ TBuf<KSimCbTopicNameLength> iName;
+ };
+
+ /** Buffer for telephone number */
+ typedef TBuf<RMobilePhone::KMaxMobileTelNumberSize> TMobileTelNumber;
+
+ /** Emergency number check mode data structure */
+ struct TEmerNumberCheckMode
+ {
+ /** Check mode */
+ TCheckMode iCheckMode;
+ /** Telephone number */
+ TMobileTelNumber iNumber;
+ };
+
+ // Service availability on service table on USIM
+ struct TAppSupport
+ {
+ TInt iAppNum;
+ TBool iSupported;
+ };
+
+ public:
+ /** Default constructor */
+ IMPORT_C RMmCustomAPI();
+
+ public:
+
+ /** DTMF Event types */
+ enum TDtmfEventType
+ {
+ /** Manual */
+ EDtmfManual,
+ /** Sequence */
+ EDtmfSequence
+ };
+
+ /** DTMF events */
+ enum TDtmfEvent
+ {
+ /** Start */
+ EDtmfStart,
+ /** Stop */
+ EDtmfStop,
+ /** Abort */
+ EDtmfAbort
+ };
+
+ /** DTMF information data structure */
+ struct TDtmfInfo
+ {
+ /** Event type */
+ TDtmfEventType iType;
+ /** Event */
+ TDtmfEvent iEvent;
+ /** Tone */
+ TChar iTone;
+ };
+
+ /** ALS block status values */
+ enum TSetAlsBlock
+ {
+ /** Deactivate */
+ EDeactivateBlock,
+ /** Activate */
+ EActivateBlock
+ };
+
+ /** Always On modes */
+ enum TSetAlwaysOnMode
+ {
+ /** HPLMN */
+ EAlwaysModeHPLMN,
+ /** VPLMN */
+ EAlwaysModeVPLMN,
+ /** Both modes (HPLMN/VPLMN) */
+ EAlwaysModeBoth,
+ /** Neither mode */
+ EAlwaysModeNeither
+ };
+
+ /** RAU event status values */
+ enum TRauEventStatus
+ {
+ /** Active */
+ ERauEventActive,
+ /** Resumed */
+ ERauEventResumed,
+ };
+
+ /** ALS block status values */
+ enum TGetAlsBlockStatus
+ {
+ /** Not supported */
+ EBlockStatusNotSupported,
+ /** Active */
+ EBlockStatusActive,
+ /** Inactive */
+ EBlockStatusInactive,
+ /** Unknown */
+ EBlockStatusUnknown
+ };
+
+ /** ALS Support values */
+ enum TAlsSupport
+ {
+ /** ALS Support is On */
+ EAlsSupportOn,
+ /** ALS Support if Off */
+ EAlsSupportOff
+ };
+
+ /** Remote alerting tone status */
+ enum TRemoteAlertingToneStatus
+ {
+ /** No Tone */
+ EUiNoTone,
+ /** RBT Tone */
+ EUiRbtTone,
+ /** Stop Tone */
+ EUiStopTone
+ };
+
+ /** Origin of the call */
+ enum TCallOrigin
+ {
+ /** Unknown */
+ EUnknown,
+ /** ETel call */
+ EETelCall,
+ /** Outside */
+ EOutsider
+ };
+
+ /** Status of the No Service Power Save state */
+ enum TNspsStatus
+ {
+ /** No Service Power Save is ON */
+ ENspsOn,
+ /** No Service Power Save is OFF */
+ ENspsOff
+ };
+
+ /** Ciphering Information data structure */
+ struct TCipheringInfo
+ {
+ /** ciphering Indicator status */
+ TBool iIndStatus;
+ /** ciphering status */
+ TBool iCiphStatus;
+ };
+
+ /** Additional info size */
+ enum { KAdditionalInfoSize = 255 };
+
+ /** Additional information data structure */
+ struct TSsAdditionalInfo
+ {
+ /** Operation code */
+ TUint8 iOperationCode;
+ /** Additional information */
+ TBuf8<KAdditionalInfoSize> iAdditionalInfo;
+ };
+
+ /** Operator name types */
+ enum TOperatorNameType
+ {
+ /** NITZ Full */
+ EOperatorNameNitzFull,
+ /** NITZ Short */
+ EOperatorNameNitzShort,
+ /** Programmable UCS2 */
+ EOperatorNameProgrammableUcs2,
+ /** Programmable Latin */
+ EOperatorNameProgrammableLatin,
+ /** Hardcoded UCS2 */
+ EOperatorNameHardcodedUcs2,
+ /** Hardcoded Latin */
+ EOperatorNameHardcodedLatin,
+ /** Country MNC */
+ EOperatorNameCountryMcn,
+ /** MCC MNC */
+ EOperatorNameMccMnc,
+ /** Flexible PLMN */
+ EOperatorNameFlexiblePlmn,
+ /** Highest Priority */
+ EOperatorNameHighestPriority
+ };
+
+ /** Operator name info structure */
+ struct TOperatorNameInfo
+ {
+ /** Name type */
+ TOperatorNameType iType;
+ /** Name */
+ TBuf<KMaxOperatorNameLength> iName;
+ };
+
+ /** Programmable operator Id */
+ struct TOperatorId
+ {
+ /** MCC */
+ TInt iMcc;
+ /** MNC */
+ TInt iMnc;
+ };
+
+ /** Programmable operator logo depth */
+ enum TProgrammableOperatorLogoDepth
+ {
+ /** 1 bit per pixel */
+ EBitPerPixel1,
+ /** 2 bits per pixel */
+ EBitPerPixel2,
+ /** 4 bits per pixel */
+ EBitPerPixel4,
+ /** 8 bits per pixel */
+ EBitPerPixel8
+ };
+
+ /** Programmable operator logo info */
+ struct TProgrammableOperatorLogoInfo
+ {
+ /** Operator logo width */
+ TInt iLogoWidth;
+ /** Operator logo height */
+ TInt iLogoHeight;
+ /** Compression (yes/no) */
+ TBool iCompression;
+ /** Operator logo depth (bits per pixel) */
+ TProgrammableOperatorLogoDepth iDepth;
+ };
+
+ /** Programmable operator logo structure */
+ struct TOperatorLogo
+ {
+ /** Operator logo information */
+ TProgrammableOperatorLogoInfo iLogoInfo;
+ /** Operator logo buffer */
+ TDes8* iOperatorLogo;
+ };
+
+ /** Two Digit Dial Support values */
+ enum TTwoDigitDialSupport
+ {
+ /** On */
+ ETwoDigitDialSupportOn,
+ /** Off */
+ ETwoDigitDialSupportOff
+ };
+
+ /** Custom call parameter class for calling party subaddress delivering */
+ class TCustomCallParams : public RMobileCall::TMobileCallParamsV2
+ {
+ public:
+ /** Default constructor */
+ IMPORT_C TCustomCallParams();
+
+ public:
+
+ /** SubAddress */
+ TBuf<KSubAddressSize> iSubAddress;
+ /** Bearer */
+ TBuf8<KBearerCapabilitySize> iBearer;
+ };
+
+ /** Package buffer for TCustomCallParams objects */
+ typedef TPckg<TCustomCallParams> TCustomCallParamsPckg;
+
+ /** Type of SS */
+ enum TSsType
+ {
+ ESsAllSs = 0,
+ ESsAllForwardings = 2,
+ ESsForwUncond = 21,
+ ESsForwBusy = 67,
+ ESsForwNoReply = 61,
+ ESsForwNoReach = 62,
+ ESsAllBarrings = 330,
+ ESsBarrAllOut = 33,
+ ESsBarrOutInter = 331,
+ ESsBarrOutInterExcHome = 332,
+ ESsBarrAllIn = 35,
+ ESsBarrAllInRoam = 351,
+ ESsOutgoingBarrServ = 333,
+ ESsIncomingBarrServ = 353,
+ ESsCallWaiting = 43,
+ ESsClip = 30,
+ ESsClir = 31,
+ ESsColp = 76,
+ ESsColr = 77,
+ ESsCnap = 300,
+ ESsAllCondForwardings = 4,
+ ESsRegPassword = 3
+ };
+
+ /** State of the SS feature */
+ enum TSsMode
+ {
+ /** Active */
+ ESsModeActive,
+ /** Not active */
+ ESsModeNotActive,
+ /** Not registered */
+ ESsModeNotRegistered,
+ /** Not provisioned */
+ ESsModeNotProvisioned,
+ /** Not available */
+ ESsModeNotAvailable,
+ /** Unknown state */
+ ESsModeUnknown
+ };
+
+ /** Forwarding mode */
+ enum TSsForwMode
+ {
+ /** Incoming call is forwarded */
+ ESsIncCallIsForw,
+ ESsIncCallForwToC,
+ ESsOutCallForwToC,
+ /** Not Active */
+ EForwNotActive
+ };
+
+ /** Hold mode */
+ enum TSsHoldMode
+ {
+ /** Active */
+ ESsHoldActive,
+ /** Resume */
+ ESsHoldResume,
+ /** Not active */
+ ESsHoldNotActive
+ };
+
+ /** Explicit call transfer (ECT) state */
+ enum TSsEctState
+ {
+ /** ECT active */
+ ESsEctActive,
+ /** ECT alerting */
+ ESsEctAlerting,
+ /** ECT not active */
+ ESsEctNotActive
+ };
+
+ /** Call Name Presentation choice */
+ enum TSsChoice
+ {
+ /** Presentation allowed */
+ ESsPresAllowed,
+ /** Presentation restricted */
+ ESsPresRestricted,
+ /** Number not available */
+ ESsNumberNotAvailable,
+ /** Restricted address */
+ ESsPresRestrictedAddress,
+ /** Choice unknown */
+ ESsChoiceUnknown
+ };
+
+ /** Remote Address Size */
+ enum
+ {
+ /** Remote Address Size */
+ KRemoteAddressSize = 64
+ };
+
+ /** SS type and mode */
+ struct TSsTypeAndMode
+ {
+ /** SS Type */
+ TSsType iSsType;
+ /** SS Mode */
+ TSsMode iSsMode;
+ };
+
+ /** SS info */
+ struct TSsInfo
+ {
+ /** Forwarding mode */
+ TSsForwMode iForwMode;
+ TBool iCallWait;
+ /** Hold mode */
+ TSsHoldMode iCallHold;
+ TBool iConfInd;
+ /** CUG index */
+ TUint16 iCugIndex;
+ TBool iClirSuppReject;
+ /** Explicit call transfer state */
+ TSsEctState iEctCallState;
+ /** Call name presentation choice */
+ TSsChoice iChoice;
+ /** Remote address */
+ TBuf<KRemoteAddressSize> iRemoteAddress;
+ };
+
+ /** Gprs type info */
+ enum TGprsInformationType
+ {
+ /** GPRS */
+ EGprs = 0,
+ /** EDGE GPRS */
+ EEdgeGprs = 1
+ };
+
+ /** System network mode */
+ enum TNetworkModeCaps
+ {
+ /** Unknown mode */
+ KCapsNetworkModeUnknown = 0x00,
+ /** GSM mode */
+ KCapsNetworkModeGsm = 0x01,
+ /** UMTS mode */
+ KCapsNetworkModeUmts = 0x02,
+ /** Dual mode (GPRS/UMTS) */
+ KCapsNetworkModeDual = 0x04
+ };
+
+ /** Band Selection */
+ enum TBandSelection
+ {
+ /** UMTS 850 */
+ ENetworkBandUmts850 = 0x01,
+ /** UMTS 2100 */
+ ENetworkBandUmts2100 = 0x02,
+ /** Any band */
+ ENetworkBandAny = 0x03
+ };
+
+ /** SIM Card status */
+ enum TSIMCardStatus
+ {
+ /** Error */
+ SimCardUnknowError = 0x00,
+ /** Reset */
+ SimCardResetPerformed,
+ /** Not Accessible */
+ SimCardNotAccessible,
+ /** Removed */
+ SimCardRemoved,
+ /** Inserted */
+ SimCardInserted,
+ /** Recovered */
+ SimCardRecovered
+ };
+
+ /** Drive mode status */
+ enum TSetDriveMode
+ {
+ /** Drive Mode active */
+ EDeactivateDriveMode,
+ /** Drive Mode inactive */
+ EActivateDriveMode
+ };
+
+ /** High speed channel status */
+ enum THSxPAStatus
+ {
+ /** Disabled HSxPA */
+ EHSxPADisabled,
+ /** Enabled HSxPA */
+ EHSxPAEnabled
+ };
+
+ /** Class to hold information about the EGPRS support in cell */
+ class TGprsInformation
+ {
+ public:
+ /** Default constructor **/
+ IMPORT_C TGprsInformation();
+
+ public:
+ /** Type of GPRS network (GPRS or EDGE/GPRS)*/
+ TGprsInformationType iGprsInfo;
+ };
+
+ /** Package buffer for TGprsInformation objects */
+ typedef TPckg<TGprsInformation> TGprsInformationPckg;
+
+ /** Package buffer for SIM File paths */
+ typedef TBuf8<KSimFilePathLength> TSimFilePath;
+
+ /** Holds SIM File Information */
+ class TSimFileInfo
+ {
+ public:
+ /** Default constructor */
+ IMPORT_C TSimFileInfo();
+
+ public:
+ /** File path in SIM where file is read */
+ TSimFilePath iPath;
+ /** Offset from beginning of the file */
+ TUint16 iOffSet;
+ /** Amount of data to read */
+ TUint16 iSize;
+ };
+
+ /** Package buffer for TSimFileInfo objects */
+ typedef TPckg<TSimFileInfo> TSimFileInfoPckg;
+
+ /** Holds lifetime information */
+ class TLifeTimeData
+ {
+ public: // definitions
+
+ /** Lifetime data capability values */
+ enum TLifeTimeDataCaps
+ {
+ /** Unknown */
+ ELifeTimeDataCapsUnknown = 0x00000000,
+ /** Lifetime */
+ ELifeTimeDataCapsLifeTime = 0x00000001,
+ /** Manufacturer Date */
+ ELifeTimeDataCapsManufacturerDate = 0x00000002
+ };
+
+ public: // methods
+
+ /** Default constructor */
+ IMPORT_C TLifeTimeData();
+
+ public: // internal attributes
+ /** Capabilities */
+ TUint32 iCaps;
+ /** Hours (range 0-999999) */
+ TUint32 iHours;
+ /** Minutes (range 0-59) */
+ TUint8 iMinutes;
+ /** Manufacturing date */
+ TDateTime iManufacturingDate;
+ };
+
+ /** Package buffer for TLifeTimeData objects */
+ typedef TPckg<TLifeTimeData> TLifeTimeDataPckg;
+
+ /** 3G Phonebook Information */
+ struct T3GPBInfo
+ {
+ /** Max length of email */
+ TInt16 iMaxLenEmail;
+ /** Max length of Second Name */
+ TInt16 iMaxLenSne;
+ /** Max length of Additional Number */
+ TInt16 iMaxLenAnr;
+ /* Max length of Group Name */
+ TInt16 iMaxLenGroupName;
+ /* Max number of email fileds per entry */
+ TInt8 iMaxNumEmail;
+ /* Max number of Second Name fields per entry */
+ TInt8 iMaxNumSne;
+ /* Max number of Group Name fields per entry */
+ TInt8 iMaxNumGroupName;
+ // Max number of Additional Number fields per entry
+ TInt8 iMaxNumAnr;
+ };
+
+ /** Cell Information */
+ class TMmCellInfo
+ {
+ public: // definitions
+
+ /** Network modes */
+ enum TNwMode
+ {
+ /** Unknown */
+ EUnknown,
+ /** GSM */
+ EGSM,
+ /** WCDMA */
+ EWCDMA
+ };
+
+ /** WCDMA cell info */
+ struct TFrequencyInfo
+ {
+ /** FDD: 0..16383 O */
+ TInt iFddUL;
+ /** FDD: 0..16383 M */
+ TInt iFddDL;
+ /** TDD: 0..16383 */
+ TInt iTddNt;
+ };
+
+ /** FDD Information */
+ struct TFddInfo
+ {
+ /** Primary CPICH (0..511) */
+ TInt16 iPrimaryCPICH;
+ /** CPICH ECN0 (0..63), max=49 */
+ TInt8 iCpichEcN0;
+ /** CPICH RSCP ((0..127), max=91 */
+ TInt8 iCpichRscp;
+ /** Path Loss (46..173), max=158 */
+ TInt iPathloss;
+ };
+
+ /** TDD Information */
+ struct TTddInfo
+ {
+ /** Cell Param ID (0..127) */
+ TInt8 iCellParamID;
+ /** Proposed TGSN (0..14) */
+ TInt8 iProposedTGSN;
+ /** Primary CCPCH RSCP (0..127) */
+ TInt8 iPrimaryCcpchRscp;
+ /** Pathloss (46..173), max=158 */
+ TInt iPathloss;
+ /** Timeslot ISCP (0..127), max.91 */
+ TInt8 iTimeslotISCP[ KMaxTimeSlotIscpAmount ];
+ };
+
+ /** Cell Measured Result */
+ struct TCellMeasuredResult
+ {
+ /** Cell Identity (0..268435455) */
+ TInt32 iCID;
+ /** FDD Information */
+ TFddInfo iFddInfo;
+ /** TDD Information */
+ TTddInfo iTddInfo;
+ };
+
+ /** Network Measure Report */
+ struct TNetworkMeasureReport
+ {
+ /** Frequency Information */
+ TFrequencyInfo iFrequencyInfo;
+ /** UTRA-CarrierRSSI (0..127), max=76 */
+ TInt8 iCarrierRSSI;
+ /** Cell measured result (1..32) */
+ TCellMeasuredResult iCellMeasuredResult[
+ KMaxCellMeasuredResults ];
+ };
+
+ /** WCDMA Cell Information */
+ struct TWCDMACellInfo
+ {
+ /** Frequency information for current cell */
+ TFrequencyInfo iFrequencyInfo;
+ /** Scrambling Code for current cell (0..511) */
+ TInt iPrimaryScrambilingCode;
+ /** Network measure report (1..8) */
+ TNetworkMeasureReport iNwkMeasureReport[
+ KMaxNetworkMeasureReports ];
+ };
+
+ /** NMR Information */
+ struct TNmr
+ {
+ /** ARFCN (initialised -1) */
+ TInt iARFCN;
+ /** BSIC (initialised -1) */
+ TInt iBSIC;
+ /** RxLEV (initialised -1) */
+ TInt iRxLEV;
+ };
+
+ /** GSM cell information */
+ struct TGSMCellInfo
+ {
+ /** NMR information on the cell */
+ TNmr iNmr[ KMaxNmrAmount ];
+ /** Timing advance (0.255) */
+ TInt16 iTA;
+ };
+
+ public: //Methods
+
+ /** Default constructor */
+ IMPORT_C TMmCellInfo();
+
+ public: // Data
+
+ /**
+ * Network mode
+ */
+ TNwMode iMode; // used for identifying mode.
+
+ /**
+ * GSM cell info
+ */
+ TGSMCellInfo iGsmCellInfo;
+
+ /**
+ * WCDMA cell info
+ */
+ TWCDMACellInfo iWcdmaCellInfo;
+ };
+
+ /** Package buffer to hold TMmCellInfo objects */
+ typedef TPckg<TMmCellInfo> TMmCellInfoPckg;
+
+ public: // New functions
+
+ /**
+ * Opens a subsession.
+ * @param aPhone reference to a Mobile Phone object
+ * @return KErrNone if successful
+ */
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+
+ /**
+ * Closes the subsession.
+ *
+ */
+ IMPORT_C void Close();
+
+ /**
+ * Sets Drive Mode status using the aModeStatus variable
+ *
+ * @param aStatus Request status
+ * @param aModeStatus Drive mode status
+ */
+ IMPORT_C void SetDriveMode( TRequestStatus& aStatus,
+ const TSetDriveMode aModeStatus );
+
+ /**
+ * Activate SIMLock synchronously
+ *
+ * @param aPassWord Lock specific password used to activate the SIMLock
+ * @param aNumber Number of lock to be activated
+ * @return Error value
+ */
+ IMPORT_C TInt ActivateSimLock( const TSimLockPassword& aPassWord,
+ const TLockNumber aNumber ) const;
+
+ /**
+ * Activate SIMLock asynchronously
+ *
+ * @param aStatus Request status
+ * @param aPassWord Lock specific password used to activate the SIMLock
+ * @param aNumber Number of lock to be activated
+ */
+ IMPORT_C void ActivateSimLock( TRequestStatus& aStatus,
+ const TSimLockPassword& aPassWord,
+ const TLockNumber aNumber ) const;
+
+ /**
+ * Deactivate SIMLock synchronously
+ *
+ * @param aPassWord Lock specific password used to
+ * Deactivate the SIMLock
+ * @param aNumber Number of lock to be activated
+ * @return Error value
+ */
+ IMPORT_C TInt DeActivateSimLock( const TSimLockPassword& aPassWord,
+ const TLockNumber aNumber ) const;
+
+ /**
+ * Deactivate SIMLock asynchronously
+ *
+ * @param aStatus Request status
+ * @param aPassWord Lock specific password used
+ * to Deactivate the SIMLock
+ * @param aNumber Number of lock to be activated
+ */
+ IMPORT_C void DeActivateSimLock( TRequestStatus& aStatus,
+ const TSimLockPassword& aPassWord,
+ const TLockNumber aNumber ) const;
+
+ /**
+ * Read VIAG Parameters synchronously
+ *
+ * @param aParam VIAG Home Zone Pararmeters
+ * @param aElems VIAG Home Zone Elements
+ * @return Error value
+ */
+ IMPORT_C TInt ReadViagHomeZoneParams( TViagParams& aParam,
+ TViagElements& aElems ) const;
+
+ /**
+ * Read VIAG Parameters asynchronously
+ *
+ * @param aStatus Request status KErrNone if successful
+ * @param aParam: VIAG Home Zone Pararmeters
+ * @param aElems: VIAG Home Zone Elements
+ */
+ IMPORT_C void ReadViagHomeZoneParams( TRequestStatus& aStatus,
+ TViagParams& aParam,
+ TViagElements& aElems );
+
+ /**
+ * Read VIAG Cache asynchronously
+ *
+ * @param aId VIAG Home Zone Record Id to read from
+ * @param aElems VIAG Home Zone Reacord Content
+ * @return Error value
+ */
+ IMPORT_C TInt ReadViagHomeZoneCache( TViagCacheRecordId& aId,
+ TViagCacheRecordContent& aRecord ) const;
+
+ /**
+ * Read VIAG Cache asynchronously
+ *
+ * @param aStatus Request status KErrNone if successful
+ * @param aId VIAG Home Zone Record Id to read from
+ * @param aElems VIAG Home Zone Reacord Content
+ */
+ IMPORT_C void ReadViagHomeZoneCache( TRequestStatus& aStatus,
+ TViagCacheRecordId& aId,
+ TViagCacheRecordContent& aRecord );
+
+ /**
+ * Write VIAG Cache asynchronously
+ *
+ * @param aId VIAG Home Zone Record Id to write to
+ * @param aElems VIAG Home Zone Reacord Content
+ * @return Error value
+ */
+ IMPORT_C TInt WriteViagHomeZoneCache( const TViagCacheRecordId& aId,
+ const TViagCacheRecordContent& aRecord ) const;
+
+
+ /**
+ * Set the "always on" mode
+ *
+ * @param aMode Desired "always on" mode
+ */
+ IMPORT_C void SetAlwaysOn( TRequestStatus& aStatus,
+ TSetAlwaysOnMode& aMode ) const;
+
+ /**
+ * Request notification of RAU event
+ * @param aStatus reuquest status
+ * @param aEventStatus RAU event status
+ */
+ IMPORT_C void NotifyRauEvent( TRequestStatus& aStatus,
+ TRauEventStatus& aEventStatus );
+
+ /**
+ * Write VIAG Cache asynchronously
+ *
+ * @param aStatus: Request status KErrNone if successful
+ * @param aId VIAG Home Zone Record Id to write to
+ * @param aElems VIAG Home Zone Reacord Content
+ */
+ IMPORT_C void WriteViagHomeZoneCache( TRequestStatus& aStatus,
+ const TViagCacheRecordId& aId,
+ const TViagCacheRecordContent& aRecord );
+
+ /**
+ * Notify a DTMF event
+ *
+ * @param aStatus Request status
+ * @param aInfo DTMF Info
+ */
+ IMPORT_C void NotifyDtmfEvent( TRequestStatus& aStatus,
+ TDtmfInfo& aInfo );
+
+ /**
+ * Return diagnostics info
+ *
+ * @param aCallName call name
+ * @return Error value
+ */
+ IMPORT_C TInt GetDiagnosticInfo( TName& aCallName ) const;
+
+ /**
+ * Sets the alternating line service block status using the
+ * aBlockStatus variable
+ *
+ * @param aBlockStatus als block status
+ * @return Error value
+ */
+ IMPORT_C TInt SetAlsBlocked( const TSetAlsBlock aBlockStatus ) const;
+
+ /**
+ * Sets the alternating line service block status using the aBlockStatus
+ * variable
+ *
+ * @param aStatus Request status
+ * @param aBlockStatus als block status
+ */
+ IMPORT_C void SetAlsBlocked( TRequestStatus& aStatus,
+ const TSetAlsBlock aBlockStatus );
+
+ /**
+ * Gets the alternating line service block status
+ *
+ * @param aBlockStatus als block status
+ * @return Error value
+ */
+ IMPORT_C TInt GetAlsBlocked( TGetAlsBlockStatus& aBlockStatus ) const;
+
+ /**
+ * Gets the alternating line service block status
+ *
+ * @param aStatus Request status
+ * @param aBlockStatus als block status
+ */
+ IMPORT_C void GetAlsBlocked( TRequestStatus& aStatus,
+ TGetAlsBlockStatus& aBlockStatus );
+
+ /**
+ * Reads the remote alerting tone status
+ *
+ * @param aToneStatus alerting tone status
+ * @return Error value
+ */
+ IMPORT_C TInt GetRemoteAlertingToneStatus(
+ TRemoteAlertingToneStatus& aToneStatus ) const;
+
+ /**
+ * Returns the origin of the call, defined by aCallName parameter
+ *
+ * @param aCallName call name
+ * @param aOrigin call origin
+ * @return Error value
+ */
+ IMPORT_C TInt CallOrigin( TName& aCallName,
+ TCallOrigin& aOrigin ) const;
+
+ /**
+ * Terminates a call synchronously
+ *
+ * @param aCallName call name
+ * @return Error value
+ */
+ IMPORT_C TInt TerminateCall( TName& aCallName ) const;
+
+ /**
+ * Terminates a call asynchronously
+ *
+ * @param aStatus Request status
+ * @param aCallName call name
+ */
+ IMPORT_C void TerminateCall( TRequestStatus& aStatus,
+ TName& aCallName );
+
+ /**
+ * Notifies a client of changed Als blocked status
+ *
+ * @param aStatus Request status
+ * @param aBlockStatus ALS block status
+ */
+ IMPORT_C void NotifyAlsBlockedChanged( TRequestStatus& aStatus,
+ TGetAlsBlockStatus& aBlockStatus );
+
+ /**
+ * Gets the ciphering information synchronously
+ *
+ * @param aInfo: Ciphering information
+ * @return Error value
+ */
+ IMPORT_C TInt GetCipheringInfo( TCipheringInfo& aInfo );
+
+ /**
+ * Gets the ciphering info asynchronously
+ *
+ * @param aStatus Request status
+ * @param aInfo Ciphering information
+ */
+ IMPORT_C void GetCipheringInfo( TRequestStatus& aStatus,
+ TCipheringInfo& aInfo );
+
+ /**
+ * This function notifies a client of ciphering info change
+ *
+ * @param aStatus Request status
+ * @param aInfo Ciphering information
+ */
+ IMPORT_C void NotifyCipheringInfoChange( TRequestStatus& aStatus,
+ TCipheringInfo& aInfo );
+
+ /**
+ * Notifies a client of a change in NSPS (No Service Power Save)
+ *
+ * @param aStatus Request status
+ * @param aNspsStatus status of the NSPS (on/off)
+ */
+ IMPORT_C void NotifyNSPSStatus( TRequestStatus& aStatus,
+ TNspsStatus& aNspsStatus );
+
+ /**
+ * This function wake ups the net server from the NSPS state
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void NetWakeup( TRequestStatus& aStatus );
+
+ /**
+ * Checks the status of the ALS in the product profile synchronously
+ *
+ * @param aSupport Als support Status
+ * @return Error value
+ */
+ IMPORT_C TInt CheckAlsPpSupport( TAlsSupport& aSupport ) const;
+
+ /**
+ * Checks the status of the ALS in the product profile asynchronously
+ *
+ * @param aStatus Request status
+ * @param aSupport Als support Status
+ */
+ IMPORT_C void CheckAlsPpSupport( TRequestStatus& aStatus,
+ TAlsSupport& aSupport );
+
+ /**
+ * Gets network provider name synchronously
+ *
+ * @param aNetworkProviderName Network provider name
+ * @return Error value
+ */
+ IMPORT_C TInt GetNetworkProviderName(
+ TDes& aNetworkProviderName ) const;
+
+ /**
+ * Gets network provider name asynchronously
+ *
+ * @param aStatus Request status
+ * @param aNetworkProviderName Network provider name
+ */
+ IMPORT_C void GetNetworkProviderName( TRequestStatus& aStatus,
+ TDes& aNetworkProviderName );
+
+ /**
+ * This function retrieves syncronously the information
+ * if the security code is blocked or not.
+ *
+ * @param aType Security code type
+ * @param aIsBlocked Code blocking status
+ * @return Error value
+ */
+ IMPORT_C TInt IsBlocked( TSecurityCodeType& aType,
+ TBool& aIsBlocked );
+
+ /**
+ * This method activates syncronously the security code request and
+ * triggers the security server to prompt PIN-code from client.
+ *
+ * @param aCode Security code type
+ * @return Error value
+ */
+ IMPORT_C TInt CheckSecurityCode ( const TSecurityCodeType aCode );
+
+ /**
+ * This method activates asyncronously the security code request and
+ * triggers the security server to prompt PIN-code from client.
+ *
+ * @param aStatus Request status
+ * @param aCode Security code type
+ */
+ IMPORT_C void CheckSecurityCode ( TRequestStatus& aStatus,
+ const TSecurityCodeType aCode );
+
+ /**
+ * This function retrieves syncronously the currently active PIN code
+ *
+ * @param aActivePin Currently active PIN
+ */
+ IMPORT_C void GetActivePin(
+ RMobilePhone::TMobilePhoneSecurityCode& aActivePin );
+
+ /**
+ * Get the air time use duration synchronously
+ *
+ * @param aTime air time duration in seconds.
+ * @return KErrNone
+ */
+ IMPORT_C TInt GetAirTimeDuration( TTimeIntervalSeconds& aTime ) const;
+
+ /**
+ * Checks the given number against emergency number list sychronously
+ *
+ * @param aNumMode Number and check mode
+ * @param aResult Result of query
+ * @return Error value
+ */
+ IMPORT_C TInt CheckEmergencyNumber( TEmerNumberCheckMode& aNumMode,
+ TBool& aResult ) const;
+
+ /**
+ * Checks the given number against emergency number list asychronously
+ *
+ * @param aStatus Request status
+ * @param aNumMode Number and check mode
+ * @param aResult Result of query
+ */
+ IMPORT_C void CheckEmergencyNumber( TRequestStatus& aStatus,
+ TEmerNumberCheckMode& aNumMode,
+ TBool& aResult );
+
+ /**
+ * Clears Call Blacklist asynchronously
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void ClearCallBlackList( TRequestStatus& aStatus );
+
+ /**
+ * Clears Call Blacklist synchronously
+ *
+ * @return Error value
+ */
+ IMPORT_C TInt ClearCallBlackList() const;
+
+ /**
+ * Notification request for additionalinfo message
+ *
+ * @param aStatus Request status
+ * @param aSsAdditionalInfo SS additional information
+ */
+ IMPORT_C void SsAdditionalInfoNotification( TRequestStatus& aStatus,
+ TSsAdditionalInfo& aSsAdditionalInfo );
+
+ /**
+ * Notify a client of the success of the sent SS command
+ *
+ * @param aStatus Request status
+ * @param aSsStatus SS status
+ */
+ IMPORT_C void SsRequestCompleteNotification( TRequestStatus& aStatus,
+ TInt& aSsStatus );
+
+ /**
+ * Notify a client when phonebook caching is ready
+ *
+ * @param aStatus Request status
+ * @param aPndName Returns the name of phonebook having ready cache
+ */
+ IMPORT_C void NotifyPndCacheReady( TRequestStatus& aStatus,
+ TName& aPndName );
+
+ /**
+ * Gets current cache status
+ *
+ * @param aStatus Request status
+ * @param aPndStatus cache status
+ * @param aPndName phonebook name
+ */
+ IMPORT_C void GetPndCacheStatus( TRequestStatus& aStatus,
+ RMmCustomAPI::TPndCacheStatus& aPndStatus,
+ const TName& aPndName ) const;
+
+ /**
+ * Gets the operator name of the current network
+ *
+ * @param aStatus Request status
+ * @param aOperatorNameInfo Operator name info
+ */
+ IMPORT_C void GetOperatorName( TRequestStatus& aStatus,
+ TOperatorNameInfo& aOperatorNameInfo );
+
+ /**
+ * Gets the programmable operator logo of the current network
+ *
+ * This API is no longer supported!
+ *
+ * @param aStatus Request status
+ * @param aOperatorId operator Id
+ * @param aLogo operator logo
+ */
+ IMPORT_C void GetProgrammableOperatorLogo( TRequestStatus& aStatus,
+ TOperatorId& aOperatorId, TOperatorLogo& aLogo );
+
+ /**
+ * Notifies of the change in the operator logo of the current network
+ *
+ * @param aStatus Request status
+ * @param aOperatorId Id of the operator
+ */
+ IMPORT_C void NotifyProgrammableOperatorLogoChange(
+ TRequestStatus& aStatus,
+ TOperatorId& aOperatorId );
+
+ /**
+ * Notifies a client of SAT refresh
+ *
+ * @param aStatus: Request status
+ */
+ IMPORT_C void SatRefreshCompleteNotification(
+ TRequestStatus& aStatus );
+
+ /**
+ * Notifies the client about a network generated SS event
+ *
+ * @param aStatus Request status
+ * @param aSsTypeAndMode Type and mode
+ * @param aSsInfo SS info
+ */
+ IMPORT_C void NotifySsNetworkEvent( TRequestStatus& aStatus,
+ TSsTypeAndMode& aSsTypeAndMode, TSsInfo& aSsInfo );
+
+ /**
+ * Cancels active ussd session synchronously
+ *
+ * @return Error value
+ */
+ IMPORT_C TInt CancelUssdSession() const;
+
+ /**
+ * Cancels active ussd session asynchronously
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void CancelUssdSession( TRequestStatus& aStatus );
+
+ /**
+ * Checks two digit dial support synchronously
+ *
+ * @param aSupport two digit dial support status
+ * @return Error value
+ */
+ IMPORT_C TInt CheckTwoDigitDialSupport(
+ TTwoDigitDialSupport& aSupport ) const;
+
+ /**
+ * Checks two digit dial support asynchronously
+ *
+ * @param aStatus Request status
+ * @param aSupport two digit dial support status
+ */
+ IMPORT_C void CheckTwoDigitDialSupport( TRequestStatus& aStatus,
+ TTwoDigitDialSupport& aSupport );
+
+ /**
+ * This function resets the net server
+ *
+ */
+ IMPORT_C void ResetNetServer() const;
+
+ /**
+ * This function resets the net server
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void ResetNetServer( TRequestStatus& aStatus );
+
+ /**
+ * Releases CommDB file
+ *
+ * @param aStatus Request status
+ * @param aFileName File to be released
+ */
+ IMPORT_C void ReleaseFile( TRequestStatus& aStatus,
+ const TDesC& aFileName );
+
+ /**
+ * Restarts reading CommDB file
+ *
+ * @param aStatus Request status
+ * @param aFileName File to be restarted
+ */
+ IMPORT_C void RestartFile( TRequestStatus& aStatus,
+ const TDesC& aFileName );
+
+ /**
+ * Start Sim CB Topic Browsing
+ *
+ * @return TInt KErrNone if successful
+ */
+ IMPORT_C TInt StartSimCbTopicBrowsing();
+
+ /**
+ * Get next SIM CB Topic synchronously
+ *
+ * @param aSimCbTopic requested topic
+ * @return KErrNone if successful
+ */
+ IMPORT_C TInt GetNextSimCbTopic( TSimCbTopic& aSimCbTopic );
+
+ /**
+ * Get next SIM CB Topic asynchronously
+ *
+ * @param aStatus request status
+ * @param aSimCbTopic requested topic
+ */
+ IMPORT_C void GetNextSimCbTopic( TRequestStatus& aStatus,
+ TSimCbTopic& aSimCbTopic );
+
+ /**
+ * Delete SIM CB Topic synchronously
+ *
+ * @param aSimCbTopicNumber topic to be deleted
+ * @return Error value
+ */
+ IMPORT_C TInt DeleteSimCbTopic( const TUint &aSimCbTopicNumber );
+
+ /**
+ * Delete SIM CB Topic asynchronously. This asynchronous request can not be cancelled.
+ *
+ * @param aStatus request status
+ * @param aSimCbTopic topic to be deleted
+ */
+ IMPORT_C void DeleteSimCbTopic( TRequestStatus& aStatus,
+ const TUint &aSimCbTopicNumber );
+
+ /**
+ * Notifies of a network connection failure. This failure is so sever
+ * that the only way to recover is to restart the phone.
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void NotifyNetworkConnectionFailure(
+ TRequestStatus& aStatus );
+
+ /**
+ * Send APDU request and wait for response synchronously
+ *
+ * @param anAPDUReq reference to structure containing APDU request's
+ * details
+ * @return Error value
+ */
+ IMPORT_C TInt SendAPDUReq( TApdu& anAPDUReq );
+
+ /**
+ * Send APDU request asynchronously
+ *
+ * @param aStatus Request status
+ * @param anAPDUReq reference to structure containing APDU request's
+ * details
+ */
+ IMPORT_C void SendAPDUReq( TRequestStatus& aStatus,
+ TApdu& anAPDUReq );
+
+ /**
+ * Disables phone lock
+ *
+ * @param aStatus Request status
+ * @param aVerifyCode Password for verification
+ */
+ IMPORT_C void DisablePhoneLock( TRequestStatus& aStatus,
+ RMobilePhone::TMobilePassword& aVerifyCode ) const;
+
+ /**
+ * Notifies an EGPRS information change
+ *
+ * @param aStatus Request status
+ * @param aGprsInfo is a reference to a TGprsInformation class
+ * packaged inside a TPckg<> class.
+ */
+ IMPORT_C void NotifyEGprsInfoChange( TRequestStatus& aStatus,
+ TDes8& aGprsInfo ) const;
+
+ /**
+ * Gets EGPRS information
+ *
+ * @param aStatus Request status
+ * @param aGprsInfo is a reference to a TGprsInformation class
+ * packaged inside a TPckg<> class.
+ */
+ IMPORT_C void GetEGprsInfo ( TRequestStatus& aStatus,
+ TDes8& aGprsInfo ) const;
+
+ /**
+ * Reads information from a SIM file asynchronously
+ *
+ * @param aStatus Request status
+ * @param aSimFileInfo reference to class containing SIM File's info
+ * @param aResponseBytes reference to buffer in which store
+ * SIM File's data
+ */
+ IMPORT_C void ReadSimFile ( TRequestStatus& aStatus,
+ TDes8& aSimFileInfo, TDes8& aResponseBytes ) const;
+
+ /**
+ * Gets the life time synchronously
+ *
+ * @param aLifeTimeInfo reference to class containing Life
+ * time information
+ * @return TInt
+ */
+ IMPORT_C TInt GetLifeTime( TDes8& aLifeTimeInfo ) const;
+
+ /**
+ * Gets the life time asynchronously
+ *
+ * @param aStatus Request status
+ * @param aLifeTimeInfo reference to class containing Life
+ * time information
+ */
+ IMPORT_C void GetLifeTime( TRequestStatus& aStatus,
+ TDes8& aLifeTimeInfo ) const;
+
+ /**
+ * Gets phonebook 3G information
+ *
+ * @param aStatus Request status
+ * @param aInfo reference to class containing phonebook 3G information
+ */
+ IMPORT_C void Get3GPBInfo( TRequestStatus& aStatus,
+ T3GPBInfo& aInfo ) const;
+
+ /**
+ * This method reads all network system modes synchronously.
+ *
+ * @param aSupportedNetworkModes supported networkmodes
+ * @return Error value
+ */
+ IMPORT_C TInt GetSystemNetworkModes(
+ TUint32& aSupportedNetworkModes ) const;
+
+ /**
+ * This method reads all network system modes asynchronously.
+ *
+ * @param aStatus Request status
+ * @param aSupportedNetworkModes supported networkmodes
+ */
+ IMPORT_C void GetSystemNetworkModes( TRequestStatus& aStatus,
+ TUint32& aSupportedNetworkModes ) const;
+
+ /**
+ * This method sets network system mode synchronously.
+ *
+ * @param aNetworkMode system networkmode
+ * @return KErrNone if successful
+ */
+ IMPORT_C TInt SetSystemNetworkMode(
+ const TNetworkModeCaps aNetworkMode );
+
+ /**
+ * This method sets network system mode asynchronously.
+ *
+ * @param aStatus Request status
+ * @param aSupportedNetworkModes supported networkmodes
+ */
+ IMPORT_C void SetSystemNetworkMode( TRequestStatus& aStatus,
+ const TNetworkModeCaps aNetworkMode );
+
+ /**
+ * This method gets current network system mode synchronously.
+ *
+ * @param aCurrentNetworkModes Current networkmodes
+ * @return Error value
+ */
+ IMPORT_C TInt GetCurrentSystemNetworkModes(
+ TUint32& aCurrentNetworkModes ) const;
+
+ /**
+ * This method gets current system mode asynchronously.
+ *
+ * @param aStatus Request status
+ * @param aCurrentNetworkModes Current networkmodes
+ */
+ IMPORT_C void GetCurrentSystemNetworkModes( TRequestStatus& aStatus,
+ TUint32& aCurrentNetworkModes ) const;
+
+ /**
+ * This method reads network system band synchronously.
+ *
+ * @param aSupportedNetworkBand supported networkband
+ * @return Error value
+ */
+ IMPORT_C TInt GetSystemNetworkBand(
+ TBandSelection& aSupportedNetworkBand,
+ TNetworkModeCaps& aNetworkMode ) const;
+
+ /**
+ * This method reads network system band asynchronously.
+ *
+ * @param aStatus Request status
+ * @param aSupportedNetworkBands supported networkband
+ */
+ IMPORT_C void GetSystemNetworkBand( TRequestStatus& aStatus,
+ TBandSelection& aSupportedNetworkBand,
+ TNetworkModeCaps& aNetworkMode ) const;
+
+ /**
+ * This method sets network system band synchronously.
+ *
+ * @param aNetworkBand system networkband
+ * @return KErrNone if successful
+ */
+ IMPORT_C TInt SetSystemNetworkBand(
+ const TBandSelection aNetworkBand,
+ const TNetworkModeCaps aNetworkMode );
+
+ /**
+ * This method sets network system band asynchronously.
+ *
+ * @param aStatus Request status
+ * @param aSupportedNetworkBand supported networkbands
+ * @param aNetworkMode used network mode
+ */
+ IMPORT_C void SetSystemNetworkBand( TRequestStatus& aStatus,
+ const TBandSelection aNetworkBand,
+ const TNetworkModeCaps aNetworkMode );
+
+ /**
+ * Power SIM ON.
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void PowerSimOn( TRequestStatus& aStatus );
+
+ /**
+ * Power SIM OFF.
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void PowerSimOff( TRequestStatus& aStatus );
+
+ /**
+ * Perform Warm Reset to SIM.
+ *
+ * @param aStatus Request status
+ */
+ IMPORT_C void SimWarmReset( TRequestStatus& aStatus );
+
+ /**
+ * Send APDU Request to APDU server
+ *
+ * @param aStatus Request status
+ * @param aParam Parameters for Apdu ( cardreaderid, commandApdu,
+ responseApdu )
+ */
+ IMPORT_C void SendAPDUReq( TRequestStatus& aStatus,
+ TApduParameters& aParams );
+
+ /**
+ * Get Answer To Reset
+ *
+ * @param aStatus Request status
+ * @param aATR reference containing Answer To Reset bytes from ICC
+ */
+ IMPORT_C void GetATR( TRequestStatus& aStatus, TDes8& aATR );
+
+ /**
+ * Get Card Reader Status
+ *
+ * @param aStatus Request status
+ * @param aCardReaderStatus
+ */
+ IMPORT_C void GetSimCardReaderStatus( TRequestStatus& aStatus,
+ TSimCardReaderStatus &aCardReaderStatus );
+
+ /**
+ * Notify SIM Card Status
+ *
+ * @param aStatus Request status
+ * @param aCardStatus Card status
+ */
+ IMPORT_C void NotifySimCardStatus( TRequestStatus& aStatus,
+ TSIMCardStatus& aCardStatus );
+
+ /**
+ * Get WLAN SIM Authentication Data
+ *
+ * @param aStatus Request status
+ * @param aAuthenticationData Authentication Data
+ */
+ IMPORT_C void GetWlanSimAuthenticationData(
+ TRequestStatus& aReqStatus,
+ TDes8& aAuthenticationData ) const;
+
+ /**
+ * Sets "storage status" byte of a SIM-stored SMS message to "read".
+ * Parameters are SM service center timestamp (as of 3GPP TS 23.040).
+ *
+ * @param aTime time
+ * @param aTimezoneDiff timezone (difference to GMT, in quarters of
+ * an hour)
+ */
+ IMPORT_C void SetSimMessageStatusRead( TTime& aTime,
+ TInt& aTimezoneDiff ) const;
+
+ /**
+ * This method writes specified VIAG Home Zone UHZIUE settings synchronously.
+ *
+ *
+ * U-HZI-UE settings field is coded as follow:
+ *
+ * -------------------------
+ * |b8|b7|b6|b5|b4|b3|b2|b1|
+ * -------------------------
+ * <-0:The U-HZI-UE is deactivated
+ * 1:The U-HZI-UE is activated
+ *
+ * <----0:The CB-HZI-UE is deactivated
+ * 1:The CB-HZI-UE is activated
+ *
+ * Constants RMmCustomAPI::KUHziUeActive and RMmCustomAPI::HCbHziUeActive
+ * can be used to determine and modificate states of different activation bits.
+ *
+ * For example:
+ *
+ * if ( iEfUHziUeSettings.settings & KUHziUeActive )
+ * then U-HZI-UE is activated
+ *
+ * Activate:
+ * iEfUHziUeSettings.settings |= KUHziUeActive;
+ *
+ * Deactivate:
+ * iEfUHziUeSettings.settings &= ~KUHziUeActive;
+ *
+ *
+ * @param aSettings Settings
+ * @return Error value
+ */
+ IMPORT_C TInt WriteViagHomeZoneUHZIUESettings(
+ TViagUHZIUESettings& aSettings) const;
+
+ /**
+ * This method writes specified VIAG Home Zone UHZIUE settings
+ * asynchronously.
+ *
+ * @param aStatus Request status
+ * @param aSettings Settings
+ */
+ IMPORT_C void WriteViagHomeZoneUHZIUESettings (
+ TRequestStatus& aStatus, TViagUHZIUESettings& aSettings) const;
+
+ /**
+ * Read HSxPA Status
+ *
+ * @param aStatus Request status
+ * @param aHSxPAStatus
+ */
+ IMPORT_C void ReadHSxPAStatus( TRequestStatus& aStatus,
+ THSxPAStatus& aHSxPAStatus );
+
+ /**
+ * Write HSxPA Status
+ *
+ * @param aStatus Request status
+ * @param aHSxPAStatus
+ */
+ IMPORT_C void WriteHSxPAStatus( TRequestStatus& aStatus,
+ THSxPAStatus& aHSxPAStatus );
+
+ /**
+ * Notify HSxPA Status change
+ *
+ * @param aStatus Request status
+ * @param aHSxPAStatus
+ */
+ IMPORT_C void NotifyHSxPAStatus( TRequestStatus& aStatus,
+ THSxPAStatus& aHSxPAStatus );
+
+ /**
+ * Get ICC call forwarding status
+ *
+ * @param aReqStatus Request status
+ * @param aCFIndicators refrence to class CFIndicators
+ */
+ IMPORT_C void GetIccCallForwardingIndicatorStatus(
+ TRequestStatus& aReqStatus, //TUint8 aMspId,
+ TDes8& aCFIndicators ) const;
+
+ /**
+ * Notify ICC call forwarding status change
+ *
+ * @param aReqStatus Request status
+ * @param aCFIndicators refrence to class CFIndicators
+ */
+ IMPORT_C void NotifyIccCallForwardingStatusChange(
+ TRequestStatus& aReqStatus,
+ TDes8& aCFIndicators );
+
+ /**
+ * Get GSM/WCDMA cell(s) info
+ *
+ * @param aStatus Request status
+ * @param aCellInfo
+ */
+ IMPORT_C void GetCellInfo( TRequestStatus& aStatus,
+ TDes8& aCellInfo ) const;
+
+ /**
+ * Notify Cell info change
+ *
+ * @param aStatus Request status
+ * @param aCellInfo
+ */
+ IMPORT_C void NotifyCellInfoChange( TRequestStatus& aStatus,
+ TDes8& aCellInfo ) const;
+
+
+ /**
+ * Get service table availability on USIM
+ *
+ * @since S60 v3.2
+ * @param aStatus Request status
+ * @param aParams aServiceNum. A service support in service table
+ * specified by the client
+ */
+ IMPORT_C void GetUSIMServiceSupport(
+ TRequestStatus& aStatus, TAppSupport& aParams ) const;
+
+ /**
+ * This function notifies a client of RemoteAlertingToneStatus change
+ *
+ * @param aStatus Request status
+ * @param aToneStatus RemoteAlertingTone status
+ */
+ IMPORT_C void NotifyRemoteAlertingToneStatusChange(
+ TRequestStatus& aStatus, TRemoteAlertingToneStatus& aToneStatus );
+
+ private:
+
+ /**
+ * Copy constructor
+ *
+ * @param aCustomAPI Custom API handle
+ */
+ RMmCustomAPI( const RMmCustomAPI& aCustomAPI );
+
+ protected:
+
+ /**
+ * 2nd phase constructor.
+ */
+ IMPORT_C void ConstructL();
+
+ /**
+ * Destructor
+ */
+ IMPORT_C void Destruct();
+
+ private: // Data
+
+ /*
+ * Pointer to he Custom pointer holder
+ * Own.
+ */
+ CMmCustomPtrHolder* iCustomPtrHolder;
+ };
+
+/**
+ * CMmCustomPtrHolder contains Custom Pointer Holder related functionality
+ * @publishedPartner
+ */
+ class CMmCustomPtrHolder : public CBase
+ {
+ public: // Constructors and destructor
+
+ static CMmCustomPtrHolder* NewL( const TInt aSizeOfPtrArray,
+ const TInt aSizeOfPtrCArray=0 );
+
+ ~CMmCustomPtrHolder();
+
+ template <typename T> inline TPtr8& Set( TInt aSlot, T& aObject )
+ {
+ TPtr8& ptr=Ptr( aSlot );
+ ptr.Set( REINTERPRET_CAST( TText8*, ( &aObject ) ), sizeof( T ),
+ sizeof( T ) );
+
+ return ptr;
+ };
+
+ template <typename T> inline TPtrC8& SetC(
+ TInt aSlot, const T& aObject)
+ {
+ TPtrC8& ptr=PtrC( aSlot );
+ ptr.Set( REINTERPRET_CAST( const TText8*, ( &aObject ) ),
+ sizeof( T ) );
+
+ return ptr;
+ };
+
+ protected:
+
+ void ConstructL( const TInt aSizeOfPtrArray,
+ const TInt aSizeOfPtrCArray );
+ CMmCustomPtrHolder();
+
+ public: // Data
+
+ /*
+ * Sim Topic
+ */
+ RMmCustomAPI::TSimCbTopic iSimCbTopic;
+
+ /*
+ * SimTopic number
+ */
+ TUint iSimCbTopicNumber;
+
+ /*
+ * Als block status for set
+ */
+ RMmCustomAPI::TSetAlsBlock iSetAlsBlock;
+
+ /*
+ * Drive Mode
+ */
+ RMmCustomAPI::TSetDriveMode iSetDriveMode;
+
+ /*
+ * Sim lock number
+ */
+ RMmCustomAPI::TLockNumber iSimLockNumber;
+
+ /*
+ * Sim lock password
+ */
+ RMmCustomAPI::TSimLockPassword iSimLockPassword;
+
+ /*
+ * Viag cache id
+ */
+ RMmCustomAPI::TViagCacheRecordId iViagCacheId;
+
+ /*
+ * Viag cache record
+ */
+ RMmCustomAPI::TViagCacheRecordContent iViagCacheRecord;
+
+ /*
+ * Security code typeiSecurityCodeType;
+ */
+ RMmCustomAPI::TSecurityCodeType iSecurityCodeType;
+
+ /*
+ * Operator name type
+ */
+ RMmCustomAPI::TOperatorNameType iOperatorNameType;
+
+ /*
+ * Phonebook 3G info
+ */
+ RMmCustomAPI::T3GPBInfo i3GPBInfo;
+
+ /*
+ * Supported network modes
+ */
+ TUint32 iSupportedNetworkModes;
+
+ /*
+ * System network mode
+ */
+ RMmCustomAPI::TNetworkModeCaps iNetworkModeCaps;
+
+ /*
+ * Current network modes
+ */
+ TUint32 iCurrentNetworkModes;
+
+ /**
+ * Network UMTS rf band
+ */
+ RMmCustomAPI::TBandSelection iNetworkBand;
+
+ /**
+ * Supported network band
+ */
+ RMmCustomAPI::TBandSelection iSupportedNetworkBand;
+
+ /**
+ * HSxPA Status
+ */
+ RMmCustomAPI::THSxPAStatus iHSxPAStatus;
+
+ protected: // Data
+
+ RArray<TPtr8> iPtrArray;
+ RArray<TPtrC8> iPtrCArray;
+
+ private: // Data
+
+ TPtr8& Ptr( TInt aIndex );
+ TPtrC8& PtrC( TInt aIndex );
+
+ };
+
+#endif // RMMCUSTOMAPI_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/S3libs/ABLD.BAT Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\homescreensrv\dependencies\S3libs\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
Binary file dependencies/S3libs/abclient.lib has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/S3libs/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,6 @@
+PRJ_EXPORTS
+
+sysversioninfo.lib \epoc32\release\winscw\udeb\sysversioninfo.lib
+abclient.lib \epoc32\release\winscw\udeb\abclient.lib
+featmgr.lib \epoc32\release\winscw\udeb\featmgr.lib
+liwServiceHandler.lib \epoc32\release\winscw\udeb\liwServiceHandler.lib
\ No newline at end of file
Binary file dependencies/S3libs/featmgr.lib has changed
Binary file dependencies/S3libs/liwServiceHandler.lib has changed
Binary file dependencies/S3libs/sysversioninfo.lib has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/RSatSession.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2002-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: Common session for accessing SatServer services.
+*
+*/
+
+#ifndef RSATSESSION_H
+#define RSATSESSION_H
+
+#include <e32std.h>
+#include <e32base.h>
+
+/**
+ * Definitions of SAT API versions.
+ */
+#define SIM_ATK_SERVICE_API_V1
+
+/**
+* Handles the connection to SatServer. This class
+* is used with the sub-sessions.
+*
+* @lib SatClient
+* @since Series60 2.6
+*/
+class RSatSession : public RSessionBase
+ {
+
+ public: // New functions
+
+ /**
+ * C++ default constructor.
+ */
+ IMPORT_C RSatSession();
+
+ /**
+ * Opens session to SatServer
+ */
+ IMPORT_C void ConnectL();
+
+ /**
+ * The client API version.
+ */
+ IMPORT_C TVersion Version() const;
+
+ private:
+
+ /**
+ * Prohibit copy constructor if not deriving from CBase.
+ */
+ RSatSession( const RSatSession& );
+
+ /**
+ * Prohibit assigment operator if not deriving from CBase.
+ */
+ RSatSession& operator=( const RSatSession& );
+
+ };
+
+#endif // RSATSESSION_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,4 @@
+PRJ_EXPORTS
+RSatSession.h RSatSession.h
+tsaticoninfo.h tsaticoninfo.h
+rsatservice.h rsatservice.h
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/rsatservice.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,369 @@
+/*
+* 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: Sub-session for SAT services.
+*
+*/
+
+#ifndef RSATSERVICE_H
+#define RSATSERVICE_H
+
+// INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+class CFbsBitmap;
+class RSatSession;
+class TSatIconInfo;
+class TSatInternalIconInfo;
+class CSatPluginMonitor;
+
+// DATA TYPES
+
+/**
+ * Array containing the icon information
+ */
+typedef RArray<TSatIconInfo> RIconEf;
+
+
+// CLASS DECLARATION
+
+/**
+ * <b>Sub-session for SAT services to SIM</b>
+ *
+ * In order to use SAT Service API, services of an another API is needed:
+ * <ul>
+ * <li><b>SAT Client API</b> \n For connecting SAT Session <BR>
+ * </ul>
+ *
+ * Idle mode text client needs to monitor for idle mode content
+ * changes and call SetIdleModeTextResponse()
+ * if content is updated.
+ * Result needs to be reported also if there already is
+ * initial content after startup, when change notification has not been
+ * requested yet.
+ * Example sequence for Idle mode client:
+ * 1. Startup
+ * 2. Request notification for idle mode content updates from.
+ * 3. Try to get initial idle mode text.
+ * 4. Use initial content, if there was some.
+ * 5. Report result if there was content.
+ * Later:
+ * 6. Idle mode text change notification request is completed.
+ * 7. Renew notification request.
+ * 8. Read new content.
+ * 9. Use new content.
+ * 10. Report result.
+ *
+ * @code
+ * // How to connect to SAT service :
+ * // How to request notification on SetupIdleModeText change:
+ *
+ * RSatSession satSession;
+ * RSatService satService;
+ * // Connect session
+ * satSession.ConnectL();
+ * satService.OpenL( satSession );
+ * // Start observing asynchronously for changes
+ * satService.NotifySetupIdleModeTextChange( status );
+ *
+ * //How to read Idle Mode Text and icon:
+ *
+ * // Read text and icon after startup and when notified about change.
+ * TSatIconQualifier iconQualif( ESatIconNoIcon );
+ * TUint8 recordId( 0 );
+ * TInt error( KErrNone );
+ * HBufC* text = NULL;
+ * satService.GetSetupIdleModeTextL(
+ * text, iconQualif, recordId );
+ * CFbsBitmap* icon = NULL;
+ * if ( text )
+ * {
+ * // Use text, take care of cleanup.
+ * }
+ * if ( ESatIconNoIcon != iconQualif )
+ * {
+ * // There's an icon to be displayed.
+ * // Get icon records into array.
+ * RIconEf iconInfos;
+ * CleanupStack::PushL( TCleanupItem(
+ * LocalArrayCleanupFunction, iconInfos )
+ * satService.GetIconInfoL( recordId, iconInfos );
+ *
+ * // Resolve which icon to use using icon infos.
+ * // Then get the icon you selected.
+ * icon = satService.GetIconL( iconInfos[ 0 ] );
+ * CleanupStack::PopAndDestroy(); // iconInfos
+ *
+ * if ( ESatIconSelfExplanatory == iconQualif )
+ * {
+ * // Only icon should be displayed.
+ * }
+ * else if ( ESatIconNotSelfExplanatory == iconQualif )
+ * {
+ * // Both text and icon should be displayed.
+ * }
+ * }
+ * // else: only text should be displayed
+ *
+ * // Display text and/or icon, take care of their cleanup.
+ *
+ * @endcode
+ *
+ *
+ * @lib SatClient.lib
+ * @since 5.1
+ */
+class RSatService : public RSubSessionBase
+ {
+
+ public: // Enumerations
+
+ /**
+ * Result options for idle mode text setup.
+ */
+ enum TSATIdleResult
+ {
+
+ /**
+ * Text and Icon were set up successfully
+ */
+ ESATIdleSuccess = 0x00,
+
+ /**
+ * Text was set up successfully, but requested icon was not
+ * displayed
+ */
+ ESATIdleSuccessRequestedIconNotDisplayed = 0x04,
+
+ /**
+ * Text could not be displayed - temporary problem
+ */
+ ESATIdleMeUnableToProcessCmd = 0x20,
+
+ /**
+ * Text could not be displayed - permanent problem
+ */
+ ESATIdleCmdBeyondMeCapabilities = 0x30
+ };
+
+ /**
+ * Specifies icon role.
+ */
+ enum TSatIconQualifier
+ {
+
+ /**
+ * Icon is not available.
+ */
+ ESatIconNoIcon = 1,
+
+ /**
+ * Icon is self-explanatory,
+ * i.e. if displayed, it replaces the text string.
+ */
+ ESatIconSelfExplanatory,
+
+ /**
+ * Icon is not self-explanatory,
+ * i.e. if displayed, it shall be displayed together with
+ * the text string.
+ */
+ ESatIconNotSelfExplanatory
+ };
+
+ public: // Constructors
+
+ /**
+ * C++ default constructor.
+ */
+ IMPORT_C RSatService();
+
+ public: // New functions
+
+ /**
+ * Opens the sub-session.
+ *
+ * @since 5.1
+ * @param aSession Sub-session.
+ * @leave Error value returned by RSubSessionBase::CreateSubSession.
+ */
+ IMPORT_C void OpenL( const RSatSession& aSession );
+
+ /**
+ * Closes the sub-session.
+ *
+ * @since 5.1
+ */
+ IMPORT_C void Close();
+
+ /**
+ * Requests notification when idle mode text or image are
+ * updated.
+ *
+ * Idle client needs to monitor for setup idle mode content updates.
+ * When a request is completed, the Idle client
+ * can read new content using GetSetupIdleModeTextL and must
+ * report idle mode content displaying result using
+ * SetIdleModeTextResponse().
+ *
+ * @since 5.1
+ * @param aStatus Request to be completed on update.
+ * @return KErrNone or a system-wide error code.
+ * On an error request is not accepted so don't set requester active.
+ */
+ IMPORT_C TInt NotifySetupIdleModeTextChange(
+ TRequestStatus& aStatus );
+
+ /**
+ * Cancels notification request for setup idle mode
+ * text or image change.
+ *
+ * @since 5.1
+ */
+ IMPORT_C void NotifySetupIdleModeTextChangeCancel();
+
+ /**
+ * Get idle mode text and icon.
+ *
+ * Icon and text should be displayed depending on how aIconQualifier
+ * specifies icon role. Result must be reported using
+ * RSatService::SetIdleModeTextResponse().
+ * Notice: result needs to be reported also if content is available
+ * already after startup when client requests notification for the
+ * first time.
+ * If unable to display icon, then only text can be displayed (adjust
+ * reported result value).
+ *
+ * @since 5.1
+ * @param aText New text, if available. Ownership transferred.
+ * NULL if no text to display.
+ * @param aIconQualifier Specifies if icon, text or both are preferred.
+ * @param aRecordNumber Record id for icon.
+ * @return Reserved for future use.
+ * @leave KErrNotFound ESatIconNotSelfExplanatory icon without text.
+ */
+ IMPORT_C TBool GetSetupIdleModeTextL(
+ HBufC*& aText,
+ TSatIconQualifier& aIconQualifier,
+ TUint8& aRecordNumber );
+
+ /**
+ * Gets the information of icons from the SIM.
+ *
+ * @since 5.1
+ * @param aRecordNumber Record number from proactive command.
+ * @param aIconEf Contains the icon information.
+ * @leave Error value returned by RSubSessionBase::SendReceive.
+ * @leave KErrCorrupt if the info is invalid.
+ */
+ IMPORT_C void GetIconInfoL( TUint8 aRecordNumber,
+ RIconEf& aIconEf ) const;
+
+ /**
+ * Gets the bitmap of selected icon from SIM. Client should determine
+ * the suitable icon using GetIconInfoL.
+ *
+ * @since 5.1
+ * @param aIconInfo Information of the selected icon.
+ * @leave Error value returned by RSubSessionBase::SendReceive.
+ * @leave Error value returned by CFbsBitmap::Duplicate.
+ * @leave Error value returned by RSubSessionBase::Send.
+ * @return Bitmap of the icon. The client is responsible for deleting
+ * the pointer.
+ */
+ IMPORT_C CFbsBitmap* GetIconL( const TSatIconInfo& aIconInfo ) const;
+
+ /**
+ * Sets SetUpIdleModeText response.
+ *
+ * This must be called by the Idle client application after
+ * IdleModeText has been modified by SAT, meaning
+ * when RSatService::NotifySetupIdleModeTextChange() is completed.
+ * Also needs to be called if GetSetupIdleModeTextL() returned
+ * content and RSatService::NotifySetupIdleModeTextChange()
+ * notification was not requested yet.
+ *
+ * @since 5.1
+ * @param aResult Result of displaying idle mode text and icon.
+ */
+ IMPORT_C void SetIdleModeTextResponse(
+ const TSATIdleResult& aResult ) const;
+
+
+ private: // New functions
+
+ /**
+ * Checks that the data from SIM is valid.
+ *
+ * @since 5.1
+ * @param aData Icon info to be checked.
+ * @leave KErrCorrupt if the info is invalid.
+ */
+ void CheckInfoValidityL( const TDesC8& aData ) const;
+
+ /**
+ * Set ETSI specified bitmap data to TSatIconInfo.
+ *
+ * @since 5.1
+ * @param aContainer Client side Icon info.
+ * @param aIconSatData RSat::TIcon data from server.
+ */
+ void SetIconInfoL( TSatIconInfo& aContainer,
+ const TDesC8& aIconSatData ) const;
+
+ /**
+ * Convert TSatIconinfo to TSatInternalIconInfo.
+ *
+ * @since 5.1
+ * @param aIconInfo user side icon info.
+ * @param aInternalIconINfo sat side icon info.
+ */
+ void FillInternalIconInfo( const TSatIconInfo& aIconInfo,
+ TSatInternalIconInfo& aInternalIconInfo ) const;
+
+ private:
+
+ /**
+ * Prohibit copy constructor if not deriving from CBase.
+ */
+ RSatService( const RSatService& );
+
+ /**
+ * Prohibit assigment operator if not deriving from CBase.
+ */
+ RSatService& operator=( const RSatService& );
+
+ private: // Data
+
+ /**
+ * Arguments for asynchronous message.
+ */
+ TIpcArgs iArgs;
+
+ /**
+ * Maximum support icon size.
+ */
+ TInt iMaxIconDataSize;
+
+ /**
+ * SetupIdleMode content monitoring.
+ * Own
+ */
+ CSatPluginMonitor* iSatPluginMonitor;
+
+ };
+
+#endif // RSATSERVICE_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/tsaticoninfo.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2002-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: Capsulates the icon information from the SIM.
+*
+*/
+
+
+#ifndef TSATICONINFO_H
+#define TSATICONINFO_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+ * Capsulates the SAT icon information.
+ *
+ * @lib SatClient.lib
+ * @since 2.6
+ */
+NONSHARABLE_CLASS( TSatIconInfo )
+ {
+ public: // Enums
+
+ /**
+ * Coding scheme of the icon.
+ * @since 2.6
+ */
+ enum TCodingScheme
+ {
+ EBasic = 0x11, ///< Basic (Black and White) icon
+ EColor = 0x21 ///< Color icon
+ };
+
+ public: // Constructors
+
+ /**
+ * Constructor.
+ */
+ TSatIconInfo();
+
+ public: // New functions
+
+ /**
+ * Size of the icon.
+ *
+ * @since 5.1
+ * @return Size of the icon.
+ */
+ IMPORT_C TSize IconSize() const;
+
+ /**
+ * Coding scheme of the icon.
+ *
+ * @since 5.1
+ * @return Icon coding scheme.
+ */
+ IMPORT_C TCodingScheme CodingScheme() const;
+
+ /**
+ * Identifies the EF (Elementary File), where the icon is located in
+ * the SIM.
+ *
+ * @since 5.1
+ * @return EF identifier.
+ */
+ IMPORT_C TUint16 FileIdentifier() const;
+
+ /**
+ * Offset to the EF, where the icon is located.
+ *
+ * @since 5.1
+ * @return Offset to the EF.
+ */
+ IMPORT_C TUint16 Offset() const;
+
+ /**
+ * Length of the icon data.
+ *
+ * @since 5.1
+ * @return Length of the icon data.
+ */
+ IMPORT_C TUint16 DataLength() const;
+
+ /**
+ * Set size of the icon.
+ *
+ * @since 5.1
+ * @param aIconSize Size of the icon.
+ */
+ void SetIconSize( const TSize aIconSize );
+
+ /**
+ * Set coding scheme of the icon.
+ *
+ * @since 5.1
+ * @param aCodingScheme Icon coding scheme.
+ */
+ void SetCodingScheme( const TCodingScheme aCodingScheme );
+
+ /**
+ * Set identifies the EF (Elementary File), where the icon is located in
+ * the SIM.
+ * @since 5.1
+ * @param EF identifier.
+ */
+ void SetFileIdentifier( const TUint16 aFileIdentifier );
+
+ /**
+ * Set offset to the EF, where the icon is located.
+ *
+ * @since 5.1
+ * @param aOffset Offset to the EF.
+ */
+ void SetOffset( const TUint16 aOffset);
+
+ /**
+ * Set length of the icon data.
+ *
+ * @since 5.1
+ * @param aDataLength Length of the icon data.
+ */
+ void SetDataLength( const TUint16 aDataLength );
+
+ private: // Data
+
+ /**
+ * Size of the icon.
+ */
+ TSize iSize;
+
+ /**
+ * Coding scheme of the icon.
+ */
+ TCodingScheme iCodingScheme;
+
+ /**
+ * File identifier
+ */
+ TUint16 iFileIdentifier;
+
+ /**
+ * Offset of the icon in EF.
+ */
+ TUint16 iOffset;
+
+ /**
+ * Length of the icon data.
+ */
+ TUint16 iLength;
+ };
+
+#endif // TSATICONINFO_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SATDomainPSKeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* 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: SATEngine Subsystem PubSub uid and keys declaration.
+*
+*/
+
+
+#ifndef SATDOMAINPSKEYS_H
+#define SATDOMAINPSKEYS_H
+
+// CONSTANTS
+
+// SAT Configuration API
+// Uid :
+const TUid KPSUidSatServer = { 0x101F79FC };
+
+/**
+ * Time between language selection notification and reboot.
+ *
+ * Default value: N/A
+ */
+const TUint32 KSatLanguageSelectionTimeBeforeReboot( 0x00000008 );
+
+#endif // SATDOMAINPSKEYS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ScreensaverInternalPSKeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2004-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 Publish & Subscribe keys.
+ *
+ *
+*/
+
+
+#ifndef SCREENSAVER_INTERNAL_PS_KEYS_H
+#define SCREENSAVER_INTERNAL_PS_KEYS_H
+
+#include <e32def.h>
+#include <e32cmn.h>
+
+const TUid KPSUidScreenSaver = { 0x101F8771 };
+
+/**
+ * Screen saver preview mode. This integer value triggers screen saver
+ * preview mode. Value is normally 0 but when set to 1 screen saver
+ * application goes to preview mode (ie. turns screensaver on for 10 seconds
+ * and then terminates it). If screensaver is already on when value is set
+ * to 1 then nothing happens.
+ *
+ * Possible values:
+ * 0: default value
+ * 1: triggers screensaver preview mode
+ */
+const TUint32 KScreenSaverPreviewMode = 0x00000001;
+
+/**
+ * Indication of allowing screen saver to be activated.
+ *
+ * Possible values:
+ * 0: screen saver is allowed to be activated.
+ * >0: screen saver is not allowed to be activated.
+ */
+const TUint32 KScreenSaverAllowScreenSaver = 0x00000002;
+
+/**
+ * Indication of whether screen saver is on (active) or not.
+ *
+ * Possible values:
+ * 0: screen saver is not active.
+ * >0: screen saver is displaying.
+ */
+const TUint32 KScreenSaverOn = 0x00000003;
+
+/**
+ * Indication of the state of screensaver preview
+ */
+const TUint32 KScreenSaverPreviewState = 0x00000004;
+enum TScreenSaverPreviewState
+ {
+ EScreenSaverPreviewNone, // Initial state, no preview in progress
+ EScreenSaverPreviewLoading, // Preview is loading
+ EScreenSaverPreviewInvalid, // Invalid file for preview
+ EScreenSaverPreviewLoaded, // Preview has been loaded, about to start
+ EScreenSaverPreviewStart, // Start of preview displaying
+ EScreenSaverPreviewEnd, // Preview displaying ended
+ EScreenSaverPreviewCancel, // Preview cancelled (e.g. by user)
+ EScreenSaverPreviewError // An error occurred during preview
+ };
+
+/**
+ * Indicates whether Idle was in front when screensaver was started.
+ * Keyguard uses this indication to decide if it can be automatically
+ * activated.
+ *
+ * Possible values:
+ * 0: Screensaver not active, or not started from Idle
+ * 1: Screensaver was started from Idle
+ */
+const TUint32 KScreenSaverActivatedFromIdle = 0x00000005;
+
+/**
+ * Indicates that currently selected screensaver plugin settings (that can
+ * not be otherwise watched through CR & P&S notifications) are being
+ * changed. Written by Themes, listened to by plugins interested in knowing
+ * whether their settings have changed "on the fly". The plugin does not
+ * write the value, as not all plugins will even listen to this key.
+ *
+ * Possible values:
+ * 0: Configured plugin is not the currently selected one,
+ * or settings were left unchanged
+ * 1: Current plugin is being configured. This lets the configuration
+ * dialog know the active plugin settings are being changed in Themes, so
+ * it can notify the plugin loaded in Screensaver context that its
+ * settings have changed through this key.
+ * 2: Current plugin was configured, and its settings were changed. The
+ * plugin running in Screensaver process should notice this, and reload
+ * its settings. After this the plugin should write the value back to 0.
+ */
+const TUint32 KScreenSaverPluginSettingsChanged = 0x00000006;
+enum TScreenSaverPluginSettingsState
+ {
+ // Configured plugin not current, or settings did not change
+ EScreenSaverPluginSettingsNoChange,
+ // Current plugin is being configured
+ EScreenSaverPluginSettingsChanging,
+ // Current plugin settings have changed
+ EScreenSaverPluginSettingsChanged
+ };
+
+
+/**
+ * Indicates that Screensaver should not attempt to use display power save mode
+ *
+ * Possible values:
+ * 0: Power save mode is used normally
+ * 1: Power save mode is not used
+ */
+const TUint32 KScreenSaverNoPowerSaveMode = 0x00000007;
+
+#endif // SCREENSAVER_INTERNAL_PS_KEYS_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SettingsInternalCRKeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,1044 @@
+/*
+* 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: Settings UIs domain Central Repository keys.
+*
+*/
+
+
+
+#ifndef SETTINGSINTERNALCRKEYS_H
+#define SETTINGSINTERNALCRKEYS_H
+
+// INCLUDES
+#include <e32def.h>
+
+// CONSTANTS
+
+/**
+* Network settings CR UID.
+*/
+const TUid KCRUidNetworkSettings = {0x101F8751};
+
+
+/**
+* Determines whether the user see visual notifications
+* when entering or leaving different cellular systems.
+* Possible interger values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsServiceAlertNotes = 0x00000004;
+
+/**
+* Determines whether the user will hear a service tone
+* when entering or leaving different cellular systems.
+* Possible interger values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsServiceAlertTones = 0x00000005;
+
+/**
+* Micro cellular network (Mcn) Display
+*
+* Possible values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsMcnDisplay = 0x00000006;
+
+
+/**
+* Security settings CR UID
+*/
+const TUid KCRUidSecuritySettings = {0x101F877A};
+
+/**
+* Autolock time
+* Possible values are:
+* 0-999 minutes
+*/
+const TUint32 KSettingsAutoLockTime = 0x00000001;
+
+/**
+* Autolock status
+* Possible values are:
+* 0 = phone is not locked
+* 1 = phone is locked
+*/
+const TUint32 KSettingsAutolockStatus = 0x00000002;
+
+/**
+* A CDMA Operator specific requirement, to be able to set the phone to
+* "Lock On Power Up" in General Settings. When this key is set to 1
+* the device security will lock the system (using Autolock) after each
+* phone reboot.
+*
+* Possible values are:
+* 0 = The phone doesn't get locked on Power Up
+* 1 = The phone gets locked on Power Up
+*/
+const TUint32 KSettingsLockOnPowerUp = 0x00000003;
+
+/**
+* Transaction Tracking status
+* Possible values are:
+* 0 = disabled
+* 1 = enabled
+*/
+const TUint32 KSettingsTransactionTracking = 0x00000004;
+
+/**
+* Automatic keyguard time in seconds
+* Possible values are from 0 to 3600
+*/
+const TUint32 KSettingsAutomaticKeyguardTime = 0x00000005;
+
+/**
+* Automatic keyguard maximum time
+* Value in seconds
+*/
+const TUint32 KSettingsMaxAutomaticKeyguardTime = 0x00000006;
+
+
+/**
+* Communication (aka networking) related settings CR UID
+*/
+const TUid KCRUidCommunicationSettings = {0x101F877B};
+
+/**
+* Name of polymorphic DLL to be loaded for VPN management UI.
+*/
+const TUint32 KSettingsVPNImplementation = 0x00000001;
+
+/**
+* VPN tab in Connection settings UI to be displayed or
+* hidden from the user.
+*
+* Possible values are:
+* 0 = Tab is hidden
+* 1 = Tab is shown
+*/
+const TUint32 KSettingsVPNSupported = 0x00000002;
+
+/**
+* Access Points item in Connection settings folder to be displayed or
+* hidden from the user.
+*
+* Possible values are:
+* 0 = item is hidden
+* 1 = item is shown
+*/
+const TUint32 KSettingsAPSettingsSupported = 0x00000003;
+
+/**
+* Terminal personalization settings CR UID
+*/
+const TUid KCRUidPersonalizationSettings = {0x101F877C};
+
+
+
+/**
+* Is operator logo is shown to the user.
+* 0 = Logo not shown
+* 1 = Logo shown
+*/
+const TUint32 KSettingsDisplayOperatorLogo = 0x00000003;
+
+/**
+* Defines if the "Operator Logo" list item is to be made visible or
+* hidden in General Settings.
+*/
+const TUint32 KSettingsShowOperatorLogoSetting = 0x00000004;
+
+/**
+* Defines if Active Idle functionality is enabled.
+* 0 = Disabled
+* 1 = Enabled
+*/
+const TUint32 KSettingsActiveIdleState = 0x00000006;
+
+/**
+* Hide/Unhide Confirm Sat operations item in UI
+* 0 = Hide
+* 1 = Show
+*/
+const TUint32 KSettingsConfirmSatOperationsSupported = 0x00000007;
+
+/**
+* Screen saver period.
+* The value is an integer between 5 and 90.
+* Default value is 15
+**/
+const TUint32 KSettingsScreenSaverPeriod = 0x00000008;
+
+/**
+* Confirm Sat operations setting
+* 0 = No
+* 1 = Yes
+*/
+const TUint32 KSettingsConfirmSatOperations = 0x00000009;
+
+/**
+* Custom banner text for idle screen
+* String value.
+*/
+const TUint32 KSettingsCustomBannerText = 0x0000000A;
+
+/**
+* Power Save Led setting value
+* Integer value.
+*/
+const TUint32 KSettingsDisplayTurnoffTimeout = 0x0000000B;
+
+/**
+* Plugin UID of the operator specific full screen ActiveIdle.
+* Integer value.
+* Default value: 0
+*/
+const TUint32 KSettingsOperatorActiveIdle = 0x0000000C;
+
+/**
+* Pen writing speed for HWR
+* Possible values are: 1-5 (very fast - very slow)
+* Default value: 3
+*/
+const TUint32 KSettingsWritingSpeed = 0x0000000D;
+
+/**
+* Pen trail width for HWR.
+* Possible values are: 1-5 (very thin - very thick)
+* Default value: 3
+*/
+const TUint32 KSettingsPenWidth = 0x0000000E;
+
+/**
+* Pen trail color for HWR.
+* 24-bit RGB colour value with 8 bits each for red, green and blue.
+* The integer is of form 0xaabbggrr
+* Default value: 0
+*/
+const TUint32 KSettingsPenColor = 0x0000000F;
+
+/**
+* Default input method of the Chinese PRC VKB.
+* Possible values are: 1 - PinYin; 4 - Stroke
+* Default value: 1
+*/
+const TUint32 KSettingsDefaultVkbPrc = 0x00000010;
+
+/**
+* Default input method of the Chinese TaiWan VKB.
+* Possible values are: 2 - ZhuYin; 4 - Stroke
+* Default value: 2
+*/
+const TUint32 KSettingsDefaultVkbTw = 0x00000011;
+
+/**
+* Default input method of the Chinese HongKong VKB.
+* Possible values are: 4 - Stroke; 8 - CangJie
+* Default value: 4
+*/
+const TUint32 KSettingsDefaultVkbHk = 0x00000012;
+
+/**
+* Pen Input Language.
+* Possible values defined in enum TLanguage
+* Default value: 0
+*/
+const TUint32 KSettingsPenInputLang = 0x00000013;
+
+/**
+* Indicates whether T-coil hearing aid mode is enabled or not.
+* Integer value.
+* Default value: 0
+* 0 = disabled
+* 1 = enabled
+*/
+const TUint32 KSettingsHearingAidMode = 0x00000014;
+
+/**
+* Guide line used in hand writing recognition box.
+* If enabled, horizontal line will appear in the box.
+* Default value: 1
+* 0 = Guide Line Off
+* 1 = Guide Line On
+*/
+const TUint32 KSettingsPenInputGuideLine = 0x00000015;
+
+/**
+* To Variate Operator Specific ActiveIdle Text.
+* String value.
+*/
+const TUint32 KSettingsOperatorVariantActiveIdleText = 0x00000016;
+
+/**
+* To variate screensaver timeout settings item visibility
+* 0 = item is hidden (default)
+* 1 = item is shown
+*/
+const TUint32 KSettingsScreensaverTimeoutItemVisibility = 0x00000017;
+
+/**
+* Indicates whether the function (recognition with dictionary) is enabled or not.
+* Boolean value.
+* Default value: 0
+* 0 = disabled
+* 1 = enabled
+*/
+const TUint32 KSettingRecognitionwithdictionary = 0x00000018;
+
+/**
+* To save the setting for enable / disable optical joystick
+* Integer value.
+* Default value: 1
+* 0 = Guide Line Off
+* 1 = Guide Line On
+*/
+const TUint32 KSettingsOpticalJoystickStatus = 0x00000019;
+
+/**
+* Telephony settings CR UID.
+*/
+const TUid KCRUidTelephonySettings = {0x101F877E};
+
+/**
+* Any key answer
+*
+* Possible values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsAnyKeyAnswer = 0x00000001;
+
+/**
+* Automatic redial
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsAutomaticRedial = 0x00000002;
+
+/**
+* One key dialling
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsOneKeyDialling = 0x00000003;
+
+/**
+* This key will include information whether the prefix change
+* is active.
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsDialPrefixChangeMode = 0x00000004;
+
+/**
+* This key will include the prefix set by user.
+* Text string maximum 10 characters.
+* Only dial related characters allowed.
+*/
+const TUint32 KSettingsDialPrefixText = 0x00000005;
+
+/**
+* Soft Reject default text used.
+*
+* 0 = Default in use
+* 1 = User defined text in use
+*/
+const TUint32 KSettingsSoftRejectDefaultInUse = 0x00000006;
+
+/**
+* Soft Reject On/Off. Has the user enabled Soft Reject.
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsSoftReject = 0x00000007;
+
+/**
+* User defined Soft Reject text. Any text up to 160 characters.
+* No default value in CentRep (there is a default value, but it is
+* localized).
+*/
+const TUint32 KSettingsSoftRejectText = 0x00000008;
+
+/**
+* Defines if still image for video calls (when camera is disabled) is in use.
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsVTStillImage = 0x00000009;
+
+/**
+* This keys is required for the Video Telephony still image
+* feature in General Settings to store the still image path
+*/
+const TUint32 KSettingsVTStillImagePath = 0x0000000A;
+
+/**
+* This key is required for VoIP Last Call Timer
+*/
+const TUint32 KLogsLastCallTimerLineVoIP = 0x0000000B;
+
+/**
+* This key is required for VoIP Received Calls Timer
+*/
+const TUint32 KLogsReceivedCallsTimerLineVoIP = 0x0000000C;
+
+/**
+* This key is required for VoIP Dialled Calls Timer
+*/
+const TUint32 KLogsDialledCallsTimerLineVoIP = 0x0000000D;
+
+/**
+* This key is required for SCCP stack installation indication
+*/
+const TUint32 KSCCPinstallUpgrade = 0x0000000E;
+
+/**
+* This key is required for dynamic VoIP
+*/
+const TUint32 KDynamicVoIP = 0x0000000F;
+
+/**
+* This key is required for Long Press of Call Key setting item
+* Values: 0,1 --> Inactive
+* 2 --> Video call
+* (Default value is 1 and when Restore Fact. Settings is done value is 0)
+*/
+const TUint32 KSettingsUiLongCallKeyPress = 0x00000010;
+
+/**
+* This key is required for VT call answer mute status
+* 0 = Ask first (default value)
+* 1 = No
+* 2 = Yes
+*/
+const TUint32 KSettingsVTVideoSending = 0x00000011;
+
+
+/**
+* key to define what to do when opening slide
+* 0: Not answer call when opening slide
+* 1: Answer call when opening slide (default)
+*/
+const TUint32 KSettingsOpeningSlideAnswer = 0x00000012;
+
+/**
+* key to define what to do when closing slide
+* 0: Not end call when closing slide
+* 1: End call when closing slide (default)
+*/
+const TUint32 KSettingsClosingSlideEnd = 0x00000013;
+
+
+/**
+* key to define whether to show or not show side settings
+* 0: Not show slide settings (default)
+* 1: Show slide settings
+*/
+
+const TUint32 KSettingsShowSlideSettings = 0x00000014;
+
+/**
+* CDMA Telephony settings CR UID.
+*/
+const TUid KCRUidCdmaTelephonySettings = {0x101F877F};
+
+/**
+* Locale settings CR UID.
+*/
+const TUid KCRUidLocaleSettings = {0x101F8780};
+
+/**
+* Arabic & Hebrew default number mode - integer value.
+*/
+const TUint32 KSettingsDefaultNumberMode = 0x00000001;
+
+/**
+* Default Indic Number Mode for Hindi Digits - integer value.
+*/
+const TUint32 KSettingsIndicDefaultNumberMode = 0x00000002;
+
+/**
+* Peripheral settings CR UID.
+*/
+const TUid KCRUidPeripheralSettings = {0x101F8781};
+
+/**
+* Timeout for setting off the display lights.
+* Value is in seconds.
+*/
+const TUint32 KSettingsDisplayLightsTimeout = 0x00000001;
+
+/**
+* Call forwarding settings CR UID.
+*/
+const TUid KCRUidCallForwarding = {0x101F8782};
+
+/**
+* call forwarding "forwarded-to" number 1.
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumber1 = 0x00000001;
+
+/**
+* call forwarding "forwarded-to" number 2.
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumber2 = 0x00000002;
+
+/**
+* call forwarding "forwarded-to" number 3.
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumber3 = 0x00000003;
+
+/**
+* call forwarding "forwarded-to" number 1. Alternate line
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumberAls1 = 0x00000004;
+
+/**
+* call forwarding "forwarded-to" number 2. Alternate line
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumberAls2 = 0x00000005;
+
+/**
+* call forwarding "forwarded-to" number 3. Alternate line
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumberAls3 = 0x00000006;
+
+/**
+* "call forwarding when no reply"-timer value.
+* Integer value.
+*/
+const TUint32 KSettingsCFTimerValue = 0x00000007;
+
+/**
+* "call forwarding when no reply"-timer value for alternate line.
+* Integer value.
+*/
+const TUint32 KSettingsCFTimerValueAls = 0x00000008;
+
+/**
+* Last used number diverted data calls
+* String value
+*/
+const TUint32 KSettingsCFUsedDataNumber = 0x00000009;
+
+/**
+* Last used number diverted fax calls
+* String value
+*/
+const TUint32 KSettingsCFUsedFaxNumber = 0x0000000A;
+
+/**
+* Common Telephony Settings CR UID.
+*/
+const TUid KCRUidCommonTelephonySettings = {0x101F8831};
+
+/**
+* Summary after call
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsSummaryAfterCall = 0x00000001;
+
+/**
+* Settings for Rich Call features
+*/
+const TUid KCRUidRichCallSettings = {0x101F883B};
+
+/**
+* Calling Line Identification Restriction for PS calls
+*
+* 0 = KRCSEClirOff
+* 1 = KRCSEClirOn
+* 2 = KRCSEClirDefault
+*/
+const TUint32 KRCSEClir = 0x00000000;
+
+/**
+* Determines whether warning is given to user, when WLAN signal
+* strength drops too low.
+*
+* 0 = KRCSEEarlyWarningOff
+* 1 = KRCSEEarlyWarningOn
+*/
+const TUint32 KRCSEWlanEarlyWarning = 0x00000001;
+
+/**
+* Circuit Switched call waiting.
+*
+* 0 = KRCSECSCallWaitingOff
+* 1 = KRCSECSCallWaitingOn
+*/
+const TUint32 KRCSECSCallWaiting = 0x00000002;
+
+/**
+* Determines whether the registeration of VoIP is automatic or manual.
+*
+* 0 = KRCSEAutomatic
+* 1 = KRCSEManual
+*/
+const TUint32 KRCSEPSLogin = 0x00000003;
+
+/**
+* Determines whether the user wants to receive anonymous calls.
+* Possible values are:
+* 0 = KRCSEAnonymousCallsAllowed
+* 1 = KRCSEAnonymousCallsBlocked
+*/
+const TUint32 KRCSEAnonymousCallBlockRule = 0x00000004;
+
+/**
+* Determines call type preference.
+* Possible values are:
+* 0 = KRCSECSCallPreferred
+* 1 = KRCSEInternetCallPreferred
+*/
+const TUint32 KRCSEPreferredTelephony = 0x00000005;
+
+/**
+* Determines status of Do Not Disturb setting.
+* Possible values are:
+* 0 = KRCSEDoNoDisturbOff
+* 1 = KRCSEDoNoDisturbOn
+*/
+const TUint32 KRCSEDoNotDisturb = 0x00000006;
+
+/**
+* Determines status of PS (VoIP) call waiting setting.
+* Possible values are:
+* 0 = KRCSEPSCallWaitingOff
+* 1 = KRCSEPSCallWaitingOn
+*/
+const TUint32 KRCSPSCallWaiting = 0x00000007;
+
+/**
+* Determines id of preferred VOIP service.
+* 0 = Not set
+* 1 = CS / Video service
+* 2 = voip stub
+* 3 = voip service 1
+* 4 = voip service 2
+* n = voip service n
+*/
+const TUint32 KRCSPSPreferredService = 0x00000008;
+
+
+/**
+* Miscelaneous Settings
+*/
+const TUid KCRUidMiscSettings = {0x1000A82B};
+
+/**
+Phone settings CR UID
+*/
+const TUid KCRUidPhoneSettings = {0x1028239D};
+
+/**
+Call waiting feature
+0 = disabled
+1 = Enabled
+*/
+const TUint32 KPSetCallWaiting = 0x00000001;
+
+/**
+* Device Management Settings CR UID.
+*/
+const TUid KCRUidDeviceManagementSettings = {0x2002120B};
+
+/**
+Determines whether to show power saving query before entering power saving mode.
+0: Off
+1: On (Default)
+*/
+const TUint32 KSettingsPowerSavingQuery = 0x00000001;
+
+/**
+* Slide Settings CR UID.
+*/
+const TUid KCRUidSlideSettings = {0x20015159};
+
+enum TSlideSetting
+ {
+ ESlideSettingOff = 0,
+ ESlideSettingOn
+ };
+
+/**********************************************************
+ * User settings for slide handling
+ *
+ */
+
+/**
+ * Used to control which behavior is chosen when closing the cover.
+ * Possible values are 0=Off, 1=On
+ */
+const TUint32 KSlideCloseCover = 0x00000001;
+
+const TUint32 KSlideOpenCoverUri = 0x00000002;
+
+const TUint32 KSlideOpenCoverCaption = 0x00000003;
+
+/**
+ * This setting defines whether keyguard is activated by closing the cover
+ *
+ * Possible values:
+ * 0: Closing cover does not activate keyguard.
+ * 1: Closing the cover activates keyguard.
+ * 2: User is asked "Do you want to activate keyguard?".
+ * 3: Automatic - keyguard returns to the state before opening the cover.
+ */
+const TUint32 KSlideKeyguard = 0x00000004;
+enum TSlideSettingKeyguard
+ {
+ ESlideSettingsKeyguardActivatingOff = 0,
+ ESlideSettingsKeyguardActivatingOn,
+ ESlideSettingsKeyguardActivatingAskMe,
+ ESlideSettingsKeyguardActivatingAutomatic
+ };
+
+/**
+ * Used to control if audio is routed when opening the slide.
+ * Possible values are 0=routing not changed, 1=routing changed
+ */
+const TUint32 KSlideAudioRouting = 0x00000005;
+
+/**
+ * User setting for Intelligent Slide
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KSlideAutomaticAction = 0x00000010;
+
+/**********************************************************
+ * Configurability settings
+ * This group of settings is used to specify which slide behavior is enabled
+ * Different slide types need different items
+ * For example ITU-T slide need call handling with slide
+ * And full-Qwerty slide does not use call handling but requires audio routing with slide
+ */
+
+/**
+ * Defines which localisation to use for slide settings
+ * Possible values
+ * 0: Slide
+ * 1: Cover
+ * 2: Flip
+ * 3: Fold
+ * 4: Swivel
+ * 5: reserved
+ */
+const TUint32 KSlideTerminology = 0x00000101;
+
+/**
+ * Slide Events to react to
+ * Depending on this value, different P/S keys in KPSUidHWRM are used for monitoring the slide state
+ * Possible values are
+ * 0: Grip
+ * 1: Flip
+ * 2: Twist
+ */
+const TUint32 KSlideShowEventType = 0x00000102;
+
+/**
+ * Perform call handling with slide
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled
+ */
+const TUint32 KSlideShowCallHandling = 0x00000110;
+
+/**
+ * Perform audio routing with slide
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled
+ */
+const TUint32 KSlideShowAudioRouting = 0x00000111;
+
+/**
+ * Perform keypad lock handling with slide
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled
+ */
+const TUint32 KSlideShowKeypadlock = 0x00000112;
+
+/**
+ * Application launch when slide open in idle
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled
+ */
+const TUint32 KSlideShowAppLaunch = 0x00000113;
+
+/**
+ * Go to idle with slide close
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled
+ */
+const TUint32 KSlideShowGoToIdle = 0x00000114;
+
+/**
+ * Device lock with slide
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled
+ */
+const TUint32 KSlideShowDeviceLock = 0x00000115;
+
+/**********************************************************
+ * Intelligent Slide configurability settings
+ * The following items describe in which applications/views
+ * Intelligent slide feature is enabled
+ *
+ */
+
+/**
+ * Messaging Main View
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingMainView = 0x00001001;
+
+/**
+ * Messaging Message List View
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingMessageListView = 0x00001002;
+
+/**
+ * Messaging One Row Message List View
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingOneRowMessageListView = 0x00001003;
+
+/**
+ * Messaging Text Message Viewer
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingTextMessageViewer = 0x00001004;
+
+/**
+ * Messaging Multimedia Message Viewer
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingMultimediaMessageViewer = 0x00001005;
+
+/**
+ * Messaging Uni Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingUniEditor = 0x00001006;
+
+/**
+ * Email Viewer
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KEmailViewer = 0x00001010;
+
+/**
+ * Email Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KEmailEditor = 0x00001011;
+
+/**
+ * Browser Content view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KBrowserContentView = 0x00001020;
+
+/**
+ * Browser Bookmarks view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KBrowserBookmarksView = 0x00001021;
+
+/**
+ * Clock Main view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockMainView = 0x00001030;
+
+/**
+ * Clock Alarm editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockAlarmEditor = 0x00001031;
+
+/**
+ * Clock MultiAlarm view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockMultiAlarmView = 0x00001032;
+
+/**
+ * Clock World clock view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockWorldClockView = 0x00001033;
+
+/**
+ * Clock World clock view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockCountDownView = 0x00001034;
+
+
+/**
+ * Notepad Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KNotepadEditor = 0x00001040;
+
+/**
+ * Notepad List view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KNotepadListView = 0x00001041;
+
+/**
+ * Phone Incoming call
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KPhoneIncomingCall = 0x00001050;
+
+/**
+ * File Manager Folder view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KFileManagerFolderView = 0x00001060;
+
+/**
+ * Calendar Main(Month/Week/Day/To-Do) view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KCalendarMainView = 0x00001070;
+
+/**
+ * Calendar Event(Meeting/Memo/Anniversary/To-Do note) view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KCalendarEventView = 0x00001071;
+
+/**
+ * Calendar Event(Meeting/Memo/Anniversary/To-Do note) editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KCalendarEventEditor = 0x00001072;
+
+/**
+ * Contacts Group view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsGroupView = 0x00001080;
+
+/**
+ * Contacts Details view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsDetailsView = 0x00001081;
+
+/**
+ * Contacts Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsEditor = 0x00001082;
+
+/**
+ * Contacts Communication Launcher view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsCommunicationLauncherView = 0x00001083;
+
+
+/**
+ * Logs view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KLogsView = 0x00001090;
+
+
+/**
+ * Modifier keys used for global shortcuts
+ * Possible values of scan codes are listed in e32keys.h
+ * For example EStdKeyLeftShift=0x12, EStdKeyLeftCtrl=0x16
+ */
+const TUint32 KGlobalShortcutModifier1 = 0x00002001;
+const TUint32 KGlobalShortcutModifier2 = 0x00002002;
+
+/**
+ * Action key scancode
+ * Possible values of scan codes are listed in e32keys.h
+ */
+const TUint32 KGlobalShortcutKey00 = 0x00002100;
+const TUint32 KGlobalShortcutKey01 = 0x00002101;
+const TUint32 KGlobalShortcutKey02 = 0x00002102;
+const TUint32 KGlobalShortcutKey03 = 0x00002103;
+const TUint32 KGlobalShortcutKey04 = 0x00002104;
+const TUint32 KGlobalShortcutKey05 = 0x00002105;
+const TUint32 KGlobalShortcutKey06 = 0x00002106;
+const TUint32 KGlobalShortcutKey07 = 0x00002107;
+const TUint32 KGlobalShortcutKey08 = 0x00002108;
+const TUint32 KGlobalShortcutKey09 = 0x00002109;
+const TUint32 KGlobalShortcutKey10 = 0x00002110;
+const TUint32 KGlobalShortcutKey11 = 0x00002111;
+const TUint32 KGlobalShortcutKey12 = 0x00002112;
+const TUint32 KGlobalShortcutKey13 = 0x00002113;
+const TUint32 KGlobalShortcutKey14 = 0x00002114;
+const TUint32 KGlobalShortcutKey15 = 0x00002115;
+const TUint32 KGlobalShortcutKey16 = 0x00002116;
+const TUint32 KGlobalShortcutKey17 = 0x00002117;
+const TUint32 KGlobalShortcutKey18 = 0x00002118;
+const TUint32 KGlobalShortcutKey19 = 0x00002119;
+
+/**
+ * Application UID that should be brought to foreground/background
+ * when corresponding action key is pressed
+ */
+const TUint32 KGlobalShortcutApp00 = 0x00002200;
+const TUint32 KGlobalShortcutApp01 = 0x00002201;
+const TUint32 KGlobalShortcutApp02 = 0x00002202;
+const TUint32 KGlobalShortcutApp03 = 0x00002203;
+const TUint32 KGlobalShortcutApp04 = 0x00002204;
+const TUint32 KGlobalShortcutApp05 = 0x00002205;
+const TUint32 KGlobalShortcutApp06 = 0x00002206;
+const TUint32 KGlobalShortcutApp07 = 0x00002207;
+const TUint32 KGlobalShortcutApp08 = 0x00002208;
+const TUint32 KGlobalShortcutApp09 = 0x00002209;
+const TUint32 KGlobalShortcutApp10 = 0x00002210;
+const TUint32 KGlobalShortcutApp11 = 0x00002211;
+const TUint32 KGlobalShortcutApp12 = 0x00002212;
+const TUint32 KGlobalShortcutApp13 = 0x00002213;
+const TUint32 KGlobalShortcutApp14 = 0x00002214;
+const TUint32 KGlobalShortcutApp15 = 0x00002215;
+const TUint32 KGlobalShortcutApp16 = 0x00002216;
+const TUint32 KGlobalShortcutApp17 = 0x00002217;
+const TUint32 KGlobalShortcutApp18 = 0x00002218;
+const TUint32 KGlobalShortcutApp19 = 0x00002219;
+
+#endif // SETTINGSINTERNALCRKEYS_H
+
+// End of file
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/activebackupclient/abclient.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,311 @@
+/**
+* Copyright (c) 2004-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:
+* Declaration of MActiveBackupDataClient and CActiveBackupClient
+*
+*
+*/
+
+
+
+/**
+ @file
+ @released
+*/
+#ifndef __ACTIVEBACKUPCLIENT_H__
+#define __ACTIVEBACKUPCLIENT_H__
+
+#include <e32base.h>
+#include <f32file.h>
+#include <e32cmn.h>
+#include <connect/sbdefs.h>
+
+namespace conn
+ {
+
+ class MActiveBackupDataClient
+ /**
+ MActiveBackupDataClient is a Mixin to be implemented by an Active Backup client.
+ The client connects to the Secure Backup Server using the CActiveBackupClient
+ class and provides an instance of MActiveBackupDataClient to be called for a
+ range of functions.
+
+ The bulk transfer of data and snapshots is expected to be by means of shared
+ heaps for performance reasons so the API is expected to change in these areas.
+
+ @released
+ @publishedAll
+ */
+ {
+ public:
+
+ /**
+ Empty virtual destructor to avoid memory leaks
+ */
+ virtual ~MActiveBackupDataClient() {}
+
+ ///// Backup Methods /////
+
+ /**
+ This method informs the active backup data client that all snapshots have
+ been supplied. If the client has not received a snapshot then it should
+ perform a base backup.
+ */
+ virtual void AllSnapshotsSuppliedL() = 0;
+
+ /**
+ This method receives all or part of a snapshot of data to allow calculation of an
+ incremental backup. The snapshot is one that was previously supplied by the data
+ owner. The snapshot data should be read from the location supplied.
+ The snapshot data may be larger than the location supplied in which case the routine will
+ be called repeatedly until all data has been supplied.
+
+ Snapshot data will also be supplied as part of a restore operation.
+
+ @param aDrive the drive being backed up
+ @param aBuffer a pointer to the base of the location from whence data can be copied.
+ @param aLastSection ETrue if this is the last section of snapshot data, else EFalse.
+ @leave KErrNotSupported if the data owner does not support incremental backups.
+ */
+ virtual void ReceiveSnapshotDataL(TDriveNumber aDrive, TDesC8& aBuffer, TBool aLastSection) = 0;
+
+ /**
+ This method returns the expected size of backup data that will be supplied. If an
+ incremental backup is underway then this method will not be called until after
+ ReceiveSnapshotDataL(). The size data will be used for the purpose of tracking progess
+ during a backup. If it is inaccurate then the user may see irregular progress but the
+ actual backup data will not be affected so it is acceptable to return an estimated
+ value.
+
+ @param aDrive the drive being backed up.
+ @return the size of the data that will be returned
+ */
+ virtual TUint GetExpectedDataSize(TDriveNumber aDrive) = 0;
+
+ /**
+ This method returns a snapshot of data to accompany a backup. The snapshot is expected
+ to contain details on files / data being backed up. The format of the snapshot is only
+ meaningful to the data owner. The snapshot will be supplied if the data owner is asked
+ for an incremental backup and for a restore operation. The snapshot data should be
+ copied to the location supplied.
+ The snapshot data may be larger than the location supplied in which case the routine will
+ be called repeatedly until all data has been retrieved.
+
+ @param aDrive the drive being backed up
+ @param aBuffer a pointer to the base of the location where data can be copied.
+ @param aFinished on return ETrue if all data has been returned for this drive, else EFalse.
+ @leave KErrNotSupported if the data owner does not support incremental backups.
+ */
+ virtual void GetSnapshotDataL(TDriveNumber aDrive, TPtr8& aBuffer, TBool& aFinished) = 0;
+
+ /**
+ This method prepares the implementor to return backup data. It will be followed by a
+ sequence of calls to request the actual data.
+
+ @param aDrive the drive being backed up.
+ */
+ virtual void InitialiseGetBackupDataL(TDriveNumber aDrive) = 0;
+
+ /**
+ This method requests a section of backup data. InitialiseGetBackupDataL() will have been
+ called prevously to specify the drive concerned. The data returned may be base or
+ incremental depending on the type of backup and the capability of the data owner.
+
+ @param aBuffer a pointer to the base of the location where data can be copied.
+ @param aFinished on return ETrue if all data has been returned for this drive, else EFalse.
+ */
+ virtual void GetBackupDataSectionL(TPtr8& aBuffer, TBool& aFinished) = 0;
+
+ ///// Restore Methods /////
+
+ /**
+ This method prepares the implementor to receive base restore data for a drive.
+ It will be followed by a sequence of calls to supply the actual data.
+
+ @param aDrive the drive being restored.
+ */
+ virtual void InitialiseRestoreBaseDataL(TDriveNumber aDrive) = 0;
+
+ /**
+ This method receives a section of base restore data.
+ InitialiseRestoreBaseDataL() will have been called prevously to specify the drive concerned.
+
+ @param aBuffer a pointer to the base of the location whence data can be read.
+ @param aFinished ETrue if all data has been returned for this drive, else EFalse.
+ */
+ virtual void RestoreBaseDataSectionL(TDesC8& aBuffer, TBool aFinished) = 0;
+
+ /**
+ This method prepares the implementor to receive incremental restore data for a drive.
+ It will be followed by a sequence of calls to supply the actual data. If multiple
+ increments are supplied then this methid will be called before each increment.
+
+ @param aDrive the drive being restored.
+ */
+ virtual void InitialiseRestoreIncrementDataL(TDriveNumber aDrive) = 0;
+
+ /**
+ This method receives a section of increment restore data.
+ InitialiseRestoreIncrementDataL() will have been called prevously to specify the
+ drive concerned.
+
+ @param aBuffer a pointer to the base of the location whence data can be read.
+ @param aFinished ETrue if all data has been returned for this increment, else EFalse.
+ */
+ virtual void RestoreIncrementDataSectionL(TDesC8& aBuffer, TBool aFinished) = 0;
+
+ /**
+ This method is called when all data to be restored has been supplied.
+
+ @param aDrive the drive being restored.
+ */
+ virtual void RestoreComplete(TDriveNumber aDrive) = 0;
+
+ /**
+ This method prepares the implementor to return backup data on behalf of another data owner.
+ It will be followed by a sequence of calls to request the actual data. This method is only
+ for use by a proxy data manager that backs up data on behalf of other data owners. There
+ is no corresponding method for snapshots as it is assumed that a proxy data manager will
+ only handle base data.
+
+ @param aSID the data owner whose data is to be backed up
+ @param aDrive the drive being backed up.
+ */
+ virtual void InitialiseGetProxyBackupDataL(TSecureId aSID, TDriveNumber aDrive);
+
+ /**
+ This method prepares the implementor to receive base restore data for another data owner
+ for a drive. It will be followed by a sequence of calls to supply the actual data.
+ This method is only for use by a proxy data manager that restores up data on behalf of
+ other data owners. There is no corresponding method for incremental data as it is assumed
+ that a proxy data manager will only handle base data.
+
+ @param aSID the data owner whose data is to be restored
+ @param aDrive the drive being restored.
+ */
+ virtual void InitialiseRestoreProxyBaseDataL(TSecureId aSID, TDriveNumber aDrive);
+
+ ///// General Methods /////
+
+ /**
+ This method is called if copying of data is terminated prematurely to allow the
+ implementor to tidy up. The same method applies to all types of data and to backup
+ and restore
+ */
+ virtual void TerminateMultiStageOperation() = 0;
+
+ /**
+ Gets an extended interface based on a supplied uid.
+
+ @param aUid Uid which identifies an extended interface
+ @return Pointer to an extended interface
+ */
+ virtual TAny* GetExtendedInterface(const TInt32 aUid);
+
+ ///// Test Methods /////
+ /**
+ Gets a 32-bit checksum for its private data.
+ This routine is for test purposes. It must be implemented but an invariant checksum
+ value can be provided. Some tests may cause checksum values to be compared.
+
+ @param aDrive the drive containing data being checksummed
+ @return the 32-bit checksum
+ */
+ virtual TUint GetDataChecksum(TDriveNumber aDrive) = 0;
+ };
+
+ inline void MActiveBackupDataClient::InitialiseGetProxyBackupDataL(TSecureId /*aSID*/, TDriveNumber /*aDrive*/)
+ /** Initialises the proxy backup data
+
+ This is not supported here.
+
+ @param aSID the secure Id
+ @param aDrive the driver number
+ @leave KErrNotSupported Always.
+ */
+ {
+ User::Leave(KErrNotSupported);
+ }
+
+ inline void MActiveBackupDataClient::InitialiseRestoreProxyBaseDataL(TSecureId /*aSID*/, TDriveNumber /*aDrive*/)
+ {
+ /** Initialises the proxy backup base data
+
+ This is not supported here.
+
+ @param aSID the secure Id
+ @param aDrive the driver number
+ @leave KErrNotSupported Always.
+ */
+ User::Leave(KErrNotSupported);
+ }
+
+ inline TAny* MActiveBackupDataClient::GetExtendedInterface(const TInt32 /*aUid*/)
+ {
+ return NULL;
+ }
+
+
+ class RABClientSession;
+ class CActiveBackupCallbackHandler;
+
+ class CActiveBackupClient : public CBase
+ /**
+ CActiveBackupClient provides a connection to the Secure Backup Server for a data owning
+ process.
+
+ It can be used to obtain information about an active backup or restore operation.
+ It can also be used to signal to the Secure Backup Server when the data owner is ready
+ for backup or restore.
+
+ It is also used by data owners that implement active backup or restore to provide a
+ MActiveBackupDataClient implementation.
+
+ This class owns a RActiveBackupSessionImpl instance and publishes the
+ public API to the outside world. The reason for this facade class is twofold:
+
+ @li Hiding the implementation details of RActiveBackupSessionImpl
+
+ @li Future binary compatibility
+
+ @released
+ @publishedAll
+ */
+ {
+ public:
+ IMPORT_C static CActiveBackupClient* NewL();
+
+ IMPORT_C static CActiveBackupClient* NewL(MActiveBackupDataClient* aClient);
+ IMPORT_C ~CActiveBackupClient();
+ IMPORT_C void BURModeInfoL(TDriveList& aDriveList, TBURPartType& aBackupType, TBackupIncType& aIncBackupType);
+ IMPORT_C TBool DoesPartialBURAffectMeL();
+ IMPORT_C void ConfirmReadyForBURL(TInt aErrorCode);
+
+ private:
+ CActiveBackupClient();
+ void ConstructL();
+ void ConstructL(MActiveBackupDataClient* aClient);
+
+ private:
+ /** Pointer to the client session R class that's wrapped up by this class */
+ RABClientSession* iClientSession;
+
+ /** Pointer to the Active Backup Callback Handler */
+ CActiveBackupCallbackHandler* iABCallbackHandler;
+ };
+
+ } // end namespace
+
+#endif // __ACTIVEBACKUPCLIENT_H__
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/activebackupclient/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,2 @@
+PRJ_EXPORTS
+abclient.h abclient.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/avkon.loc Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,4268 @@
+/*
+* Copyright (c) 2002 - 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:
+ * This is a localisation file for AVKON
+ * A avkon.loc file is the one and only place where the logical strings
+ * to be localised are defined.
+ * >>>
+ * The text between >>> and <<< is just to document the syntax and
+ * you can remove it if you like.
+ *
+*/
+
+
+
+// LOCALISATION STRINGS
+
+
+// Softkey labels
+
+//d:Command text associated to a softkey in the control pane.
+//d:Opens options menu.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_option "Options"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Selects currently visually indicated option.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_select "Select"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Selects or accepts item.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_ok "Ok"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Accepts the operation and pass information to the "application".
+//l:control_pane_t1/opt7
+//
+#define text_softkey_done "Done"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Softkey for making a call.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_call "Call"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Confirms operation.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_yes "Yes"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Rejects operation.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_no "No"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Cancels previous operation without action.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_cancel "Cancel"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Exits from the current state.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_exit "Exit"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Quits from the current state.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_quit "Quit"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Back functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_back "Back"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Insert character (from special character table).
+//l:control_pane_t1/opt7
+//
+#define text_softkey_insert_char "Insert"
+
+//d:Command text associated to a softkey in the control pane.
+//d:
+//l:control_pane_t1/opt7
+//
+#define text_softkey_close "Close"
+
+//d:Command text associated to a softkey in the control pane.
+//d:There's no command associated with the Softkey. (One space char)
+//l:control_pane_t1/opt7
+//
+#define text_softkey_empty " "
+
+//d:Command text associated to a softkey in the control pane.
+//d:Save functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_save "Save"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Show a certain show notification (e.g.Missed Calls)
+//l:control_pane_t1/opt7
+//
+#define text_softkey_show "Show"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Search functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_search "Search"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Used e.g. in soft notification to read a mail
+//l:control_pane_t1/opt7
+//
+#define text_softkey_read "Read"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Softkey associated with listening voice mailbox messages
+//l:control_pane_t1/opt7
+//
+#define text_softkey_listen "Listen"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Answer to some other than USSD message.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_answer "Answer"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Answer to USSD message.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_ussd_answer "Answer"
+
+//d:Command text associated to a softkey in the control pane.
+//d:After a name tag found, the user can start voice recognition
+//d:procedure again by selecting the left softkey Again (Voice Dialling).
+//l:control_pane_t1/opt7
+//
+#define text_softkey_again "Again"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Unlock functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_unlock "Unlock"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Mark functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_mark "Mark"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Unmark functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_unmark "Unmark"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Copy functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_copy "Copy"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Paste functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_paste "Paste"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Opens a view for detailed information.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_details "Details"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Stop -functionality in different media players.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_stop "Stop"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Pause -functionality in different media players.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_pause "Pause"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Command key to accept the suggested operation.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_accept "Accept"
+
+// d: Text used in a softkey when there is tone playing and user can mute it by pressing softkey.
+// d: If the softkey is pressed, the tone will be muted.
+// d: Used in call handling and alarm popups
+// l: control_pane_t1/opt7
+//
+#define text_softkey_silent "Silence"
+
+
+// d: Left softkey label in notification
+// l: control_pane_t1/opt7
+//
+#define qtn_chat_invite_snotif_sk_join "Join"
+
+//d:Right softkey label when alarm note is active
+//l:control_pane_t1/opt7
+//
+#define qtn_clk_softkey_snooze "Snooze"
+
+//d:Left softkey label when alarm note is active
+//l:control_pane_t1/opt7
+//
+#define qtn_clk_softkey_stop "Stop"
+
+
+// Common option menu items
+
+//d:Command in options menu.
+//d:Cut operation to a text or item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_cut "Cut"
+
+//d:Command in options menu.
+//d:Copy operation to a text or item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_copy "Copy"
+
+//d:Command in options menu.
+//d:Paste operation to a text or item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_paste "Paste"
+
+//d:Command in options menu.
+//d:Undo operation
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_undo "Undo"
+
+//d:Options menu item "Edit List". Option for marking submenu.
+//l:list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_list "Edit list"
+
+//d:Command in options menu.
+//d:Mark-operation. Marks selected item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_mark_one "Mark"
+
+//d:Command in options menu.
+//d:Unmark-operation. Unmarks selected marked item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_unmark_one "Unmark"
+
+//d:Command in options menu.
+//d:Mark all -operation. Marks all items.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_mark_all "Mark all"
+
+//d:Command in options menu.
+//d:Unmark all -operation. Unmarks all marked items.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_unmark_all "Unmark all"
+
+//d:Command in options menu.
+//d:Opens help application and shows context sensitive help related to the current state or item.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_clipb_litxt_help "Help"
+
+//d: Editing menu item to activate 'insert number' data query
+//d: to insert number in number input mode
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_edit_insert_number "Insert number"
+
+//d: Options editing submenu item to activate 'insert number' data query
+//d: to insert number in number input mode
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_insert_number "Insert number"
+
+//d: Edit menu item to activate special character table.
+//d:
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_edit_insert_symbol "Insert symbol"
+
+//d: Options editing submenu item to activate special character table.
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_insert_symbol "Insert symbol"
+
+//d: Option submenu item to activate cut -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_cut "Cut"
+
+//d: Option submenu item to activate copy -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_copy "Copy"
+
+//d: Option submenu item to activate paste -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_paste "Paste"
+
+//d: Option submenu item to activate undo -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_undo "Undo"
+
+//d: Option menu item for changing settings.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_change "Change"
+
+//d: Options menu item
+//d: Selects marked items
+//l:list_single_pane_t1_cp2
+#define qtn_cffh_select_marked "Select marked"
+
+//d: Options menu item
+//d: Selects focused item from list query
+//l:list_single_pane_t1_cp2
+#define qtn_cffh_options_select "Select"
+
+//d: Options menu item
+//d: Copies focused item to different folder
+//l:list_single_pane_t1_cp2
+#define qtn_options_org_copy_to "Copy to"
+
+//d: Shift menu item to activate multi tab input mode
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_alpha "Alpha mode"
+
+//d: Shift menu item to activate number input mode
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_numbers "Number mode"
+
+//d: Edit menu item to activate number input mode with Arabic-Indic digits
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_ah_edit_menu_arabic_nbrs "Arabic number mode"
+
+//d: Edit menu item to activate number input mode with Indic digits
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_hi_edit_menu_devanagari_nbrs "Devanagari number mode"
+
+//d: Shift menu item to activate predictive text input mode
+//d:
+//l:list_single_pane_t1_cp2/opt3
+//
+#define qtn_editing_shift_menu_t9 "Predictive mode"
+
+//d: Shift menu item to activate cut -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_cut "Cut"
+
+//d: Shift menu item to activate copy -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_copy "Copy"
+
+//d: Shift menu item to activate paste -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_paste "Paste"
+
+//d: Shift menu item to activate undo -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_undo "Undo"
+
+
+// Forms
+
+//d:Command in form's options menu.
+//d:Switch form item to edit state.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_edit "Edit"
+
+//d:Command in form's options menu.
+//d:Saves changes in form fields made since the mode was changed to edit state.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_save "Save"
+
+//d:Confirmation query prompt.
+//d:Does the edited unsaved data is saved when the user exits from form.
+//l: popup_note_window
+//
+#define qtn_form_quest_save_changes "Save changes?"
+
+//d:Confirmation query prompt.
+//d:Does the selected field is deleted from the form.
+//l: popup_note_window
+//
+#define qtn_form_quest_remove_field "Delete field?"
+
+//d: Confirmation note text.
+//d: Confirms that the form data is saved.
+//l: popup_note_window
+//
+#define qtn_form_conf_saved "Saved"
+
+//d: T9 Activation note text
+//d: Confirms that T9 text entry has been activated by using options menu
+//l: popup_note_window
+//
+#define text_t9_enabled_conf "T9 activated"
+
+//d: T9 DeActivation note text
+//d: Confirms that T9 text entry has been deactivated by using options menu
+//l: popup_note_window
+//
+#define text_t9_disabled_conf "T9 deactivated"
+
+//d: Predictive Auto Word Completion Activation note text
+//d: Confirms that Predictive Auto Word Completion text entry has been activated by using options menu
+//l: popup_note_window
+//r: 3.2
+//
+#define qtn_autocompletion_enabled "AutoCompletion activated"
+
+//d: Predictive Auto Word Completion Activation note text
+//d: Confirms that Predictive Auto Word Completion text entry has been de-activated by using options menu
+//l: popup_note_window
+//r: 3.2
+//
+#define qtn_autocompletion_disabled "AutoCompletion deactivated"
+//d: T9 No Dictionary Available note text
+//d: Informs user that there is no available t9 dictionary for a selected language
+//l: popup_note_window
+//
+#define text_t9_no_ldb_available "No predictive text dictionary available"
+
+//d:Confirmation note when the text is copied or cut to the clipboard
+//d:in copy/cut mode.
+//l:popup_note_window
+//r:3.1
+#define qtn_conf_copied "Text copied to clipboard"
+
+//d:If the SS sending procedure was successful the user is informed
+//d:using an confirmation note with this text.
+//d:Confirmation note when service request is done.
+//l:popup_note_window
+//
+#define text_done "Done"
+
+//d:If the SS sending procedure was unsuccessful the user is informed
+//d:using an information note with this text.
+//d:Error note text when service request unsuccesful.
+//l:popup_note_window
+//
+#define text_not_done "Not done"
+
+
+// Find
+
+//d: Options menu item for activating find pop up window
+//l: list_single_pane_t1_cp2
+#define qtn_find_pop_up_window "Find"
+
+
+//d: Comfirmation text after saving bookmark from find items menu.
+//l: popup_note_window
+#define qtn_find_bm_saved_note "Bookmark saved"
+
+
+// Listbox
+
+//d: Empty listbox
+//l: main_list_empty_pane
+#define qtn_selec_empty_list "No data"
+
+//d: Find, Empty list texts, list is empty after matched with entered string
+//l: main_list_empty_pane
+#define qtn_find_no_matches "No matches"
+
+// PopupField Queries
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_text "Enter Text:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_number "Enter Number:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_phonenumber "Enter Phone Number:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_time "Enter Time:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_date "Enter Date:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_duration "Enter Duration:"
+
+
+// Queries
+
+//d: Query prompt text to insert a word with multi-tab mode.
+//d:
+//l: popup_query_data_window
+//
+#define text_t9_spell_query "Insert word:"
+
+//d: Query prompt text to edit a word with multi-tab mode.
+//d:
+//l: popup_query_data_window
+//
+#define text_t9_edit_query "Edit word:"
+
+//d: List query prompt to select correct match from matches suggested by
+//d: predictive input module.
+//l: heading_pane_t1
+//
+#define qtn_t9_list_head_select_word "Select word:"
+
+//d: Query prompt text to enter number.
+//d:
+//l: popup_query_data_window
+//
+#define text_insert_number_query "Number:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1/opt1
+//
+#define qtn_pop_up_select_character "Select character:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1
+//
+#define qtn_pop_up_select_half_symbol "Select half width symbol:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1
+//
+#define qtn_pop_up_select_full_symbol "Select full width symbol:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1
+//
+#define qtn_japin_prmpt_select_pictograph "Select pictograph:"
+
+//d: Special character table query prompt text for pictograph1.
+//d:
+//l: heading_pane_t1
+// r: 2.8
+//
+#define qtn_japin_prmpt_select_pictograph1 "Select pictograph1:"
+
+//d: Special character table query prompt text for pictograph2.
+//d:
+//l: heading_pane_t1
+// r: 2.8
+//
+#define qtn_japin_prmpt_select_pictograph2 "Select pictograph2:"
+
+
+//d: 'Insert word' list item as a last item in a list query to select correct match
+//d: from matches suggested by predictive input module. 'Insert word' item in
+//d: the list query activates a data query to insert word in multi tab mode
+//l: list_single_pane_t1_cp2
+//
+#define qtn_t9_list_query_spell "Insert word"
+
+//
+//
+// Setting List and Setting Item
+//
+//
+
+//d: Setting field value when there's no data
+//l: list_set_graphic_pane_t1
+//
+#define qtn_selec_sett_val_field_none "None"
+
+//d: Text to show in Text Setting item value field when there is no text
+//d: Network data case (not the default)
+//l: list_set_graphic_pane_t1
+//
+#define qtn_selec_sett_val_field_unknow "Unknown"
+
+// d: Settings list item value
+// d: Means that this setting is not defined & must be defined.
+// l: list_set_graphic_pane_t1
+//
+#define qtn_selec_setting_compulsory "Must be defined"
+
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_jan "Jan"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_feb "Feb"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_mar "Mar"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_apr "Apr"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_may "May"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_jun "Jun"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_jul "Jul"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_aug "Aug"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_sep "Sep"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_oct "Oct"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_nov "Nov"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_dec "Dec"
+
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_january "January"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_february "February"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_march "March"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_april "April"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_may "May"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_june "June"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_july "July"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_august "August"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_september "September"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_october "October"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_november "November"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_december "December"
+
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_mo "Mo"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_tu "Tu"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_we "We"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_th "Th"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_fr "Fr"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_sa "Sa"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_su "Su"
+
+
+//d: Weekday name
+//d:
+//l:(clock_t1/opt3)
+//
+#define qtn_week_long_monday "Monday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_tuesday "Tuesday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_wednesday "Wednesday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_thursday "Thursday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_friday "Friday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_saturday "Saturday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_sunday "Sunday"
+
+//d: Size of data in bytes
+//d:
+//l: None
+//
+#define qtn_size_b " %N B"
+
+//d: Size of data in kilo bytes
+//d:
+//l: None
+//
+#define qtn_size_kb " %N kB"
+
+//d: Size of data in mega bytes
+//d:
+//l: None
+//
+#define qtn_size_mb " %N MB"
+
+//d: Size of data in giga bytes
+//d:
+//l: None
+//
+#define qtn_size_gb " %N GB"
+
+
+
+//d: Two lines of text for empty text.
+//d: The lines are separated by character \n.
+//l: list_set_graphic_pane_t1
+//
+#define qtn_selec_set_pane_empty "No Data"
+
+// Keylock text
+
+//d: Offer keylock left softkey
+//l: control_pane_t1/opt7
+//
+#define text_keylock_offer_lock "Lock Keys?"
+
+//d: Offer keylock right softkey
+//l: control_pane_t1/opt7
+//
+#define text_keylock_quit_offer_lock "Quit"
+
+
+//d: Keypad locked note
+//l: popup_note_window
+//
+#define qtn_keyg_conf_keypad_locked "Keypad Locked"
+
+//d: Offer unlock note
+//l: popup_note_window
+//
+#define qtn_keyg_quest_unlock_keypad "Unlock Keypad?"
+
+//d: Keypad error note
+//l: popup_note_window
+//
+#define qtn_keyg_err_unaccept_press "Press Unlock to activate keypad"
+
+//d: Keypad unlocked note
+//l: popup_note_window
+//
+#define qtn_keyg_conf_keypad_active "Keypad Active"
+
+// d: Command in menu shown system wide by short press off power key
+// d: or command in in-call menu in phone application
+// d: Activates Key lock
+// l: list_single_pane_t1_cp2
+// w:
+// r: 5.0
+#define qtn_pwrc_lock_display "Lock display"
+
+//d: Keyguard is locked note in touch ui
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_conf_display_keys_locked "Display and keys locked"
+
+//d: Keyguard is unlocked note in touch ui
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_conf_display_keys_active "Display and keys unlocked"
+
+//d: Offer keyguard note in touch ui
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_lock_display "Lock display and keys?"
+
+//d: A keyguad information note text informing user
+//d: to use dedicated keylock switch for unlocking the phone
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_info_note_display_lock_switch "Use lock switch to unlock display and keys"
+
+
+//d: Option for adding selected item(s) to pinboard.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_add_to_pinboard "Add to pinboard"
+
+//d: Creating a call to a selected number.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_call "Call"
+
+//d: Option or shift menu item for editing submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_edit "Edit text"
+
+//d: Option or shift menu item for editing submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define text_pup_option_edit_text "Edit text"
+
+//d: A common option in a options list for closing application.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_exit "Exit"
+
+//d: Option for find item submenu.
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_find "Find item"
+
+//d: Option for finding e-mail address. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_find_email_address "E-mail address"
+
+//d: Option for finding phone number. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_find_phone_number "Phone number"
+
+//d: Option for finding URL address. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_find_url_address "URL address"
+
+//d: Getting help via options Help selection.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_help "Help"
+
+//d: List query heading text in input language list query.
+//l: heading_pane_t1
+//
+#define qtn_options_input_language "Input language:"
+
+//d: Option or shift menu item for input language submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define text_pup_option_input_language "Input language"
+
+//d: Option for organizing submenu.
+//d: TODO: Remove this item if it is not used anywhere??
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_org "Organize"
+
+//d: Option for moving item(s). Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_move "Move"
+
+//d: Option for moving item(s) to folder. Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_move_to_folder "Move to folder"
+
+//d: Option for creating new folder. Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_new_folder "New folder"
+
+//d: Option for sending submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_send_via "Send"
+
+//d: Option for sending data via BT. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_bt "Bluetooth"
+
+//d: Option for sending data via e-mail. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_email "E-mail"
+
+//d: Option for sending data via fax. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_fax "Fax"
+
+//d: Option for sending data via IR. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_ir "Infrared"
+
+//d: Option for sending data via MMS. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_mms "MMS"
+
+//d: Option for sending data via SMS. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_sms "SMS"
+
+//d:It is text for a menu option. If it is selected,
+//d: separate Idle application is brought to foreground.
+//l: list_single_pane_t1_cp2
+//w:
+//r:2.8
+//
+#define qtn_incal_goto_active_idle "Go to Active Idle"
+
+//d: Option or shift menu item for T9 submenu.
+//d:
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_t9 "Predictive text"
+
+//d: Option or shift menu item for T9 submenu.
+//d:
+//l: list_single_pane_t1_cp2
+//
+#define text_pup_option_predictive_text "Predictive text"
+
+//d: Option for editing T9 word. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_edit_word "Edit word"
+
+//d: Option for adding words to T9 dictionary. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_insert_word "Insert word"
+
+//d: Option for finding matches from T9 dictionary.
+//d: Option item in T9 submenu.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_matches "Matches"
+
+//d: Option for finding matches from T9 dictionary.
+//d: Option item in T9 submenu.
+//l: list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_matches "Matches"
+
+//d: Option for disable T9. Edit menu submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_off "Off"
+
+//d: Option for activate T9. Edit menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_t9_on "Predictive text on"
+
+//d: Option or shift menu item for Predictive_Mode [Auto Word Completion On /Off ] submenu.
+//d:
+//l: list_single_pane_t1_cp2
+//r:3.2
+//
+#define qtn_options_t9_autocompletion "Predictive Mode"
+
+
+//d: Option to activate Predictive Auto Word Completion. Edit menu item.
+//d: Option item in Predictive_Mode submenu.
+//l: list_single_popup_submenu_pane_t1
+//r:3.2
+//
+#define qtn_options_t9_autocompletion_on "Auto Complete"
+
+
+
+//d: Option to deactivate Predictive Auto Word Completion. Edit menu item.
+//d: Option item in Predictive_Mode submenu.
+//l: list_single_popup_submenu_pane_t1
+//r:3.2
+//
+#define qtn_options_t9_autocompletion_off "Normal"
+
+// COMMON DELETE? CONFIRMATION QUERY
+
+//d: Used as a confirmation query in situations where user wants to
+//d: delete an object/objects. %U must be defined case by case;
+//d: it might be name of the object/item, or a separate UI text
+//d: having a separate logical name
+//d: (e.g. "%N items" qtn_fldr_del_items_query).
+//l: popup_note_window
+//
+#define qtn_query_common_conf_delete "Delete\n%U?"
+
+//d: Confirmation query when the user tries to remove an object.
+//d: %U stands for object name.
+//l: popup_note_window
+//
+#define qtn_query_common_conf_remove "Remove\n%U?"
+
+
+// GENERAL FOLDER TEXTS FROM FOLDERS SPEC
+
+//d: Option in options menu for creating a new folder.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_new "New folder"
+
+//d: Option in options menu for opening focused folder.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_open "Open"
+
+//d: Option in options menu for deleting selected folder(s).
+//d: Can be used for deleting other items as well, if there
+//d: are folders and other items in same list.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_delete "Delete"
+
+//d: Option in options menu for deleting items in folders.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_delete_items "Delete"
+
+//d: Option in options menu for renaming folder.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_rename "Rename"
+
+//d: Option in options menu for moving items inside the list.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_move_item "Move"
+
+//d:Wait/progress note text that is shown when items are deleted.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_fldr_deleting_wait_note "Deleting"
+
+//d:Wait/progress note text that is shown when items are moved to folder.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_fldr_moving_wait_note "Moving"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_adding "Adding"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_copying "Copying"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_fetching "Fetching"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_removing "Removing"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_processing "Processing"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_saving "Saving"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_sending "Sending"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_opening "Opening"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_inserting "Inserting"
+
+//d: the request is being sent to the network, wait note text
+//l: popup_note_wait_window
+#define text_sending "Requesting"
+
+//d: sending request to the network cancelled by the user
+//l: popup_note_window
+#define text_unconfirmed "Request not confirmed"
+
+// d: It is text shown in error note when incall operation is fails.
+// l: popup_note_window
+//
+#define text_request_rejected "Request rejected"
+
+//d: Prompt text shown in the data query when creating new folder.
+//l: popup_query_data_window
+//
+#define qtn_fldr_name_prmpt "Folder name:"
+
+//d: Default name in the data query's editing field when creating new folder.
+//l: query_popup_data_pane_t1/opt4
+//
+#define qtn_fldr_name_default "New folder"
+
+//d: Information note which is shown when the user is trying to
+//d: name the folder with a name which is already in use.
+//l: popup_note_window
+//
+#define qtn_fldr_name_already_used "Name already in use:\n%U"
+
+//d:Confirmation query text when the user tries to delete
+//d:several selected items. Selected items
+//d:can be also other items than folders.
+//d: %N represents the number of the selected items to be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_del_items_query "Delete %N items?"
+
+//d: Confirmation query text. Confirms if the user wants to delete
+//d: a folder that contains items.
+//d: If accepted, items inside the folder will be deleted as well.
+//l: popup_note_window
+//
+#define qtn_fldr_del_full_fldrs_query "Delete selected folder and items in it?"
+
+//d: "Option in the options menu, when items can be moved to folder."
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_move_to_folder "Move to folder"
+
+//d: Prompt text shown in the list query where the user can
+//d: select to which folder he wants to move items.
+//l: heading_pane_t1
+//
+#define qtn_fldr_move_to_prmpt "Move to:"
+
+//d: Prompt text shown in the list query where the user can
+//d: select to which folder he wants to copy items.
+//l: heading_pane_t1
+//
+#define qtn_fldr_copy_to_prmpt "Copy to:"
+
+//d: List query heading
+//d: Shown in the list query where the user can select to which folder he wants to copy items
+//l:heading_pane_t1
+#define qtn_fldr_copy_to_prompt "Copy to:"
+
+//d:
+//l: popup_note_window
+//
+#define qtn_fldr_no_folders_exist "No folders exist"
+
+//d:
+//l: list_single_graphic_pane_t1_cp2
+//
+#define qtn_fldr_root_level "Root level"
+
+//d: Options menu item with which the user can create new group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_new_group "New group"
+
+//d: Options menu item for opening focused group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_open_group "Open"
+
+//d: Options menu item for deleting group(s).
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_delete_group "Delete"
+
+//d: Options menu item for renaming group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_rename_group "Rename"
+
+//d: Options menu item in the group list with which the user
+//d: can add items to selected group(s)
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_add_to_selected_group "Add items to group"
+
+//d: Prompt text shown in the data query when creating new group.
+//l: popup_query_data_window
+//
+#define qtn_fldr_group_name_prmpt "Group name:"
+
+//d: Default name in the data querys editing field when creating new group.
+//l: query_popup_data_pane_t1/opt4
+//
+#define qtn_fldr_default_group_name "New group %N"
+
+//d: Confirmation query text that is shown when several empty groups are selected
+//d: and the user activates deleting operation.
+//l: popup_note_window
+//
+#define qtn_fldr_del_empty_groups "Delete %N groups?"
+
+//d: Confirmation query text that is shown when at least one group, that contains items, is selected
+//d: and the user activates deleting operation.
+//l: popup_note_window
+//
+#define qtn_fldr_del_full_groups_query "Delete selected groups and links in them?"
+
+//d: "Prompt text in the list query where the user can select,
+//d: what items to add to group."
+//l: heading_pane_t1
+//
+#define qtn_fldr_add_to_group_prmpt "Select items:"
+
+//d: Options menu item with which the user can add items to group
+//d: when he is inside the group
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_add_to_group "Add items "
+
+//d: Prompt text in the list query where the user can select,
+//d: into what group he wants to add items.
+//l: heading_pane_t1
+//
+#define qtn_fldr_select_group_prmpt "Select group:"
+
+//d:
+//l: popup_note_window
+//
+#define qtn_fldr_no_groups_exist "No groups exist"
+
+//d: Link items can be removed from a group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_remove_items "Remove"
+
+//d: Conf. query after qtn_fldr_remove_items. %U is the name
+//d: of the link to be removed from a group.
+//l: popup_note_window
+//
+#define qtn_fldr_rem_one_item_query "Remove?\n%U"
+
+//d: Conf. query after qtn_fldr_remove_items. %N stands for the
+//d: amount of links selected to be removed from a group.
+//l: popup_note_window
+//
+#define qtn_fldr_rem_items_query "Remove?\n%N items"
+
+//d: Items with same name: the user is provided a possibility
+//d: to overwrite the old item with a new one.
+//l: popup_note_window
+//
+#define qtn_fldr_overwrite_query "%U already exists. Overwrite?"
+
+//d: After qtn_fldr_overwrite_query: user does not want to
+//d: overwrite the old item. Data query with prompt "New name:"
+//d: will be displayed.
+//l: popup_query_data_window
+//
+#define qtn_fldr_item_name_prmpt "New name:"
+
+//d: Items with same name: the user is NOT provided a possibility
+//d: to overwrite the old item, but only to give a new name.
+//l: popup_note_window
+//
+#define qtn_fldr_rename_query "%U already exists. Rename?"
+
+//d: Error note when the user tries to move item to the folder
+//d: and the item cannot be moved.
+//l: popup_note_window
+//
+#define qtn_fldr_item_cannot_be_moved "Can't move:\n%U"
+
+//d: Error note when the user tries to move items to the folder
+//d: and two or more of the items cannot be moved.
+//l: popup_note_window
+//
+#define qtn_fldr_some_items_cant_move "Can't move:\n%N items"
+
+//d: Error note shown when the user tries to remove a folder
+//d: which contains items which cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_item "Can't delete:\n%U"
+
+//d: %N items in the folder cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_items "Can't delete:\n%N items"
+
+//d: Error note shown when the user tries to delete folder
+//d: which cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_folder "Can't delete:\n%U"
+
+//d: Error note shown when two or more folders cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_folders "Can't delete:\n%N folders"
+
+//d: When a file, which is got for example as a attachment in mail,
+//d: is being saved to the device, confirmation note is shown
+//d: so that the user knows where the file is actually saved.
+//d: Confirmation note text.
+//l: popup_note_window
+//
+#define qtn_fldr_file_saved_to "File saved to %U"
+
+//d: Unable to copy folder item.
+//l: popup_note_window
+#define qtn_fldr_item_cannot_be_copied "Unable to copy %U"
+
+//d: Unable to rename item in folder.
+//l: popup_note_window
+#define qtn_fldr_cant_rename_item "Unable to rename %U"
+
+//d: Unable to delete item in folder.
+//l: popup_note_window
+#define qtn_fldr_cant_delete_fldr_open "Unable to delete %U"
+
+//d: Note text
+//d: Shown when some items cant be copied. %N is amount of items.
+//l:popup_note_window
+#define qtn_fldr_some_items_cant_copy "Unable to copy %N items"
+
+//d: Note text
+//d: Shown when folder cant be moved. %U is the name of the folder.
+//l:popup_note_window
+#define qtn_fldr_cannot_move_folder "Unable to move folder %U"
+
+//d: Note text
+//d: Shown when file is open and the user tries to delete it from somewhere. %U is the name of the item.
+//l:popup_note_window
+#define qtn_fldr_cant_delete_file_open "Unable to delete item %U. It is currently open."
+
+//d: Confirmation query
+//d: Shown when user is deleting folder which contains items which are not shown in current view.
+//l:popup_note_window
+#define qtn_fldr_del_all_hidden_items "There are also items, which are not shown now. Delete anyway?"
+
+//d: If saving of a file takes more than 1 second, wait note is displayed
+//d: during saving (instead of confirmation note). Wait note informs
+//d: the user where the file is actually saved.
+//d: The wait note text.
+//l: popup_note_wait_window
+//
+#define qtn_fldr_file_saving_wait "Saving file to %U"
+
+//d: If the name user entered is too long or consist solely of single
+//d: or double dot, this information note is displayed and after that
+//d: the data entry is opened (name is highlighted in the editor) so that
+//d: the user can correct the name.
+//l: popup_note_window
+//
+#define qtn_fldr_bad_file_name "Unsuitable file name"
+
+//d: If the name of the file contains other illegal characters than mentioned
+//d: in 'qtn_fldr_bad_file_name', this information note is displayed.
+//d: There has to be '\' character before '"' character. This combination
+//d: is shown as '"' character. Also '\\' is shown as '\' char.
+//l: popup_note_window
+//
+#define qtn_fldr_illegal_characters "Name can't contain following characters:\n< > \" \\ / | : * ?"
+
+//d: Below critical level of free memory.
+//d: Operation that consumes lot of memory is not possible.
+//l: popup_note_window/opt1
+//
+#define qtn_memlo_not_enough_memory "Not enough memory to execute operation. Delete some documents and try again."
+
+//d:When the memory Warning Level is passed, it is warned to user by system. Global
+//d: query with this text is shown. Low memory situation is informed for the user also when:
+//d: - System is booted (after battery off, etc.).
+//d: - System unlocked.
+//d: In these cases, if WL is passed, on the screen comes the same global query.
+//l: popup_note_window
+//
+#define qtn_memlo_memory_running_out "Running out of memory. Try deleting some data."
+
+//d: Memory full note: When this Critical Level is passed, it is warned to user by system. Low memory
+//d: situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//l: popup_note_window
+//
+#define qtn_memlo_memory_full "Memory is full. Delete some documents"
+
+//d: The query text to be displayed If there is not enough memory
+//d: to perform the message receiving operation
+//l: popup_note_window
+//
+#define qtn_memlo_memory_low_messages "Not enough memory to receive messages. Delete some documents and try again."
+
+//d: Text to be displayed in information note if there is not enough memory to perform the data receiving operation
+//d: (example via bluetooth), is shown an Information note
+//l: popup_note_window
+//
+#define qtn_memlo_memory_low_data "Not enough memory to receive data. Delete some data and try again."
+
+//d: When the memory card memory Warning Level is passed, it is warned to user by system. Global
+//d: query with this text is shown. Low memory situation is informed for the user also when:
+//d: - System is booted (after battery off, etc.).
+//d: - System unlocked.
+//d: In these cases, if WL is passed, on the screen comes the same global query.
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_running_out "Memory card running out of memory. Try deleting some data."
+
+//d: Memory card full note: When Critical Level is passed in memory card, it is warned to user by system.
+//d: Low memory situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_full "Memory card is full. Delete some documents."
+
+//d: Free memory is below critical level in memory card.
+//d: Operation that consumes lot of memory is not possible.
+//l: popup_note_window/opt1
+//
+#define qtn_memlo_mmc_not_enough_memory "Not enough memory in memory card to execute operation. Delete some documents and try again."
+
+//d: The query text to be displayed if there is not enough memory in memory card
+//d: to perform the message receiving operation
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_low_messages "Not enough memory in memory card to receive short messages. Delete some documents."
+
+//d: Text to be displayed in information note if there is not enough memory in memory card to perform the data receiving operation
+//d: (example via bluetooth).
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_low_data "Not enough memory in memory card to receive data. Delete some data and try again."
+
+//d: Text to be dispalyed when device must be rebooted.
+//d: Confirmation Query is shown to the user. There is
+//d: only left softkey OK ?text.softkey.ok? and the device reboot after the user has
+//d: pressed that or selection key.
+//l: popup_note_window
+#define qtn_memlo_reboot "System have to reboot."
+
+//d: If some database is corrupted, the owner of the database will try to recover it or
+//d: reinitialise it. This text is shown in an Information Note.
+//l: popup_note_window
+#define qtn_memlo_database_corrupted "Database corrupted. Some data might have been lost."
+
+//d:If RAM is low, applications will be closed in background (order prioritized by
+//d: Epoc). If needed,the text in information note is this.
+//l: popup_note_window/opt1
+#define qtn_memlo_ram_out_of_mem "Out of memory. Try closing unnecessary applications."
+
+//d: When the system or the phone or some other critical application don?t start.
+//d: Global permanent error note with this text is shown
+//l: popup_note_window
+#define qtn_memlo_contact_service "Contact service"
+
+//d: Application busy note text. This message is displayed when a waiting control
+//d: (dialog, setting page, etc) is dismissed, but the scheduler can?t stop yet.
+//d: This wait note indicates for a user that application is busy at the moment
+//d: and cannot receive any user input.
+//l: popup_note_wait_window
+//
+#define qtn_memlo_application_busy "Application is busy"
+
+//d: Query text to be displayed if SIM is full when
+//d: message receiving operation was performed.
+//l: popup_note_window
+//
+#define qtn_memlo_memory_low_sim_mes "SIM full. Empty it to receive SIM short messages."
+
+//d:Confirmation query text that is shown when the user wants to kill an application from
+//d:fastswap window by pressing clear key.
+//d:Same confirmation query can be shown also in memory low situations.
+//d:%U refers to the name of the application.
+//l:popup_note_window
+//
+#define qtn_memlo_confirm_close "Confirm close \"%U\"?"
+
+//d: Device drive disk space low note: When Warning Level is passed, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_device_memory_low "Memory low. Delete or move some data from %U Device memory."
+
+//d: Memory card disk space low note: When Warning Level is passed in memory card, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %0U is the drive letter of the drive.
+//d: %1U is the memory card name.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_low_name "Memory low. Delete or move some data from %0U %1U."
+
+//d: Memory card disk space low note: When Warning Level is passed in memory card, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_low_defaultname "Memory low. Delete or move some data from %U Memory card."
+
+//d: Mass Storage disk space low note: When Warning Level is passed, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_mass_storage_memory_low "Memory low. Delete or move some data from %U Mass storage."
+
+//d: Device drive disk space critical note: When Critical Level is passed, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_device_memory_full "Memory full. Delete or move some data from %U Device memory."
+
+//d: Memory card disk space critical note: When Critical Level is passed in memory card, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %0U is the drive letter of the drive.
+//d: %1U is the memory card name.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_full_name "Memory full. Delete or move some data from %0U %1U."
+
+//d: Memory card disk space critical note: When Critical Level is passed in memory card, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_full_defaultname "Memory full. Delete or move some data from %U Memory card."
+
+//d: Mass Storage disk space critical note: When Critical Level is passed, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_mass_storage_full "Memory full. Delete or move some data from %U Mass storage."
+
+//d: Text in error note when there is an error updating sim.
+//l: popup_note_window
+//
+#define text_fdn_card_error "SIM card error"
+
+//d:Information note text.
+//d:The note is shown if SIM memory is not ready.
+//l:popup_note_window
+//
+#define text_scm_select_b_memory "SIM card not ready"
+
+//d:Information note text that is shown if the user tries to open an attachment
+//d:that has been encrypted or it is an unsupported type by the device.
+//l:popup_note_window
+//
+#define qtn_mail_info_atta_encrypted "Unsupported type. Cannot open"
+
+//d:
+//d:
+//l: None
+//
+#define text_calc_decimal_separator "."
+
+//d:
+//d:
+//l: None
+//
+#define qtn_cnv_decimal_separator "."
+
+
+// Softkey labels
+//d:Command text associated to a softkey in the control pane.
+//d:Clear functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_clear "Clear"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Show previous word from T9 dictionary's matches list
+//l:control_pane_t1/opt7
+//
+#define text_softkey_previous "Previous"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Launches insert word query in multi tab mode when
+//d:there are not (any more) matches in T9 dictionary available
+//l:control_pane_t1/opt7
+//
+#define text_softkey_spell "Spell"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Launches special character table
+//l:control_pane_t1/opt7
+//
+#define text_softkey_symbol "Symbol"
+
+
+//d:Command in options sub-menu.
+//d:This menu item is show only when predictive text input mode is on.
+//d:Launches insert word query in multitab mode.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_insert_word "Insert word"
+
+//d:Command in options T9 sub-menu.
+//d:This menu item is show only when predictive text is on
+//d:and a word is active. Launches edit word query in multi tab mode.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_edit_word "Edit Word"
+
+//d:Command in options T9 sub menu.
+//d:Switches predictive text input (T9) off.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_t9_off "T9 off"
+
+//d:Command in options T9 sub-menu.
+//d:Switches predictive text input (T9) on.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_t9_on "T9 on"
+
+//d: Shift menu item to change input mode to multi tab mode.
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define text_pup_option_multitap_mode "Alpha mode"
+
+//d: Shift menu item to change input mode to number mode.
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define text_pup_option_number_mode "Number mode"
+
+//d: Shift menu item to change input mode to predictive (T9) mode.
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define text_pup_option_t9_mode "Predictive Mode"
+
+
+//d:
+//d:default text displayed for the screensaver
+//l: None
+//
+#define qtn_sanim_text_default "Nokia"
+
+
+// d: Global default document file name.
+// d: The name is used only when some application
+// d: doesn't offer a name itself.
+// l: list_single_large_graphic_pane_t1
+//
+#define qtn_dochui_default_docname "Unnamed"
+
+
+//d: "No Data" default text for popup lists, if the list has
+//d: no items. (This has not been specified in component
+//d: specifications; the logical name has been invented by
+//d: implementation) It is shown currently in a confirmation note.
+//l: popup_note_window
+//
+#define qtn_empty_popup_list_text "No Data"
+
+
+//d:two or more supplementary services are in conflict
+//l:popup_note_window
+//
+#define qtn_srvrq_info_confl "Services in conflict"
+
+//d:request failed, no network coverage
+//l:popup_note_window
+//
+#define text_no_service "No network coverage"
+
+//d:request was denied
+//d:currently defined in BasicCallHandling.loc, psui.loc and PhoneClient.loc
+//l:popup_note_window/opt1
+//
+#define text_not_allowed "Not allowed"
+
+//d:request result is unknown
+//d:currently defined in PhoneClient.loc and psui.loc
+//l:popup_note_window
+//
+#define text_result_unknown "Result unknown"
+
+//d: Displayed in the "To/From" section for bluetooth objects in message centre.
+//l: list_double_graphic_pane_t1
+//
+#define qtn_mce_bt_message "Bluetooth message"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldrs_files "%0N folders, %1N files"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldrs_file "%0N folders, %1N file"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldr_files "%0N folder, %1N files"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldr_file "%0N folder, %1N file"
+
+
+
+// Logical names for APAC variant.
+
+//d: Edit menu item to activate pinyin input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_pinyin "Pinyin"
+
+//d: Edit menu item to activate zhuyin input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_zhuyin "Zhuyin"
+
+//d: Edit menu item to activate strokes input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_stroke "Strokes"
+
+// d: Text of the list item in CangJie mode selection
+// d: Indicates the Advanced CangJie mode selection
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_option_advanced_cangjie "Advanced CangJie"
+
+// d: Text of the list item in CangJie mode selection
+// d: Indicates the Easy CangJie mode selection
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_option_easy_cangjie "Easy CangJie"
+
+// d: Text of the list item in CangJie mode selection
+// d: Indicates the Normal CangJie mode selection
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_option_normal_cangjie "Normal CangJie"
+
+// d: Heading of the CangJie mode selection dialog
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_heading_cangjie_mode "Select CangJie mode"
+
+// d: Edit menu item to activate CangJie mode selection dialog
+// d: Used for selecting CangJie mode
+// d: Only HK Chinese
+// l: list_single_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_pup_option_cangjie_mode "CangJie input mode"
+
+// d: Edit menu item to activate CangJie input mode
+// d: Only HK Chinese
+// l: list_single_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_cangjie "CangJie"
+
+// d: Text of the English Input Mode in the sub menu
+// d: Indicates the English Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_english "English"
+
+// d: Text of the Zhu Yin Input Mode in the sub menu
+// d: Indicates the Zhu Yin Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_zhuyin "Zhuyin"
+
+// d: Text of the Stroke Input Mode in the sub menu
+// d: Indicates the Stroke Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_stroke "Stroke"
+
+// d: Text of the Find Zhuyin Symbol Input Mode in the sub menu
+// d: Indicates the Find Zhuyin Symbol Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_find_zhuyin_symbol "Zhuyin Symbol"
+
+// d: Text of the Find Stroke Symbol Input Mode in the sub menu
+// d: Indicates the Find Stroke Symbol Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_find_stroke_symbol "Stroke Symbol"
+
+// d: Text of the Pinyin Input Mode in the sub menu
+// d: Indicates the Pinyin Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_pinyin "Pinyin"
+
+// d: Text of the Input Mode Option in the sub menu
+// d: Indicates the Input Mode Option selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_pup_option_input_method "Input method"
+
+//d: Edit menu item to activate latin multi-tab input mode.
+//d: Character case is upper case.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_latin_upper "Latin upper case"
+
+//d: Edit menu item to activate latin multi-tab input mode.
+//d: Character case is lower case.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_latin_lower "Latin lower case"
+
+//d: Edit menu item to activate latin text case input mode.
+//d: Character case is upper case at the beginning of a sentence and
+//d: the case is updated automatically.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_latin_text "Latin text case"
+
+//d: Edit menu item to activate number input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_number_entry "Number entry"
+
+//d: Edit menu item to get a brief explanation on how
+//d: to input Chinese text.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_instructions "Instructions"
+
+//d: This note is shown when pinyin, zhuyin or strokes
+//d: input method is selected from the edit menu.
+//d: Only Chinese.
+//l: popup_note_window
+//
+#define text_chi_t9_enabled_conf "T9 predictive text activated"
+
+//d: Extreme Error Handling related string
+//d: General error text to be displayed in most error cases
+//l: popup_note_window
+#define qtn_err_eikon_general "System error."
+
+//d: Extreme Error Handling related string
+//d: Error text in AlertWin when device has run OOM or OOD
+//l: popup_note_window
+#define qtn_err_eikon_mem "Out of memory."
+
+//d: Extreme Error Handling related string
+//d: General error text for Resource problems (BAFL related problems)
+//l: popup_note_window
+#define qtn_err_eikon_res "Resource error."
+
+//d: String for the first line in panic notes
+//l: popup_note_window
+#define qtn_err_program_closed "Program closed:"
+
+//d: The help text that explains how to input Chinese text.
+//d: Describes the basic functions of Chinese Input Editor.
+//d: Only Chinese.
+//l: popup_info_list_pane_t1
+//
+#define qtn_chi_input_help_instr "Describes the basic functions of Chinese Input Editor"
+
+//d: Heading for Chinese input instructions.
+//d: Heading of the input instructions message query.
+//d: Only Chinese.
+//l:heading_pane_t1
+#define qtn_chi_heading_instr "Instructions:"
+
+//d: Edit menu item to activate zhuyin find mode.
+//d: Only Chinese.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_chi_find_zhuyin "Zhuyin find"
+
+//d: Edit menu item to activate stroke find mode.
+//d: Only Chinese.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_chi_find_stroke "Stroke find"
+
+
+//d: Note is shown when user has pressed "Unlock" when keypad is in locked state
+//l: popup_note_window
+//
+#define qtn_keyg_info_nowpress "Now press *"
+
+//d: Is shown when the user presses other key than "Unlock" when keypad is in locked state
+//l: popup_note_window
+//
+#define qtn_keyg_err_unaccept_presses "Press Unlock and then * to activate keypad"
+
+//d: A keyguad information note text informing user
+//d: to use dedicated keylock switch for unlocking the phone
+//l: popup_note_window
+//r:3.2
+//
+#define qtn_keyg_info_note_keyguard_switch "Use keyguard switch to unlock keypad"
+
+//d:Command in form's options menu.
+//d:Add new item to a form (generic).
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_add "Add field"
+
+//d:Command in form's options menu.
+//d:Edit the label of the current form item (generic).
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_label "Edit label"
+
+//d:Command in form's options menu.
+//d:Delete current form item (generic).
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_delete "Delete field"
+
+//d:Query prompt for editing a form label (generic).
+//l:popup_query_data_window
+//
+#define qtn_form_prmpt_field_gen_label "Label:"
+
+
+//d: The prompt for the unlock MMC dialog.
+//d: Only when secure MMC is supported.
+//l: popup_query_data_window
+//
+#define qtn_mem_card_unlock_prompt "Password:"
+
+//d: The error message when the wrong password
+//d: is supplied to the unlock MMC dialog
+//l: popup_query_data_window
+//
+#define qtn_mem_card_unlock_error "Incorrect password! Try again:"
+
+
+//d:Left softkey in the CCBS activation query.
+//d:This will request the CCBS activation from the network.
+//l:control_pane_t1/opt7
+//
+#define qtn_ccbs_softkey_queue "Queue"
+
+
+// d: colour selection grid pop-up header text
+// l: heading_pane_t1
+//
+#define qtn_select_colour_prompt "Select colour:"
+
+// d: Text for none value field
+// d: In grid there's a possibility to choose
+// d: nothing by choosing none value field.
+// l: cell_large_graphic_colour_none_popup_pane_t1/opt1
+//
+#define qtn_select_colour_none "none"
+
+
+//d:Promt text in Screen saver text query
+//d:Data query
+//l:popup_query_data_window
+//
+#define qtn_sanim_object_text_promt "Text:"
+
+
+// d: General query for asking user if it is ok to reboot the phone
+// d: System will reboot automatically if user accepts the query.
+// l: popup_note_window
+
+#define qtn_general_restart_query "Phone will restart. Continue?"
+
+// d: General note for informing the user that the phone will restart.
+// l: popup_note_window
+#define qtn_restart_query "Phone will restart."
+
+//d:Permanent note Sim rejected. Shown after PUK1 code has been blocked.
+//l:popup_note_window
+//
+#define text_sim_rejected "SIM card rejected"
+
+//d:Shown when invalid SIM card is inserted and sim locking is active
+//l:popup_note_window
+//
+#define text_sim_lock_active "SIM unaccepted"
+
+//d:Shown when SIM lock is in pending state
+//l:popup_note_window
+//
+#define text_sim_lock_pending "SIM restriction pending"
+
+//d:Insert Sim card note. Shown if Sim card has been removed.
+//l:popup_note_window
+#define qtn_su_note_insert_sim "Insert SIM card"
+
+//d:The note that is shown when the user attempts to connect the network when in off-line mode.
+//l:popup_note_window/opt1
+#define qtn_offline_not_possible "Operation not possible in Off-line mode"
+
+//d:The note that is shown when the user attempts to connect the network when in SIM Access Profile mode. From rel. 2.6 onwards
+//l:popup_note_window/opt1
+#define qtn_offline_not_possible_sap "Operation not possible in SIM access profile mode"
+
+
+//d:The query that is shown when in off-line mode and the user has requested switching to on-line.
+//l: popup_note_window
+#define qtn_leave_offline_mode_query "Are you sure that you want to switch GSM network on?"
+
+//d:The query that is shown when the user starts the device with SIM inserted and the device
+//d:was last switched off in off-line mode.
+//l: popup_note_window
+#define qtn_su_use_offline "Do you want to use the phone in Off-line mode?"
+
+
+//d:Error text when memory card is not inserted.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error1 "(no memory card inserted)"
+
+//d:Error text when memory card is locked.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error2 "(memory card locked)"
+
+//d:Error text when memory card is corrupt.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error3 "Memory card is corrupted!"
+
+//d:Swap card note.
+//d:This note is used to inform user that memory card should be removed before pressing ok (Old card is dismounted and all non-system applications are closed)
+//l:popup_note_window
+//
+#define qtn_memc_info_eject "Remove memory card and press OK."
+
+//d:Progress note text.
+//d:This note is used to inform the user that applications are being closed
+//l:popup_note_wait_window
+//
+#define qtn_memc_wait_eject "Closing applications"
+
+//d:Information note text
+//d: User tries to make a operation in read-only MMC which needs modifying in MMC.
+//l:popup_note_window
+//
+#define qtn_memc_memorycard_read_only "Unable to perform operation. Memory card is read-only"
+
+//d:Options menu command.
+//d:Start eject.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_memc_options_eject "Eject memory card"
+
+//d:MMC eject confirmation query.
+//d:Used to confirm that the user is still going to eject MMC although all
+//d:applications will be closed. Shown immediately after the user has selected
+//d:"Eject memory card" item from the option menu.
+//l:popup_note_window
+#define qtn_memc_conf_eject "Eject memory card? All applications will be closed."
+
+// d: It is text for menu option. If it is selected,
+// d: then video is taken from primary camera.
+// l: list_single_pane_t1_cp2
+//
+#define qtn_incal_camera_1_option "Use primary camera"
+
+// d: It is text for menu option. If it is selected,
+// d: then video is taken from secondary camera.
+// l: list_single_pane_t1_cp2
+//
+#define qtn_incal_camera_2_option "Use secondary camera"
+
+// d: It is text in softkey to enable video.
+// l: control_pane_t1/opt7
+//
+#define qtn_incal_softk_enable_video "Enable video"
+
+
+//d: Special character table character set.
+//d: Special character table query prompt text(page).
+//d:
+//l: heading_pane_t1
+//
+#define qtn_edit_sct_page_indicator "%0N/%1N"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Next page (from special character table).
+//l:control_pane_t1/opt7
+//
+#define text_softkey_sct_next_page "Next"
+
+
+//d: Edit menu item to activate hiragana input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_hiragana "Hiragana"
+
+//d: Edit menu item to activate katakana input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_katakana "Katakana"
+
+//d: Edit menu item to activate latin input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_latin "Latin"
+
+//d: Edit menu item to activate number input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_number "Number"
+
+//d: Edit menu item to activate pictograph character table.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_pictographs "Pictographs"
+
+//d: Edit menu item to activate special character table.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_symbols "Symbols"
+
+//d: Edit menu item to change to full width
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_full_width "Full width"
+
+//d: Edit menu item to change to half width
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_half_width "Half width"
+
+//d: Edit menu item to activate predictive text input mode for Japanese
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_predict_on "J.Predictive on"
+
+//d: Edit menu item to deactivate predictive text input mode for Japanese
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_predict_off "J.Predictive off"
+
+//d: Edit menu item to activate English predictive mode.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_eng_predict_on "E.Predictive on"
+
+//d: Edit menu item for English predictive mode.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_eng_predictive "English predict."
+
+//d: Edit menu item to activate Kuten code input query dialog.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_register_word "Register Word"
+
+//d: Edit menu item to activate Kuten code input query dialog.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_kuten_code "Kuten code input"
+
+//d: CBA SoftKey
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//
+#define text_softkey_convert "Convert"
+
+//d: Kuten query dialog.
+//d: Only Japanese.
+//l: popup_query_data_window
+//
+#define qtn_japin_prmpt_kuten_code "Kuten Code:"
+
+//d: error message of Kuten query dialog.
+//d: Only Japanese.
+//l: popup_note_window
+//
+#define qtn_japin_text_kuten_code_invalid_error "Invalid Kuten Code"
+
+//d: Confirmation note text.
+//d: Confirms that the user has activated Japanese predictive input from edit menu.
+//d: Only Japanese.
+//l: popup_note_window
+//
+#define qtn_japin_conf_predictive_on "Japanese predictive input activated"
+
+//d: Confirmation note text.
+//d: Confirms that the user has deactivated Japanese predictive input from edit menu.
+//d: Only Japanese.
+//l: popup_note_window
+//
+#define qtn_japin_conf_predictive_off "Japanese predictive input deactivated"
+
+//d:Options list text for a writing message submenu (SMS,MMS,Email)
+//l:list_single_pane_t1_cp2/opt3
+//
+#define qtn_phob_opt_send "Write"
+
+//d:Options list submenu text for writing a SMS message to selected entry
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_phob_opt_send_sms "SMS"
+
+//d:Options list submenu text for writing a MMS message to selected entry
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_phob_opt_send_mms "MMS"
+
+//d:Options list submenu text for writing a e-mail message to to selected entry
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_phob_opt_send_email "e-mail"
+
+
+// d: Text in options menu when link highlighted in automatic find.
+// d: If user selects this option, browser of real media player opens
+// l: list_single_pane_t1_cp2
+#define qtn_find_open_link "Open link"
+
+// d: Text in options menu when real media link highlighted
+// d: in automatic find. If user select this option, link will be saved to gallery
+// l: list_single_pane_t1_cp2
+#define qtn_find_url_save_gallery "Save to Gallery"
+
+// d: Text in information note when link was successfully saved
+// d:
+// l: popup_note_window
+#define qtn_find_rtsp_saved_note "Link saved"
+
+// d: Text in options menu. If user selects this option
+// d: automatic highlight will be enabled
+// l: list_single_pane_t1_cp2
+#define qtn_find_activate_option "Activate find"
+
+// d: Text in options menu. If user selects this option
+// d: automatic highlight will be disabled
+// l: list_single_pane_t1_cp2
+#define qtn_find_deactivate_option "Deactivate find"
+
+// d: Text in options menu when scheme handler command
+// d: highlighted. If selected, may open basically any application so please use
+// d: as generic text as possible
+// l: list_single_pane_t1_cp2
+#define qtn_options_scheme_use "Use"
+
+// d: Text in list query heading when user presses send-key
+// d: while automatic highlight is focused to phone number in
+// d: message body
+// l: heading_pane_t1
+#define qtn_find_number_call_send_key "Call"
+
+// d: Text in list query. If user selects this option,
+// d: application will create phone call to message sender
+// l: list_single_pane_t1_cp2
+#define qtn_find_call_to_sender "Back to sender"
+
+
+// d: Default name for file containing video information
+// d: Used only if user does not enter new name to link.
+// d: If file with same name already exists, number will be added
+// d: to the end of the string to make name unique (eg. Link(1))
+// l: list_single_graphic_pane_t1_cp2
+#define qtn_mg_link_name_default "Link"
+
+//d: Command in Options menu command name for "Open". From rel. 2.6 onwards
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_open "Open"
+
+//d:Command text associated to a softkey in the control pane. From rel. 2.6 onwards
+//l:control_pane_t1/opt7
+//
+#define text_softkey_open "Open"
+
+// d: CDMA: Title in list query when user wants to either save SMS sender/ CallBack number
+// d: to phonebook or call sender via options menu. Query is used for distinguish
+// d: to which number (sender number like in GSM, or special callback number used in CDMA)
+// d: action will be assigned.
+// l: heading_pane_t1
+//
+#define qtn_sms_usenumber "Choose a number"
+
+// d: CDMA: Item text in list query (See description of qtn_sms_usenumber).
+// l: list_single_heading_pane_t2_cp2
+//
+#define qtn_sms_usenumber_from "From"
+
+// d: CDMA: Item text in list query (See description of qtn_sms_usenumber).
+// l: list_single_heading_pane_t2_cp2
+//
+#define qtn_sms_usenumber_callback "Callback"
+
+// d: Volume key popup window's text indicating muted volume
+// l: navi_pane_mp_t2/opt1
+//
+#define qtn_avkon_popup_volume_muted "Muted"
+
+//d: Option for copying item(s) to folder. Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_copy_to_folder "Copy to folder"
+
+
+// d: Text in softkey
+// l: control_pane_t1/opt7
+// w:
+// r: 2.8
+//
+#define text_softkey_other "Other"
+
+//d: Creating a call to a selected number.
+//l: list_single_pane_t1_cp2
+//w:
+//r: 3.0
+//
+#define qtn_options_internet_call "Internet Call"
+
+//d: Option for finding Tel Internet numbers. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//w:
+//r: 3.0
+//
+#define qtn_options_find_voip_number "VoIP address"
+
+//d:Label for bookmark name query
+//l:popup_query_data_window
+//w:
+//r:3.0
+//
+#define qtn_wml_query_bookmark_title "Enter bookmark name"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Sets text editor to editable state.
+//l:control_pane_t1/opt7
+//r:3.1
+//
+#define text_softkey_edit "Edit"
+
+// d: Text in softkey
+// l: control_pane_t1/opt7
+// w:
+// r: 3.0
+//
+#define text_softkey_send "Send"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Selects or accepts item.
+//l:control_pane_t1/opt7
+//r: 3.0
+//
+#define text_softkey_view "View"
+
+//d:Heading in send UI
+//l:heading_pane_t1
+//r:3.0
+//
+#define qtn_query_heading_send "Send"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_sms "Via short message"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_mms "Via multimedia"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_email "Via e-mail "
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_syncmail "Via SyncML mail"
+
+//d: List item
+//d: For sending a content URL to another user via Message.
+//l: list_single_pane_t1_cp2
+//r: 3.2
+#define qtn_query_send_link_via_msg "Link via message"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_postcard "Postcard "
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_bt "Via Bluetooth"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_ir "Via Infrared "
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_link_via_sms "Link via text message "
+
+//d:Command in options menu.
+//d:Write (a message).
+//l:list_single_pane_t1_cp2
+//w:
+//r: 3.0
+//
+#define qtn_options_write "Write"
+
+//d: List query heading text in write list query.
+//l: heading_pane_t1
+//w:
+//r: 3.0
+//
+#define qtn_query_heading_write "Write:"
+
+// d: When the integrated handsfree is activated in Phone/Video Telephone
+// d: application a confirmation note with this text is displayed right
+// d: after the activation.
+// l: popup_note_window
+// w:
+// r: 3.1
+//
+#define qtn_hf_conf_activate "Handsfree activated"
+
+// d: When the integrated handsfree is deactivated in any application
+// d: via the menu or using the shortcuts, a confirmation note with
+// d: this text is displayed right after the deactivation.
+// l: popup_note_window
+// w:
+// r: 3.1
+//
+#define qtn_hf_conf_earpiece "Handsfree deactivated"
+
+//d:Locked memory card not supported by device
+//d:This note is used to inform user that locked memory card
+//d:has been inserted, but locked cards are not supported by the device.
+//l:popup_note_window
+//w:
+//r:3.0
+#define qtn_memc_locked_not_supported "This device does not support locked memory cards."
+
+//d:Tooltip text for Application shell icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_app_shell_tooltip "Application shell"
+
+//d:Tooltip text for Home key icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_idle_view_tooltip "Home key"
+
+//d:Tooltip text for Telephone application icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_dialler_icon_tooltip "Telephone"
+
+//d:Tooltip text for Help application icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_help_tooltip "Help"
+
+//d:Tooltip text for Rotate screen icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_rotate_icon_tooltip "Rotate screen"
+
+//d:Tooltip text for Stylus input activation icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_input_activation_tooltip "Stylus input"
+
+//d:Tooltip text for Toolbar icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_toolbar_icon_tooltip "Toolbar"
+
+//d:Tooltip text for Application fast swapper icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_fast_swapper_tooltip "List of open applications"
+
+//d:Tooltip text for dimmed icons in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_info_pop_up_dimmed_item "%U item is not available."
+
+//d: Options submenu item.
+//d: For sending data via Unified SMS & MMS Editor.
+//l: list_single_popup_submenu_pane_t1
+//r: 3.1u
+#define qtn_options_send_via_msg "Via message"
+
+//d: List item
+//d: For sending data via Unified SMS & MMS Editor.
+//l: list_single_pane_t1_cp2
+//r: 3.1u
+#define qtn_query_send_via_msg "Via message"
+
+//d:RFC 3066 tag of the current display language
+//l: None
+//r:3.1
+//
+#define qtn_language_rfc3066_tag "i-default"
+
+// d: Text in a note that is shown when unsupported accessory was connected to the device
+// l: popup_note_window
+//
+#define text_unsupp_accessory_connected "Accessory not supported"
+//d:degree mark
+//r: 3.1
+#define qtn_editing_coordinate_editor_degree "?"
+//d:minute mark
+//r: 3.1
+#define qtn_editing_coordinate_editor_min_mark "'"
+//d:second mark
+//r: 3.1
+#define qtn_editing_coordinate_editor_sec_mark "\""
+//d:north
+//r: 3.1
+#define qtn_editing_latitude_editor_north "N"
+//d:south
+//r: 3.1
+#define qtn_editing_latitude_editor_south "S"
+//d:east
+//r: 3.1
+#define qtn_editing_longitude_editor_east "E"
+//d:west
+//r: 3.1
+#define qtn_editing_longitude_editor_west "W"
+
+// d: Text of the Pen Input Settings menu item
+ // d: Setting item for launching pen input settings in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_settings "Pen input settings"
+
+ // d: Text of the Pen Input Help menu item
+ // d: Setting item for launching pen input help in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_help "Pen input help"
+
+ // d: Text of the Train handwriting system menu item
+ // d: Setting item for launching train handwriting system in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_training "Train handwriting system"
+
+ // d: Text of the Paste menu item
+ // d: Setting item for paste option in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_paste "Paste"
+
+ // d: Text of the Copy menu item
+ // d: Setting item for copy option in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_copy "Copy"
+
+ // d: Text of the Cut menu item
+ // d: Setting item for cut option in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_cut "Cut"
+
+ // d: Text of the language setting menu item
+ // d: Setting item for language setting menu promopt
+ // l: heading_pane_t1
+ // r: 5.0
+ #define qtn_tin_input_selection_menu_prompt "Select a language"
+
+//d: Edit submenu item
+//d: Shown in softkey when user is able to start copy/cut selection operation.
+//l: control_pane_t1/opt7
+#define text_softkey_start "Start"
+
+// d: Command in menu shown system wide by short press off power key
+// d: or command in in-call menu in phone application
+// d: Activates Key lock
+// l: list_single_pane_t1_cp2
+// w:
+// r: 3.1
+#define qtn_pwrc_lock_keys "Lock keys"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_activate "Apply"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_add "Add"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_change "Change"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_collapse "Collapse"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_connect "Connect"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_delete "Delete"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_edit "Edit"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_expand "Expand"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_insert "Insert"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_mark "Mark"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_new "New"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_open "Open"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_save "Save"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_select "Select"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_unmark "Unmark"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_view "View"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_play "Play"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_pause "Pause"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_stop "Stop"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_send "Send"
+
+// d: Text in warning note when trying to open protected setting item in
+// d: setting item list
+// l: popup_note_window
+// w:
+// r: 3.1
+#define qtn_selec_protected_setting "Unable to open protected settings"
+
+//d: Edit submenu item
+//d: Shown in edit submenu. Launches special character table.
+//l: list_single_pane_t1_cp2
+#define text_edit_menu_more_symbols "More symbols"
+
+
+// d: It is text for a menu option. If it is selected,
+// d: audio is routed to handset mode
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_handset_option "Handset"
+
+
+// d: It is text for a menu option. If it is selected,
+// d: audio is routed to bluetooth handsfree mode
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_bt_handsfree_option "BT handsfree"
+
+
+// d: It is text for a menu option. If it is selected,
+// d: inactive handsfree is activated.
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_act_ihf_option "Activate handsfree"
+
+// d: It is text for a menu option. If it is selected,
+// d: active handsfree is deactivated.
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_deact_ihf_option "Deactivate handsfree"
+
+// d: It is text for a menu option. If it is selected,
+// d: a call is terminated.
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_drop_option "End active call"
+
+// d: It is used as softkey text. If the softkey
+// d: is pressed, handsfree is deactivated.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_handset "Handset"
+
+
+// d: It is used as softkey text. If the softkey
+// d: is pressed, handsfree is activated.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_laudspek "Loudspeaker"
+
+// d: It is used as softkey text. If the softkey
+// d: is pressed, BT handsfree is activated.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_bt_handsfree "BT handsfree"
+
+// d: It is used as softkey text. If the
+// d: softkey is pressed, then a call is dropped.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_end_this "End call"
+
+// d: It is text used in error notes in several situations.
+// d: (basically when it is not allowed to create a new call)
+// l: popup_note_window
+// w:
+//
+#define text_call_not_allowed "Call not allowed"
+
+// d: It is text shown in navi pane when phone is muted in telephone.
+// l: navi_text_pane_t1
+// w:
+//
+#define qtn_incal_muted_pane "Muted"
+
+// d: When audio is routed from BT handsfree to handset mode,
+// d: a information note with the following text is shown
+// l: popup_note_window
+// w:
+//
+#define qtn_conf_audios_handset "Audio routed to handset"
+
+// d: When the 'temporary disconnection' from BT is reconnected,
+// d: a waiting note with the following text is shown
+// l: popup_note_wait_window
+// w:
+//
+#define qtn_wait_connecting_to_bt "Connecting to BT..."
+
+
+// d: If BT connection can't be makde, a information note with
+// d: following text will be shown to user
+// l: popup_note_window
+// w:
+//
+#define qtn_bt_device_not_avail "Cannot establish Bluetooth connection"
+
+// d: After the audio mode is changed from handportable mode to
+// d: BT handsfree mode, the following note is shown to user
+// l: popup_note_window
+// w:
+//
+#define qtn_conf_audios_bt_accessory "Audio routed to BT handsfree"
+
+//d: Edit submenu item
+//d:
+//l: list_single_pane_t1_cp2
+#define qtn_options_advanced "Advanced"
+
+//d: Options menu item text for launching task swapper popup window.
+//d: The pop-up window shows running applications in the device.
+//l: list_single_popup_menu_pane_1: list_single_pane_t1_cp2/opt1
+//
+#define qtn_options_task_swapper "Active Applications"
+
+//d: Heading title for task swapper (fastswap) popup window.
+//d: The pop-up window shows running applications in the device.
+//l: heading_pane_t1/opt2
+//r:3.1
+//
+#define qtn_selec_title_swapper "Active Applications"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_objects "Objects"
+
+//d: Text in middle soft key (general purposes texts)
+//l: control_pane_t3/opt7
+//w:
+//r: 3.2
+#define qtn_msk_record "Record"
+
+//d: Text in middle soft key (general purposes texts)
+//l: control_pane_t3/opt7
+//w:
+//r: 3.2
+#define qtn_msk_record_audio "Record"
+
+//d: List item
+//d: For sending data via audio messaging.
+//l: list_single_pane_t1_cp2
+//r: 3.1u
+#define qtn_query_send_via_audio "Via audio message"
+
+//d: Error message text for non-supported file formats
+//l: popup_note_window
+//w:
+//r: 3.2
+#define qtn_profiles_info_tone_no_drm "Unprotected file. Cannot be selected as ringing tone."
+
+// d: It is text for a menu option. If it is selected,
+// d: customizable active Idle application is brought to foreground
+// l: list_single_pane_t1_cp2
+// w:
+// r: 3.2
+//
+#define qtn_incal_goto_idle "Go to Idle"
+
+//d: Text in middle soft key (general purposes texts)
+//d: This text is shown during transitory input of Hiragana/Kanji.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//w:
+//r:3.2
+#define qtn_msk_commit "Commit"
+
+//d: Text in middle soft key (general purposes texts)
+//d: This text is shown in Next prediction popup window.
+//d: The pop-up window shows after committing Hiragana/Kanji
+//d: on Prediction mode in Japanese input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//w:
+//r:3.2
+#define qtn_msk_selectcandidate "Select"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Rejects item.
+//l:control_pane_t1/opt7
+//w:
+//r: 3.1
+//
+#define text_softkey_reject "Reject"
+
+//d: Generic text in softkey, for example:
+//d: Command text associated to a softkey in USSD notify to proceed with next message
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_softkey_next "Next"
+
+//d:UNDELETE MSK text.
+//d:Text in middle soft key (used in mail offline handling)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+//
+#define qtn_msk_undelete "Undelete"
+
+//d: This text is shown in right softkey of Candidate popup or
+//d: Prediction popup in Japanese input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_japin_edit_othermodes "Other modes"
+
+//d: This text is shown in left softkey when there are
+//d: characters in transitory Input without Predictive input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_japin_edit_predict_startprediction "Predict on"
+
+//d: This text is shown in right softkey of Next prediction popup.
+//d: The pop-up window shows after committing Hiragana/Kanji
+//d: on Prediction mode in Japanese input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_japin_edit_predict_stopprediction "Close list"
+
+// d:Unit editor unit label for meters
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_meter "m"
+
+// d:Unit editor unit label for kilometers
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_kilometer "km"
+
+// d:Unit editor unit label for feet
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_foot "ft"
+
+// d:Unit editor unit label for mile
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_mile "mi"
+
+// d:Unit editor unit label for metric speed, kilometers per hour
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_metr_speed "km/h"
+
+// d:Unit editor unit label for imperial speed, miles per hour
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_imper_speed "mph"
+
+//d:Error text when memory card is in use.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error4 "Memory card in use"
+
+// d:Edit menu item to delete left side character, it means Backspace function
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:3.2
+#define qtn_japin_edit_delete_left "Delete left"
+
+// d:Edit menu item to delete right side character, it means Delete function
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:3.2
+#define qtn_japin_edit_delete_right "Delete right"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_replace "Replace"
+
+//d: Generic text in softkey.
+//d: E.g. command text associated to a softkey to hide Bluetooth/IrDA receiving indicator.
+//l: control_pane_t1/opt7
+//r: 3.2
+#define qtn_softkey_hide "Hide"
+
+//d: Text in middle soft key (general purposes texts).
+//d: E.g. command text associated to a softkey to hide Bluetooth/IrDA receiving indicator.
+//l: control_pane_t3/opt7
+//r: 3.2
+#define qtn_msk_hide "Hide"
+
+// d:Text of the Kana kanji conversion menu item
+// d:Only Japanese HWR
+// l:list_single_pane_t1
+// r:5.0
+#define qtn_japin_tin_convert "Kana kanji conversion"
+
+// d:Submenu text for selecting Kana kanji conversion to ON
+// d:Only Japanese HWR
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_tin_convert_radio_on "on"
+
+// d:Submenu text for selecting Kana kanji conversion to OFF
+// d:Only Japanese HWR
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_tin_convert_radio_off "off"
+
+// d:Text of the predictive text input mode menu item
+// d:Only Japanese.
+// l:list_single_pane_t1
+// r:5.0
+#define qtn_japin_edit_predict "J.Predictive"
+
+// d:Submenu text for selecting predictive text input mode to ON
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_edit_predict_radio_on "on"
+
+// d:Submenu text for selecting predictive text input mode to OFF
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_edit_predict_radio_off "off"
+
+// d:Command text associated to a softkey in the control pane.
+// d:Back (from special character table).
+// d:Only Japanese SCT
+// l:control_pane_t2/OPT7
+// r:5.0
+#define qtn_japin_edit_sct_back "Back"
+
+// d:When no file or folder cannot be created due maximum number of entries
+// d:already selected memory, it is warned to user by system.
+// l: popup_note_window
+// w:
+// r:3.2
+//
+#define qtn_memlo_memory_dir_full "Directory full. Cannot create new directory or file."
+
+//d: Options list text for callout.
+//l: list_single_pane_t1_cp2/opt3
+//w:
+//r:5.1
+//
+#define qtn_options_callout "Callout"
+
+//d: "Call" sub menu item text for callout.
+//l: list_single_popup_submenu_pane_t1
+//w:
+//r:5.1
+//
+#define qtn_call_sub_callout "Callout"
+
+
+
+// d:Default text shown in the universal indicator popup for alarm clock indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_alarm_set_stat "Alarm set"
+
+// d efault text shown in the universal indicator popup for stopwatch indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_stopwatch_stat "Stopwatch"
+
+// d:Default text shown in the universal indicator popup for Bluetooth indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_bluetooth_stat "Bluetooth"
+
+// d:Default text shown in the universal indicator popup for call divert indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_calldiv_stat "Call divert active"
+
+// d:Default text shown in the universal indicator popup for new message indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_messages_stat "New messages"
+
+// d:Default text shown in the universal indicator popup for new e-mail message indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_emails_stat "New e-mails"
+
+// d:Default text shown in the universal indicator popup for new instant messaging indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_im_stat "New IM messages"
+
+// d:Default text shown in the universal indicator popup for missed calls indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_missed_calls_stat "Missed calls"
+
+// d:Default text shown in the universal indicator popup for Home Zone indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_homezone_stat "Home Zone"
+
+// d:Default text shown in the universal indicator popup for infrared active indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_infrared_stat "Infrared"
+
+// d:Default text shown in the universal indicator popup for headset connected indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_headset_stat "Headset is connected"
+
+// d:Default text shown in the universal indicator popup for loopset connected indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_loopset_stat "Loopset is connected"
+
+// d:Default text shown in the universal indicator popup for TTY indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_tty_stat "TTY in use"
+
+// d:Default text shown in the universal indicator popup for hearing aid compatibility indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_hearing_aid_stat "T-coil hearing aid mode"
+
+// d:Default text shown in the universal indicator popup for IHF active indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_handsfree_stat "Handsfree active"
+
+// d:Default text shown in the universal indicator popup for memory card indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_memorycard_stat "Memory card"
+
+// d:Default text shown in the universal indicator popup for outbox indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_outbox_stat "Messages in Outbox"
+
+// d:Default text shown in the universal indicator popup for secured connection indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_secconn_stat "Secured connection"
+
+// d:Default text shown in the universal indicator popup for selected line indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_selected_line_stat "Line 2 is active"
+
+// d:Default text shown in the universal indicator popup for USB connection indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_usb_stat "USB"
+
+// d:Default text shown in the universal indicator popup for GPS indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_gps_stat "GPS"
+
+// d:Default text shown in the universal indicator popup for synchronisation indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_synch_stat "Synchronisation ongoing"
+
+// d:Default text shown in the universal indicator popup for new voice messages indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_voice_message_stat "New voice messages"
+
+// d:Default text shown in the universal indicator popup for VoIP indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_voip_stat "Internet call service enabled"
+
+// d:Default text shown in the universal indicator popup for PoC online indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_ptt_online_stat "PTT Online"
+
+// d:Default text shown in the universal indicator popup for PoC do not disturb indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_ptt_dnd_stat "PTT DND on"
+
+// d:Default text shown in the universal indicator popup for PoC missed calls indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_missed_ptt_stat "Missed PTT calls"
+
+// d:Default text shown in the universal indicator popup for WLAN available indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_wlannet_stat "WLAN networks available"
+
+// d:Default text shown in the universal indicator popup for WLAN active indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_wlanconn_stat "WLAN connection active"
+
+// d:Default text shown in the universal indicator popup for car kit indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_carkit_stat "Car Kit"
+
+// d:Default text shown in the universal indicator popup for TV out indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_tvout_stat "TV Out connected"
+
+// d:Default text shown in the universal indicator popup for video sharing indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_videoshare_stat "Video sharing enabled"
+
+// d:Default text shown in the universal indicator popup for mobile TV indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_mobiletv_stat "Mobile TV"
+
+// d:Default text shown in the universal indicator popup for terminal security activated indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_termsecurity_stat "Terminal Security Activated"
+
+// d:Default text shown in the universal indicator popup for terminal management active indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_termmanag_stat "Terminal Management Active"
+
+// d:Default text shown in the universal indicator popup for FM Tx indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_fmtx_stat "FM Transmitter"
+
+//d: Predictive Input Intelligent Text Input feature menu items.
+//l:list_single_pane_t1_cp2/opt3
+// w:
+// r: 3.2
+#define qtn_pred_options_input_options "Input options"
+
+//d: Options submenu item.
+//d: Opens Candidate List. This item is available only when a word is focused.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_matches "Matches"
+
+//d: Options submenu item.
+//d: To activate Intelligent Text Input.
+//d: This item is visible only in case Intelligent Text Input is deactivated.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_predictive_input_activate "Activate predictive input"
+
+//d: Options submenu item.
+//d: To deactivate Intelligent Text Input.
+//d: This item is visible only in case Intelligent Text Input is activated.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_predictive_input_deactivate "Deactivate predictive input"
+
+//d: Options submenu item.
+//d: Opens the Intelligent Text Input settings dialog.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_settings "Input settings"
+
+//d: Options submenu item.
+//d: Opens the dialog for changing the writing language.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_input_language "Writing language"
+
+//d: Options submenu item.
+//d: Opens specific Intelligent Text Input help.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_suboption_help "Help"
+
+//d: A query to turn on Intelligent Text Input.
+//d:
+//l:popup_note_window
+// w:
+// r: 3.2
+#define qtn_pred_turn_input_on_query "Predictive input not in use. Activate it?"
+
+//d: The title in the Intelligent Text Input settings dialog.
+//d:
+//l:title_pane_t2/opt12
+// w:
+// r: 3.2
+#define qtn_pred_input_settings_title "Input settings"
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_word_completion "Automatic word completion"
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_typing_correction "Typing correction"
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_number_candidates "Number candidates"
+
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_primary_candidate "Primary candidate"
+
+//d: Option in automatic word completion setting.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_autocompl_on "On"
+
+//d: Option in automatic word completion setting.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_autocompl_off "Off"
+
+//d: An option in typing correction setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_correction_high "High"
+
+//d: An option in typing correction setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_correction_medium "Medium"
+
+//d: An option in typing correction setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_correction_off "Off"
+
+//d: An option in number candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_number_cand_shown "Shown"
+
+//d: An option in number candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_number_cand_not_shown "Not shown"
+
+//d: An option in primary candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_primary_cand_suggested "Best prediction"
+
+//d: An option in primary candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_primary_cand_actually_entered "Exact typing"
+
+//d: An option in dual language setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_set_secondary_writing_lang_none "None"
+
+//d: A query to turn on Intelligent Text Input.
+//d:
+//l:popup_note_window
+// w:
+// r: 3.2
+#define qtn_pred_default_settings_query "Take language specific default settings into use?"
+
+// d:Default text shown in the universal indicator popup for missed calendar alarms indicator.
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_caled_alarm_stat "Missed alarms"
+
+//d: A note displayed when closing input settings due to layout change.
+//d:
+//l:popup_note_window
+// w:
+// r: 3.2
+#define qtn_pred_settings_closed "Input mode changed. Settings closed."
+
+//d: An option in intelligent text input setting lists.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_setting_qwerty "Letter keypad"
+
+//d: An option in intelligent text input setting lists.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_setting_itut "Number keypad"
+
+//d: An option in intelligent text input setting lists.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_setting_half_qwerty "Half-QWERTY keypad"
+
+// d:Default text shown in the universal indicator popup for USB mem connect indicator.
+// l:
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_usbmem_conn_stat "USB Memory connected"
+
+// d:Default text shown in the universal indicator popup for USB Mem transfer indicator.
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_usbmem_active_stat "USB Memory Active"
+
+//d: Text in touch input menu
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_tin_option_menu_character_preview "Character preview"
+
+//d: Text in touch input sub menu
+//d: Command to active character preview
+//l: list_single_popup_submenu_pane_t1
+//r: 5.0
+#define qtn_tin_option_submenu_radio_button_on "on"
+
+//d: Text in touch input sub menu
+//d: Command to deactive character preview
+//l: list_single_popup_submenu_pane_t1
+//r: 5.0
+#define qtn_tin_option_submenu_radio_button_off "off"
+
+
+//d: Text in touch inputmethod menu list
+//d: Command to active predicted input
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_prediction_on "Activate predictive text"
+
+//d: Text in touch inputmethod menu list
+//d: Command to deactive predicted input
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_prediction_off "Deactivate predictive text"
+
+//d: Text in touch inputmethod menu list
+//d: Command to alpha input mode
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_alpha "Alpha mode"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display special character table
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_tin_option_menu_add_symbol "Add symbol"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display input language table
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_tin_option_menu_writing_language "Writing language"
+
+//d: Text in touch inputmethod menu list
+//d: Command to change editor text case to upper case
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_upper_case "Upper-case letters"
+
+//d: Text in touch inputmethod menu list
+//d: Command to change editor text case to lower case
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_lower_case "Lower-case letters"
+
+//d: Text in touch inputmethod menu list
+//d: Command to number input mode
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_numbers "Number mode"
+
+//d: Note when there is not enough memory to execute operation on device memory.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_device_memory "Not enough memory to perform operation. Delete or move some data from %U Device memory."
+
+//d: Note when there is not enough memory to execute operation on memory card.
+//d:%0U is the drive letter and %1U is the name of the memory card
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_memory_card_name "Not enough memory to perform operation. Delete or move some data from %0U %1U."
+
+//d: Note when there is not enough memory to execute operation on memory card.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_memory_card_defaultname "Not enough memory to perform operation. Delete or move some data from %U Memory card."
+
+//d: Note when there is not enough memory to execute operation on mass storage.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_mass_memory "Not enough memory to perform operation. Delete or move some data from %U Mass storage."
+
+//d: "Open application" item in stylus popu menu of Active application list (fast swapper)
+//l: list_single_touch_menu_pane_t1
+//w:
+//r:5.0
+#define qtn_ispm_open "Open"
+
+//d: "Exit application" item in stylus popu menu of Active application list (fast swapper)
+//l: list_single_touch_menu_pane_t1
+//w:
+//r:5.0
+#define qtn_ispm_exit "Exit"
+
+//d: Percentage value displayed in slider
+//d:
+//l: popup_slider_window_t2/opt7
+//r: 5.0
+#define qtn_select_slider_value "%N%"
+
+//d: Text in Chinese ITUT menu list
+//d: command to enter user created phrase database management
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_management "User phrase list"
+
+//d: Text in title pane of Chinese ITUT user created phrase database management
+//d: title of user created phrase database management
+//l: title_pane_t2
+//r: 5.0
+#define qtn_chi_chinese_user_db_title "User phrase list"
+
+//d: Text in Chinese ITUT menu list
+//d: command to add a phrase to user created phrase database
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_options_new "New phrase"
+
+//d: Text in Chinese ITUT menu list
+//d: command to modify a phrase of user created phrase database
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_options_edit "Edit"
+
+//d: Text in Chinese ITUT menu list
+//d: command to delete a phrase from user created phrase database
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_delete "Delete"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that only Chinese character can be input
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_note_only_chinese "Only Chinese characters are allowed"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that indicate at least one Chinese character should be included in phrase
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_note_too_short "A phrase should contain at least two characters"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that indicate the phrase is already exist in user created phrase database
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_note_already_in_db "Already in built-in phrase DB"
+
+//d: Text shown in Chinese ITUT main pane empty view
+//d: Text that indicate there is no phrase exist in database, and prompt user to create a new phrase
+//l: main_list_empty_pane/opt2
+//r: 5.0
+#define qtn_chi_chinese_user_db_empty "No phrase.\nYou can add your own Chinese phrases here in order to input them"
+
+//d: Text shown in left softkey of Chinese ITUT
+//d: Command in left softkey to create a new phrase
+//l: control_pane_t1/opt7
+//r: 5.0
+#define qtn_chi_chinese_user_db_softkey_new "New"
+
+//d: Text shown in title of popup query of Chinese ITUT
+//d: Title that prompt user to create a new phrase
+//l: popup_query_data_window_t3/opt2
+//r: 5.0
+#define qtn_chi_chinese_user_db_query_add "Input a new phrase:"
+
+
+//d: Text shown in popup query of Chinese ITUT
+//d: Text that ask user whether to delete a phrase or not
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_query_delete_phrase "Delete phrase?"
+
+//d:Options submenu item.
+//d:Opens the User dictionary editing dialog
+//l:list_single_popup_submenu_pane_t1
+//w:
+//r: TB9.1
+#define qtn_pred_options_user_dictionary "User dictionary editing"
+
+//d:The title in the User dictionary editing dialog
+//d:
+//l:title_pane_t2/opt9
+//w:
+//r: TB9.1
+#define qtn_pred_input_dictionary_editing_title "User dictionary editing"
+
+//d:The heading string that is displayed when there are no words in the user dictionary
+//d:and the listbox is empty.
+//l:main_list_empty_pane
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_editing_heading_empty "No words in user dictionary"
+
+//d:The secondary string that is displayed when there are no words in the user dictionary
+//d:and the listbox is empty.
+//l:main_list_empty_pane
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_editing_empty "Use the Options menu to add own words. Own words are also added automatically as you type."
+
+//d:An item in the Options menu in User dictionary editing dialog
+//d:When chosen, it launches the query dialog to edit the word
+//l:list_single_pane_t1_cp2
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_edit "Edit"
+
+//d:An item in the Options menu in User dictionary editing dialog
+//d:When chosen, it launches the query dialog to add a new word
+//l:list_single_pane_t1_cp2
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_add "Add new"
+
+//d:An item in the Options menu in User dictionary editing dialog
+//d:When chosen, it launches the confirmation note to delete one/more word(s)
+//l:list_single_pane_t1_cp2
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_delete "Delete"
+
+//d:Confirmation query prompt. User is asked to confirm whether
+//d:the selected/marked single word is to be deleted or not.
+//l:popup_note_window
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_confirm_1_deletion "Delete entry?"
+
+//d:Confirmation query prompt. User is asked to confirm whether
+//d:the multiple marked words are to be deleted or not.
+//d: %N represents the number of the selected items to be deleted.
+//l:popup_note_window
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_confirm_deletions "Delete %N entries?"
+
+//d:Text in middle soft key when there are no words in the user
+//d:dictionary and the list box is empty. When this is selected,
+//d:it launches the query dialog to add a new word
+//l:control_pane_t3/opt7
+//w:
+//r: TB9.1
+#define qtn_msk_pred_add_new "Add new"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display recognition with dictionary
+//l: list_single_pane_t1_cp2
+//w:
+//r:5.0
+#define qtn_tin_option_menu_arabic_recognition "Recognition with dictionary"
+
+//d: List of digraphs or trigraphs for given language.
+//d: Such as Hungarian, "sz ly dzs". If there is not digraphs or trigraphs in some languages, the value is an empty string.
+//l: None
+//w:
+//r:5.0
+#define qtn_ads_digraph ""
+
+//d: Smiley table query prompt text.
+//l: heading_pane_t1/opt1
+//r: TB9.2
+#define qtn_sml_picker_title "Select smiley:"
+
+//d: Smiley table query prompt text.
+//d: When the focus is on special character table icon.
+//l: heading_pane_t1/opt1
+//r: TB9.2
+#define qtn_sml_sct_button_title "Open special characters table"
+
+//d: Smiley table query prompt text.
+//d: When the focus is on smiley picker button.
+//l: heading_pane_t1/opt1
+//r: TB9.2
+#define qtn_sml_picker_button_title "Open smiley picker"
+
+//d: Edit submenu item
+//d: Shown in edit submenu. Launches smiley table.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_edit_menu_more_smileys "More smileys"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display smiley picker first in SCT
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_add_smiley "Add smiley"
+
+//d:Restart phone note for inserting SIM card. Shown if SIM card has been inserted and offline mode has been changed to another one when phone is on.
+//l:popup_note_window
+//r: TB9.2
+#define qtn_su_note_insert_sim_and_restart "Insert SIM card and restart phone"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch handwriting input orientation to portrait.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_to_portrait_hwr "To portrait handwriting"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch handwriting input orientation to landscape.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_to_landscape_hwr "To landscape handwriting"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch to virtual key based input methods.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_switch_to_vkey_input "Switch to virtual key based input"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display writing speed setting list.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_settings_writing_speed "Writing speed"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display guide line setting list.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_settings_guiding_line "Guiding Line"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that only Chinese character can be input
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_invalid_phrase "Invalid phrase"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the phrase is not exist in database
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_phrase_not_existed "The phrase is not exist in database"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the database has no space to save the new phrase
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_db_have_no_space "The database has no space now"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the new phrase is too long
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_phrase_too_long "The phrase is too long"
+
+//d: Text in Chinese ITUT popup wait note
+//d: Notification that it is deleting phrase
+//l: popup_note_wait_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_deleting_phrases "It is deleting phrases"
+
+//d: Text in Chinese ITUT confirmation query prompt
+//d: Notification that confirm to delete the phrases
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_confirm_deletions "Delete %N Phrase?"
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/avkonsct.loc Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,216 @@
+/*
+* 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 is a localisation file for AVKON special character tables
+ * A .loc file is the one and only place where the logical strings
+ * to be localised are defined.
+ * >>>
+ * The text between >>> and <<< is just to document the syntax and
+ * you can remove it if you like.
+ *
+ * Syntax of a logical name entry in this file is the following:
+ *
+ * // d:context description (line 1)
+ * // d:context description (line N)
+ * // l:P_No
+ * //
+ * #define qtn_?feature/?module_name_?freetext "?text"
+ * #define text_?feature/?module_name_?freetext "?text"
+ *
+ * where
+ * "qtn_" or "text_" starts a logical name, which does not
+ * not contain dots.
+ * "d:" starts description line(s), which
+ * clarify entry's context with information like:
+ * 1. Is a word a verb in imperative or is it a noun ?
+ * - what does text "Set" mean ?
+ * 2. What will replace %U (unicode text parameter) or
+ * %N (number parameter) included in texts ?
+ * - is it phone number or email address ?
+ * "l:" starts a layout information (one line).
+ * "P" and "No" are symbols in LAF's information table
+ * - "P" is parent pane or current pane
+ * - "No" is reference number in table
+ * <<<
+ * -------------------------------------------------------------------
+ *
+*/
+
+
+
+// LOCALISATION STRINGS
+
+
+// Special character table
+
+//d: Special character table character set. Maximum 255 characters.
+//d: Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_special_characters_lower ".,'?!\"-()"<0x0040>"/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x0020><0x2029>
+
+//d: Special character table character set. Maximum 255 characters.
+//d: Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_special_characters_upper ".,'?!\"-()"<0x0040>"/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x0020><0x2029>
+
+//d: Special character table character set for Qwerty keyboard.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_special_characters_qwerty ".,'?!\"-()"<0x0040>"/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"
+
+//d: Special character table character set to url address editor.
+//d: Maximum 255 characters. Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_url_special_characters_lower "/.:"<0x0040>",'?!\"-()_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x2029>
+
+//d: Special character table character set to url address editor.
+//d: Maximum 255 characters. Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_url_special_characters_upper "/.:"<0x0040>",'?!\"-()_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x2029>
+
+//d: Special character table character set to email address editor.
+//d: Maximum 255 characters. Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_email_speci_chars_lower ".@;?'-_&/~*+="
+
+//d: Special character table character set to email address editor.
+//d: Maximum 255 characters. Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_email_speci_chars_upper ".@;?'-_&/~*+="
+
+//d: Special character table character set to currency name editor in logs.
+//d: Maximum 255 characters. Lower case characters.
+//d: Must contain ONLY characters that fit in 7-bit ascii!
+//d: ie. ascii code is 0x00...0x7f.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_currency_name_speci_chars_lower ".,'?!\"-()"<0x0040>"/:_;+&%*=<>$[]{}\\~^#|"<0x0020><0x2029>
+
+//d: Special character table character set to currency name editor in logs.
+//d: Maximum 255 characters. Upper case characters.
+//d: Must contain ONLY characters that fit in 7-bit ascii!
+//d: ie. ascii code is 0x00...0x7f.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_currency_name_speci_chars_upper ".,'?!\"-()"<0x0040>"/:_;+&%*=<>$[]{}\\~^#|"<0x0020><0x2029>
+
+//d: Special character table character set for Chinese Zhuyin symbol input tone mark.
+//d: Special characters for zhuyin tone mark symbols.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x02D9><0x02CA><0x02C7><0x02CB> etc.
+//d: <0x02D9> = invalid tone mark. <0x02CA> = the fourth tone mark.
+//d: <0x02C7> = the third tone mark. <0x02CB> = the fourth tone mark.
+//d: Only Chinese, only Taiwan variant
+//l:(none)
+//
+#define qtn_chi_star_zhuyin_tonemarks <0x02D9><0x02CA><0x02C7><0x02CB>
+
+//d: Special character table character set for APAC build.
+//d: Special characters for pinyin, zhuyin and stroke input methods.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Chinese.
+//l:(none)
+//
+#define text_chi_input_star_key <0x0020><0x2029>
+
+//d: Special character table character set for APAC build.
+//d: Special characters for latin input methods.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Chinese.
+//l:(none)
+//
+#define text_chi_input_star_key2 <0x0020><0x2029>
+
+
+//d: Special character table character set for Japanese variant.
+//d: Special characters for half width input.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Japanese
+//l:(none)
+//
+#define qtn_sct_special_characters_halfwidth <0xFF64><0xFF61><0xFF9E><0xFF9F>".,'?!\"-()@/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A7>"#|"<0x0020><0x2029>
+
+//d: Special character table character set for Japanese variant.
+//d: Special characters for full width input.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Japanese
+//l:(none)
+#define qtn_sct_special_characters_fullwidth1 <0x3001><0x3002><0x3000><0x2029><0xff0c><0xff0e><0x30fb><0xff1a><0xff1b><0xff1f><0xff01><0x309b><0x309c><0x00b4><0xff40><0x00a8><0xff3e><0xffe3><0xff3f><0x30fd><0x30fe><0x309d><0x309e><0x3003><0x4edd><0x3005><0x3006><0x3007><0x30fc><0x2015><0x2010><0xff0f><0xff3c><0xff5e><0x2225><0xff5c><0x2026><0x2025><0x2018><0x2019><0x201c><0x201d><0xff08><0xff09><0x3014><0x3015><0xff3b><0xff3d><0xff5b><0xff5d><0x3008><0x3009><0x300a><0x300b><0x300c><0x300d><0x300e><0x300f><0x3010><0x3011><0xff0b><0xff0d><0x00b1><0x00d7><0x00f7><0xff1d><0x2260><0xff1c><0xff1e><0x2266><0x2267><0x221e><0x2234><0x2642><0x2640><0x00b0><0x2032><0x2033><0x2103><0xffe5><0xff04><0xffe0><0xffe1><0xff05><0xff03><0xff06><0xff0a><0xff20><0x00a7><0x2606><0x2605><0x25cb><0x25cf><0x25ce><0x25c7><0x25c6><0x25a1><0x25a0><0x25b3><0x25b2><0x25bd><0x25bc><0x203b><0x3012><0x2192><0x2190><0x2191><0x2193><0x3013><0x2208><0x220b><0x2286><0x2287><0x2282><0x2283><0x222a><0x2229><0x2227><0x2228><0xffe2><0x21d2><0x21d4><0x2200><0x2203><0x2220><0x22a5><0x2312><0x2202><0x2207><0x2261><0x2252><0x226a><0x226b><0x223d><0x221d><0x2235><0x222b><0x222c><0x212b><0x2030><0x266f><0x266d><0x266a><0x2020><0x2021><0x00b6><0x25ef><0x308e><0x3090><0x3091><0x30ee><0x30f0><0x30f1><0x30f4><0x30f5><0x30f6><0x0391><0x0392><0x0393><0x0394><0x0395><0x0396><0x0397><0x0398><0x0399><0x039A><0x039B><0x039C><0x039D><0x039E><0x039F><0x03A0><0x03A1><0x03A3><0x03A4><0x03A5><0x03A6><0x03A7><0x03A8><0x03A9><0x03B1><0x03B2><0x03B3><0x03B4><0x03B5><0x03B6><0x03B7><0x03B8><0x03B9><0x03BA><0x03BB><0x03BC><0x03BD><0x03BE><0x03BF><0x03C0><0x03C1><0x03C3><0x03C4><0x03C5><0x03C6><0x03C7><0x03C8>
+
+//d: Special character table character set for Japanese variant.
+//d: Special characters for full width input.
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Japanese
+//l:(none)
+//
+#define qtn_sct_special_characters_fullwidth2 <0x03C9><0x0410><0x0411><0x0412><0x0413><0x0414><0x0415><0x0401><0x0416><0x0417><0x0418><0x0419><0x041A><0x041B><0x041C><0x041D><0x041E><0x041F><0x0420><0x0421><0x0422><0x0423><0x0424><0x0425><0x0426><0x0427><0x0428><0x0429><0x042A><0x042B><0x042C><0x042D><0x042E><0x042F><0x0430><0x0431><0x0432><0x0433><0x0434><0x0435><0x0451><0x0436><0x0437><0x0438><0x0439><0x043A><0x043B><0x043C><0x043D><0x043E><0x043F><0x0440><0x0441><0x0442><0x0443><0x0444><0x0445><0x0446><0x0447><0x0448><0x0449><0x044A><0x044B><0x044C><0x044D><0x044E><0x044F><0x2500><0x2502><0x250c><0x2510><0x2518><0x2514><0x251c><0x252c><0x2524><0x2534><0x253c><0x2501><0x2503><0x250f><0x2513><0x251b><0x2517><0x2523><0x2533><0x252b><0x253b><0x254b><0x2520><0x252f><0x2528><0x2537><0x253f><0x251d><0x2530><0x2525><0x2538><0x2542><0x2460><0x2461><0x2462><0x2463><0x2464><0x2465><0x2466><0x2467><0x2468><0x2469><0x246a><0x246b><0x246c><0x246d><0x246e><0x246f><0x2470><0x2471><0x2472><0x2473><0x2160><0x2161><0x2162><0x2163><0x2164><0x2165><0x2166><0x2167><0x2168><0x2169><0x3349><0x3314><0x3322><0x334d><0x3318><0x3327><0x3303><0x3336><0x3351><0x3357><0x330d><0x3326><0x3323><0x332b><0x334a><0x333b><0x339c><0x339d><0x339e><0x338e><0x338f><0x33c4><0x33a1><0x337b><0x301d><0x301f><0x2116><0x33cd><0x2121><0x32a4><0x32a5><0x32a6><0x32a7><0x32a8><0x3231><0x3232><0x3239><0x337e><0x337d><0x337c><0x222e><0x2211><0x221a><0x221f><0x22bf>
+
+
+//d: Special character table character set to CDMA sms.
+//d: Maximum 255 characters. Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_cdma_sp_sms_speci_chars_lower ".@?!-,&:'\"+=/$*#%;\<>{}[]_()"<0x2029>"~^`|"
+
+//d: Special character table character set to CDMA sms editor.
+//d: Maximum 255 characters. Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_cdma_sp_sms_speci_chars_upper ".@?!-,&:'\"+=/$*#%;\<>{}[]_()"<0x2029>"~^`|"
+
+
+
+// End of File
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -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
+: AVKON Localised Texts API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+platform.loc MW_LAYER_PLATFORM_EXPORT_PATH(platform.loc)
+avkon.loc MW_LAYER_LOC_EXPORT_PATH(avkon.loc)
+avkonsct.loc MW_LAYER_LOC_EXPORT_PATH(avkonsct.loc)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/platform.loc Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,19 @@
+/*
+* 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: wrapper to avkon.loc
+ *
+*/
+
+
+#include <avkon.loc>
--- a/dependencies/bld.inf Fri Mar 19 13:46:28 2010 +0200
+++ b/dependencies/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -3,4 +3,34 @@
defaultcaps.hrh defaultcaps.hrh
bldvariant.hrh bldvariant.hrh
-#include "xcfw/bld.inf"
\ No newline at end of file
+telinformationpskeys.h telinformationpskeys.h
+
+liwservicehandler.h liwservicehandler.h
+liwserviceifmenu.h liwserviceifmenu.h
+liwserviceifbase.h liwserviceifbase.h
+liwmenu.h liwmenu.h
+
+rtsecmgrcommondef.h rtsecmgrcommondef.h
+
+PSVariables.h PSVariables.h
+CommonEngineDomainCRKeys.h CommonEngineDomainCRKeys.h
+settingsinternalcrkeys.h settingsinternalcrkeys.h
+SATDomainPSKeys.h SATDomainPSKeys.h
+ScreensaverInternalPSKeys.h ScreensaverInternalPSKeys.h
+ctsydomainpskeys.h ctsydomainpskeys.h
+BTSapDomainPSKeys.h BTSapDomainPSKeys.h
+et_clsvr.h et_clsvr.h
+etelext.h etelext.h
+RMmCustomAPI.h RMmCustomAPI.h
+
+#include "xcfw/bld.inf"
+// #include "kernel/bld.inf"
+#include "activebackupclient/bld.inf"
+#include "extended_version_info_api/bld.inf"
+#include "common_platform_security_definitions/bld.inf"
+#include "SAT/bld.inf"
+#include "liw_generic_parameter_api/bld.inf"
+#include "liw_criteria_api/bld.inf"
+#include "avkon_localised_texts_api/bld.inf"
+#include "rtsecuritymanager_client_api/bld.inf"
+#include "rtsecuritymanager_utility_api/bld.inf"
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2006-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: File that exports the files belonging to
+* Common Platform Security Definitions API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+// Use actual paths directly without export macros to export into same path in all configurations
+data_caging_path_literals.hrh /epoc32/include/data_caging_path_literals.hrh
+data_caging_paths_for_iby.hrh /epoc32/include/data_caging_paths_for_iby.hrh
+data_caging_paths.hrh /epoc32/include/data_caging_paths.hrh
+data_caging_paths_strings.hrh /epoc32/include/data_caging_paths_strings.hrh
+data_caged_locations.mk /epoc32/include/data_caged_locations.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caged_locations.mk Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,47 @@
+#
+# 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: Predefined directory paths for .MK files
+#
+
+DC_APPARC_RECOGNISER_RESOURCES_DIR=\resource\apps\registrationresourcefiles
+DC_APP_BITMAP_DIR=\resource\apps
+DC_APP_RESOURCE_DIR=\resource\apps
+DC_BITMAP_DIR=\resource\apps
+DC_BIOFILE_DIR=\resource\messaging\bif
+DC_CHARCONV_PLUGIN_DIR=\resource\charconv
+DC_CONTACTS_RESOURCE_DIR=\resource\cntmodel
+DC_CTRL_PANEL_RESOURCE_DIR=\resource\controls
+DC_CONVERTER_PLUGIN_RESOURCE_DIR=\resource\convert
+DC_ECOM_RESOURCE_DIR=\resource\plugins
+DC_ERROR_RESOURCE_DIR=\resource\errors
+DC_PROGRAMS_DIR=\sys\bin
+DC_FEP_RESOURCES_DIR=\resource\fep
+DC_HELP_FILE_DIR=\resource\help
+DC_LOG_ENGINE_RESOURCE_DIR=\resource\logengine
+DC_MTM_RESOURCE_DIR=\resource\messaging
+DC_MTM_INFO_FILE_DIR=\resource\messaging\mtm
+DC_PRINTER_DRIVER_DIR=\resource\printers
+DC_SHARED_LIB_DIR=\sys\bin
+DC_UIKLAF_RESOURCE_DIR=\resource\uiklaf
+DC_WAPPUSH_PLUGIN_RESOURCE_DIR=\resource\messaging\wappush
+DC_WATCHER_PLUGIN_RESOURCE_DIR=\resource\messaging\watchers
+DC_RECOGNISERS_DIR=\sys\bin
+DC_PARSERS_DIR =\sys\bin
+DC_NOTIFIERS_D=\sys\bin
+DC_PLUGINS_1_DIR=\sys\bin
+DC_RESOURCE_FILES_DIR=\resource
+
+DC_BOOTDATA_DIR=\resource\bootdata
+DC_SKINS_DIR=\private\10207114
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_path_literals.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2002-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: Predefined directory paths for the use of ROM based sw (for the use with C++ files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATH_LITERALS_HRH
+#define DATA_CAGING_PATH_LITERALS_HRH
+
+_LIT(KDC_APPARC_RECOGNISER_RESOURCES_DIR,"\\resource\\apps\\registrationresourcefiles\\"); //Apparc recogniser resource files
+_LIT(KDC_APP_BITMAP_DIR,"\\resource\\apps\\"); // Application bitmap files (.mbm, .mif)
+_LIT(KDC_APP_RESOURCE_DIR,"\\resource\\apps\\"); // Application resource (.rsc)
+_LIT(KDC_BITMAP_DIR,"\\resource\\apps\\"); // Other bitmap files (.mbm, .mif)
+_LIT(KDC_BIOFILE_DIR,"\\resource\\messaging\\bif\\"); // BIO Information Files
+_LIT(KDC_CHARCONV_PLUGIN_DIR,"\\resource\\charconv\\"); // Charconv plug-in data files
+_LIT(KDC_CONTACTS_RESOURCE_DIR,"\\resource\\cntmodel\\"); // Contacts model resources
+_LIT(KDC_CTRL_PANEL_RESOURCE_DIR,"\\resource\\controls\\"); // Control panel plug-in resources
+_LIT(KDC_CONVERTER_PLUGIN_RESOURCE_DIR,"\\resource\\convert\\"); // Converter plug-in resources
+_LIT(KDC_ECOM_RESOURCE_DIR,"\\resource\\plugins\\"); // ECom plugin resources
+_LIT(KDC_ERROR_RESOURCE_DIR,"\\resource\\errors\\"); // Error resources
+_LIT(KDC_PROGRAMS_DIR,"\\sys\\bin\\"); // EXEs
+_LIT(KDC_FEP_RESOURCES_DIR,"\\resource\\fep\\"); // FEP resources
+_LIT(KDC_HELP_FILE_DIR,"\\resource\\help\\"); // Help files
+_LIT(KDC_LOG_ENGINE_RESOURCE_DIR,"\\resource\\logengine\\"); // Log engine resources
+_LIT(KDC_MTM_RESOURCE_DIR,"\\resource\\messaging\\"); // MTM resources
+_LIT(KDC_MTM_INFO_FILE_DIR,"\\resource\\messaging\\mtm\\"); // MTM information files
+_LIT(KDC_PRINTER_DRIVER_DIR,"\\resource\\printers\\"); // Printer driver definition
+_LIT(KDC_SHARED_LIB_DIR,"\\sys\\bin\\"); // Shared libraries
+_LIT(KDC_UIKLAF_RESOURCE_DIR,"\\resource\\uiklaf\\"); // UIKLAF resources
+_LIT(KDC_WAPPUSH_PLUGIN_RESOURCE_DIR,"\\resource\\messaging\\wappush\\"); // WAP Push plug-in token/DTDs
+_LIT(KDC_WATCHER_PLUGIN_RESOURCE_DIR,"\\resource\\messaging\\watchers\\"); // Watcher plug-in resources
+_LIT(KDC_RECOGNISERS_DIR,"\\sys\\bin\\"); // Recognisers
+_LIT(KDC_PARSERS_DIR,"\\sys\\bin\\"); //
+_LIT(KDC_NOTIFIERS_DIR,"\\sys\\bin\\"); // Notifier Plugins:
+_LIT(KDC_PLUGINS_DIR,"\\sys\\bin\\"); // Plugins:
+_LIT(KDC_PLUGINS_1_DIR,"\\sys\\bin\\"); // Plugins:
+_LIT(KDC_RESOURCE_FILES_DIR,"\\resource\\"); // Other resource files
+
+
+_LIT(KDC_CA_CERTIFICATES_DIR,"\\private\\101f72a6\\"); // CA certificates
+_LIT(KDC_COMMDB_DIR,"\\private\\100012a5\\"); // CommDB default database
+_LIT(KDC_SS_CONFIG_FILE_DIR,"\\private\\101f7989\\esock\\"); // Socket server configuration (.esk, .ini)
+_LIT(KDC_TRUSTED_FONTS_DIR,"\\private\\10003a16\\fonts\\"); // Trusted fonts
+_LIT(KDC_UNTRUSTED_FONT_DIR,"\\private\\10003a16\\import\\fonts\\"); // Untrusted fonts
+_LIT(KDC_WINDOW_SERVER_INI_DIR,"\\private\\10003b20\\"); // Window server INI
+_LIT(KDC_SKINS_DIR,"\\private\\10207114\\"); // Skins
+_LIT(KDC_BOOTDATA_DIR,"\\resource\\bootdata\\"); // Bootdata
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_paths.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2002-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: Predefined directory paths for the use of ROM based sw (to be used with MMP files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATHS_HRH
+#define DATA_CAGING_PATHS_HRH
+
+#define APPARC_RECOGNISER_RESOURCES_DIR resource/apps/registrationresourcefiles
+#define APP_BITMAP_DIR resource/apps
+#define APP_RESOURCE_DIR resource/apps
+#define BITMAP_DIR resource/apps
+#define BIOFILE_DIR resource/messaging/bif
+#define CHARCONV_PLUGIN_DIR resource/charconv
+#define CONTACTS_RESOURCE_DIR resource/cntmodel
+#define CTRL_PANEL_RESOURCE_DIR resource/controls
+#define CONVERTER_PLUGIN_RESOURCE_DIR resource/convert
+#define ECOM_RESOURCE_DIR resource/plugins
+#define ERROR_RESOURCE_DIR resource/errors
+#define PROGRAMS_DIR sys/bin
+#define FEP_RESOURCES_DIR resource/fep
+#define HELP_FILE_DIR resource/help
+#define LOG_ENGINE_RESOURCE_DIR resource/logengine
+#define MTM_RESOURCE_DIR resource/messaging
+#define MTM_INFO_FILE_DIR resource/messaging/mtm
+#define PRINTER_DRIVER_DIR resource/printers
+#define SHARED_LIB_DIR sys/bin
+#define UIKLAF_RESOURCE_DIR resource/uiklaf
+#define WAPPUSH_PLUGIN_RESOURCE_DIR resource/messaging/wappush
+#define WATCHER_PLUGIN_RESOURCE_DIR resource/messaging/watchers
+#define RECOGNISERS_DIR sys/bin
+#define PARSERS_DIR sys/bin
+#define NOTIFIERS_DIR sys/bin
+#define PLUGINS_DIR sys/bin
+#define PLUGINS_1_DIR sys/bin
+#define RESOURCE_FILES_DIR resource
+
+#define CA_CERTIFICATES_DIR private/101f72a6
+#define COMMDB_DIR private/100012a5
+#define SS_CONFIG_FILE_DIR private/101f7989/esock
+#define TRUSTED_FONTS_DIR private/10003a16/fonts
+#define UNTRUSTED_FONT_DIR private/10003a16/import/fonts
+#define WINDOW_SERVER_INI_DIR private/10003b20
+#define SKINS_DIR private/10207114
+#define BOOTDATA_DIR resource/bootdata
+
+#endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_paths_for_iby.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2002-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: Predefined directory paths for the use of ROM based sw (to be used with IBY files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATHS_IBY_HRH
+#define DATA_CAGING_PATHS_IBY_HRH
+
+define APPARC_RECOGNISER_RESOURCES_DIR resource/apps/registrationresourcefiles
+define APP_BITMAP_DIR resource/apps
+define APP_RESOURCE_DIR resource/apps
+define BITMAP_DIR resource/apps
+define BIOFILE_DIR resource/messaging/bif
+define CHARCONV_PLUGIN_DIR resource/charconv
+define CONTACTS_RESOURCE_DIR resource/cntmodel
+define CTRL_PANEL_RESOURCE_DIR resource/controls
+define CONVERTER_PLUGIN_RESOURCE_DIR resource/convert
+define ECOM_RESOURCE_DIR resource/plugins
+define ERROR_RESOURCE_DIR resource/errors
+define PROGRAMS_DIR sys/bin
+define FEP_RESOURCES_DIR resource/fep
+define HELP_FILE_DIR resource/help
+define LOG_ENGINE_RESOURCE_DIR resource/logengine
+define MTM_RESOURCE_DIR resource/messaging
+define MTM_INFO_FILE_DIR resource/messaging/mtm
+define PRINTER_DRIVER_DIR resource/printers
+define SHARED_LIB_DIR sys/bin
+define UIKLAF_RESOURCE_DIR resource/uiklaf
+define WAPPUSH_PLUGIN_RESOURCE_DIR resource/messaging/wappush
+define WATCHER_PLUGIN_RESOURCE_DIR resource/messaging/watchers
+define RECOGNISERS_DIR sys/bin
+define PARSERS_DIR sys/bin
+define NOTIFIERS_DIR sys/bin
+define PLUGINS_DIR sys/bin
+define PLUGINS_1_DIR sys/bin
+define RESOURCE_FILES_DIR resource
+
+define CA_CERTIFICATES_DIR private/101f72a6
+define COMMDB_DIR private/100012a5
+define TRUSTED_FONTS_DIR private/10003a16/fonts
+define SS_CONFIG_FILE_DIR private/101f7989/esock
+define UNTRUSTED_FONT_DIR private/10003a16/import/fonts
+define WINDOW_SERVER_INI_DIR private/10003b20
+define SKINS_DIR private/10207114
+define BOOTDATA_DIR resource/bootdata
+
+
+#endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_paths_strings.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2002-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: Predefined directory paths for the use of ROM based sw (to be used with RSS files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATHS_STRINGS_HRH
+#define DATA_CAGING_PATHS_STRINGS_HRH
+
+#define APPARC_RECOGNISER_RESOURCES_DIR "\\resource\\apps\\registrationresourcefiles"
+#define APP_BITMAP_DIR "\\resource\\apps"
+#define APP_RESOURCE_DIR "\\resource\\apps"
+#define BITMAP_DIR "\\resource\\apps"
+#define BIOFILE_DIR "\\resource\\messaging\\bif"
+#define CHARCONV_PLUGIN_DIR "\\resource\\charconv"
+#define CONTACTS_RESOURCE_DIR "\\resource\\cntmodel"
+#define CTRL_PANEL_RESOURCE_DIR "\\resource\\controls"
+#define CONVERTER_PLUGIN_RESOURCE_DIR "\\resource\\convert"
+#define ECOM_RESOURCE_DIR "\\resource\\plugins"
+#define ERROR_RESOURCE_DIR "\\resource\\errors"
+#define PROGRAMS_DIR "\\sys\\bin"
+#define FEP_RESOURCES_DIR "\\resource\\fep"
+#define HELP_FILE_DIR "\\resource\\help"
+#define LOG_ENGINE_RESOURCE_DIR "\\resource\\logengine"
+#define MTM_RESOURCE_DIR "\\resource\\messaging"
+#define MTM_INFO_FILE_DIR "\\resource\\messaging\\mtm"
+#define PRINTER_DRIVER_DIR "\\resource\\printers"
+#define SHARED_LIB_DIR "//sys//bin"
+#define UIKLAF_RESOURCE_DIR "\\resource\\uiklaf"
+#define WAPPUSH_PLUGIN_RESOURCE_DIR "\\resource\\messaging\\wappush"
+#define WATCHER_PLUGIN_RESOURCE_DIR "\\resource\\messaging\\watchers"
+#define RECOGNISERS_DIR "\\sys\\bin"
+#define PARSERS_DIR "\\sys\\bin"
+#define NOTIFIERS_DIR "\\sys\\bin"
+#define PLUGINS_DIR "\\sys\\bin"
+#define PLUGINS_1_DIR "\\sys\\bin"
+#define RESOURCE_FILES_DIR "\\resource"
+
+#define CA_CERTIFICATES_DIR "\\private\\101f72a6"
+#define COMMDB_DIR "\\private\\100012a5"
+#define TRUSTED_FONTS_DIR "\\private\\10003a16\\fonts"
+#define SS_CONFIG_FILE_DIR "\\private\\101f7989\\esock"
+#define UNTRUSTED_FONT_DIR "\\private\\10003a16\\import\\fonts"
+#define WINDOW_SERVER_INI_DIR "\\private\\10003b20"
+#define SKINS_DIR "\\private\\10207114"
+#define BOOTDATA_DIR "\\resource\\bootdata"
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ctsydomainpskeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,156 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+#ifndef CTSYDOMAINPSKEYS_H
+#define CTSYDOMAINPSKEYS_H
+
+// INCLUDES
+#include <e32std.h>
+
+/**
+ * For Call forwarding number
+ */
+const TUid KPSUidCtsyCallForwardingInfo = { 0x1020299D };
+
+/**
+ * For Emergency call info
+ * Provides information whether an emergency call is active or not
+ */
+const TUid KPSUidCtsyEmergencyCallInfo = { 0x102029A0 };
+
+/** For Emergency call info */
+enum KEmergencyCallInfo
+ {
+ KCTSYEmergencyCallInfo,
+ };
+
+/**
+* Telephony Call Information API.
+*/
+const TUid KPSUidCtsyCallInformation = {0x102029AC};
+/**
+* State of ongoing call(s). The following table shows states if
+* in different combinations of phone calls.
+*
+* Call 1 state Call 2 state TPSCTsyCallState
+* =========================================================
+* idle idle EPSCTsyCallStateNone
+* hold idle EPSCTsyCallStateHold
+* hold dialling EPSCTsyCallStateDialling
+* hold ringing EPSCTsyCallStateRinging
+* hold answering EPSCTsyCallStateAnswering
+* hold connected EPSCTsyCallStateConnected
+* connected connected EPSCTsyCallStateConnected
+* connected ringing EPSCTsyCallStateRinging
+* disconnecting connected EPSCTsyCallStateConnected
+* disconnecting hold EPSCTsyCallStateHold
+* disconnecting idle EPSCTsyCallStateDisconnecting
+* disconnecting ringing EPSCTsyCallStateRinging
+*
+* @type: RProperty::EInt
+
+* For single calls
+ *
+
+ * Mobile originated call states:
+
+ * (1) EPSCTsyCallStateNone
+ * (2) EPSCTsyCallStateDialling
+ * (3) EPSCTsyCallStateAlerting
+ * (4) EPSTelephonyCallStateConnected
+ * (5) EPSCTsyCallStateDisconnecting
+ * (6) EPSCTsyCallStateNone
+ *
+ * Note that state transitions (2) --> (5) and (3) --> (5) are also possible.
+ *
+ * Mobile terminated call states:
+
+ * (1) EPSCTsyCallStateNone
+ * (8) EPSCTsyCallStateRinging
+ * (4) EPSTelephonyCallStateConnected
+ * (5) EPSCTsyCallStateDisconnecting
+ * (6) EPSCTsyCallStateNone
+ *
+ * Note that state transition (8) --> (5) is also possible.
+ *
+ * If the call is put on Hold the the following state transition are possible:
+ * (4) --> (9) EPSCTsyCallStateHold --> (4)
+ * (4) --> (9) --> (5)
+
+*/
+
+/**
+ * State of ongoing call.
+ *
+ */
+const TUint32 KCTsyCallState = 0x00000001;
+enum TPSCTsyCallState
+ {
+ /** Call has not been initialized */
+ EPSCTsyCallStateUninitialized,
+ /** None */
+ EPSCTsyCallStateNone,
+ /** Call is in alerting state */
+ EPSCTsyCallStateAlerting,
+ /** Call is in ringing state */
+ EPSCTsyCallStateRinging,
+ /** Call is being dialled */
+ EPSCTsyCallStateDialling,
+ /** Call is being answered */
+ EPSCTsyCallStateAnswering,
+ /** Call is being disconnected */
+ EPSCTsyCallStateDisconnecting,
+ /** Call is connected */
+ EPSCTsyCallStateConnected,
+ /** Call is held */
+ EPSCTsyCallStateHold
+ };
+
+/**
+* Type of ongoing call.
+*
+*/
+const TUint32 KCTsyCallType = 0x00000002;
+enum TPSCTsyCallType
+ {
+ /** Call type has not been initialized */
+ EPSCTsyCallTypeUninitialized,
+ /** None */
+ EPSCTsyCallTypeNone,
+ /** CS voice call */
+ EPSCTsyCallTypeCSVoice,
+ /** Fax call */
+ EPSCTsyCallTypeFax,
+ /** Data call */
+ EPSCTsyCallTypeData,
+ /** HSCSD call */
+ EPSCTsyCallTypeHSCSD,
+ /** H.324 multimedia call */
+ EPSCTsyCallTypeH324Multimedia,
+ /** VoIP call */
+ EPSCTsyCallTypeVoIP
+ };
+
+#endif //CTSYDOMAINPSKEYS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_version_info_api/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,3 @@
+PRJ_EXPORTS
+sysversioninfo.h sysversioninfo.h
+sysversioninfo.inl sysversioninfo.inl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_version_info_api/sysversioninfo.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,280 @@
+/*
+* 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: Extended Version Info API provides extended version
+* information i.e. firmware, operator etc version information
+*
+*/
+
+
+
+#ifndef SYS_VERSION_INFO_H
+#define SYS_VERSION_INFO_H
+
+// INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+class RFs;
+
+// CONSTANTS
+/**
+* Helper constant to allocate buffers for SysVersionInfo::GetVersionInfo.
+*/
+const TInt KSysVersionInfoTextLength = 256;
+
+/**
+* Helper constants to allocate buffers for SysVersionInfo::TProductVersion items.
+*/
+const TInt KSysVersionInfoManufacturerLength = 50;
+const TInt KSysVersionInfoModelLength = 50;
+const TInt KSysVersionInfoProductLength = 50;
+const TInt KSysVersionInfoRevisionLength = 50;
+
+// CLASS DECLARATION
+/**
+* Extended Version Info API provides extended version information
+* i.e. firmware, operator etc version information.
+*
+* Usage:
+*
+* Get the version information:
+* @code
+* // iFs contains open file server session
+*
+* TBuf< KSysVersionInfoTextLength > info;
+* User::LeaveIfError( SysVersionInfo::GetVersionInfo(
+* SysVersionInfo::EFWVersion, info, iFs ) );
+*
+* // Now info contains firmware version information
+*
+* SysVersionInfo::TSymbianOSVersion osVersion;
+* User::LeaveIfError( SysVersionInfo::GetVersionInfo( osVersion, iFs ) );
+*
+* // Now osVersion contains the Symbian OS version information
+*
+* SysVersionInfo::TProductVersion productVersion;
+* User::LeaveIfError( SysVersionInfo::GetVersionInfo( productVersion, iFs ) );
+*
+* // Now productVersion contains the product version information
+*
+* @endcode
+*
+* // @ we don't have this file lib sysversioninfo.lib
+* @since S60 3.2
+*/
+class SysVersionInfo
+ {
+public:
+
+ /**
+ * Enumeration TVersionInfoType defines values to be used for
+ * the aType parameter in GetVersionInfo method.
+ * @since S60 3.2
+ */
+ enum TVersionInfoType
+ {
+ /** To get the firmware version that is composed of the version info
+ * of multiple images (core + variants images).
+ */
+ EFWVersion = 0,
+
+ /** To get the customer software version. This identifies
+ * the user friendly version of e.g. operator/country/regional variant
+ * image.
+ */
+ EOPVersion,
+
+ /** To get the model version.
+ */
+ EModelVersion,
+
+ /**
+ * To get the product code.
+ **/
+ EProductCode
+
+ };
+
+ /**
+ * Class TVersionBase is a base class for version information data.
+ * @since S60 3.2
+ */
+ class TVersionBase;
+
+ /**
+ * This method gets the requested version information as string.
+ * The maximum length for the string is KSysVersionInfoTextLength if
+ * it has not been explicitly specified by the requested TVersionInfoType
+ * definition.
+ *
+ * KErrTooBig is returned if the requested version info does not
+ * fit into given descriptor. The part that fits is copied to
+ * the given descriptor.
+ *
+ * @since S60 3.2
+ * @param aType A version information type specified by TVersionInfoType.
+ * @param aValue Stores version information.
+ * @return System wide error code.
+ *
+ * @see TVersionInfoType
+ * @see KSysVersionInfoTextLength
+ */
+ IMPORT_C static TInt GetVersionInfo(
+ const TVersionInfoType aType, TDes& aValue );
+
+ /**
+ * This method gets the requested version information as string.
+ * The maximum length for the string is KSysVersionInfoTextLength if
+ * it has not been explicitly specified by the requested TVersionInfoType
+ * definition. The method avoids overhead of creating new file
+ * server session.
+ *
+ * KErrTooBig is returned if the requested version info does not
+ * fit into given descriptor. The part that fits is copied to
+ * the given descriptor.
+ *
+ * @since S60 3.2
+ * @param aType A version information type specified by TVersionInfoType.
+ * @param aValue Stores version information.
+ * @param aFs Open file server session.
+ * @return System wide error code.
+ *
+ * @see TVersionInfoType
+ * @see KSysVersionInfoTextLength
+ */
+ IMPORT_C static TInt GetVersionInfo(
+ const TVersionInfoType aType, TDes& aValue, RFs& aFs );
+
+ /**
+ * This method gets the requested version information.
+ *
+ * @since S60 3.2
+ * @param aVersion On return, contains the version information.
+ * @return System wide error code.
+ *
+ * @see TVersionBase
+ */
+ IMPORT_C static TInt GetVersionInfo( TVersionBase& aVersion );
+
+ /**
+ * This method gets the requested version information and avoids
+ * overhead of creating new file server session.
+ *
+ * @since S60 3.2
+ * @param aVersion On return, contains the version information.
+ * @param aFs Open file server session.
+ * @return System wide error code.
+ *
+ * @see TVersionBase
+ */
+ IMPORT_C static TInt GetVersionInfo( TVersionBase& aVersion, RFs& aFs );
+
+ /**
+ * Class TVersionBase is a base class for version information data.
+ * @since S60 3.2
+ */
+ class TVersionBase
+ {
+ friend class SysVersionInfo;
+
+ protected:
+ /**
+ * Constructor for subclasses
+ * @since S60 3.2
+ * @param aType Sets type of version info specified by TVersionType
+ */
+ inline TVersionBase( TInt aType );
+
+ private:
+ /**
+ * C++ default constructor.
+ */
+ TVersionBase();
+
+ private:
+ /** Contains type of version info specified by TVersionType */
+ TInt iType;
+ };
+
+ /**
+ * Class TSymbianOSVersion stores the Symbian OS version.
+ * The class is used as parameter in GetVersionInfo() methods.
+ * @since S60 3.2
+ */
+ class TSymbianOSVersion : public TVersionBase
+ {
+ public:
+ /**
+ * C++ default constructor.
+ */
+ inline TSymbianOSVersion();
+
+ public:
+ /** Contains the major Symbian OS version. For example 9 if Symbian OS 9.3 */
+ TUint16 iMajorVersion;
+
+ /** Contains the minor Symbian OS version. For example 3 if Symbian OS 9.3 */
+ TUint16 iMinorVersion;
+
+ };
+
+ /**
+ * Class TProductVersion stores the product information.
+ * The class is used as parameter in GetVersionInfo() methods.
+ * @since S60 3.2
+ */
+ class TProductVersion : public TVersionBase
+ {
+ public:
+ /**
+ * C++ default constructor.
+ */
+ inline TProductVersion();
+
+ public:
+ /** Contains the manufacturer name. For example "Nokia". */
+ TBuf< KSysVersionInfoManufacturerLength > iManufacturer;
+
+ /** Contains the phone model sales name. For example "N01". */
+ TBuf< KSysVersionInfoModelLength > iModel;
+
+ /** Contains the product code name. For example "RM-1". */
+ TBuf< KSysVersionInfoProductLength > iProduct;
+
+ /** Contains the product revision. For example "01". */
+ TBuf< KSysVersionInfoRevisionLength > iRevision;
+
+ };
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ SysVersionInfo();
+
+ /** Used internally to detect type of version info */
+ enum TVersionType
+ {
+ ESymbianOSVersion = 0,
+ EProductVersion
+ };
+
+ };
+
+#include "sysversioninfo.inl"
+
+#endif // SYS_VERSION_INFO_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_version_info_api/sysversioninfo.inl Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* 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: Extended Version Info API provides extended version
+* information i.e. firmware, operator etc version information.
+*
+*/
+
+
+
+// -----------------------------------------------------------------------------
+// SysVersionInfo::TVersionBase::TVersionBase
+// -----------------------------------------------------------------------------
+//
+inline SysVersionInfo::TVersionBase::TVersionBase( TInt aType ) :
+ iType( aType )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// SysVersionInfo::TSymbianOSVersion::TSymbianOSVersion
+// -----------------------------------------------------------------------------
+//
+inline SysVersionInfo::TSymbianOSVersion::TSymbianOSVersion() :
+ TVersionBase( SysVersionInfo::ESymbianOSVersion )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// SysVersionInfo::TProductVersion::TProductVersion
+// -----------------------------------------------------------------------------
+//
+inline SysVersionInfo::TProductVersion::TProductVersion() :
+ TVersionBase( SysVersionInfo::EProductVersion )
+ {
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* 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 the License "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
+: LIW Criteria API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+liwcommon.hrh MW_LAYER_PLATFORM_EXPORT_PATH(liwcommon.hrh)
+liwcommon.rh MW_LAYER_PLATFORM_EXPORT_PATH(liwcommon.rh)
+liwcommon.h MW_LAYER_PLATFORM_EXPORT_PATH(liwcommon.h)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/liwcommon.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,368 @@
+/*
+* 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 the License "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: Declares common constants, types, classes etc. to be used both
+* consumer and provider side.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_COMMON_H
+#define LIW_COMMON_H
+
+// INCLUDES
+#include <liwcommon.hrh>
+#include <barsread.h>
+#include <liwgenericparam.h>
+
+// CONSTANTS
+
+// MACROS
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CEikMenuPane;
+class CLiwGenericParamList;
+
+// CLASS DECLARATION
+
+/**
+ * Criteria item data.
+ * This class encapsulates an LIW criteria item. Criteria items are building
+ * blocks for LIW interests, i.e. an interest is a list of criteria items.
+ * A criteria item can be defined dynamically (by using this class) or
+ * in a resource file.
+ *
+ * @lib ServiceHandler.lib
+ * @since Series 60 2.6
+ */
+class CLiwCriteriaItem : public CBase
+ {
+ public: // Constructors and destructor
+ /**
+ * Constructs a criteria item instance with null items.
+ *
+ * @return A pointer to the new object.
+ */
+ IMPORT_C static CLiwCriteriaItem* NewL();
+
+ /**
+ * Constructs a criteria item instance with null items. Leaves the
+ * pointer to the cleanup stack.
+ *
+ * @return A pointer to the new object.
+ */
+ IMPORT_C static CLiwCriteriaItem* NewLC();
+
+ /**
+ * Constructs a criteria item instance.
+ *
+ * @param aCriteriaId The criteria ID.
+ * @param aServiceCmd The service command.
+ * @param aContentType The content type.
+ * @return A pointer to the new object.
+ */
+ IMPORT_C static CLiwCriteriaItem* NewL(
+ TInt aCriteriaId,
+ TInt aServiceCmd,
+ const TDesC8& aContentType);
+
+ /**
+ * Constructs a criteria item instance. Leaves the pointer to the
+ * cleanup stack.
+ *
+ * @param aCriteriaId The criteria ID.
+ * @param aServiceCmd The service command.
+ * @param aContentType The content type.
+ * @return A pointer to the new object.
+ */
+ IMPORT_C static CLiwCriteriaItem* NewLC(
+ TInt aCriteriaId,
+ TInt aServiceCmd,
+ const TDesC8& aContentType);
+
+ /**
+ * Constructs a criteria item instance.
+ *
+ * @param aCriteriaId The criteria ID.
+ * @param aServiceCmd The service command.
+ * @param aContentType Content type.
+ * @return A pointer to the new object.
+ */
+ IMPORT_C static CLiwCriteriaItem* NewL(
+ TInt aCriteriaId,
+ const TDesC8& aServiceCmd,
+ const TDesC8& aContentType);
+
+ /**
+ * Constructs a criteria item instance.
+ *
+ * @param aCriteriaId The criteria ID.
+ * @param aServiceCmd The service command.
+ * @param aContentType Content type.
+ * @return A pointer to the new object.
+ */
+ IMPORT_C static CLiwCriteriaItem* NewLC(
+ TInt aCriteriaId,
+ const TDesC8& aServiceCmd,
+ const TDesC8& aContentType);
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CLiwCriteriaItem();
+
+ public: // New functions
+ /**
+ * Sets the criteria ID.
+ *
+ * @param aId The criteria ID.
+ */
+ IMPORT_C void SetId(TInt aId);
+
+ /**
+ * Sets the service class.
+ *
+ * @param aServiceUid The service class, see TLiwServiceClass.
+ */
+ IMPORT_C void SetServiceClass(const TUid& aServiceUid);
+
+ /**
+ * Sets the service command UID.
+ *
+ * @param aServiceCmd The LIW service command, see TLiwServiceCommands.
+ */
+ IMPORT_C void SetServiceCmd(TInt aServiceCmd);
+
+ /**
+ * Sets the service command name.
+ *
+ * @param aServiceCmd The LIW service command.
+ */
+ IMPORT_C void SetServiceCmdL(const TDesC8& aServiceCmd);
+
+ /**
+ * Sets the content type. Makes a copy of the string data.
+ *
+ * @param aContentType Content MIME type, event type or any agreed one.
+ */
+ IMPORT_C void SetContentTypeL(const TDesC8& aContentType);
+
+ /**
+ * Gets the criteria ID, 0 if not defined.
+ *
+ * @return The criteria ID.
+ */
+ IMPORT_C TInt Id() const;
+
+ /**
+ * Gets the service class UID.
+ *
+ * @return The service class UID, see TLiwServiceClass.
+ */
+ IMPORT_C const TUid& ServiceClass() const;
+
+ /**
+ * Gets the service command UID. KNullUid, if not defined.
+ *
+ * @return The service command UID, see TLiwServiceCommands.
+ */
+ IMPORT_C TInt ServiceCmd() const;
+
+ /**
+ * Gets the service command name.
+ *
+ * @return The service command name.
+ */
+ IMPORT_C const TDesC8& ServiceCmdStr() const;
+
+ /**
+ * Gets the content type.
+ *
+ * @return The content type.
+ */
+ IMPORT_C const TDesC8& ContentType() const;
+
+ /**
+ * Sets the options.
+ *
+ * @param aOptions Options.
+ */
+ IMPORT_C void SetOptions(TUint aOptions);
+
+ /**
+ * Gets the options.
+ *
+ * @return Options.
+ */
+ IMPORT_C TUint Options() const;
+
+ /**
+ * Maximum number of providers allowed for this criteria item.
+ *
+ * @return Maximum number of providers allowed for this criteria item.
+ */
+ IMPORT_C TInt MaxProviders() const;
+
+ /**
+ * Reads a criteria item from a resource.
+ *
+ * @param aReader A resource reader pointing to a criteria item.
+ */
+ IMPORT_C void ReadFromResoureL(TResourceReader& aReader);
+
+ /**
+ * Returns the default provider.
+ *
+ * @return The default provider UID.
+ */
+ IMPORT_C TUid DefaultProvider() const;
+
+ /**
+ * Sets the default provider.
+ *
+ * @param aDefault The UID of a default provider.
+ */
+ IMPORT_C void SetDefaultProvider(TInt aDefault);
+
+ /**
+ * Equality operator. Two criteria items are considered equal only if all
+ * parameters match. The parameters are: criteria id, service command,
+ * content type, service class, default provider, max providers and options).
+ *
+ * @param aItem Criteria item to compare.
+ * @return ETrue if criteria items are equal, EFalse otherwise.
+ */
+ IMPORT_C TBool operator==(const CLiwCriteriaItem& aItem);
+
+ /**
+ * Sets the maximum number of providers.
+ *
+ * @param aMaxProviders The maximum number of providers.
+ */
+ IMPORT_C void SetMaxProviders(TInt aMaxProviders);
+
+ public:
+ /**
+ * If set, only ROM based providers can be attached to this criteria.
+ *
+ * @return ETrue if LIW_OPTIONS_ROM_ONLY bit is set, EFalse otherwise.
+ */
+ inline TBool RomOnly() const;
+
+ IMPORT_C void SetMetaDataOptions(const TLiwVariant& aMetaDataOptions);
+
+ IMPORT_C void GetMetaDataOptions(TLiwVariant& aMetaDataOptions) const;
+
+ private:
+ /**
+ * C++ default constructor.
+ */
+ CLiwCriteriaItem();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL(
+ TInt aCriteriaId,
+ TInt aServiceCmd,
+ const TDesC8& aContentType);
+
+ void ConstructL(
+ TInt aCriteriaId,
+ const TDesC8& aServiceCmd,
+ const TDesC8& aContentType);
+
+ private:
+ // Criteria ID.
+ TInt iCriteriaId;
+ // Service class UID
+ TUid iServiceClass;
+ // Service command UID
+ TInt iServiceCmd;
+ // Content type (MIME type).
+ HBufC8* iContentType;
+ // Additional options for ROM
+ TLiwVariant iOptions;
+ //Default provider implementation uid
+ TUid iDefaultProvider;
+ // Reserved member
+ TLiwVariant iReserved;
+ // Max providers
+ TInt iMaxProviders;
+ // Metadata Options
+ TLiwVariant iMetadataOptions;
+ };
+
+
+inline TBool CLiwCriteriaItem::RomOnly() const
+ {
+ return (Options() & LIW_OPTIONS_ROM_ONLY) != 0;
+ }
+
+
+/**
+* Interest is an array of criteria items.
+*/
+typedef RPointerArray<CLiwCriteriaItem> RCriteriaArray;
+
+/**
+* Abstact callback interface to handle callbacks or events
+* from providers. This callback is needed when
+* - Consumer wants to pre-check output parameters before returning
+* synchronous Handle*Cmd.
+* - Asynchronous Handle*Cmd is used.
+* - An asynchronous event occurs in the system.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+*/
+class MLiwNotifyCallback // needs to handle this as well?
+ {
+ public:
+ /**
+ * Handles notifications caused by an asynchronous Execute*CmdL call
+ * or an event.
+ *
+ * @param aCmdId The service command associated to the event.
+ * @param aEventId Occured event, see LiwCommon.hrh.
+ * @param aEventParamList Event parameters, if any, as defined per
+ * each event.
+ * @param aInParamList Input parameters, if any, given in the
+ * related HandleCommmandL.
+ * @return Error code for the callback.
+ */
+ virtual TInt HandleNotifyL(
+ TInt aCmdId,
+ TInt aEventId,
+ CLiwGenericParamList& aEventParamList,
+ const CLiwGenericParamList& aInParamList) = 0;
+ IMPORT_C static TInt32 GetTransactionID();
+ };
+
+#endif // LIW_COMMON_H
+
+// End of File
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/liwcommon.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,418 @@
+/*
+* 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 the License "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: Declares common constants to be used in both resources and
+* C++ code of consumers and providers.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_COMMON_HRH
+#define LIW_COMMON_HRH
+
+// DATA TYPES
+
+// CONSTANTS
+
+/**
+* Predefined service commands (UIDs).
+*/
+enum TLiwServiceCommands
+ {
+ /** Null value. */
+ KLiwCmdNone = 0,
+
+ /** String Based command */
+ KLiwCmdAsStr = 1,
+
+ /** Create new content. */
+ KLiwCmdNew = 0x101F864C,
+
+ /** Edit existing content. */
+ KLiwCmdEdit = 0x101F864D,
+
+ /** Select content. */
+ KLiwCmdSelect = 0x101F864E,
+
+ /** View content. */
+ KLiwCmdView = 0x101F864F,
+
+ /** Create call. */
+ KLiwCmdCall = 0x101F86B0,
+
+ /** Send content. */
+ KLiwCmdSend = 0x101F86B3,
+
+ /** Print content. */
+ KLiwCmdPrint = 0x101F8666,
+
+ /** Assign content. */
+ KLiwCmdAssign = 0x101F8716,
+
+ /** Share content. */
+ KLiwCmdShare = 0x101F871E,
+
+ /** Synchronize content. */
+ KLiwCmdSynchronize = 0x101F8724,
+
+ /** Synchronize selected. */
+ KLiwCmdSynchronizeSelected = 0x1020720C,
+
+ /** Search content. */
+ KLiwCmdSearch = 0x101F87DF,
+
+ /** Copy content. */
+ KLiwCmdCopy = 0x101F87DE,
+
+ /** Show print preview. */
+ KLiwCmdPrintPreview = 0x101FD656,
+
+ /** Push to talk. */
+ KLiwCmdPoC = 0x101FD657,
+
+ /** View content in online store. */
+ KLiwCmdViewOnline = 0x102072EA,
+
+ /** Upload content. */
+ KLiwCmdUpload = 0x102072EB,
+
+ /** Transfer a range of media files to a remote storage device. */
+ KLiwCmdXpressTransfer = 0x10207430,
+
+ /** UPnP copy content. */
+ KLiwCmdUPnPCopy = 0x10207431,
+
+ /** UPnP move content. */
+ KLiwCmdUPnPMove = 0x10207432,
+
+ /** UPnP play content. */
+ KLiwCmdUPnPPlay = 0x10207433,
+
+ /** UPnP open content. */
+ KLiwCmdUPnPOpen = 0x10207434,
+
+ /** UPnP enable external. */
+ KLiwCmdUPnPEnableExternal = 0x10207435,
+
+ /** Show help content. */
+ KLiwCmdHelp = 0x10275075,
+
+ /** Add or remove items from intent. (Should be used as a menu service command). */
+ KLiwCmdIntent = 0x10275114,
+
+ /** Add items to intent. (Should be used as a base service command). */
+ KLiwCmdAddToIntent = 0x10275115,
+
+ /** Remove items from intent. (Should be used as a base service command). */
+ KLiwCmdRemoveFromIntent = 0x10275116,
+
+ /** Client can request that map should be displayed on screen. */
+ KLiwCmdMnShowMap = 0x10206904,
+
+ /** Allows to start navigation to desired destination. */
+ KLiwCmdMnNavigateTo = 0x10206905,
+
+ /** Starts reverse geocoding request: finding address for given coordinate. */
+ KLiwCmdMnAddrByCoord = 0x10206906,
+
+ /** Starts geocoding request: finding coordinate by given address. */
+ KLiwCmdMnCoordByAddr = 0x10206907,
+
+ /** Allows client to request that user shall select a location from map. */
+ KLiwCmdMnSelectFromMap = 0x10206908,
+
+ /** Send via Bluetooth. */
+ KLiwCmdSendViaBT = 0x10281894,
+
+ /** Send via Irda. */
+ KLiwCmdSendViaIR = 0x10281895,
+
+ /** Enterprise telephony. */
+ KLiwCmdEnterpriseTel = 0x20001FC6,
+
+ /** Rotate image etc. */
+ KLiwCmdRotate = 0x10281F96,
+
+ /** Rotate device screen. */
+ KLiwCmdRotateScreen = 0x10281F97,
+
+ /** Set call image. */
+ KLiwCmdCallImage = 0x1028245E,
+
+ /** Give different objects to another device using Near Field Communications. */
+ KLiwCmdNFCGive = 0x1028245F,
+
+ /** SettingWizard Email view activation. */
+ KLiwCmdSettingWizardEmailView = 0x10281C95,
+
+ /** In-device search. */
+ KLiwCmdContentSearch = 0x10282844,
+
+ /** A special service command enabling consumer to attach for all relevant
+ LIW services for a certain object. */
+ KLiwCmdAnyCmdForObject = 0x102823F1,
+
+ /** To support VoIP settings provisioning with plugins **/
+ KLiwCmdEasyVoIPProvisioning = 0x10283099,
+
+ /** Assign Screensaver*/
+ KLiwCmdAssignScreenSaver = 0x1028309A,
+
+ /** Converged service plugin and UI extension plugin*/
+ KLiwCmdCSCServicePlugins = 0x1020E56F,
+ KLiwCmdCSCUiExtensionPlugins = 0x10282EF7
+ };
+
+enum TLiwBufferType
+{
+ KLiwBufferNone = 0,
+ KLiwBufferBitmap = 1,
+ KLiwBufferFile = 2
+};
+
+
+// Service command strings. These strings are used in service provider's
+// opaque data field to specify what service command(s) the provider implements.
+
+#define KLiwCmdNoneStr "00000000"
+#define KLiwCmdAsStrStr "00000001"
+#define KLiwCmdNewStr "101F864C"
+#define KLiwCmdEditStr "101F864D"
+#define KLiwCmdSelectStr "101F864E"
+#define KLiwCmdViewStr "101F864F"
+#define KLiwCmdPrintStr "101F8666"
+#define KLiwCmdCallStr "101F86B0"
+#define KLiwCmdSendStr "101F86B3"
+#define KLiwCmdAssignStr "101F8716"
+#define KLiwCmdShareStr "101F871E"
+#define KLiwCmdSynchronizeStr "101F8724"
+#define KLiwCmdSearchStr "101F87DF"
+#define KLiwCmdCopy "101F87DE"
+#define KLiwCmdPrintPreviewStr "101FD656"
+#define KLiwCmdPoCStr "101FD657"
+#define KLiwCmdSynchronizeSelectedStr "1020720C"
+#define KLiwCmdViewOnlineStr "102072EA"
+#define KLiwCmdUploadStr "102072EB"
+#define KLiwCmdXpressTransferStr "10207430"
+#define KLiwCmdUPnPCopyStr "10207431"
+#define KLiwCmdUPnPMoveStr "10207432"
+#define KLiwCmdUPnPPlayStr "10207433"
+#define KLiwCmdUPnPOpenStr "10207434"
+#define KLiwCmdUPnPEnableExternalStr "10207435"
+#define KLiwCmdHelpStr "10275075"
+#define KLiwCmdIntentStr "10275114"
+#define KLiwCmdAddToIntentStr "10275115"
+#define KLiwCmdRemoveFromIntentStr "10275116"
+#define KLiwCmdMnShowMapStr "10206904"
+#define KLiwCmdMnNavigateToStr "10206905"
+#define KLiwCmdMnAddrByCoordStr "10206906"
+#define KLiwCmdMnCoordByAddrStr "10206907"
+#define KLiwCmdMnSelectFromMapStr "10206908"
+#define KLiwCmdSendViaBTStr "10281894"
+#define KLiwCmdSendViaIRStr "10281895"
+#define KLiwCmdEnterpriseTelStr "20001FC6"
+#define KLiwCmdRotateStr "10281F96"
+#define KLiwCmdRotateScreenStr "10281F97"
+#define KLiwCmdCallImageStr "1028245E"
+#define KLiwCmdNFCGiveStr "1028245F"
+#define KLiwCmdSettingWizardEmailViewStr "10281C95"
+#define KLiwCmdContentSearchStr "10282844"
+#define KLiwCmdAnyCmdForObjectStr "102823F1"
+#define KLiwCmdEasyVoIPProvisioningStr "10283099"
+#define KLiwCmdAssignScreenSaverStr "1028309A"
+#define KLiwCmdCSCServicePluginsStr "1020E56F"
+#define KLiwCmdCSCUiExtensionPluginsStr "10282EF7"
+
+/**
+* Service command options (bits) to alter command handling behaviour.
+*/
+enum TLiwServiceCmdOptions
+ {
+ /**
+ * Consumer wants asynchronous command handling.
+ * The default is synchronous command handling.
+ * In asynchronous case consumer needs to pass a callback to provider.
+ */
+ KLiwOptASyncronous = 0x0001,
+
+ /**
+ * Consumer wants provider to make a callback to check coming output
+ * parameters prior returning from service command handling.
+ * Consumer needs to pass a callback to provider.
+ */
+ KLiwOptOutParamCheck = 0x0002,
+
+ /**
+ * Consumer tells provider that it is prepared to handle
+ * callback events for possibly incomplete/wrong parameter list.
+ */
+ KLiwOptInParamCheck = 0x0004,
+
+ /**
+ * Consumer wants to cancel an asynchronous LIW service.
+ * When a consumer wants to cancel the asynchronous service that a provider
+ * is executing, it should call ExecuteMenuCmdL() or ExecuteServiceCmdL()
+ * with the same parameters as when requesting the service, but set this
+ * cancel bit on. The cancel operation itself is synchronous, i.e. the
+ * provider must call the consumer's callback with KLiwEventCanceled before
+ * the Execute*CmdL() returns.
+ */
+ KLiwOptCancel = 0x0008
+ };
+
+
+/**
+* Service classes (UID). Technically these are same as service interface UIDs.
+*/
+enum TLiwServiceClass
+ {
+ /**
+ * None.
+ */
+ KLiwClassNone = 0x0,
+
+ /**
+ * Base service (no UI expected).
+ * Every other class must implement this always!
+ */
+ KLiwClassBase = 0x200159f5,
+
+ /**
+ * Filter service class.
+ */
+ KLiwClassFilter = 0x101F8651,
+
+ /**
+ * Menu service class (offers menu based services).
+ */
+ KLiwClassMenu = 0x101F8652,
+
+ /**
+ * Stub service class.
+ */
+ KLiwClassStub = 0x101F8653,
+
+ /**
+ * View service class (offers view based services).
+ */
+ KLiwClassView = 0x101F8654,
+
+ /**
+ * This class is for R&D purposes.
+ */
+ KLiwClassDebug = 0x101F866B
+ };
+
+
+/**
+* Event codes. To be used with HandleNotifyL method.
+*/
+enum
+ {
+ /**
+ * Asynchronous service informs consumer to prepare itself for
+ * action.
+ */
+ KLiwEventStarted = 1,
+
+ /**
+ * Asynchronous service request completed.
+ */
+ KLiwEventCompleted = 2,
+
+ /**
+ * Asynchronous service request canceled.
+ */
+ KLiwEventCanceled = 3,
+
+ /**
+ * Error during asynchronous service request.
+ */
+ KLiwEventError = 4,
+
+ /**
+ * Relates to KLiwOptOutParamCheck.
+ */
+ KLiwEventOutParamCheck = 5,
+
+ /**
+ * Relates to KLiwOptInParamCheck.
+ */
+ KLiwEventInParamCheck = 6,
+
+ /**
+ * Provider informs consumer that service is no longer available or
+ * has stopped.
+ */
+ KLiwEventStopped = 7,
+
+ /**
+ * Provider asks consumer whether Exit can be done (needed at least in
+ * embedded use cases where server application offers Exit possibility
+ * to end user, but consumer can not allow Exit due to fact that for
+ * example network connections owned by consumer are open and they need
+ * to be kept alive).
+ */
+ KLiwEventQueryExit = 8,
+
+ /**
+ * Provider informs consumer about the ongoing asynchronous
+ * service execution.
+ */
+ KLiwEventInProgress = 9
+ };
+
+// ============================================================================
+// Menu item flags for LIW consumers.
+// ============================================================================
+/**
+ * Always keep the provider menu items in a submenu.
+ */
+#define LIW_CASCADE_ID 0x01010001
+
+/**
+ * Menu item is placed intelligently either to the main level or a submenu.
+ */
+#define LIW_INTELLIGENT_CASCADE_ID 0x01010010
+
+/**
+ * Consumer defines the menu title.
+ */
+#define LIW_LOCK_SUBMENU_TITLE 0x00000020
+
+// ============================================================================
+// Criteria item flags for LIW consumers.
+// ============================================================================
+/**
+ * Criteria item loadOptions bit, only providers in ROM are accepted.
+ */
+#define LIW_OPTIONS_ROM_ONLY 0x01
+
+// ============================================================================
+// Menu item flags for LIW providers.
+// ============================================================================
+/**
+ * For providers only: Provider suggests the submenu title.
+ */
+#define LIW_SUBMENU_TITLE 0x0ff11012
+
+#endif // LIW_COMMON_HRH
+
+// End of file
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/liwcommon.rh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* 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 the License "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 resource declarations for the LIWFW.
+*
+*/
+
+
+
+
+
+
+
+// INCLUDES
+#include <liwcommon.hrh>
+
+// MACROS
+
+// STRUCTURE DEFINITIONS
+
+// -----------------------------------------------------------------------------
+// Option item for a criteria.
+// -----------------------------------------------------------------------------
+STRUCT LIW_CRITERIA_OPTION
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Criteria item.
+// Resource structure to define criteria item consumer.
+// -----------------------------------------------------------------------------
+//
+// Criteria item
+//
+STRUCT LIW_CRITERIA_ITEM
+ {
+ // Criteria ID to be used in UI elements referring to this criteria
+ // By default the ID should be same as the serviceCmd, but it can be
+ // different as well e.g. for mapping old menu items to use LIW
+ // This can be consumer defined or predefined, if common interest
+ // is allocated.
+ LONG id;
+
+ // --------------------------------------------------------------
+ // Actual criteria data used when resolving providers from which
+ // a consumer is interested in.
+ // --------------------------------------------------------------
+
+ // Command ID for service command, mandatory.
+ LONG serviceCmd = KLiwCmdNone;
+
+ // Content MIME type, event type or any agreed one.
+ LTEXT8 contentType = "";
+
+ // Services class tells what kind of service is expected from
+ // provider. See TLiwServiceClass enum for allowed values.
+ // Optional, if not defined the default (KLiwClassMenu) is used.
+ LONG serviceClass = KLiwClassMenu;
+
+ // --------------------------------------------------------------
+ // Additional options, if any.
+ // --------------------------------------------------------------
+
+ // Defines UID for default provider. If provider for this
+ // UID exists, all the setup calls will be forwarded to it
+ // first (eg. if default provider implements 'menu' service class, it will
+ // be the first provider to insert its menu items to the consumer menu).
+ LONG defaultProvider = 0;
+
+ // The maximum number of providers allowed for the criteria item.
+ // There might be cases to limit the number of providers, e.g. for
+ // limiting the number of menu items. Maximum is 255 providers per interest.
+ BYTE maxProviders = 0xff;
+
+ // Other options bits (8 bits reserved).
+ BYTE loadOptions=0;
+
+ // Reserved for extensions.
+ LLINK reserved = 0;
+ }
+
+//
+// Criteria item with command name as string
+//
+STRUCT LIW_CRITERIA_ITEM_2
+ {
+ LONG id;
+ LONG serviceCmd = KLiwCmdAsStr;
+ // Service name.
+ LTEXT8 serviceName = "";
+ LTEXT8 contentType = "";
+ LONG serviceClass = KLiwClassMenu;
+
+ LONG defaultProvider = 0;
+ BYTE maxProviders = 0xff;
+ BYTE loadOptions=0;
+
+ LLINK reserved = 0;
+ }
+
+//
+// Interest is an array of criteria items.
+//
+STRUCT LIW_INTEREST
+ {
+ STRUCT items[]; // LIW_CRITERIA_ITEM's
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,38 @@
+/*
+* 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 the License "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
+: LIW Generic Parameter API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+liwgenericparam.h MW_LAYER_PLATFORM_EXPORT_PATH(liwgenericparam.h)
+liwvarianttype.hrh MW_LAYER_PLATFORM_EXPORT_PATH(liwvarianttype.hrh)
+liwvariant.h MW_LAYER_PLATFORM_EXPORT_PATH(liwvariant.h)
+liwgenericparam.inl MW_LAYER_PLATFORM_EXPORT_PATH(liwgenericparam.inl)
+liwgenericparam.hrh MW_LAYER_PLATFORM_EXPORT_PATH(liwgenericparam.hrh)
+liwvariant.inl MW_LAYER_PLATFORM_EXPORT_PATH(liwvariant.inl)
+liwbufferextension.h MW_LAYER_PLATFORM_EXPORT_PATH(liwbufferextension.h)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwbufferextension.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,58 @@
+#ifndef LIW_BUFFEREXTENSION_H
+#define LIW_BUFFEREXTENSION_H/*
+* 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 the License "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 bitmap buffer representation.
+*
+*/
+
+
+
+
+
+
+
+#include <fbs.h>
+
+#include "liwvariant.h"
+class CFbsBitmap;
+
+class CLiwBitmapBuffer : public CLiwBuffer
+ {
+ public:
+ /*
+ * The concrete implementation of buffer types should perform equality operation
+ * check. This is a platform specifc extension class to support bitmap
+ * buffer to abstract CFbsBitmap type.
+
+ *
+ * @return platform specific bitmap representation. By default, this method
+ * returns NULL
+ */
+ virtual CFbsBitmap* AsBitmap()
+ {
+ return NULL; // return NULL by default
+ }
+ };
+
+/**
+ * Abstract file buffer representation.
+ *
+**/
+class CLiwFileBuffer : public CLiwBuffer
+{
+ public:
+ virtual RFile& AsFile() = 0;
+};
+
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwgenericparam.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,525 @@
+/*
+* 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 the License "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: A generic parameter class.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_GENERIC_PARAM_H
+#define LIW_GENERIC_PARAM_H
+
+// INCLUDES
+#include <e32base.h>
+#include "liwgenericparam.hrh"
+#include "liwvariant.h"
+
+namespace LIW
+{
+ /*
+ * LIW generic parameter id. This data type should always be used when dealing
+ * with LIW generic parameters. UIDs can be used as LIW generic parameter IDs.
+ * However, values from 0 to 131071 are reserved.
+ * @see TLiwGenericParam
+ * @see TGenericParamIdValue
+ */
+typedef TInt TGenericParamId;
+}
+// CLASS DECLARATION
+
+/**
+* Generic parameter class for passing data between applications.
+* A generic parameter is a pair of semantic ID and
+* variant value. The semantic ID tells the purpose of the parameter,
+* for example a file name, URL or phone number. The variant value contains
+* the data format and actual value. This class does not implement any
+* consistency checks between the semantic ID and value's data format.
+* So one semantic ID can be expressed as alternative data formats.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see TLiwVariant
+* @see CLiwGenericParamList
+*/
+class TLiwGenericParam
+ {
+ public: // Constructors and destructor
+ /**
+ * Constructs a generic parameter.
+ */
+ inline TLiwGenericParam();
+
+ /**
+ * Constructs a generic parameter.
+ *
+ * @param aSemanticId The semantic ID of the parameter, one of TGenericParamId values.
+ */
+ inline TLiwGenericParam(LIW::TGenericParamId aSemanticId);
+
+ /**
+ * Constructs a generic parameter.
+ *
+ * @param aSemanticId The semantic ID of the parameter, one of TGenericParamId values.
+ * @param aValue The parameter value.
+ */
+ inline TLiwGenericParam(LIW::TGenericParamId aSemanticId, const TLiwVariant& aValue);
+
+ /**
+ * Constructs a generic parameter.
+ *
+ * @param aName Name of the generic parameter
+ * @param aValue The parameter value.
+ */
+ inline TLiwGenericParam(const TDesC8& aName, const TLiwVariant& aValue);
+
+ public: // Interface
+ /**
+ * Sets the semantic ID. Possibly set previous ID is overwritten.
+ *
+ * @param aSemanticId The semantic ID of the parameter.
+ */
+ inline void SetSemanticId(LIW::TGenericParamId aSemanticId);
+
+ /**
+ * Set name. Possibly set previous name is overwritten.
+ *
+ * @param aName Parameter name.
+ */
+ inline void SetNameL(const TDesC8& aName);
+
+ /**
+ * Set name and value. Possibly set previous name and value is overwritten.
+ *
+ * @param aName the parameter name.
+ *
+ * @param aValue the parameter value
+ */
+ inline void SetNameAndValueL(const TDesC8& aName, const TLiwVariant& aValue);
+
+ /**
+ * Returns the semantic ID of this parameter.
+ *
+ * @return The semantic ID.
+ */
+ inline LIW::TGenericParamId SemanticId() const;
+
+ /**
+ * Returns the name of this parameter.
+ *
+ * @return The name of the parameter.
+ */
+ inline const TDesC8& Name() const;
+
+ /**
+ * Returns the value of this parameter.
+ *
+ * @return The value of the parameter.
+ */
+ inline TLiwVariant& Value();
+
+ /**
+ * Returns the const value of this parameter.
+ *
+ * @return The const value of the parameter.
+ */
+ inline const TLiwVariant& Value() const;
+
+ /**
+ * Resets the semantic ID and the value of this parameter.
+ */
+ inline void Reset();
+
+ /**
+ * TLiwGenericParam cleanup method
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * Parameters can be pushed into the CleanupStack using this method
+ * along with TCleanupItem
+ *
+ * @ param aObj - TLiwGenericParam Object but of type TAny* for usage with TCleanupItem
+ *
+ * Example 1: Here the client explicitly pushes the parameter into the CleanupStack using TCleanupItem
+ *
+ * @code
+ * TLiwGenericParam param;
+ * CleanupStack::PushL( TCleanupItem( TLiwGenericParam::ParamCleanup , ¶m ) );
+ * User::Leave(KErrGeneral); //This calls the ParamCleanup method which cleans up TLiwGenericParam
+ * CleanupStack::Pop(¶m);
+ * param.Reset();
+ * @endcode
+ *
+ * Example 2: Here the client calls the PushL method of TLiwGenericParam which pushes the object into
+ * the CleanupStack using TCleanupItem
+ *
+ * @code
+ * TLiwGenericParam param;
+ * param.PushL();
+ * User::Leave(KErrGeneral); //This calls the ParamCleanup method which cleans up TLiwGenericParam
+ * CleanupStack::Pop(¶m);
+ * param.Reset();
+ * @endcode
+ *
+ * The clients can use the convenient PushL method which is recommended (as shown in e.g 2) rather than
+ * explicitly pushing the parameter object into the CleanupStack using TCleanupItem and ParamCleanup.
+ *
+ * @ see PushL() method
+ */
+ IMPORT_C static void ParamCleanup(TAny* aObj);
+
+ /**
+ * A friendly and convenient method to push the TLiwGenericParam Object into the CleanupStack
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This method informs the CleanupStack that ParamCleanup method should be called incase of any Leave
+ *
+ * Example:
+ *
+ * @code
+ * TLiwGenericParam param;
+ * param.PushL(); //This pushes the parameter object "param" into the CleanupStack using TCleanupItem and ParamCleanup.
+ * User::Leave(KErrGeneral); //This calls the ParamCleanup method which cleans up TLiwGenericParam
+ * CleanupStack::Pop(¶m); //These statements are not executed
+ * param.Reset();
+ * @endcode
+ *
+ * This method is recommended than explicitly pushing the parameter object into the CleanupStack
+ * using TCleanupItem and ParamCleanup.
+ *
+ * @see ParamCleanup() method
+ */
+ IMPORT_C void PushL();
+
+ private: // Interface for friend classes
+ void Destroy();
+ void CopyLC(const TLiwGenericParam& aParam);
+ static void CleanupDestroy(TAny* aObj);
+ operator TCleanupItem();
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ TInt Size() const;
+
+ private: // Data
+ /// Own: semantic ID of this parameter
+ LIW::TGenericParamId iSemanticId;
+ /// Own: value of this parameter
+ TLiwVariant iValue;
+ /// Reserved member
+ TAny* iReserved;
+
+ private: // friend declarations
+ friend class CLiwGenericParamList;
+ friend class CLiwDefaultList;
+ friend class CLiwDefaultMap;
+ };
+
+
+// FUNCTIONS
+
+/**
+* Returns ETrue if two generic params are equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if equal, EFalse otherwise.
+*/
+IMPORT_C TBool operator==(const TLiwGenericParam& aLhs, const TLiwGenericParam& aRhs);
+
+/**
+* Returns ETrue if two generic params are not equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if not equal, EFalse otherwise.
+*/
+inline TBool operator!=(const TLiwGenericParam& aLhs, const TLiwGenericParam& aRhs);
+
+
+/**
+ * Generic parameter list.
+ * A list containing TLiwGenericParam objects. Used for passing parameters
+ * between consumers and providers.
+ *
+ * @lib ServiceHandler.lib
+ * @since Series 60 2.6
+ */
+NONSHARABLE_CLASS(CLiwGenericParamList): public CBase
+ {
+ public: // Constructors and destructor
+ /**
+ * Creates an instance of this class.
+ *
+ * @return A pointer to the new instance.
+ */
+ IMPORT_C static CLiwGenericParamList* NewL();
+
+ /**
+ * Creates an instance of this class.
+ *
+ * @param aReadStream A stream to initialize this parameter list from.
+ * @return A pointer to the new instance.
+ */
+ IMPORT_C static CLiwGenericParamList* NewL(RReadStream& aReadStream);
+
+ /**
+ * Creates an instance of this class. Leaves the created instance on the
+ * cleanup stack.
+ *
+ * @return A pointer to the new instance.
+ */
+ IMPORT_C static CLiwGenericParamList* NewLC();
+
+ /**
+ * Creates an instance of this class. Leaves the created instance on the
+ * cleanup stack.
+ *
+ * @param aReadStream A stream to initialize this parameter list from.
+ * @return A pointer to the new instance.
+ */
+ IMPORT_C static CLiwGenericParamList* NewLC(RReadStream& aReadStream);
+
+ /**
+ * Destructor.
+ */
+ virtual ~CLiwGenericParamList();
+
+ public: // Interface
+ /**
+ * Returns the number of parameters in the list.
+ *
+ * @return The number of parameters in the list.
+ */
+ IMPORT_C TInt Count() const;
+
+ /**
+ * Returns the number of the parameters in the list by semantic id and datatype.
+ *
+ * @param aSemanticId The semantic ID of the parameter.
+ * @param aDataType The type id of data. Default is any type.
+ * @return The number of parameters in the list by semantic id and datatype.
+ */
+ IMPORT_C TInt Count(LIW::TGenericParamId aSemanticId,
+ LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+
+ /**
+ * Returns a parameter from this list.
+ *
+ * @param aIndex Index of the parameter.
+ * @return The parameter at the aIndex position.
+ * @pre aIndex>=0 && aIndex<Count()
+ */
+ IMPORT_C const TLiwGenericParam& operator[](TInt aIndex) const;
+
+ /**
+ * Gets an entry from the collection based on an integeral index.
+ * Note ! This method allocates memory. To ensure proper cleanup you shall call PushL method beforehand.
+ *
+ * @param aIndex an index to get an entry from the collection
+ * @param aEntry the returned element from the collection.
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This is a copy of TLiwGenericParam present in the list at the particular index. To ensure proper cleanup
+ * TLiwGenericParam::PushL method should be called beforehand.
+ *
+ * @code
+ * CLiwGenericParamList* param = CLiwGenericParamList::NewLC();
+ * //... param is filled with some semantic Id and TLiwVariant value ...
+ *
+ * TLiwGenericParam outParam;
+ * outParam.PushL();
+ * //This pushes the parameter object "outParam" into the CleanupStack using TCleanupItem and ParamCleanup.
+ *
+ * param->AtL(0,outParam);
+ * //This fills the "outParam" with the parameter value present in the 0th position of parameter list, but
+ * //if there is any Leave in AtL, then ParamCleanup method is called for proper cleanup
+ *
+ * CleanupStack::Pop(&outParam);
+ * outParam.Reset();
+ * CleanupStack::PopAndDestroy(param);
+ * @endcode
+ *
+ * @return false if no element is found at the passed index;
+ * true if an element is found
+ *
+ * @see CLiwDefaultList::AtL
+ * @see TLiwGenericParam::PushL
+ */
+ IMPORT_C void AtL(TInt aIndex, TLiwGenericParam& aParam) const;
+
+ /**
+ * Appends a parameter to this list.
+ *
+ * @param aParam The parameter to append to this list. This object takes
+ * an own copy of the data in aParam.
+ */
+ IMPORT_C void AppendL(const TLiwGenericParam& aParam);
+
+ /**
+ * Copies the given list and appends it to end of this list.
+ *
+ * @since Series 60 2.8
+ * @param aList A list to be copied and appended.
+ */
+ IMPORT_C void AppendL(const CLiwGenericParamList& aList);
+
+ /**
+ * Removes the first found item with given semantic id from the list.
+ *
+ * @param aSemanticId Semantic id for the item to be removed.
+ * @return ETrue if an item for the given semantic id was found and removed.
+ * EFalse otherwise.
+ */
+ IMPORT_C TBool Remove(TInt aSemanticId);
+
+ /**
+ * Removes the first found item with given string based semantic id from the list.
+ *
+ * @param aSemanticId Semantic id for the item to be removed.
+ * @return ETrue if an item for the given semantic id was found and removed.
+ * EFalse otherwise.
+ */
+ IMPORT_C void Remove(const TDesC8& aName);
+
+ /**
+ * Deletes all parameters in the list and resets the list.
+ */
+ IMPORT_C void Reset();
+
+ /**
+ * Returns the first item matching the given semantic ID.
+ *
+ * @param aIndex Position in which to start searching. On return it contains
+ * the position of the found parameter. It is set to KErrNotFound,
+ * if no matching items were found.
+ * @param aSemanticId The semantic ID of the parameter.
+ * @param aDataType The type id of data. Default is any type.
+ * @return The first matching item.
+ */
+ IMPORT_C const TLiwGenericParam* FindFirst(
+ TInt& aIndex,
+ LIW::TGenericParamId aSemanticId,
+ LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+ /**
+ * Returns the next item matching the given semantic ID.
+ *
+ * @param aIndex Position after which to start searching. On return it contains
+ * the position of the found parameter. It is set to KErrNotFound,
+ * if no matching items were found.
+ * @param aSemanticId The semantic ID of the parameter.
+ * @param aDataType The type id of data. Default is any type.
+ * @return The next matching item.
+ */
+ IMPORT_C const TLiwGenericParam* FindNext(
+ TInt& aIndex,
+ LIW::TGenericParamId aSemanticId,
+ LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+
+ /**
+ * Returns item matching the given name.
+ *
+ * @param aIndex Position in which to start searching, on return contains
+ * position of the found parameter. Is set to KErrNotFound,
+ * if no matching items were found.
+ * @param aName Parameter name.
+ * @param aDataType The type id of data. Default is any type.
+ * @return The first matching item.
+ */
+ IMPORT_C const TLiwGenericParam* FindFirst(
+ TInt& aIndex,
+ const TDesC8& aName,
+ LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+
+ /**
+ * Returns item matching the given name.
+ *
+ * @param aIndex Position in which to start searching, on return contains
+ * position of the found parameter. Is set to KErrNotFound,
+ * if no matching items were found.
+ * @param aName Parameter name.
+ * @param aDataType The type id of data. Default is any type.
+ * @return The first matching item.
+ */
+ IMPORT_C const TLiwGenericParam* FindNext(
+ TInt& aIndex,
+ const TDesC8& aName,
+ LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+
+ /**
+ * Externalizes this parameter list to a stream.
+ *
+ * @param aStream The stream.
+ * @see NewL(RReadStream& aStream)
+ * @see NewLC(RReadStream& aStream)
+ */
+ IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+ /**
+ * Returns the externalized size of the parameter list in bytes.
+ *
+ * @return The size.
+ */
+ IMPORT_C TInt Size() const;
+
+ /**
+ * Internalizes the parameter list from a stream.
+ *
+ * @since Series60 2.8
+ * @param aStream The stream.
+ */
+ IMPORT_C void InternalizeL(RReadStream& aStream);
+
+ /**
+ * Packs the parameter list to TIpcArgs structure for
+ * passing the generic param list to server over process boundary.
+ * Only one RFile handle parameter can be passed over process boundary.
+ *
+ * @since Series60 3.0
+ * @param aArgs Inter process call arguments.
+ * @return Packed parameter list.
+ */
+ IMPORT_C HBufC8* PackForServerL(TIpcArgs& aArgs);
+
+ /**
+ * Unpacks the list from client message structure.
+ *
+ * @since Series60 3.0
+ * @param aArgs The list to be unpacked.
+ */
+ IMPORT_C void UnpackFromClientL(const RMessage2& aArgs);
+
+ private: // Implementation
+ CLiwGenericParamList();
+ void ConstructL();
+ void AppendL(RReadStream& aReadStream);
+
+ private: // Data
+ /// Own: the parameter list
+ RArray<TLiwGenericParam> iParameters;
+ friend class CLiwDefaultList;
+ friend class CLiwDefaultMap;
+ };
+
+
+// INLINE FUNCTIONS
+#include "liwgenericparam.inl"
+
+#endif // LIW_GENERIC_PARAM_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwgenericparam.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,303 @@
+/*
+* Copyright (c) 2003-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: LIW generic parameter definitions.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_GENERIC_PARAM_HRH
+#define LIW_GENERIC_PARAM_HRH
+namespace LIW
+{
+
+/**
+ * Pre-defined sematic IDs for generic parameters (TLiwGenericParam).
+ * The data type of the parameter specifies the representation of the parameter.
+ * Use TGenericParamId instead of using TGenericParamIdValue directly.
+ * Additional generic param definitions are possible besides this list.
+ * @see TLiwGenericParam.
+ */
+enum TGenericParamIdValue
+ {
+ EGenericParamUnspecified = 0,
+
+ // General parameters
+ EGenericParamError = 1, // Any error parameter
+ EGenericParamDir = 2, // Any directory
+ EGenericParamFile = 3, // Any file
+ EGenericParamURL = 4, // Any URL
+ EGenericParamApplication = 5, // Application
+ EGenericParamInstallPackage = 6, // Install package
+ EGenericParamDRMFile = 7,
+ EGenericParamMIMEType = 8,
+ EGenericParamCharSet = 9,
+
+ // NOTE: Next id is a special semantic id reserved for LIW framework.
+ // A consumer application should never add it to parameter list.
+ EGenericParamServiceCommand = 10,
+
+ // NOTE: Next id is to be used only internally by DocumentHandler.
+ // Do not not use it for anything else.
+ EGenericParamInternalFile = 11,
+
+
+ EGenericParamNameAsString = 12,
+ EGenericParamNameAsStringTransient = 13,
+
+ // Application services
+ EGenericParamContactItem = 20,
+ EGenericParamCalendarItem = 21,
+ EGenericParamMessageItem = 22,
+ EGenericParamNoteItem = 23,
+ EGenericParamHelpItem = 24,
+ EGenericParamAlarmItem = 25,
+ EGenericParamLogItem = 26,
+ EGenericParamPhoneNumber = 27,
+ EGenericParamAccessPoint = 28,
+ EGenericParamSIPAddress = 29,
+
+ EGenericParamMessageItemSMS = 30,
+ EGenericParamMessageItemEMail = 31,
+ EGenericParamMessageItemMMS = 32,
+
+ EGenericParamEmailAddress = 33,
+ EGenericParamWVID = 34,
+ EGenericParamDateTime = 35,
+
+ EGenericParamMessageItemMbox = 36,
+
+ // SIM items
+ EGenericParamSIMContactItem = 40,
+ EGenericParamSIMAppItem = 41,
+
+ // Browser items
+ EGenericParamReferringURI = 50,
+
+ // Music Player items
+ EGenericParamPlayerInitMode = 60,
+ EGenericParamAlbumItems = 61,
+ EGenericParamAlbumName = 62,
+
+ // Print parameters
+ EGenericParamPrintXMLFile = 70,
+
+ // Call parameters
+ //EGenericParamCallDialDataV1 = 80, // CR JKON-6ZNGMS
+ EGenericParamCallDialData = 81,
+
+ // Sprint media gallery provider specific
+ EGenricParamMGItemType = 90,
+ EGeneriParamMGMediaType = 91,
+ EGeneriParamMGViewType = 92,
+ EGenericParamMGSubviewtype = 93,
+ EGenericParamMGMarked = 94,
+ EGenericParamCdmaExtendedAMSData = 95,
+ EGenericParamCdmaExtendedLightSurfData = 96,
+
+ EGenericParamSilentDownload = 110,
+ EGenericParamSuppressLaunch = 111,
+ EGenericParamSuppressNextUrl = 112,
+
+ EGenericParamPoCData = 120,
+ EGenericParamPoCLaunchView = 121,
+
+ EGenericParamAllowMove = 130,
+ EGenericParamAllowSave = 131,
+
+ EGenericParamFileSaved = 140,
+
+ EGenericParamLocation = 150,
+
+ EGenericParamFotaPkgId = 160,
+
+ EGenericParamMMSSizeLimit = 170,
+ EGenericParamResolution = 171,
+
+ EGenericParamSuppressDownloadConfirmation = 180,
+ EGenericParamDownloadId = 181,
+
+ EGenericParamPassword = 190,
+ EGenericParamUserName = 191,
+ EGenericParamBookmarkName = 192,
+
+ EGenericParamContactSelectionData = 200,
+ EGenericParamContactLinkArray = 201,
+ EGenericParamContactStoreUriArray = 202,
+ EGenericParamSelectedCount = 203,
+ EGenericParamContactAssignData = 204,
+
+ EGenericParamLandmark = 210,
+ EGenericParamLandmarkDatabase = 211,
+ EGenericParamLandmarkId = 212,
+ EGenericParamLandmarkIdList = 213,
+ EGenericParamMnCommonOptions = 214,
+ EGenericParamMnMapViewOptions = 215,
+ EGenericParamMnGeocodingOptions = 216,
+ EGenericParamRequestText = 217,
+
+ // Enterprise telephony parameters
+ EGenericParamModeActivation = 220,
+ EGenericParamDisplayString = 221,
+
+ EGenericParamSpeedDialIndex = 230,
+
+ // In-device search parameters
+ EGenericParamKeywords = 240,
+ EGenericParamCallAppLocName = 241,
+ EGenericParamStartOption = 242,
+ EGenericParamSearchContent = 243,
+
+ EGenericParamTerminate = 250,
+
+ //For Image viewer slideshow support
+ EGenericParamSlideshow = 251,
+
+ //For Search functionality
+ EGenericParamSearchDomain = 260,
+ EGenericParamSearchSubject = 261,
+ EGenericParamSearchProvider = 262,
+ EGenericParamSearchOptions = 263,
+ EGenericParamTransactionID = 264
+
+ };
+
+
+// String constants for above sematic ids to be used in content matching.
+
+#define EGenericParamUnspecifiedStr "0"
+#define EGenericParamErrorStr "1"
+#define EGenericParamDirStr "2"
+#define EGenericParamFileStr "3"
+#define EGenericParamURLStr "4"
+#define EGenericParamApplicationStr "5"
+#define EGenericParamInstallPackageStr "6"
+#define EGenericParamDRMFileStr "7"
+#define EGenericParamMIMETypeStr "8"
+#define EGenericParamCharSetStr "9"
+#define EGenericParamServiceCommandStr "10"
+#define EGenericParamInternalFileStr "11"
+#define EGenericParamNameAsStringStr "12"
+
+#define EGenericParamContactItemStr "20"
+#define EGenericParamCalendarItemStr "21"
+#define EGenericParamMessageItemStr "22"
+#define EGenericParamNoteItemStr "23"
+#define EGenericParamHelpItemStr "24"
+#define EGenericParamAlarmItemStr "25"
+#define EGenericParamLogItemStr "26"
+#define EGenericParamPhoneNumberStr "27"
+#define EGenericParamAccessPointStr "28"
+#define EGenericParamSIPAddressStr "29"
+
+#define EGenericParamMessageItemSMSStr "30"
+#define EGenericParamMessageItemEMailStr "31"
+#define EGenericParamMessageItemMMSStr "32"
+
+#define EGenericParamEmailAddressStr "33"
+#define EGenericParamWVIDStr "34"
+#define EGenericParamDateTimeStr "35"
+
+#define EGenericParamMessageItemMboxStr "36"
+
+#define EGenericParamSIMContactItemStr "40"
+#define EGenericParamSIMAppItemStr "41"
+
+#define EGenericParamReferringURIStr "50"
+
+#define EGenericParamPlayerInitModeStr "60"
+#define EGenericParamAlbumItemsStr "61"
+#define EGenericParamAlbumNameStr "62"
+
+#define EGenericParamPrintXMLFileStr "70"
+
+#define EGenericParamCallDialDataV1Str "80"
+#define EGenericParamCallDialDataStr "81"
+
+#define EGenricParamMGItemTypeStr "90"
+#define EGeneriParamMGMediaTypeStr "91"
+#define EGeneriParamMGViewTypeStr "92"
+#define EGenericParamMGSubviewtypeStr "93"
+#define EGenericParamMGMarkedStr "94"
+#define EGenericParamCdmaExtendedAMSDataStr "95"
+#define EGenericParamCdmaExtendedLightSurfDataStr "96"
+
+#define EGenericParamSilentDownloadStr "110"
+#define EGenericParamSuppressLaunchStr "111"
+#define EGenericParamSuppressNextUrlStr "112"
+
+#define EGenericParamPoCDataStr "120"
+#define EGenericParamPoCLaunchViewStr "121"
+
+#define EGenericParamAllowMoveStr "130"
+#define EGenericParamAllowSaveStr "131"
+
+#define EGenericParamFileSavedStr "140"
+
+#define EGenericParamLocationStr "150"
+
+#define EGenericParamFotaPkgIdStr "160"
+
+#define EGenericParamMMSSizeLimitStr "170"
+#define EGenericParamResolutionStr "171"
+
+#define EGenericParamSuppressDownloadConfirmationStr "180"
+#define EGenericParamDownloadIdStr "181"
+
+#define EGenericParamPasswordStr "190"
+#define EGenericParamUserNameStr "191"
+#define EGenericParamBookmarkNameStr "192"
+
+#define EGenericParamContactSelectionDataStr "200"
+#define EGenericParamContactLinkArrayStr "201"
+#define EGenericParamContactStoreUriArrayStr "202"
+#define EGenericParamSelectedCountStr "203"
+#define EGenericParamContactAssignDataStr "204"
+
+#define EGenericParamLandmarkStr "210"
+#define EGenericParamLandmarkDatabaseStr "211"
+#define EGenericParamLandmarkIdStr "212"
+#define EGenericParamLandmarkIdListStr "213"
+#define EGenericParamMnCommonOptionsStr "214"
+#define EGenericParamMnMapViewOptionsStr "215"
+#define EGenericParamMnGeocodingOptionsStr "216"
+#define EGenericParamRequestTextStr "217"
+
+#define EGenericParamModeActivationStr "220"
+#define EGenericParamDisplayStringStr "221"
+
+#define EGenericParamSpeedDialIndexStr "230"
+
+#define EGenericParamKeywordsStr "240"
+#define EGenericParamCallAppLocNameStr "241"
+#define EGenericParamStartOptionStr "242"
+#define EGenericParamSearchContentStr "243"
+
+#define EGenericParamTerminateStr "250"
+#define EGenericParamSlideshowStr "251"
+
+#define EGenericParamSearchDomainStr "260"
+#define EGenericParamSearchSubjectStr "261"
+#define EGenericParamSearchProviderStr "262"
+#define EGenericParamSearchOptionsStr "263"
+#define EGenericParamTransactionIDStr "264"
+}
+#endif // LIW_GENERIC_PARAM_HRH
+
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwgenericparam.inl Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,107 @@
+/*
+* 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 the License "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: Inline function implementations of class TLiwGenericParam.
+*
+*/
+
+
+
+
+
+
+
+inline TLiwGenericParam::TLiwGenericParam() :
+ iSemanticId(LIW::EGenericParamUnspecified), iValue(), iReserved(NULL)
+ {
+ }
+
+inline TLiwGenericParam::TLiwGenericParam(LIW::TGenericParamId aSemanticId) :
+ iSemanticId(aSemanticId), iValue(), iReserved(NULL)
+ {
+ }
+
+inline TLiwGenericParam::TLiwGenericParam(LIW::TGenericParamId aSemanticId,
+ const TLiwVariant& aValue) :
+ iSemanticId(aSemanticId), iValue(aValue), iReserved(NULL)
+ {
+ }
+
+
+inline TLiwGenericParam::TLiwGenericParam(const TDesC8& aName, const TLiwVariant& aValue)
+ {
+ iSemanticId = LIW::EGenericParamNameAsStringTransient;
+ iReserved = (TAny*)&aName;
+ iValue = aValue;
+ }
+
+inline void TLiwGenericParam::SetSemanticId(LIW::TGenericParamId aSemanticId)
+ {
+ iSemanticId = aSemanticId;
+ }
+
+inline void TLiwGenericParam::SetNameL(const TDesC8& aName)
+ {
+ iSemanticId = LIW::EGenericParamNameAsString;
+ delete iReserved;
+ iReserved = (TAny*)aName.AllocL();
+ }
+
+inline void TLiwGenericParam::SetNameAndValueL(const TDesC8& aName, const TLiwVariant& aValue)
+ {
+ delete iReserved;
+ iValue.Reset();
+ iSemanticId = LIW::EGenericParamNameAsString;
+ iReserved = (TAny*)aName.AllocL();
+ iValue = aValue;
+ }
+
+inline LIW::TGenericParamId TLiwGenericParam::SemanticId() const
+ {
+ return iSemanticId;
+ }
+
+inline const TDesC8& TLiwGenericParam::Name() const
+ {
+ if (iSemanticId == LIW::EGenericParamNameAsStringTransient)
+ return *((TDesC8*)iReserved);
+ else
+ return ((iReserved) ? *((HBufC8*)iReserved) : KNullDesC8());
+ }
+
+inline TLiwVariant& TLiwGenericParam::Value()
+ {
+ return iValue;
+ }
+
+inline const TLiwVariant& TLiwGenericParam::Value() const
+ {
+ return iValue;
+ }
+
+inline void TLiwGenericParam::Reset()
+ {
+ if (iSemanticId != LIW::EGenericParamNameAsStringTransient) delete iReserved;
+ iReserved = NULL;
+ iSemanticId = LIW::EGenericParamUnspecified;
+ iValue.Reset();
+ }
+
+inline TBool operator!=(const TLiwGenericParam& aLhs,
+ const TLiwGenericParam& aRhs)
+ {
+ return !(aLhs == aRhs);
+ }
+
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwvariant.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,2029 @@
+/*
+* 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 the License "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: Variant data type for LIW generic parameters.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_VARIANT_H
+#define LIW_VARIANT_H
+
+// INCLUDES
+#include <e32std.h>
+#include <s32strm.h>
+#include <f32file.h>
+#include "liwvarianttype.hrh"
+
+// FORWARD DECLARATIONS
+
+class CLiwGenericParamList;
+class MLiwNotifyCallback;
+
+// New variant types
+class CLiwContainer;
+class CLiwIterable;
+class CLiwList;
+class CLiwMap;
+class MLiwInterface;
+class CLiwBuffer;
+
+
+// CLASS DECLARATION
+
+/**
+* Variant data class to hold a value of a TLiwGenericParam instance.
+* The variant contains a data type and a value. This class is attached to
+* TLiwGenericParam instance which holds the semantic type of the value.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see TLiwGenericParam
+*/
+class TLiwVariant
+ {
+ public: // Constructors
+ /**
+ * Default constructor. Initializes this variant to be empty.
+ *
+ * @post IsEmpty()
+ */
+ inline TLiwVariant();
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(TInt32 aValue);
+
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(TInt64 aValue);
+
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(TUint aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(TBool aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const TUid& aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const TTime& aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const TDesC& aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const HBufC* aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const TDesC8& aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const RFile& aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const CLiwList* aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const CLiwMap* aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const MLiwInterface* aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const CLiwIterable* aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(TReal aValue);
+
+ /**
+ * Constructor from a value.
+ *
+ * @param aValue The value to set for this variant object.
+ */
+ inline TLiwVariant(const CLiwBuffer* aValue);
+
+ /**
+ * Copy constructor. Does not take ownership of data.
+ *
+ * @param aSrc The source object.
+ */
+ IMPORT_C TLiwVariant(const TLiwVariant& aSrc);
+
+ /**
+ * Assignment operator. Does not take ownership of data.
+ *
+ * @param aValue The source object.
+ */
+ IMPORT_C TLiwVariant& TLiwVariant::operator=(const TLiwVariant& aValue);
+
+ // This class does not need a destructor because memory allocation
+ // policy for variant class has been implemented by TLiwGenericParam
+ // class.
+
+ public: // Interface
+ /**
+ * Returns the type id of data this variant object is holding.
+ */
+ inline LIW::TVariantTypeId TypeId() const;
+
+ /**
+ * Returns ETrue if this variant is empty (it does not hold any value).
+ */
+ inline TBool IsEmpty() const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TInt32& aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TInt64& aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TUid& aValue) const;
+
+ /**
+ * Retrieves the boolean value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+
+ IMPORT_C TBool Get(TUint& aValue) const;
+ /**
+ * Retrieves the boolean value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TBool& aValue) const;
+
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TPtrC& aValue) const;
+
+ //needed at least temporarily for data binding integration...
+ //inline TBool Get(const TPtrC** aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TTime& aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TPtrC8& aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(RFile& aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(CLiwList& aValue) const;
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(CLiwMap& aValue) const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TInt32 AsTInt32() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TInt64 AsTInt64() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TBool AsTBool() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TBool AsTUint() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TUid AsTUid() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TPtrC AsDes() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TTime AsTTime() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TPtrC8 AsData() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C RFile AsFileHandle() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function default initialized data is returned.
+ */
+ IMPORT_C const CLiwList* AsList() const;
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function default initialized data is returned.
+ */
+ IMPORT_C const CLiwMap* AsMap() const;
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function default initialized data is returned.
+ */
+ IMPORT_C MLiwInterface* AsInterface() const;
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function default initialized data is returned.
+ */
+ IMPORT_C CLiwIterable* AsIterable() const;
+
+ /**
+ * Deletes possibly set value and resets this variant to empty.
+ *
+ * @post IsEmpty()
+ */
+ IMPORT_C void Reset();
+
+ /**
+ * Sets integer value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(TInt32 aValue);
+
+ /**
+ * Sets integer value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(TInt64 aValue);
+
+ /**
+ * Sets Boolean value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(TBool aValue);
+
+ /**
+ * Sets Boolean value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(TUint aValue);
+ /**
+ * Sets unique ID value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(const TUid& aValue);
+
+ /**
+ * Sets date and time value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(const TTime& aValue);
+
+ /**
+ * Sets constant text reference to this variant.
+ *
+ * @param aValue Text value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(const TDesC& aValue);
+
+ /**
+ * Sets constant text reference to this variant.
+ *
+ * @param aValue Text value for this variant object to hold.
+ * Ownership is not taken.
+ */
+ inline void Set(const HBufC* aValue);
+
+ /**
+ * Sets constant 8-bit text reference to this variant.
+ *
+ * @param aValue Text value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(const TDesC8& aValue);
+
+ /**
+ * Sets RFile file handle to this variant.
+ *
+ * @param aValue File handle for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(const RFile& aValue);
+
+ /**
+ * Sets list of variants to this variant.
+ *
+ * @param aValue Array of variants for this variant object to hold.
+ * @postcond *this == aValue
+ */
+ IMPORT_C void Set(const CLiwList* aValue);
+
+ /**
+ * Sets map of variants to this variant.
+ *
+ * @param aValue Dictionary of variants for this variant object to hold.
+ * @postcond *this == aValue
+ */
+ IMPORT_C void Set(const CLiwMap* aValue);
+
+ /**
+ * Sets interface pointer to this variant.
+ *
+ * @param aValue Interface pointer for this variant object to hold.
+ * @postcond *this == aValue
+ */
+ IMPORT_C void Set(const MLiwInterface* aValue);
+
+ /**
+ * Sets list of variants to this variant.
+ *
+ * @param aValue Sequence of variants for this variant object to hold.
+ * @postcond *this == aValue
+ */
+ IMPORT_C void Set(const CLiwIterable* aValue);
+
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TDes& aValue) const;
+
+ /**
+ * Sets the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TDes8& aValue) const;
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const TTime& aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const TUid& aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(TInt32 aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(TInt64 aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(TBool aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(TUint aValue);
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const TDesC& aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const HBufC* aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const TDesC8& aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const RFile& aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source.
+ */
+ inline TLiwVariant& operator=(const CLiwList* aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source.
+ */
+ inline TLiwVariant& operator=(const CLiwMap* aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source.
+ */
+ inline TLiwVariant& operator=(const MLiwInterface* aValue);
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source.
+ */
+ inline TLiwVariant& operator=(const CLiwIterable* aValue);
+
+ public:
+ /**
+ * Data copying support for TLiwGenericParam.
+ * Sets the copy of given variant value to this variant
+ * @param aValue variant value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void SetL(const TLiwVariant& aValue);
+ /**
+ * Retrieves the value held by this variant.
+ *
+ * @param aValue If this variant's type does not match the
+ * parameter type, the parameter will not be modified.
+ * @return ETrue if aValue was set, EFalse if types did not match.
+ */
+ IMPORT_C TBool Get(TReal& aValue) const;
+
+ /**
+ * Sets integer value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(TReal aValue);
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C TReal AsTReal() const;
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(TReal aValue);
+
+ /**
+ * Sets integer value to this variant. The previous value is overwritten.
+ *
+ * @param aValue Value for this variant object to hold.
+ * @post *this == aValue
+ */
+ IMPORT_C void Set(const CLiwBuffer* aValue);
+
+ /**
+ * Returns the value held by this variant.
+ *
+ * @return The value held by this variant. If the data type does not
+ * match the function, the default initialized data is returned.
+ */
+ IMPORT_C CLiwBuffer* AsBuffer() const;
+
+ /**
+ * Assignment operator for the variant.
+ *
+ * @param aValue The source object.
+ */
+ inline TLiwVariant& operator=(const CLiwBuffer* aValue);
+
+ /**
+ * TLiwVariant cleanup method
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * Variants can be pushed into the CleanupStack using this method
+ * along with TCleanupItem
+ *
+ * @ param aObj - TLiwVariant Object but of type TAny* for usage with TCleanupItem
+ *
+ * Example 1: Here the client explicitly pushes the variant into the CleanupStack using
+ * TCleanupItem
+ *
+ * @code
+ * TLiwVariant var;
+ *
+ * //The below statement pushes the variant object "var" into the CleanupStack using TCleanupItem and VariantCleanup.
+ * CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &var ) );
+ *
+ * User::Leave(KErrGeneral); //This calls the VariantCleanup method which cleans up TLiwVariant
+ * CleanupStack::Pop(&var); //These statements are not executed due to "Leave"
+ * var.Reset();
+ * @endcode
+ *
+ *
+ * Example 2: Here the client calls the PushL method of TLiwVariant which pushes the object into
+ * the CleanupStack using TCleanupItem
+ *
+ * @code
+ * TLiwVariant var;
+ * var.PushL(); //This pushes the variant object "var" into the CleanupStack using TCleanupItem and VariantCleanup.
+ * User::Leave(KErrGeneral); //This calls the VariantCleanup method which cleans up TLiwVariant
+ * CleanupStack::Pop(&var); //These statements are not executed due to "Leave"
+ * var.Reset();
+ * @endcode
+ *
+ * The clients can use the convenient PushL method which is recommended (as shown in e.g 2) rather than
+ * explicitly pushing the variant object into the CleanupStack using TCleanupItem and VariantCleanup.
+ *
+ * @ see PushL() method
+ */
+ IMPORT_C static void VariantCleanup( TAny* aObj );
+
+
+ /**
+ * A friendly and convenient method to push the TLiwVariant Object into the CleanupStack
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This method informs the CleanupStack that VariantCleanup method should be called incase of
+ * any Leave
+ *
+ * @code
+ * TLiwVariant var;
+ * var.PushL(); //This pushes the variant object "var" into the CleanupStack using TCleanupItem and VariantCleanup.
+ * User::Leave(KErrGeneral); //This calls the VariantCleanup method which cleans up TLiwVariant
+ * CleanupStack::Pop(&var); //These statements are not executed
+ * var.Reset();
+ * @endcode
+ *
+ * This method is recommended than explicitly pushing the parameter object into the CleanupStack
+ * using TCleanupItem and VariantCleanup.
+ *
+ * @see VariantCleanup() method
+ */
+ IMPORT_C void PushL();
+
+ private:
+ /**
+ * Streaming support for TLiwGenericParam.
+ * Internalizes this variant from a stream.
+ */
+ void InternalizeL(RReadStream& aStream);
+
+ /**
+ * Streaming support for TLiwGenericParam.
+ * Externalizes this variant to a stream.
+ */
+ void ExternalizeL(RWriteStream& aStream) const;
+
+ /**
+ * Streaming support for TLiwGenericParam.
+ * Returns the maximum externalized size of this variant in bytes.
+ */
+ TInt Size() const;
+
+ /**
+ * Destroys any dynamic resource owned by this variant.
+ */
+ void Destroy();
+
+ /// Debug invariant
+ void __DbgTestInvariant() const;
+
+ static void CleanupDestroy(TAny* aObj);
+
+ operator TCleanupItem();
+
+ private: // Data
+ /// Type of the data this variant is holding
+ TUint8 iTypeId;
+
+ /// POD storage for a 64-bit integer
+ struct SInt64
+ {
+ TInt32 iLow;
+ TInt32 iHigh;
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ void Set(const TInt64& aTInt64);
+ operator TInt64() const;
+ TBool operator==(const SInt64& aRhs) const;
+ };
+
+ // Data value stored in this variant.
+ // One of these are effective at a time depending on the iTypeId
+ //
+ union UData
+ {
+ TInt32 iInt32; // 32-bit integer
+ TInt64 iLong; // 64-bit integer
+ SInt64 iInt64; // 64-bit integer
+ HBufC* iBufC; // owned string pointer
+ HBufC8* iBufC8; // owned 8-bit data pointer
+ CLiwList* iList; // List
+ CLiwMap* iMap; // Map
+ MLiwInterface* iSession; // Interface Type
+ CLiwIterable* iIterable; // Iterator
+ CLiwBuffer* iBuffer;
+ TBool iBool; //boolean
+ TUint iUint; //Unsinged Integer
+ TReal iReal;
+ };
+
+ UData iData; // Data union
+ TPtrC iPtrC; // Pointer to string
+ TPtrC8 iPtrC8; // Pointer to 8-bit data
+
+ private: // friend declarations
+ friend IMPORT_C TBool operator==(const TLiwVariant& aLhs, const TLiwVariant& aRhs);
+ /// TLiwGenericParam needs access to private streaming and copying methods.
+ friend class TLiwGenericParam;
+ friend class CLiwCriteriaItem;
+
+ };
+
+//definitions of new variant types
+
+// CLASS DECLARATION
+/**
+* A type of variant class to execute a set of service command operations
+* on an interface. The service provider should implement MLiwInterface to group
+* set of related operations and offer them as service commands to the consumers.
+*
+* To maintain its internal state across the execution of service commands and
+* enable invocation of operations directly on the interface, service providers
+* may offer an interface.
+*
+* @lib ServiceHandler.lib
+*
+* @see TLiwVariant
+*/
+class MLiwInterface
+{
+ public:
+
+ /**
+ * The consumer application should call this method to execute a service
+ * command directly on the interface. The service provider should
+ * provide a concrete implementation for the supported service
+ * command aCmdName. The consumer application should fill in the necessary
+ * parameters in \em aInParamList.
+ *
+ * @param aCmdName the name of the service command which the consumer wants to invoke
+ * @param aInParamList the input parameter list, can be empty list
+ * @param [in,out] aOutParamList the output parameter list, can be empty lis. The
+ * service provider can use the output parameter list to fill in necessary return values
+ * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
+ * @param aCallback callback to be registered by consumer application
+ *
+ *
+ *
+ * @see TLiwServiceCmdOptions
+ * @see CLiwGenericParamList
+ * @see MLiwNotifyCallback
+ *
+ */
+ virtual void ExecuteCmdL(const TDesC8& aCmdName,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ MLiwNotifyCallback* aCallback = 0) = 0;
+
+
+ /**
+ * The service provider should provide a concrete implementation
+ * for this method. The internal state of the service provider
+ * implemeting \c MLiwInterface can be reset within this method.
+ * The consumer application should call this method if there
+ * are no more service commands to be executed on the interface.
+ *
+ *
+ *
+ * <p align="center"></p>
+ *
+ */
+ virtual void Close() = 0;
+};
+
+/**
+* Base class for the framework supported container types.
+* \c CLiwContainer is a self managing, reference counted container.
+* This class offers minimal interface to manage the reference counter
+* and to serialize the container data into the stream.
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+*
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects
+*
+* All the container data types supported by the framework are
+* derived from \c CLiwContainer.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see CLiwList
+* @see CLiwMap
+* @see CLiwIterable
+*/
+class CLiwContainer : public CBase
+{
+ public:
+
+ /**
+ * Serializes the collection entries to an output stream.
+ * The derving container types from \c CLiwContainer
+ * should provide a concrete implementation to serialize the collection
+ * data. The default implementation of this method just leaves with
+ * an error code \c KErrNotSupported.
+ *
+ * @param aOutputStream the output stream to which the data will be streamed
+ *
+ * @leave KErrNotSupported whenever this method is called instead
+ * of a dervied class implementation of this method
+ *
+ * @see RWiteStream
+ *
+ */
+ IMPORT_C virtual void ExternalizeL(RWriteStream& aOutputStream) const;
+
+ /**
+ * Returns the size of collection data values. This default implementation of
+ * this method leaves with an error code \c KErrNotSupported. Typically, the size
+ * is calculated based on the size of data type(s) the container holds and the total
+ * number of entries present in the collection.
+ *
+ * @return the size of collection data values
+ *
+ * @leave KErrNotSupported whenever this method is called instead
+ * of derived class implementation of this method
+ */
+ IMPORT_C virtual TInt Size() const;
+
+ /**
+ * Increments the container reference count by one. The reference
+ * count gets incremented whenever a copy of the data values
+ * is made.
+ *
+ */
+ inline void IncRef();
+
+ /**
+ * Decrements the container reference count by one. If there
+ * are no more references to the container type, this container
+ * instance will be deleted.
+ *
+ */
+ inline void DecRef();
+
+ /**
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * Since reference counting does not work with CleanupStack directly,
+ * CleanupStack::PushL cannot be used for container objects which are reference counted
+ *
+ * So CleanupClosePushL method is used for container objects. Hence the need for this method
+ *
+ * This method informs the CleanupStack that Close method should be called incase of any Leave
+ *
+ * Close() inturn calls DecRef which ensures proper cleanup of container objects
+ *
+ *
+ * Example 1: //Using PushL to push the container object into the CleanupStack using CleanupClosePushL
+ *
+ * @code
+ * CLiwMap* map = CLiwDefaultMap::NewL();
+ * map->PushL();
+ * map->InsertL(KNullDesC8,variant); //incase of any leave, CLiwContainer::Close is called
+ * CleanupStack::PopAndDestroy(map); //CLiwContainer::Close() is called
+ * @endcode
+ *
+ * Example 2: //Using NewLC to push the container object into the CleanupStack using CleanupClosePushL
+ *
+ * @code
+ * CLiwMap* map = CLiwDefaultMap::NewLC();
+ * map->InsertL(KNullDesC8,variant); //incase of any leave, CLiwContainer::Close is called
+ * CleanupStack::PopAndDestroy(map); //CLiwContainer::Close() is called
+ * @endcode
+ *
+ * @ see CLiwContainer::NewLC (pushes the container object using CleanupClosePushL)
+ * @ see CLiwContainer::PushL (pushes the container object using CleanupClosePushL)
+ */
+ IMPORT_C void Close();
+
+ /**
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * A Friendly method to push the CLiwContainer Object into the CleanupStack using CleanupClosePushL
+ *
+ * This method informs the CleanupStack that Close method should be called incase of any Leave
+ *
+ * @code
+ * CLiwMap* map = CLiwDefaultMap::NewL();
+ * map->PushL();
+ * map->InsertL(KNullDesC8,variant); //incase of any leave, CLiwContainer::Close is called
+ * CleanupStack::PopAndDestroy(map); //CLiwContainer::Close() is called
+ * @endcode
+ *
+ * @ see CLiwContainer::Close
+ */
+ IMPORT_C void PushL();
+
+ protected:
+
+ /**
+ * Protected default constructor. This method is available
+ * only for the derived container types. The reference
+ * count is set to its default vale.
+ *
+ */
+ CLiwContainer() : iRefCount(1) {}
+
+ /**
+ * Destructor.
+ *
+ */
+ IMPORT_C virtual ~CLiwContainer();
+
+ private:
+
+ /* Reference counter of the container datatype.
+ * During the construction, the counter is set to its
+ * default value of 1. When the counter reaches the value
+ * of zero (meaning that there are no more references to
+ * the container data type), the container instance is deleted.
+ */
+ TInt iRefCount;
+};
+
+/**
+* Abstract interface to iterate over the collection entries.
+* The service provider should provide a concrete implementation
+* for the iterator.
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+*/
+class CLiwIterable : public CLiwContainer
+{
+ public:
+
+ /**
+ * Resets the iterator. The service provider should provide a concrete
+ * implementation to reset the iterator.
+ *
+ */
+ virtual void Reset() = 0;
+
+ /**
+ * Iterates over the collection entries to fetch the next data element.
+ * The service provider should provide a concrete implementation
+ * for this method.
+ *
+ * @param aEntry contains the next data element and its corresponding data type
+ *
+ * @return false if there are no more data elements to be fetched;
+ * true otherwise
+ *
+ */
+ virtual TBool NextL(TLiwVariant& aEntry) = 0;
+
+ /**
+ * Default equality operator implementation
+ *
+ * @param aIterable the iterator instance to be compared
+ *
+ */
+ IMPORT_C virtual TBool operator==(CLiwIterable& aIterable);
+};
+
+/**
+* Abstract interface for an ordered collection or sequence. Typically,
+* the collection entries are of type \c TLiwVariant instances.
+* \c CLiwList offers abstract methods to:
+* <ul>
+* <li>access elements based on an index</li>
+* <li>remove an element from the collection</li>
+* <li>append to an element to the collection</li>
+* <li>remove a key-value pair based on a key</li>
+* <li>get the total number of stored key-value pairs</li>
+* </ul>
+* A default concrete implementation is provided in the form of specialized class
+* \c CLiwDefaultList
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see CLiwDefaultList
+*
+*/
+class CLiwList : public CLiwContainer
+{
+ public:
+
+ /**
+ * Appends an entry to the end of the collection. This is an abstract
+ * method.
+ *
+ * @param aEntry an Element to be added to the end of the collection
+ *
+ * @see CLiwDefaultList::AppendL
+ */
+ virtual void AppendL(const TLiwVariant& aEntry) = 0;
+
+ /**
+ * Gets an entry from the collection based on an integeral index.
+ *
+ * @param aIndex an index to get an entry from the collection
+ * @param aEntry the returned element from the collection
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This is a copy of the value present in the list at the particular index. To ensure proper cleanup
+ * TLiwVariant::PushL method should be called beforehand.
+ *
+ * @return false if no element is found at the passed index;
+ * true if an element is found
+ *
+ * @see CLiwDefaultList::AtL
+ * @see TLiwVariant::PushL
+ */
+ virtual TBool AtL(TInt aIndex, TLiwVariant& aEntry) const = 0;
+
+ /**
+ * Returns the number of elements present in the collection. This
+ * is an abstract method.
+ *
+ * @return the number of elements; Zero if there are no elements stored
+ *
+ * @see CLiwDefaultList::Count
+ */
+ virtual TInt Count() const = 0;
+
+ /**
+ * Removes an element located at the passed index from the collection. This
+ * is an abstract method.
+ *
+ * @param aIndex the index of the element to be removed from the collection
+ *
+ * @see CLiwDefaultList::Remove
+ */
+ virtual void Remove(TInt aIndex) = 0;
+
+ /**
+ * Equality operator implementation for collection container.
+ *
+ * @param aList the list container to be compared
+ *
+ * @return true if the compared list collections are the same; false otherwise
+ *
+ * @see CLiwDefaultList::operator==
+ */
+ IMPORT_C virtual TBool operator==(const CLiwList& aList) const;
+};
+
+/**
+* Abstract interface for an associative array. The collection
+* key entries are of type string (Descriptor type) and their
+* associated values can be an variant type (\c TLiwVariant).
+*
+* \c CLiwMap offers abstract methods to:
+* <ul>
+* <li>insert a key-value pair</li>
+* <li>find a stored value based on a key</li>
+* <li>get a key based on an index</li>
+* <li>remove a key-value pair based on a key</li>
+* <li>get the total number of stored key-value pairs</li>
+* </ul>
+*
+* A default concrete implementation is provided in the form of specialized class
+* \c CLiwDefaultMap
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see TLiwVariant
+* @see CLiwDefaultMap
+*
+*/
+class CLiwMap : public CLiwContainer
+{
+ public:
+
+ /**
+ * Inserts a key-value pair element to the map collection. A default
+ * implementation is provided in \c CLiwDefaultMap.
+ *
+ * @param aKey the key to be stored
+ * @param aValue the value associated with the key to be stored
+ *
+ * @see CLiwDefaultMap::InsertL
+ */
+ virtual void InsertL(const TDesC8& aKey, const TLiwVariant& aValue) = 0;
+
+ /**
+ * Finds a value stored in the map collection based on the key. A default
+ * implementation is provided in \c CLiwDefaultMap.
+ *
+ * @param aKey the key to be searched
+ * @param aFndValue the value associated with the found key
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This is a copy of the value present in the map for the particular key. To ensure proper cleanup
+ * TLiwVariant::PushL method should be called beforehand.
+ *
+ * @return false if there is no key stored; true otherwise
+ *
+ * @see CLiwDefaultMap::FindL
+ * @see TLiwVariant::PushL
+ */
+ virtual TBool FindL(const TDesC8& aKey, TLiwVariant& aFndValue) const = 0;
+
+ /**
+ * Returns the number of key-value pair stored in the map collection. A default
+ * implementation is provided in \c CLiwDefaultMap.
+ *
+ * @return the number of key-value pair stored in the map collection
+ *
+ * @see CLiwDefaultMap::Count
+ */
+ virtual TInt Count() const = 0;
+
+ /**
+ * Returns the key stored at the passed index. A default
+ * implementation is provided in \c CLiwDefaultMap.
+ *
+ * @param aIndex the index of the key to be found
+ * @param aFndKey the key found at the passed index
+ *
+ * @return true if a key-value entry is found at the passed index;
+ * false otherwise
+ *
+ * @see CLiwDefaultMap::AtL
+ *
+ */
+ virtual TBool AtL(TInt aIndex, TDes8& aFndKey) const = 0;
+
+ /**
+ * Returns the key stored at the passed index. A default
+ * implementation is provided in \c CLiwDefaultMap.
+ *
+ * @param aIndex the index of the key to be found
+ *
+ * @return the key if a key-value entry is found at the passed index;
+ * Leaves otherwise
+ *
+ * @see CLiwDefaultMap::AtL
+ *
+ */
+ // virtual const TDesC8& AtL(TInt aIndex) const = 0;
+
+ /**
+ * Removes a key from the map collection. A default
+ * implementation is provided in \c CLiwDefaultMap.
+ *
+ * @param aKey the key to be removed from the map
+ *
+ * @see CLiwDefaultMap::Remove
+ */
+ virtual void Remove(const TDesC8& aKey) = 0;
+
+ /**
+ * Default implementation of equality operator.
+ *
+ * @param aMap the map to be compared
+ *
+ * @see CLiwDefaultMap::operator==
+ *
+ */
+ IMPORT_C virtual TBool operator==(const CLiwMap& aMap) const;
+};
+
+/**
+* An ordered collection or sequence. \c CLiwDefaultList providers
+* a default implementation for \c CLiwList. The collection entries are typically
+* of type \c TLiwVarian.
+*
+* This class provides concrete implementation to:
+* <ul>
+* <li>access elements based on index</li>
+* <li>remove an element</li>
+* <li>append an element to the end of the list collection</li>
+* <li>get the total number of elements stored in the list collection</li>
+* </ul>
+*
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see CLiwList
+* @see TLiwVariant
+*
+*/
+class CLiwDefaultList : public CLiwList
+{
+ public:
+
+ /**
+ * Creates and returns a new instace of \c CLiwDefaultList
+ *
+ * @code
+ * void CreateListL()
+ * {
+ * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+ * pList->PushL(); //pushes the List into cleanupstack using CleanupClosePushL
+ *
+ * CleanupStack::Pop(pList);
+ * pList->DecRef();
+ * }
+ *
+ * @endcode
+ *
+ * @return an instance of \c CLiwDefaultMap
+ *
+ * @ see PushL
+ * @ see Close
+ */
+ IMPORT_C static CLiwDefaultList* NewL();
+
+ /**
+ * Creates and returns a new instace of \c CLiwDefaultList
+ *
+ * @code
+ * void CreateListL()
+ * {
+ * CLiwDefaultList* pList = CLiwDefaultList::NewLC(); //pushes the List into cleanupstack using CleanupClosePushL
+ *
+ * CleanupStack::Pop(pList);
+ * pList->DecRef();
+ * }
+ *
+ * @endcode
+ *
+ * @return an instance of \c CLiwDefaultMap
+ *
+ * @ see PushL
+ * @ see Close
+ */
+ IMPORT_C static CLiwDefaultList* NewLC();
+
+ /**
+ * Creates and returns a new instace of \c CLiwDefaultList. The
+ * collection elements will be generated from the data
+ * values read from the input stream. This method leaves
+ * the created instance in the cleanup stack.
+ *
+ * @param aInputStream the input stream containing the data
+ * values to append to the list collection
+ *
+ * @return an instance of \c CLiwDefaultList
+ */
+ static CLiwDefaultList* NewLC(RReadStream& aInputStream);
+
+ /**
+ * Appends an entry to the end of the collection. The entry to be
+ * added is of type \c TLiwVariant.
+ *
+ * @param aEntry an Element to be added to the end of the collection
+ *
+ *
+ * A string content being added to the end of the collection
+ *
+ * @code
+ * _LIT8(KLitPbkService,"PhoneBookService");
+ * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+ * pList->PushL();
+ * pList->AppendL(TLiwVariant(KLitPbkService));
+ * CleanupStack::Pop(pList);
+ * pList->DecRef();
+ * @endcode
+ *
+ * An integer value being added to the end of the collection
+ *
+ * @code
+ * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+ * pList->PushL();
+ * TInt intVal=0;
+ * pList->AppendL(TLiwVariant(intVal));
+ * CleanupStack::Pop(pList);
+ * pList->DecRef();
+ * @endcode
+ *
+ */
+ IMPORT_C void AppendL(const TLiwVariant& aEntry);
+
+ /**
+ * Gets an entry from the collection based on an integeral index.
+ *
+ * @param aIndex to get an entry from the collection
+ * @param aEntry the returned element from the collection
+ *
+ * @return false if no element is found at the passed index;
+ * true if an element is found
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This is a copy of the value present in the list at the particular index. To ensure proper cleanup
+ * TLiwVariant::PushL method should be called beforehand.
+ *
+ *
+ * An integral value being retrieved from the collection
+ *
+ * @code
+ * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+ * pList->PushL();
+ * TInt intVal=1100; //some magic number
+ * pList->AppendL(TLiwVariant(intVal));
+ *
+ * TInt nIndex=0; //only one entry is stored..
+ * TLiwVariant valFnd;
+ * valFnd.PushL(); //Pushes the TLiwVariant into the CleanupStack using TCleanupItem
+ * if(EFalse!=pList->AtL(nIndex,valFnd))
+ * {
+ * TInt intValFnd=-1;
+ * valFnd.Get(intValFnd);
+ * }
+ *
+ * CleanupStack::PopAndDestroy(valFnd); //Pops and Destroys the TLiwVariant object
+ * CleanupStack::Pop(pList);
+ * pList->DecRef();
+ * @endcode
+ *
+ * @see TLiwVariant::PushL
+ */
+ IMPORT_C TBool AtL(TInt aIndex, TLiwVariant& aEntry) const;
+
+ /**
+ * Returns the number of elements present in the collection.
+ *
+ * @return the number of elements; Zero if there are no elements stored
+ *
+ */
+ IMPORT_C TInt Count() const;
+
+ /**
+ * Removes an element located at the passed index from the collection.
+ *
+ * @param aIndex the index of the element to be removed from the collection
+ *
+ *
+ * An element being removed from the collection
+ *
+ * @code
+ * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+ * pList->PushL();
+ * TInt intVal=1100; //some magic number
+ * pList->AppendL(TLiwVariant(intVal));
+ *
+ * TInt nIndex=0; //only one entry is stored..
+ * pList->Remove(nIndex);
+ *
+ * if(0==pList->Count())
+ * {
+ * //should be zero
+ * }
+ *
+ * CleanupStack::Pop(pList);
+ * pList->DecRef();
+ * @endcode
+ *
+ */
+ IMPORT_C void Remove(TInt aIndex);
+
+ /**
+ * Serializes the collection data entries to an output stream.
+ *
+ * @param aOutputStream the output stream to which the data will be streamed
+ *
+ * @see RWiteStream
+ */
+ IMPORT_C void ExternalizeL(RWriteStream& aOutputStream) const;
+
+ /**
+ * Returns the size of the collection. The size is
+ * calculated based on the total numer of elements
+ * and the size of each element in the collection
+ *
+ * @return the size of the collection
+ */
+ IMPORT_C TInt Size() const;
+
+ private:
+
+ /*
+ * Constructor
+ */
+ CLiwDefaultList(CLiwGenericParamList* aList) : iList(aList) {}
+
+ /*
+ * Destructor
+ */
+ IMPORT_C virtual ~CLiwDefaultList();
+
+ /*
+ * the underlying generic parameter list
+ */
+ CLiwGenericParamList* iList;
+};
+
+/**
+* An associative array or dictionary class. The collection
+* key entries are of type string (Descriptor type) and their
+* associated values can be an variant type.
+*
+* \c CLiwDefaultMap provides default map implementation to
+* <ul>
+* <li>insert a key-value pair</li>
+* <li>find a stored value based on a key</li>
+* <li>get a key based on an index</li>
+* <li>remove a key-value pair based on a key</li>
+* <li>get the total number of stored key-value pairs</li>
+* </ul>
+*
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see TLiwVariant
+* @see CLiwMap
+*
+*/
+class CLiwDefaultMap : public CLiwMap
+{
+ public:
+
+ /*
+ * Creates an instance of \c CLiwDefaultMap
+ *
+ * Instance of the map created, can be pushed into the CleanupStack using PushL()
+ * to ensure proper cleanup of this container object
+ *
+ * @code
+ * void CreateMapL()
+ * {
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+ * pMap->PushL(); //pushes the map into cleanupstack using CleanupClosePushL
+ *
+ * CleanupStack::Pop(pMap);
+ * pMap->DecRef();
+ * }
+ *
+ * @endcode
+ *
+ * @return an instance of \c CLiwDefaultMap
+ *
+ * @ see PushL
+ * @ see Close
+ */
+ IMPORT_C static CLiwDefaultMap* NewL();
+
+ /*
+ * Creates an instance of \c CLiwDefaultMap
+ *
+ * Pushes the map into the CleanupStack using CleanupClosePushL
+ *
+ * @code
+ * void CreateMapL()
+ * {
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewLC(); //pushes the map into cleanupstack using CleanupClosePushL
+ *
+ * CleanupStack::Pop(pMap);
+ * pMap->DecRef();
+ * }
+ *
+ * @endcode
+ * @return an instance of \c CLiwDefaultMap
+ *
+ * @ see Close
+ */
+ IMPORT_C static CLiwDefaultMap* NewLC();
+
+ /*
+ * Creates an instance of \c CLiwDefaultMap and
+ * fills up the collection entries from the input stream.
+ * The created instance is left in the cleanupstack.
+ *
+ * @return an instance of \c CLiwDefaultMap
+ */
+ static CLiwDefaultMap* NewLC(RReadStream& aInputStream);
+
+ /**
+ * Inserts a key-value pair element to the map collection. If
+ * the specified key already exists, it will be removed from
+ * the collection and the new key-value pair will be added to the
+ * map.
+ *
+ * @param aKey the key to be stored
+ * @param aValue the value associated with the key to be stored
+ *
+ *
+ * @code
+ * void AddMapEntryL(const TDesC* ptrFirstNameVal)
+ * {
+ * _LIT8(KKey,"firstName");
+ * TBuf8<128> pbkFieldKey(KKey);
+ *
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+ * pMap->PushL(); //pushes the map into cleanupstack using CleanupClosePushL
+ * pMap->InsertL(pbkFieldKey, TLiwVariant(*ptrFirstNameVal));
+ * CleanupStack::Pop(pMap);
+ * pMap->DecRef();
+ * }
+ *@endcode
+ *
+ */
+ IMPORT_C void InsertL(const TDesC8& aKey, const TLiwVariant& aValue);
+
+ /**
+ * Finds a value stored in the map collection based on the key.
+ *
+ * @param aKey the key to be searched
+ * @param aFndValue the value associated with the found key
+ *
+ * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ *
+ * This is a copy of the value present in the map for the particular key. To ensure proper cleanup
+ * TLiwVariant::PushL method should be called beforehand.
+ *
+ * @return false if there is no key stored; true otherwise
+ *
+ *
+ *
+ * @code
+ * void FindAnEntryL()
+ * {
+ * _LIT8(KKey,"firstName");
+ * TBuf8<128> pbkFieldKey(KKey);
+ * TLiwVariant firstNameVal;
+ * firstNameVal.PushL();
+ *
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+ * pMap->PushL();
+ * if(EFalse!=pMap->FindL(pbkFieldKey, firstNameVal))
+ * {
+ * //key value has been found
+ * }
+ *
+ * CleanupStack::PopAndDestroy(pMap);
+ * CleanupStack::PopAndDestroy(firstNameVal);
+ * }
+ * @endcode
+ *
+ * @see TLiwVariant::PushL
+ */
+ IMPORT_C TBool FindL(const TDesC8& aKey, TLiwVariant& aValue) const;
+
+ /**
+ * Returns the number of key-value pair stored in the map collection.
+ *
+ * @return the number of key-value pair stored in the map collection
+ */
+ IMPORT_C TInt Count() const;
+
+ /**
+ * Returns the key stored at a specified index.
+ *
+ * @param aIndex the index of the key to be found
+ * @param aFndKey the key found at the passed index
+ *
+ * @return true if a key-value entry is found at the passed index;
+ * false otherwise
+ *
+ *
+ *
+ * @code
+ * void FindAnEntryL()
+ * {
+ * _LIT8(KKey,"firstName");
+ * TBuf8<128> pbkFieldKeyVal(KKey);
+ *
+ * TInt nIndex=0;
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+ * pMap->PushL();
+ *
+ * if(EFalse!=pMap->AtL(nIndex, pbkFieldKeyVal))
+ * {
+ * //key value has been found
+ * }
+ *
+ * CleanupStack::Pop(pMap);
+ * pMap->DecRef();
+ * }
+ * @endcode
+ *
+ */
+ IMPORT_C TBool AtL(TInt aIndex, TDes8& aFndKey) const;
+
+ /**
+ * Returns the key stored at a specified index.
+ *
+ * @param aIndex the index of the key to be found
+ * @param aFndKey the key found at the passed index
+ *
+ *
+ * @return the key if a key-value entry is found at the passed index;
+ * Leaves otherwise
+ *
+ *
+ *
+ * @code
+ * void FindAnEntryL()
+ * {
+ * _LIT8(KKey,"firstName");
+ * TBuf8<128> pbkFieldKeyVal(KKey);
+ *
+ * TInt nIndex=0;
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+ * pMap->PushL();
+ *
+ * pbkFieldKeyVal = pMap->AtL(nIndex);
+ * if(pbkFieldKeyVal)
+ * {
+ * //key value has been found
+ * }
+ *
+ * CleanupStack::Pop(pMap);
+ * pMap->DecRef();
+ * }
+ * @endcode
+ *
+ */
+ IMPORT_C const TDesC8& AtL(TInt aIndex) const;
+
+ /**
+ * Removes a key from the map collection.
+ *
+ * @param aKey the key to be removed from the map
+ *
+ *
+ *
+ * @code
+ * void RemoveMapEntryL(const TDesC* ptrFirstNameVal)
+ * {
+ * _LIT8(KKey,"firstName");
+ * TBuf8<128> pbkFieldKey(KKey);
+ * CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+ * pMap->PushL();
+ *
+ * pMap->InsertL(pbkFieldKey, TLiwVariant(*ptrFirstNameVal));
+ * pMap->Remove(pbkFieldKey);
+ *
+ * if(0==pMap->Count())
+ * {
+ * //no entries stored; removal successful
+ * }
+ *
+ * CleanupStack::Pop(pMap);
+ * pMap->DecRef();
+ * }
+ * @endcode
+ *
+ */
+ IMPORT_C void Remove(const TDesC8& aKey);
+
+ /**
+ * The container managed data values can be serialized to an output
+ * stream.
+ *
+ * @param aOutputStream the output stream to which the data will be streamed
+ *
+ *
+ *
+ * @see RWiteStream
+ *
+ */
+ void ExternalizeL(RWriteStream& aOutputStream) const;
+
+ /**
+ * Returns the size of the collection. The size is
+ * calculated based on the total numer of key-value elements
+ * and the size of each pair in the collection
+ *
+ * @return the size of the collection
+ */
+ IMPORT_C TInt Size() const;
+
+ private:
+
+ /*
+ * Constructor
+ */
+ CLiwDefaultMap(CLiwGenericParamList* aMap) : iMap(aMap) {}
+
+ /*
+ * Destructor
+ */
+ IMPORT_C virtual ~CLiwDefaultMap();
+
+ /*
+ * the underlying generic parameter list
+ */
+ CLiwGenericParamList* iMap;
+};
+
+/**
+* Abstract generic buffer representation. Class used for passing generic buffer data between
+* service provider and the consumers.
+
+* The class offers APIs for the consumers to access the buffer data in a generic manner. Depending on
+* the data agreement between the service provider and its consumers, one
+* or more of the API operations may be inappropriate e.g. a service provider may not
+* support write operation on the buffer
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+*/
+class CLiwBuffer : public CLiwContainer
+{
+ public:
+ enum TLiwBufferAccess
+ {
+ KLiwBufferNonReadable = 0,
+ KLiwBufferReadOnly = 1
+ };
+
+
+ /*
+ * Returns the pointer to the underlying buffer
+ *
+ * @return the pointer to the underlying buffer
+ */
+ virtual TUint8* Buf() const =0;
+
+ /*
+ * Returns the length of the buffer data
+ *
+ * @return the length of the buffer data
+ */
+ virtual TInt Len() =0;
+
+ /*
+ * Reads the specified number of bytes of buffer data
+ *
+ * @param aPtr the pointer to the area into which buffer data is read
+ * @param aLength the number of bytes to be read from the buffer
+ *
+ * @return KErrNone if the operation is successful; Otherwise
+ * TLiwBufferAccess::KLiwBufferNonReadable
+ *
+ */
+ inline virtual TInt Read(TUint8* /*aPtr*/,TInt /*aLength*/)
+ {
+ return KLiwBufferNonReadable;
+ }
+
+ /*
+ * Writes the specified number of bytes into the buffer
+ *
+ * @param aPtr the pointer to the data to be written into buffer
+ * @param aLength the number of bytes to be written into buffer
+ *
+ * @return KErrNone if the operation is successful; Otherwise
+ * TLiwBufferAccess::KLiwBufferReadOnly if writing is not supported
+ *
+ */
+ inline virtual TInt Write(const TUint8 * /*aPtr*/, TInt /*aLength*/)
+ {
+ return KLiwBufferReadOnly;
+ }
+
+ /*
+ * Releases the buffer. The service provider implementing concrete buffer
+ * type should provide appropriate implementation
+ */
+ virtual void Release() =0;
+
+ /*
+ * Returns the appropriate type of buffer.
+ */
+ virtual TInt TypeID()=0;
+
+ /*
+ * The concrete implementation of buffer types should perform equality operation
+ * check
+ */
+ virtual TBool operator==(CLiwBuffer& aBuffer) =0;
+};
+
+/**
+* Returns ETrue if two variants are equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if equal, EFalse otherwise.
+*/
+IMPORT_C TBool operator==(const TLiwVariant& aLhs, const TLiwVariant& aRhs);
+
+/**
+* Returns ETrue if two variants are not equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if not equal, EFalse otherwise.
+*/
+inline TBool operator!=(const TLiwVariant& aLhs, const TLiwVariant& aRhs);
+
+/**
+* Dumps the contents of aVariant to debug output. Available only in debug builds.
+*
+* @param aVariant The object to be dumped.
+*/
+IMPORT_C void Dump(const TLiwVariant& aVariant);
+
+
+// INLINE FUNCTIONS
+#include "liwvariant.inl"
+
+#endif // LIW_VARIANT_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwvariant.inl Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,247 @@
+/*
+* 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 the License "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: Inline function implementations of class TLiwVariant.
+*
+*/
+
+
+
+
+
+
+
+
+inline TLiwVariant::TLiwVariant() : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ iData.iBufC = NULL;
+ iData.iBufC8 = NULL;
+ Reset();
+ }
+
+inline TLiwVariant::TLiwVariant(TInt32 aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(TInt64 aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(TBool aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(TUint aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+inline TLiwVariant::TLiwVariant(TReal aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+inline TLiwVariant::TLiwVariant(const CLiwBuffer* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const TUid& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const TDesC& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ iData.iBufC = NULL;
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const HBufC* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ iData.iBufC = NULL;
+ if(aValue)
+ Set(*aValue);
+ else
+ Reset();
+ }
+
+inline TLiwVariant::TLiwVariant(const TTime& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const TDesC8& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ iData.iBufC8 = NULL;
+ Set(aValue);
+ }
+
+
+inline TLiwVariant::TLiwVariant(const RFile& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+
+inline TLiwVariant::TLiwVariant(const CLiwList* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const CLiwMap* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const MLiwInterface* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline TLiwVariant::TLiwVariant(const CLiwIterable* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+ {
+ Set(aValue);
+ }
+
+inline LIW::TVariantTypeId TLiwVariant::TypeId() const
+ {
+ return static_cast<LIW::TVariantTypeId>(iTypeId);
+ }
+
+inline TBool TLiwVariant::IsEmpty() const
+ {
+ return (iTypeId == LIW::EVariantTypeNull);
+ }
+
+inline void TLiwVariant::Set(const HBufC* aValue)
+ {
+ Set(*aValue);
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(TInt32 aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(TInt64 aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(TReal aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+inline TLiwVariant& TLiwVariant::operator=(const CLiwBuffer* aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(TBool aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(TUint aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const TUid& aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const TDesC& aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const HBufC* aValue)
+ {
+ Set(*aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const TTime& aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+
+inline TLiwVariant& TLiwVariant::operator=(const TDesC8& aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+
+inline TLiwVariant& TLiwVariant::operator=(const RFile& aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+
+inline TLiwVariant& TLiwVariant::operator=(const CLiwList* aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const CLiwMap* aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const MLiwInterface* aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TLiwVariant& TLiwVariant::operator=(const CLiwIterable* aValue)
+ {
+ Set(aValue);
+ return *this;
+ }
+
+inline TBool operator!=(const TLiwVariant& aLhs, const TLiwVariant& aRhs)
+ {
+ return !(aLhs == aRhs);
+ }
+
+
+inline void CLiwContainer::IncRef()
+ {
+ iRefCount++;
+ }
+
+inline void CLiwContainer::DecRef()
+ {
+ if (--iRefCount == 0)
+ delete this;
+ }
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwvarianttype.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* 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 the License "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: Variant data type for Generic Parameters library.
+*
+*/
+
+
+
+
+
+
+
+#include "liwcommon.hrh"
+#ifndef LIW_VARIANT_TYPE_HRH
+#define LIW_VARIANT_TYPE_HRH
+
+namespace LIW {
+
+/**
+* Data formats supported by TLiwVariant class.
+*/
+enum TVariantTypeId
+ {
+ EVariantTypeAny = -1, ///< Used only in searching
+ EVariantTypeNull = 0, ///< Null (empty) type
+
+ EVariantTypeTInt32 = 1, ///< 32 bit Integer
+ EVariantTypeTUid = 2, ///< Globally unique UID
+ EVariantTypeDesC = 3, ///< Constant text literal
+ EVariantTypeTTime = 4, ///< Date and time
+ EVariantTypeDesC8 = 5, ///< 8-bit data buffer
+ EVariantTypeFileHandle = 6, ///< File handle
+ EVariantTypeList = 7, ///< List
+ EVariantTypeMap = 8, ///< Map
+ EVariantTypeInterface = 9, ///< Interface
+ EVariantTypeIterable = 10, ///< Iterable
+ EVariantTypeTBool = 11, ///< Bool Data Type
+ EVariantTypeTUint = 12, ///< Unsigned Integer Data Type
+ EVariantTypeTReal = 13, ///< Float type
+ EVariantTypeBuffer = 14, ///< Buffer type
+ EVariantTypeTInt64 = 15 ///< 64 bit Integer
+ };
+}
+#endif // LIW_VARIANT_TYPE_HRH
+
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwmenu.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,277 @@
+/*
+* 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 the License "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: Declares LIW Menu utilities for providers to access consumer menu.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_MENU_H
+#define LIW_MENU_H
+
+// INCLUDES
+#include <eikmenup.h>
+#include <liwserviceifbase.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+* CLiwMenuPane for providers to have limited access to consumer menu.
+*
+* LIW provider can get a reference to CLiwMenuPane in its InitializeMenuPaneL()
+* method, which is derived from CLiwServiceIfMenu. With this reference,
+* the provider can e.g. insert menu items to the consumer application's menu.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+*/
+class CLiwMenuPane: public CBase
+ {
+ public:
+ /**
+ * Constructor.
+ *
+ * @param aMenuPane Consumer's menu pane handle.
+ * @param aBaseCmdId Base command ID for new menu items, specified by consumer.
+ */
+ IMPORT_C CLiwMenuPane(CEikMenuPane& aMenuPane, TInt aBaseCmdId);
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CLiwMenuPane();
+
+ public:
+ /**
+ * Adds a menu item to consumer menu. For each addition a mapping element
+ * is created. This method should normally be called from provider's
+ * InitializeMenuPaneL().
+ *
+ * @param aServiceCmd The LIW service command the provider implements.
+ * @param aMenuItem The menu item data.
+ * @param aIndex Position of item where to add menu items.
+ */
+ IMPORT_C void AddMenuItemL(
+ TInt aServiceCmd,
+ CEikMenuPaneItem::SData& aMenuItem,
+ TInt aIndex);
+
+ /**
+ * Adds a menu item to consumer menu. For each addition a mapping element
+ * is created. This method should normally be called from provider's
+ * InitializeMenuPaneL().
+ *
+ * @param aServiceCmd The LIW service command the provider implements.
+ * @param aMenuItem The menu item data.
+ * @param aIndex Position of item where to add menu items.
+ * @param aExtraText Altenative menu item text, if it is placed to a submenu.
+ */
+ IMPORT_C void AddMenuItemL(
+ TInt aServiceCmd,
+ CEikMenuPaneItem::SData& aMenuItem,
+ TInt aIndex,
+ const TDesC& aExtraText);
+
+ /**
+ * Adds a menu item(s) to consumer menu from provider resource. This method
+ * should normally be called from provider's InitializeMenuPaneL().
+ *
+ * @param aReader Resource reader pointing to the menu resource.
+ * @param aServiceCmd The LIW service command the provider implements.
+ * @param aIndex Position of item where to add menu items.
+ * @param aAddSeparator Currently not in use.
+ */
+ IMPORT_C void AddMenuItemsL(
+ TResourceReader& aReader,
+ TInt aServiceCmd,
+ TInt aIndex,
+ TBool aAddSeperator = EFalse);
+
+ /**
+ * Adds a menu item(s) to consumer menu from provider resource. This method
+ * should normally be called from provider's InitializeMenuPaneL().
+ *
+ * @param aFileName The provider's resource where menu item(s) are defined.
+ * @param aResId Resource id of a MENU_PANE.
+ * @param aServiceCmd The LIW service command the provider implements.
+ * @param aIndex Position of item where to add menu items.
+ * @param aAddSeperator Currently not in use.
+ */
+ IMPORT_C void AddMenuItemsL(
+ TFileName& aFileName,
+ TInt aResId,
+ TInt aServiceCmd,
+ TInt aIndex,
+ TBool aAddSeperator = EFalse);
+
+ public:
+ /**
+ * Gets the provider's original menu command ID from the dynamic menu command
+ * ID (generated by the LIW framework).
+ *
+ * @param aDynCmdId Dynamic menu command ID.
+ * @return Found provider's original menu command ID, KErrNotFound if not found.
+ */
+ IMPORT_C TInt MenuCmdId(TInt aDynCmdId) const;
+
+ /**
+ * Gets the dynamic menu command ID (generated by the LIW framework) from the
+ * provider's original menu command ID. There are usually multiple matching
+ * dynamic menu command IDs, so this method returns the first item found.
+ *
+ * @param aMenuCmdId Provider's original menu command ID.
+ * @return Found dynamic menu command ID, KErrNotFound if not found.
+ */
+ IMPORT_C TInt DynCmdId(TInt aMenuCmdId) const;
+
+ /**
+ * Gets the LIW service command ID from the dynamic menu command ID (generated
+ * by the LIW framework).
+ *
+ * @param aDynCmdId Dynamic menu command ID.
+ * @return Found LIW service command ID, KErrNotFound if not found.
+ */
+ IMPORT_C TInt ServiceCmdId(TInt aDynCmdId) const;
+
+ /**
+ * Add sub menu title item. This item will not be visible in menus,
+ * but will be used as title for comsumer's LIW submenu (if consumer
+ * requests that).
+ *
+ * @param aTitle Title text
+ * @param aIndex Position of title item in menu (can be anything, but
+ * if there is several title item definitions in menu,
+ * then the last one will be used).
+ * @since 2.8
+ */
+ IMPORT_C void AddTitleItemL(const TDesC& aTitle, TInt aIndex);
+
+ friend class CLiwServiceHandlerImpl;
+
+ private:
+ struct SMenuIdMap
+ {
+ TInt serviceCmdId; // LIW service command ID.
+ TInt origCmdId; // Original menu ID used by provider SW
+ TInt dynMenuCmdId; // The dynamic command ID generated by LIWFW
+ CLiwServiceIfBase* owner; // A pointer to the provider object.
+ RBuf extraText; // Alternative submenu text is stored here.
+ };
+
+ private:
+ TInt FindCmdId(TInt aIndex);
+ inline CEikMenuPane& MenuPane();
+ inline void SetResourceSlotId(TInt aSlot);
+ inline TInt ResourceSlotId() const;
+ inline void SetPaneOffset(TInt aOffset);
+ inline TInt PaneOffset() const;
+ inline TInt MenuResourceId() const;
+ inline void SetMenuResourceId(TInt aMenuResourceId);
+ TBool IsCmdInRange(TInt aCmdSpaceSize, TInt aCmd);
+ CLiwServiceIfBase* CommandOwner(TInt aDynId) const;
+ inline CLiwServiceIfBase* InitializingOwner() const;
+ inline void SetInitializingOwner(CLiwServiceIfBase* aOwner);
+ const TDesC& ExtraText(TInt aDynMenuCmdId);
+
+ private:
+ // Original menu pane.
+ CEikMenuPane* iMenuPane;
+
+ // Base ID to generate menu IDs for placeholders. From constructor.
+ TInt iBaseCmdId;
+
+ // Map needed to map provider cmd IDs to dynamic command Ids
+ RArray<SMenuIdMap> iIdMap;
+
+ TInt iNextCmdId; // The next free command ID to use
+ TInt iResourceSlotId;
+ TInt iPaneOffset;
+ TInt iMenuResourceId;
+ CLiwServiceIfBase* iInitializingOwner; // Owner that is currently initializing.
+
+ TInt iReserved_1;
+ void *iExtension; // reserved for future use
+ };
+
+
+inline CEikMenuPane& CLiwMenuPane::MenuPane()
+ {
+ return *iMenuPane;
+ }
+
+
+inline void CLiwMenuPane::SetResourceSlotId(TInt aSlot)
+ {
+ iResourceSlotId = aSlot;
+ }
+
+
+inline TInt CLiwMenuPane::ResourceSlotId() const
+ {
+ return iResourceSlotId;
+ }
+
+
+inline void CLiwMenuPane::SetPaneOffset(TInt aOffset)
+ {
+ iPaneOffset = aOffset;
+ }
+
+
+inline TInt CLiwMenuPane::PaneOffset() const
+ {
+ return iPaneOffset;
+ }
+
+
+inline CLiwServiceIfBase* CLiwMenuPane::InitializingOwner() const
+ {
+ return iInitializingOwner;
+ }
+
+
+inline void CLiwMenuPane::SetInitializingOwner(CLiwServiceIfBase* aOwner)
+ {
+ iInitializingOwner = aOwner;
+ }
+
+
+inline TInt CLiwMenuPane::MenuResourceId() const
+ {
+ return iMenuResourceId;
+ }
+
+
+inline void CLiwMenuPane::SetMenuResourceId(TInt aMenuResourceId)
+ {
+ iMenuResourceId = aMenuResourceId;
+ }
+
+#endif // LIW_MENU_H
+
+// END of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwservicehandler.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,457 @@
+/*
+* 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 the License "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: Declares an API for the consumer applications to access the
+* Language Interworking Framework.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_SERVICE_HANDLER_H
+#define LIW_SERVICE_HANDLER_H
+
+// INCLUDES
+#include <barsread.h>
+#include <liwcommon.h>
+#include <e32capability.h>
+
+// CONSTANTS
+
+// MACROS
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CLiwServiceHandlerImpl;
+
+class CRTSecMgrScriptSession;
+
+
+enum TLiwLoadStatus
+{
+ KLiwUnknown = -5,
+ KLiwMetaDataInvalidFormat, //-4
+ KLiwInvalidVersionSpecification, //-3
+ KLiwVersionOutOfRange, //-2
+ KLiwSecurityAccessCheckFailed, //-1
+ KLiwServiceLoadSuccess, //0
+ KLiwServiceAlreadyLoaded //1
+
+ //..Other possible error codes
+};
+
+
+// CLASS DECLARATION
+
+/**
+* CLiwServiceHandler is the main class of the Language Interworking
+* Framework. The Service Handler implements support for dynamically
+* loadable service providers which offer services to consumer applications.
+* The Service Handler maps consumers and service providers together via
+* interests and data agreements and hides the consumers from the providers.
+*
+* SERVICE is any command or functionality offered by a provider to
+* consumer. The service includes typically menu item UI elements,
+* but it can also just an engine type of command which executes specific
+* functionality and reports status back to the consumer.
+*
+* CONSUMER application accesses interesting services offered by
+* service provider(s). The consumer uses only those services in which
+* it is interested in. The interest is expressed using a set of criteria
+* items.
+*
+* INTEREST is a list of criteria items.
+*
+* CRITERIA consists of set of attributes which guide the LIW Framework to use
+* only those providers in which the consumer is interested in.
+* The criteria consists of following attributes:
+* - Criteria UID (we can allocate pre-defined criteria items).
+* - Service command UID (we can allocate pre-defined commands).
+* - Content MIME type (string).
+* - Additional options (variant data type just in case).
+*
+* PROVIDER produces those services for a consumer that match the given criteria
+* specified by the consumer. A provider can offer menu items and their command
+* handling logic to the consumer applications. A provider can also offer base
+* services that don't require any UI elements.
+*
+* DATA AGREEMENT is an agreement between consumer and provider about parameters
+* needed to be passed in a use case.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+*/
+NONSHARABLE_CLASS(CLiwServiceHandler) : public CBase
+ {
+ public: // Construction & destruction
+
+ /**
+ * Constructs a Service Handler instance.
+ */
+ IMPORT_C static CLiwServiceHandler* NewL();
+
+ /**
+ * Constructs a Service Handler instance.
+ */
+ IMPORT_C static CLiwServiceHandler* NewLC();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CLiwServiceHandler();
+
+ public: // Management
+
+ /**
+ * Resets the Service Handler, discards existing interest and unloads
+ * corresponding service providers.
+ */
+ IMPORT_C void Reset();
+
+ /**
+ * Returns the amount of providers that fulfil the given criteria.
+ *
+ * @param aCriteria Criteria to match.
+ * @return Number of providers matching the criteria.
+ */
+ IMPORT_C TInt NbrOfProviders(const CLiwCriteriaItem* aCriteria);
+
+ public: // Interest handling
+
+ /**
+ * Adds the given interest to the Service Handler from a resource and updates
+ * possibly existing old interest. Corresponding service providers are loaded.
+ * If a provider leaves during initialization, it is trapped by the Service Handler.
+ *
+ * @param aInterestResourceId ID of the resource containing criteria items.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ * @see Reset
+ */
+ IMPORT_C void AttachL(TInt aInterestResourceId);
+
+ /**
+ * Adds given interest to the Service Handler from an array of criteria items.
+ * If a provider leaves during initialization, it is trapped by the Service Handler.
+ *
+ * @param aInterest Array of criteria items. Ownership is not transferred.
+ */
+ IMPORT_C TInt AttachL(const RCriteriaArray& aInterest);
+
+ /**
+ * Gets the currently valid interest in use by the Service Handler.
+ *
+ * @param aInterest An array of returned criteria items, may be empty.
+ * Ownership is not transferred, i.e. the objects in the
+ * array must not be deleted.
+ */
+ IMPORT_C void GetInterest(RCriteriaArray& aInterest);
+
+ /**
+ * Removes given interest from the Service Handler. Corresponding service
+ * providers are unloaded.
+ *
+ * @param aInterest Array of returned criteria items, may be empty.
+ */
+ IMPORT_C void DetachL(const RCriteriaArray& aInterest);
+
+ /**
+ * Removes given interest from the Service Handler. Corresponding service
+ * providers are unloaded.
+ *
+ * @param aInterestResourceId ID of the resource containing criteria items.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ */
+ IMPORT_C void DetachL(TInt aInterestResourceId);
+
+ /**
+ * Returns criteria by ID.
+ *
+ * @param aId Criteria ID.
+ * @return Criteria item pointer matching the ID. Ownership is not transferred.
+ */
+ IMPORT_C const CLiwCriteriaItem* GetCriteria(TInt aId);
+
+ /**
+ * Returns an empty instance of CLiwGenericParamList class. It can be
+ * used for example as an input parameter list for the Service Handler's
+ * API methods. This is just a convenience method and doesn't have
+ * to be used. If consumer wants to create input list by itself
+ * it is ok. If this method is used, the Service Handler takes care
+ * of deleting returned generic parameter list.
+ *
+ * @return An empty instance of CLiwGenericParameter list.
+ */
+ IMPORT_C CLiwGenericParamList& InParamListL();
+
+ /**
+ * Returns an empty instance of CLiwGenericParamList class. The instance can be
+ * used for example as an output parameter list for Service Handler
+ * API methods. This is just a convenience method and doesn't have
+ * to be used. If consumer wants to create output list by itself
+ * it is ok. If this method is used, Service Handler takes care
+ * of deleting returned generic parameter list.
+ *
+ * @return An empty instance of CLiwGenericParameter list.
+ */
+ IMPORT_C CLiwGenericParamList& OutParamListL();
+
+ public: // Menu handling
+
+ /**
+ * Initialises menu pane with service commands from a provider.
+ * This method must be called upon DynInitMenuPaneL of consumer
+ * application in order to let the provider to hook its menu items.
+ *
+ * @param aMenuPane Handle of the menu pane to initialise.
+ * @param aMenuResourceId The menu to be attached.
+ * @param aBaseMenuCmdId Base ID for the Service Handler to generate
+ * menu IDs for placeholders.
+ * @param aInParamList Input parameter list for provider's parameters checking.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ * @leave KErrOverflow Consumer application has too many LIW placeholders in its menu.
+ * Currently, maximum 16 is supported.
+ */
+ IMPORT_C void InitializeMenuPaneL(
+ CEikMenuPane& aMenuPane,
+ TInt aMenuResourceId,
+ TInt aBaseMenuCmdId,
+ const CLiwGenericParamList& aInParamList);
+ /**
+ * Initialises menu pane with service commands from a provider.
+ * This method must be called upon DynInitMenuPaneL of consumer
+ * application in order to let the provider to hook its menu items.
+ * In normal circumstances, the other variant of this method should be used.
+ *
+ * @param aMenuPane Handle of the menu pane to initialise.
+ * @param aMenuResourceId The menu to be attached.
+ * @param aBaseMenuCmdId Base ID for the Service Handler to generate
+ * menu IDs for placeholders.
+ * @param aInParamList Input parameter list for provider's parameters checking.
+ * @param aUseSubmenuTextsIfAvailable If the provider has specified alternative submenu
+ * texts for its menu items, those can be taken into use if this
+ * parameter is set to ETrue. This should be used only for manually
+ * created submenus. If using LIW_CASCADE_ID or
+ * LIW_INTELLIGENT_CASCADE_ID, the LIW framework can automatically
+ * decide whether to use the submenu texts or not, and this parameter
+ * has no effect.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ * @leave KErrOverflow Consumer application has too many LIW placeholders in its menu.
+ * Currently, maximum 16 is supported.
+ */
+ IMPORT_C void InitializeMenuPaneL(
+ CEikMenuPane& aMenuPane,
+ TInt aMenuResourceId,
+ TInt aBaseMenuCmdId,
+ const CLiwGenericParamList& aInParamList,
+ TBool aUseSubmenuTextsIfAvailable);
+
+ /**
+ * Returns the service command ID associated to the menu command. If found, it means
+ * that there is a provider which can handle the menu command. Thus the command
+ * handling needs to be routed to the provider via ExecuteMenuCmdL.
+ *
+ * @param aMenuCmdId Menu command ID to be mapped to service cmd,
+ * KNullServiceCmd is returned if no service command exists.
+ * @return Service command ID, KLiwCmdNone if no ID is found.
+ * @see ExecuteMenuCmdL
+ */
+ IMPORT_C TInt ServiceCmdByMenuCmd(TInt aMenuCmdId) const;
+
+ /**
+ * Tells the provider to execute a menu command invoked by the consumer.
+ * Not supported if calling outside UI framework. Use ServiceCmdByMenuCmd to
+ * check if there is any provider for the menu command.
+ *
+ * @param aMenuCmdId The menu command to be executed.
+ * @param aInParamList Input data parameters, can be an empty list.
+ * @param aOutParamList Output data parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
+ * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+ * @leave KErrArgument Callback is missing when required.
+ * @leave KErrNotSupported No cmd matches given menu command or CCoeEnv is not accessible.
+ * @see ServiceCmdByMenuCmd
+ */
+ IMPORT_C void ExecuteMenuCmdL(
+ TInt aMenuCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ MLiwNotifyCallback* aCallback= NULL);
+
+ /**
+ * Attach menu related criteria items to the given menu.
+ * If a provider leaves during initialization, it is trapped by the Service Handler.
+ *
+ * @param aMenuResourceId Menu to be attached.
+ * @param aInterestResourceId Resource id for the interest list.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ */
+ IMPORT_C void AttachMenuL(TInt aMenuResourceId, TInt aInterestResourceId);
+
+ /**
+ * Attach menu related criteria items to the given menu.
+ * If a provider leaves during initialization, it is trapped by the Service Handler.
+ *
+ * @param aMenuResourceId Menu to be attached.
+ * @param aReader Resource reader for the interest list.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ */
+ IMPORT_C void AttachMenuL(TInt aMenuResourceId, TResourceReader& aReader);
+ /**
+ * Attach menu related criteria items to the given menu.
+ *
+ * @param aMenuResourceId Menu to be attached.
+ * @param aInterest Array of criteria items. Ownership is not transferred.
+ * @leave KErrNotSupported CCoeEnv is not accessible.
+ */
+ IMPORT_C void AttachMenuL(TInt aMenuResourceId, const RCriteriaArray& aInterest);
+
+ /**
+ * Attach menu related criteria items to the given menu.
+ *
+ * @param aMenuEntries List of menu command ids, ids not related to interests may be set to 0.
+ * @param aMenuResourceId Menu to be attached.
+ * @param aInterest Interest list.
+ */
+ IMPORT_C void AttachMenuL(RArray<TInt>& aMenuEntries, TInt aMenuResourceId, RCriteriaArray& aInterest);
+
+ /**
+ * Detach menu related criteria items from the given menu.
+ * In following cases this method just returns without doing anything:
+ * 1. If interest resource id is non-zero and CCoeEnv is not accessible.
+ * 2. If interest resource id is non-zero and there occurs an error when reading
+ * the interest (e.g. not enough memory).
+ *
+ * @param aMenuResourceId Menu to be detached.
+ * @param aInterestResourceId Resource id for the interest list. If NULL, all
+ * criteria items are detached from the given menu.
+ */
+ IMPORT_C void DetachMenu(TInt aMenuResourceId, TInt aInterestResourceId);
+
+ /**
+ * Checks if there are menu providers attached to given menu id. Consumer
+ * application can use this information to decide whether a sub menu
+ * containing only LIW items should be hidden or not.
+ *
+ * @param aSubMenuId The menu id to be checked.
+ * @return ETrue if there isn't any menu providers attached to this menu.
+ * EFalse otherwise.
+ */
+ IMPORT_C TBool IsSubMenuEmpty(TInt aSubMenuId);
+
+ /**
+ * Returns boolean value indicating whether the given menu contains
+ * currently attached placeholders.
+ *
+ * @param aMenuResourceId Resource id of the menu to be queried.
+ * @return ETrue if aMenuResource contains currently attached placeholders.
+ * EFalse otherwise.
+ */
+ IMPORT_C TBool IsLiwMenu(TInt aMenuResourceId);
+
+ /**
+ * Handles LIW submenus. This method should be called from consumer application's
+ * DynInitMenuPaneL.
+ *
+ * @param aPane Menu pane to be handled.
+ * @return ETrue if aPane was an LIW submenu and it was handled.
+ * Consumer's DynInitMenuPaneL pane may now return.
+ * EFalse if aPane was not an LIW submenu and DynInitMenuPaneL should
+ * continue normally.
+ */
+ IMPORT_C TBool HandleSubmenuL(CEikMenuPane& aPane);
+
+ /**
+ * CEikMenuPane uses this method to inform AIF framework that a menu is launched.
+ * This method does not need to be called by any other component.
+ *
+ * @since Series 60 3.0
+ */
+ IMPORT_C static void ReportMenuLaunch();
+
+ public: // Generic Service Command handling
+
+ /**
+ * Executes a service command for all providers. Otherwise similar to ExecuteMenuCmdL.
+ *
+ * @param aCmdId The command to be executed.
+ * @param aInParamList Input data parameters, can be an empty list.
+ * @param aOutParamList Output data parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
+ * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+ * @leave KErrArgument Callback is missing when required.
+ * @leave KErrNotSupported No provider supports the service.
+ */
+ IMPORT_C void ExecuteServiceCmdL(
+ const TInt& aCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ MLiwNotifyCallback* aCallback = 0);
+
+ /**
+ * Executes a service command.
+ *
+ * @param aCmd The criteria item containing the service command and content type
+ * @param aInParamList Input data parameters, can be an empty list.
+ * @param aOutParamList Output data parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
+ * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+ * @leave KErrArgument Callback is missing when required.
+ * @leave KErrNotSupported No provider supports the service.
+ */
+ IMPORT_C void ExecuteServiceCmdL(
+ const CLiwCriteriaItem& aCmd,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ MLiwNotifyCallback* aCallback = 0);
+
+ /**
+ * Gets provider command ID by dynamic command ID.
+ *
+ * @since Series 60 3.0
+ * @param aMenuCmdId The consumer's menu command ID generated by LIW framework.
+ * This can be get e.g. from consumer's HandleCommandL().
+ * @return Found provider menu command ID, KErrNotFound if not found.
+ */
+ IMPORT_C TInt MenuCmdId(TInt aMenuCmdId) const;
+
+ IMPORT_C TInt AttachL(const RCriteriaArray& aInterest,CRTSecMgrScriptSession& aSecMgrScriptSession);
+
+ /**
+ * Lists available service implementations
+ *
+ * @param aFilterItem
+ * @param aProviderList
+ *
+ * @return none
+ */
+ IMPORT_C void QueryImplementationL(RCriteriaArray& aFilterItem, RCriteriaArray& aProviderList);
+
+ private:
+ void ConstructL();
+ CLiwServiceHandler();
+
+ private:
+ CLiwServiceHandlerImpl* iImpl;
+ };
+
+#endif // LIW_SERVICE_HANDLER_H
+
+// END of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwserviceifbase.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,166 @@
+/*
+* 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 the License "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: Declares Base service API for all providers to implement in
+* order to offer services to Language Interworking Framework.
+*
+*/
+
+
+
+
+
+
+#ifndef LIW_SERVICE_IF_BASE_H
+#define LIW_SERVICE_IF_BASE_H
+
+// INCLUDES
+#include <liwgenericparam.h>
+#include <liwcommon.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+/**
+* Extension interface UIDs.
+*/
+enum TLiwExtendedIf
+{
+ /*
+ * Extension interface UID to get service data interface
+ *
+ * @see CLiwServiceData
+ */
+ KLiwGetServiceDataIf = 0x102830B2
+};
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class MLiwNotifyCallback;
+class CLiwCriteriaItem;
+//typedef RPointerArray<CLiwCriteriaItem> RCriteriaArray;
+class CLiwServiceData;
+// CLASS DECLARATION
+
+/**
+* This is the base service interface to access providers that offer base services.
+*
+* This interface needs to be implemented by all the LIW providers. Base service
+* providers should inherit from this class directly. Menu service providers
+* should inherit from CLiwServiceIfMenu.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see CLiwServiceIfMenu
+**/
+class CLiwServiceIfBase : public CBase
+ {
+ public:
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CLiwServiceIfBase();
+
+ /**
+ * Called by the LIW framework to initialise provider with necessary information
+ * from the Service Handler. This method is called when the consumer makes
+ * the attach operation.
+ *
+ * @param aFrameworkCallback Framework provided callback for provider to send
+ * events to framework.
+ * @param aInterest List of criteria items which invoked the provider.
+ */
+ virtual void InitialiseL(
+ MLiwNotifyCallback& aFrameworkCallback,
+ const RCriteriaArray& aInterest) = 0;
+
+ /**
+ * Executes generic service commands included in criteria.
+ *
+ * @param aCmdId Command to be executed.
+ * @param aInParamList Input parameters, can be an empty list.
+ * @param aOutParamList Output parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see KLiwOpt* in LiwCommon.hrh.
+ * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+ * @leave KErrArgument Callback is missing when required.
+ * @leave KErrNotSupported No provider supports service.
+ */
+ virtual void HandleServiceCmdL(
+ const TInt& aCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MLiwNotifyCallback* aCallback = NULL) = 0;
+
+ /**
+ * Executes generic service command
+ *
+ * @param aCmdName The service command to be executed.
+ * @param aInParamList Input parameters, can be an empty list.
+ * @param aOutParamList Output parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see KLiwOpt* in LiwCommon.hrh.
+ * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+ * @leave KErrArgument Callback is missing when required.
+ * @leave KErrNotSupported No provider supports service.
+ */
+ void HandleServiceCmdL(
+ const TDesC8& aCmdName,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MLiwNotifyCallback* aCallback = NULL)
+ {
+ _LIT8(KGenericParamID,"cmd");
+
+ ((CLiwGenericParamList&)aInParamList).AppendL(
+ TLiwGenericParam(KGenericParamID, TLiwVariant(aCmdName)));
+
+ HandleServiceCmdL(KLiwCmdAsStr, aInParamList,
+ aOutParamList, aCmdOptions, aCallback);
+ }
+
+
+
+ // Rest of the class is for LIW's internal use and doesn't consern
+ // service providers.
+ friend class CLiwServiceHandlerImpl;
+ friend class CLiwBinding;
+ friend class CLiwEcomMonitor;
+
+ protected:
+ IMPORT_C virtual void* ExtensionInterface(TUid aInterface);
+
+ private:
+ void SetDtorKeyId(TUid aDtorKeyId);
+ TBool Match(CLiwCriteriaItem* aItem);
+ void AddCriteria(CLiwCriteriaItem* aItem);
+ TUid ImplementationUid() const;
+ void SetImplementationUid(TUid aUid);
+ TBool HasCriteria(CLiwCriteriaItem& aItem) const;
+
+ private:
+ TUid iDtorKeyId;
+ RCriteriaArray iCriterias;
+ TUid iImplUid;
+
+ // Reserved member
+ TAny* iReserved;
+ };
+
+
+#endif // LIW_SERVICE_IF_BASE_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwserviceifmenu.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,137 @@
+/*
+* 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 the License "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: Declares service API for providers offering menu services for
+* consumers.
+*
+*/
+
+
+
+
+
+
+#ifndef LIW_SERVICE_IF_MENU_H
+#define LIW_SERVICE_IF_MENU_H
+
+// INCLUDES
+#include <liwserviceifbase.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CLiwMenuPane;
+
+// CLASS DECLARATION
+
+/**
+* This is the menu service interface to access providers that offer menu services.
+*
+* Menu service providers should inherit this class. Providers offering
+* only base services should inherit CLiwServiceIfBase instead.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see CLiwServiceIfBase
+**/
+class CLiwServiceIfMenu: public CLiwServiceIfBase
+ {
+ public:
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CLiwServiceIfMenu();
+
+ /**
+ * Provider should implement this method to initialise a menu pane by adding
+ * provider specific menu items. The LIW framework gives the parameters to be
+ * used in the addition process.
+ *
+ * @param aMenuPane Menu pane handle.
+ * @param aIndex The position of the item where to add menu items.
+ * @param aCascadeId ID of cascade menu item.
+ * @param aInParamList Input parameter list for provider's parameter checking.
+ */
+ virtual void InitializeMenuPaneL(
+ CLiwMenuPane& aMenuPane,
+ TInt aIndex,
+ TInt aCascadeId,
+ const CLiwGenericParamList& aInParamList) = 0;
+
+ /**
+ * Provider should implement this method to handle a menu command. Called by the
+ * Service Handler when a consumer calls ExecuteMenuCmdL().
+ *
+ * @param aMenuCmdId Original provider specific ommand ID for the menu command.
+ * Defined in the provider's menu item resource.
+ * @param aInParamList Input parameters, can be an empty list.
+ * @param aOutParamList Output parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see KLiwCmdOpt* in LiwCommon.hrh.
+ * @param aCallback Callback if asynchronous command handling is wanted by consumer.
+ * The provider may or may not support this. A provider should
+ * leave with KErrNotSupported, if not.
+ * @leave KErrNotSupported Callback is not supported.
+ */
+ virtual void HandleMenuCmdL(
+ TInt aMenuCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MLiwNotifyCallback* aCallback = NULL) = 0;
+
+ /**
+ * Returns current LIW menu pane for this menu service provider.
+ *
+ * @return Pointer to the current LIW menu pane object.
+ */
+ IMPORT_C const CLiwMenuPane* MenuPane() const;
+
+ protected:
+ IMPORT_C virtual void* ExtensionInterface(TUid aInterface);
+
+ private:
+ // Rest of the class is for LIW's internal use and doesn't consern
+ // service providers.
+ friend class CLiwServiceHandlerImpl;
+
+ void InitializeMenuPaneHookL(
+ CLiwMenuPane* aMenuPane,
+ TInt aIndex,
+ TInt aCascadeId,
+ const CLiwGenericParamList& aInParamList);
+
+ void HandleMenuCmdHookL(
+ CLiwMenuPane* aMenuPane,
+ TInt aMenuCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MLiwNotifyCallback* aCallback = NULL);
+
+ private:
+ CLiwMenuPane* iMenuPane; // Not owned.
+
+ // Reserved member
+ TAny* iSpare;
+ };
+
+
+#endif // LIW_SERVICE_IF_MENU_H
+
+// End of file
--- a/dependencies/platform_paths.hrh Fri Mar 19 13:46:28 2010 +0200
+++ b/dependencies/platform_paths.hrh Thu Mar 25 09:33:14 2010 +0100
@@ -183,6 +183,11 @@
#ifndef PLATFORM_PATHS_HRH
#define PLATFORM_PATHS_HRH
+
+// This should not be here, but I'm tired of adding this line to every
+// single MMP.
+#include <defaultcaps.hrh>
+
/**
**************************************************************************
* General comments about the exporting of headers macros
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecmgrcommondef.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,124 @@
+/*
+* 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 the License "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: Security Manager common header
+ *
+*/
+
+
+
+
+
+
+#ifndef _RTSECMGR_COMMON_DEF_H_
+#define _RTSECMGR_COMMON_DEF_H_
+
+#include <e32base.h>
+#include <avkon.hrh>
+
+typedef TInt TPolicyID;
+typedef TInt TExecutableID;
+typedef TUint32 TPermGrant;
+typedef RArray<TCapability> RCapabilityArray;
+typedef TUid TProviderUid;
+typedef RArray<TProviderUid> RProviderArray;
+
+typedef TUint32 TCapabilityBitSet;
+
+//constant for default NULL capability bitset
+const TCapabilityBitSet KDefaultNullBit = 0x0000;
+
+//constant for default capability bitset with LSB enabled
+const TCapabilityBitSet KDefaultEnableBit = 0x0001;
+
+enum TAccessCheckCode
+ {
+ EAccessNok = -1,
+ EAccessOk
+ };
+
+enum
+ {
+ EPromptOk = EAknSoftkeyOk,
+ EPromptCancel = EAknSoftkeyCancel
+ };
+
+/*
+ * Enumerations for various duration option
+ */
+const TUint32 DEFAULT_ONESHOT = 0x80000000;
+const TUint32 DEFAULT_SESSION = 0x40000000;
+const TUint32 DEFAULT_BLANKET = 0x20000000;
+
+const TUint32 CONDITION_ONESHOT = 0x8000000;
+const TUint32 CONDITION_SESSION = 0x4000000;
+const TUint32 CONDITION_BLANKET = 0x2000000;
+
+const TUint32 ONESHOT_DENIED = 0x88000000;
+const TUint32 SESSION_DENIED = 0x44000000;
+const TUint32 BLANKET_DENIED = 0x22000000;
+
+const TUint32 DEFAULT_ALL = 0xE0000000;
+const TUint32 CONDITION_ALL = 0xE000000;
+const TUint32 CAPABILITY_ALL = 0xFFFFF;
+
+const TUint32 NetworkServices_CAP = 0x00002000;
+
+enum TUserPromptOption
+ {
+ RTUserPrompt_UnDefined = 0, //can be used for permisssions denied by default
+ RTUserPrompt_OneShot = CONDITION_ONESHOT,
+ RTUserPrompt_Session = CONDITION_SESSION,
+ RTUserPrompt_Permanent = CONDITION_BLANKET,
+ RTUserPrompt_Denied = ONESHOT_DENIED,
+ RTUserPrompt_SessionDenied = SESSION_DENIED,
+ RTUserPrompt_PermDenied = BLANKET_DENIED
+ };
+
+enum TSecMgrPromptUIOption
+ {
+ RTPROMPTUI_DEFAULT = 0,
+ RTPROMPTUI_ADVANCED,
+ RTPROMPTUI_PROVIDER
+ };
+
+//error code used btn server and client
+//error code starts with -101 as predefined symbian codes
+//range upto -48
+enum TSecMgrErrCode
+ {
+ ErrInvalidParameters = -101,
+ ErrFileSessionNotShared = ErrInvalidParameters -1,
+ ErrInvalidPolicyFormat = ErrFileSessionNotShared -1,
+ ErrFatalDBError = ErrInvalidPolicyFormat -1,
+ ErrSetPolicyFailed = ErrFatalDBError -1,
+ ErrUpdatePolicyFailed = ErrSetPolicyFailed -1,
+ ErrInvalidPolicyID = ErrUpdatePolicyFailed -1,
+ ErrPolicyIDDoesNotExist = ErrInvalidPolicyID -1,
+ ErrInvalidScriptID = ErrPolicyIDDoesNotExist -1,
+ ErrRegisterScriptFailed = ErrInvalidScriptID -1,
+ ErrUpdateGrantFailed = ErrRegisterScriptFailed -1,
+ ErrServerReadConfig = ErrUpdateGrantFailed -1,
+ ErrUnRegisterScriptFailed = ErrServerReadConfig -1,
+ ErrUnSetPolicyFailed = ErrUnRegisterScriptFailed -1,
+ ErrUpdatePermGrantFailed = ErrUnSetPolicyFailed -1,
+ ErrBackupNotCreated = ErrUpdatePermGrantFailed - 1,
+ ErrRestoreTempFailed = ErrBackupNotCreated - 1,
+ ErrAccessDenied = ErrRestoreTempFailed - 1
+ };
+
+const TInt KAnonymousScript = -1;
+const TInt KInvalidPolicyID = -1;
+const TInt KMaxTrustInfoLen = 512; //magic number - half of 1 KB
+
+#endif //_RTSECMGR_COMMON_DEF_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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 the License "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: Build file for rtsecurity manager client API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+rtsecmanager.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmanager.h)
+rtsecmgrscriptsession.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrscriptsession.h)
+rtsecmgrtrustInfo.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrtrustinfo.h)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/rtsecmanager.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,300 @@
+/*
+* 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 the License "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: Defines Runtime security manager's core class. Defines
+ * APIs for runtime bindings and clients to access security
+ * management functionalities
+ *
+*/
+
+
+
+
+
+
+#ifndef _CRTSECMANAGER_H
+#define _CRTSECMANAGER_H
+
+#include <e32base.h>
+
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrtrustinfo.h>
+
+class CRTSecMgrScriptSession;
+class MSecMgrPromptHandler;
+class CRTSecMgrClientProxy;
+class CTrustInfo;
+class CPermission;
+
+/**
+ * Core class of the runtime recurity manager component.
+ *
+ * Runtime security manager broadly offers
+ *
+ * - Policy management functions
+ * - Script management functions
+ * - Access permission check
+ *
+ * CRTSecManager offers methods to perform policy management functionalities
+ * such as
+ * - Registering runtime security access policy
+ * - Updating the registered security access policy
+ * - Un-registering the registered security access policy
+ *
+ * Similarly, CRTSecManager offers methods for script management such as
+ * - Registering a runtime script with security manager
+ * - Un-registering the registered script
+ * - Obtaining scipt session associated with the registered script
+ *
+ * The main functionality of CRTSecManager is to perform access permission
+ * check using script session functions
+ *
+ * @lib rtsecmgrclient.lib
+ */
+NONSHARABLE_CLASS(CRTSecManager) : public CBase
+ {
+public:
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CRTSecManager instance
+ *
+ * Initializes client side security manager session. Starts the security
+ * manager server, if it is not already running.
+ *
+ * @return pointer to an instance of CRTSecManager
+ */
+ IMPORT_C static CRTSecManager* NewL();
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CRTSecManager instance and leaves the created instance
+ * onto the cleanupstack.
+ *
+ * Initializes client side security manager session. Starts the security
+ * manager server, if it is not already running.
+ *
+ * @return pointer to an instance of CRTSecManager
+ */
+ IMPORT_C static CRTSecManager* NewLC();
+
+ /**
+ * Destructor
+ *
+ * Closes client side security manager session
+ */
+ IMPORT_C ~CRTSecManager();
+
+ /**
+ * Registers a runtime security policy. Runtimes should call this function
+ * to register their security access and trust policies.
+ *
+ * @param aSecPolicy RFile Handle to security policy file
+ *
+ * @return TPolicyID generated policy identifier if successul; Otherwise one of
+ * system wide error codes
+ *
+ * \note
+ * Clients should call ShareProtected on the file session object as shown below.
+ *
+ * @code *
+ * RFs fileSession;
+ * fileSession.Connect();
+ * fileSession.ShareProtected(); //Mandatorily call before invoking SetPolicy
+ *
+ * RFile secPolicyFile;
+ * secPolicyFile.Open(fileSession, _L("AccessPolicy.xml"), EFileShareAny );
+ * TPolicyID policyID = secMgr->SetPolicy(secPolicyFile);
+ *
+ * if(policyID <= KErrNone)
+ * {
+ * //error..
+ * }
+ *
+ * @endcode
+ *
+ */
+ IMPORT_C TPolicyID SetPolicy(const RFile& aSecPolicy);
+
+ /**
+ * Registers a runtime security policy. Runtimes should call this function
+ * to register their security access and trust policies.
+ *
+ * @param aPolicyBuffer const TDesC& security policy file buffer
+ *
+ * @return TPolicyID generated policy identifier if successul; Otherwise one of
+ * system wide error codes
+ *
+ * \note
+ * Clients should call ShareProtected on the file session object as shown below.
+ *
+ * @code *
+ * RFs fileSession;
+ * fileSession.Connect();
+ * fileSession.ShareProtected(); //Mandatorily call before invoking SetPolicy
+ *
+ * RFile secPolicyFile;
+ * secPolicyFile.Open(fileSession, _L("AccessPolicy.xml"), EFileShareAny );
+ * HBufC8* fileBuffer = HBufC8::NewL(KFileBufferMaxLen);
+ * secPolicyFile.Read(*fileBuffer);
+ *
+ * TPolicyID policyID = secMgr->SetPolicy(*fileBuffer);
+ *
+ * if(policyID <= KErrNone)
+ * {
+ * //error..
+ * }
+ *
+ * @endcode
+ *
+ */
+ IMPORT_C TPolicyID SetPolicy(const TDesC8& aPolicyBuffer);
+
+ /**
+ * UnRegisters a registered security policy. Runtimes should call this function
+ * to de-register the already registered security policy.
+ *
+ * @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
+ *
+ * @return TInt One of sytem wide error codes in case of failure; Otherwise KErrNone
+ *
+ */
+ IMPORT_C TInt UnSetPolicy(TPolicyID aPolicyID);
+
+ /**
+ * Updates an already registered security policy. Runtimes should call this function
+ * to update their policy.
+ *
+ * @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
+ * @param aSecPolicy RFile Handle to security policy file
+ *
+ * @see SetPolicy for file session pre-conditions
+ *
+ * @return TPolicyID One of sytem wide error codes in case of failure; Otherwise the passed policyID
+ *
+ */
+ IMPORT_C TPolicyID UpdatePolicy(TPolicyID aPolicyID,const RFile& aSecPolicy);
+
+ /**
+ * Updates an already registered security policy. Runtimes should call this function
+ * to update their policy.
+ *
+ * @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
+ * @param aPolicyBuffer const TDesC& security policy file buffer
+ *
+ * @see SetPolicy for file session pre-conditions
+ *
+ * @return TPolicyID One of sytem wide error codes in case of failure; Otherwise the passed policyID
+ *
+ */
+ IMPORT_C TPolicyID UpdatePolicy(TPolicyID aPolicyID,const TDesC8& aPolicyBuffer);
+
+ /**
+ * Registers a script/executable. Runtimes should specify the trust information
+ * of the script to be registered.
+ *
+ * @param aPolicyID TPolicyID Runtime's registered policy identifier
+ * @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
+ *
+ * @return TExecutableID generated executable identifier if successul; Otherwise one of
+ * system wide error codes
+ *
+ */
+ IMPORT_C TExecutableID RegisterScript(TPolicyID aPolicyID, const CTrustInfo& aTrustInfo);
+
+ /**
+ * Registers a script/executable. Runtimes should specify the trust information
+ * of the script to be registered.
+ *
+ * @param aPolicyID TPolicyID Runtime's registered policy identifier
+ * @param aHashMarker const TDesC& Hash value to identify script when starting script session
+ * @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
+ *
+ * @return TExecutableID generated executable identifier if successul; Otherwise one of
+ * system wide error codes
+ *
+ */
+ IMPORT_C TExecutableID RegisterScript(TPolicyID aPolicyID, const TDesC& aHashMarker, const CTrustInfo& aTrustInfo);
+
+ /**
+ * De-Registers a script/executable. Runtimes should pass the previously registered
+ * script identifier corresponding to the script to be de-registered.
+ *
+ * @param aExeID TExecutableID A valid script identifier
+ *
+ * @return TInt One of sytem wide error codes in case of failure; Otherwise KErrNone
+ *
+ */
+ IMPORT_C TInt UnRegisterScript(TExecutableID aExeID, TPolicyID aPolicyID);
+
+ /**
+ * Creates a script session instance. CRTSecMgrScriptSession performs access permission
+ * check for native platform service invocation. A CRTSecMgrScriptSession instance needs to
+ * be created for every instance of scripts which could potentially invoke platform service.
+ *
+ * @param aPolicyID TPolicyID Valid registered policy identifier
+ * @param aExeID TExecutableID Script identifier, KAnonymousScript in case of anonymous script session
+ * @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
+ * will supply a default prompt handler
+ *
+ * @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession if the executableID is valid;
+ * Otherwise NULL
+ */
+ IMPORT_C CRTSecMgrScriptSession* GetScriptSessionL(TPolicyID aPolicyID, TExecutableID aExecID, MSecMgrPromptHandler* aPromptHdlr=NULL , const TDesC& aHashValue = KNullDesC);
+
+ /**
+ * Creates a script session instance for an unregisterd trusted script. CRTSecMgrScriptSession performs access permission
+ * check for native platform service invocation.
+ *
+ * @param aPolicyID TPolicyID Valid registered policy identifier
+ * @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
+ * @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
+ * will supply a default prompt handler
+ *
+ * @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession;
+ * NULL in case of invalid policy identifier
+ *
+ *
+ */
+ IMPORT_C CRTSecMgrScriptSession* GetScriptSessionL(TPolicyID aPolicyID, const CTrustInfo& aTrustInfo, MSecMgrPromptHandler* aPromptHdlr=NULL);
+
+ /**
+ * Creates a script session instance. CRTSecMgrScriptSession performs access permission
+ * check for native platform service invocation. A CRTSecMgrScriptSession instance needs to
+ * be created for every instance of scripts which could potentially invoke platform service.
+ *
+ * @param aPolicyID TPolicyID Valid registered policy identifier
+ * @param aExeID TExecutableID Script identifier, KAnonymousScript in case of anonymous script session
+ * @param aHashValue TDesC hash value passed while registering the script
+ * @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
+ * will supply a default prompt handler
+ *
+ * @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession if the executableID is valid;
+ * Otherwise NULL
+
+ IMPORT_C CRTSecMgrScriptSession* GetScriptSession(TPolicyID aPolicyID, TExecutableID aExecID, const TDesC& aHashValue, MSecMgrPromptHandler* aPromptHdlr=NULL);*/
+private:
+ //Private default constructor
+ CRTSecManager();
+
+ //Part of second-phase constructor
+ void ConstructL();
+
+private:
+ //Proxy to client side session object
+ CRTSecMgrClientProxy* iClientProxy;
+ };
+#endif //_CRTSECMANAGER_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/rtsecmgrscriptsession.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,661 @@
+/*
+* 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 the License "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: Client side proxy class representing script session
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _CRTSECMGRSCRIPTSESSION_H_
+#define _CRTSECMGRSCRIPTSESSION_H_
+
+#include <rtsecmanager.rsg>
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrpermission.h>
+#include <rtsecmgrscript.h>
+#include <rtsecmgrtrustinfo.h>
+
+class CCoeEnv;
+class CRTSecMgrSubSessionProxy;
+
+/**
+ * Type holding data to be used while prompting.
+ *
+ * The default or custom (runtime over-ridden) prompt handler requires the permission
+ * type to prompt and the user-selection to be returned to security
+ * manager for access permission check
+ *
+ * @lib rtsecmgrclient.lib
+ */
+class CPromptData : public CBase
+ {
+public:
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CPromptData instance
+ *
+ * @return pointer to an instance of CPromptData
+ */
+ static CPromptData* NewL()
+ {
+ CPromptData* self = CPromptData::NewLC ();
+ CleanupStack::Pop (self);
+ return self;
+ }
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CPromptData instance and leaves the created instance
+ * onto the cleanupstack.
+ *
+ * @return pointer to an instance of CPromptData
+ */
+
+ static CPromptData* NewLC()
+ {
+ CPromptData* self = new (ELeave) CPromptData();
+ CleanupStack::PushL (self);
+ self->ConstructL ();
+ return self;
+ }
+
+
+ /**
+ * Destructor
+ *
+ */
+ ~CPromptData()
+ {
+ if(iPermission)
+ delete iPermission;
+
+ }
+
+
+ /*
+ *
+ *
+ */
+ void ConstructL()
+ {
+
+ }
+
+ /**
+ * Returns permission data
+ *
+ * @return an object containing the permission data
+ */
+ inline CPermission* Permission() const
+ {
+ return iPermission;
+ }
+
+ /**
+ * Sets the user-selection data
+ *
+ * @param aUserSelection TUserPromptOption user-selected data value
+ */
+ inline void SetUserSelection(TUserPromptOption aUserSelection)
+ {
+ iUserSelection = aUserSelection;
+ }
+
+ /**
+ * Sets the permission value of the domain
+ *
+ * @param aPermission CPermission permission value of the domain
+ */
+
+ inline void SetPermissions(CPermission& aPermission)
+ {
+ if(iPermission)
+ {
+ delete iPermission;
+ iPermission = NULL;
+ }
+
+ iPermission = CPermission::NewL(aPermission);
+ //iPermission = &aPermission;
+ }
+private:
+ //private default constructor
+ CPromptData::CPromptData() :
+ iUserSelection(RTUserPrompt_UnDefined)
+ {
+ }
+
+ //private permission data
+ CPermission* iPermission;
+
+ //private user-selection
+ TUserPromptOption iUserSelection;
+
+ friend class CRTSecMgrScriptSession;
+ };
+
+//typdef to model list of prompt data structure
+typedef RPointerArray<CPromptData> RPromptDataList;
+typedef RArray<TInt> RResourceArray;
+
+/*
+ * Prompt callback handler class.
+ *
+ * Runtimes should implement the prompt handler function to prompt the user
+ * and to obtain the user option chosen. The prompt data are used by
+ * runtime security manager for further access permission check.
+ *
+ * If runtimes do not override prompt handling, security manager component
+ * would then provide default prompt handler functionality.
+ *
+ * @lib rtsecmgrclient.lib
+ */
+class MSecMgrPromptHandler
+ {
+public:
+ /**
+ * Prompts the user.
+ *
+ * @param aPromptDataList RPromptDataList list of prompt data used by
+ * prompt callback handler to show to the user
+ *
+ * @return KErrNone if prompting successful; In case of failure, one of
+ * system wide error codes
+ */
+ virtual TInt Prompt(RPromptDataList& aPromptDataList , TExecutableID aExecID = KAnonymousScript) =0;
+
+ /**
+ * Sets the user chosen prompt selection.
+ *
+ * @param aPromptUiOption TSecMgrPromptUIOption prompt selection
+ */
+ virtual void SetPromptOption(TSecMgrPromptUIOption aPromptUiOption) =0;
+ /**
+ * Returns the prompt selection
+ *
+ * @return TSecMgrPromptUIOption the prompt selection
+ */
+ virtual TSecMgrPromptUIOption PromptOption() const =0;
+ };
+
+struct TPermanentInfo
+ {
+ TPermGrant iAllowedBits; //permanent allowed caps
+ TPermGrant iDeniedBits; //permanent denied caps
+ RProviderArray iAllowedProviders; //permanent allowed providers
+ RProviderArray iDeniedProviders; //permanent denied providers
+ };
+
+struct TSessionInfo
+ {
+ TCapabilityBitSet AllowedCaps; //caps allowed for this session (caps allowed for this session & perm allowed)
+ TCapabilityBitSet DeniedCaps; //caps denied for this sesion (caps denied for this session & perm denied)
+ RProviderArray AllowedProviders;//providers allowed for this session
+ RProviderArray DeniedProviders;//providers denied for this session
+ };
+
+/**
+ *
+ * Thin proxy to the client side sub-session handle.
+ *
+ * This class implements the default prompt handling functionality. In addition, the main
+ * functionality of native platform access check is performed by CRTSecMgrScriptSession.
+ *
+ * @lib rtsecmgrclient.lib
+ *
+ */
+NONSHARABLE_CLASS(CRTSecMgrScriptSession) : public CBase, MSecMgrPromptHandler
+ {
+public:
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CRTSecMgrScriptSession instance
+ *
+ * Initializes client side script sub-session.
+ *
+ * @param MSecMgrPromptHandler pointer to a prompt handler callback
+ *
+ * @return pointer to an instance of CRTSecMgrScriptSession if succesful;
+ * Otherwise NULL
+ */
+ static CRTSecMgrScriptSession* NewL(MSecMgrPromptHandler* aPromptHdlr=0);
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CRTSecMgrScriptSession instance and leaves the created instance
+ * on the cleanupstack
+ *
+ * Initializes client side script sub-session.
+ *
+ * @param MSecMgrPromptHandler pointer to a prompt handler callback
+ *
+ * @return pointer to an instance of CRTSecMgrScriptSession if succesful;
+ * Otherwise NULL
+ */
+ static CRTSecMgrScriptSession* NewLC(MSecMgrPromptHandler* aPromptHdlr=0);
+
+ /**
+ * Callback funciton for moreinfo link in advanced prompt
+ *
+ * Calls the moreinfo function for indivudual capability or for a alias group
+ *
+ * @param aCallbackParam TAny* pointer to TCallbackParam
+ *
+ */
+ static TInt LinkCallback(TAny *aCallbackParam);
+
+ /**
+ * Destructor
+ *
+ * Closes the sub-session
+ *
+ */
+ IMPORT_C ~CRTSecMgrScriptSession();
+
+ /**
+ * Opens security manager script sub-session. This method in turn opens a
+ * sub-session on the server side, by bringing script related data onto the cache.
+ *
+ * @param aParentSession RSessionBase handle to parent security manager session
+ * @param aPolicyID TPolicyID policy identifier of the script associated with this script session
+ * @param aExecID TExecutableID identifier of the script associated with this script session
+ *
+ * @return KErrNone if successful; In case of failure, one of system wide error cods
+ */
+ TInt Open(const RSessionBase& aParentSession,TPolicyID aPolicyID,TExecutableID aExecID);
+
+ /**
+ * Opens security manager script sub-session. This method in turn opens a
+ * sub-session on the server side, by bringing script related data onto the cache.
+ *
+ * @param aParentSession RSessionBase handle to parent security manager session
+ * @param aPolicyID TPolicyID policy identifier of the script associated with this script session
+ * @param aExecID TExecutableID identifier of the script associated with this script session
+ * @param aHashValue TDesC hash value of the scrpt passed while registering the script
+ *
+ * @return KErrNone if successful; In case of failure, one of system wide error cods
+ */
+ TInt Open(const RSessionBase& aParentSession,TPolicyID aPolicyID,TExecutableID aExecID,const TDesC& aHashValue);
+
+ /**
+ * Opens security manager script sub-session. This method in turn opens a
+ * sub-session on the server side, by bringing script related data onto the cache.
+ *
+ * @param aParentSession RSessionBase handle to parent security manager session
+ * @param aPolicyID TPolicyID policy identifier of the script associated with this script session
+ * @param aExecID TExecutableID identifier of the script associated with this script session
+ * @param aTrustInfo CTrustInfo trust data structure
+ *
+ * @return KErrNone if successful; In case of failure, one of system wide error cods
+ */
+ TInt Open(const RSessionBase& aParentSession,TPolicyID aPolicyID,TExecutableID aExecID,const CTrustInfo& aTrustInfo);
+
+ /**
+ * Performs access permission check
+ *
+ * This method evaluates access permission by comparing the expected capabilities
+ * to perform service invocation with the capabilities of the script. The
+ * capabilities of the script is computed as sum of :
+ *
+ * - default allowed capabilities as specified in security access policy
+ * - user-granted capabilities, allowed by user while prompting
+ *
+ * The capabilities allowed by the user could be of various durations, like
+ * session-based, blanket/permanent and the one valid for the current invocation only
+ * (one-shot)
+ *
+ * @param aCapabilitiesToCheck RCapabilityArray list of capabilities to be checked against
+ * script's capbilities
+ *
+ * @return EAccessOk if the access permission check is successful; Else, EAccessNOk
+ */
+ IMPORT_C TInt IsAllowed(const RCapabilityArray& aCapabilitiesToCheck);
+
+ /**
+ * Performs access permission check
+ *
+ * This overloaded method evaluates access permission by comparing the expected capabilities
+ * to perform service invocation with the capabilities of the script. The
+ * capabilities of the script is computed as sum of :
+ *
+ * - default allowed capabilities as specified in security access policy
+ * - user-granted capabilities, allowed by user while prompting
+ *
+ * The capabilities allowed by the user could be of various durations, like
+ * session-based, blanket/permanent and the one valid for the current invocation only
+ * (one-shot)
+ *
+ * This overloaded version returns the list of capabilities that do not match after
+ * access permission check. This can be used by the client to display to the user the
+ * list of unmatched capabilities
+ *
+ * @param aCapabilitiesToCheck RCapabilityArray list of capabilities to be checked against
+ * script's capbilities
+ * @param aUnMatchedCapabilities RCapabilityArray list of unmatched capabilities
+ *
+ * @return EAccessOk if the access permission check is successful; Else, EAccessNOk
+ */
+ IMPORT_C TInt IsAllowed(const RCapabilityArray& aCapabilitiesToCheck,RCapabilityArray& aUnMatchedCapabilities);
+
+ /**
+ * Performs access permission check
+ *
+ * This overloaded method evaluates access permission by comparing the expected capabilities
+ * to perform service invocation with the capabilities of the script. The
+ * capabilities of the script is computed as sum of :
+ *
+ * - default allowed capabilities as specified in security access policy
+ * - user-granted capabilities, allowed by user while prompting
+ *
+ * The capabilities allowed by the user could be of various durations, like
+ * session-based, blanket/permanent and the one valid for the current invocation only
+ * (one-shot)
+ *
+ * This overloaded version returns the list of capabilities that do not match after
+ * access permission check. This can be used by the client to display to the user the
+ * list of unmatched capabilities
+ *
+ * @param aCapabilitiesToCheck RCapabilityArray list of capabilities to be checked against
+ * script's capbilities
+ * @param aProviderUid TProviderUid The provider that is being loaded
+ * @param aResourceFilePath TFileName resource file containing the string to prompt.
+ *
+ * @return EAccessOk if the access permission check is successful; Else, EAccessNOk
+ */
+ IMPORT_C TInt IsAllowed(const RCapabilityArray& aCapabilitiesToCheck, TProviderUid aProviderUid, TFileName aResourceFileName);
+
+ /**
+ * Definition of default prompt handler.
+ *
+ * @param aPromptDataList RPromptDataList list of prompt data used by
+ * prompt callback handler to show to the user
+ *
+ * @return KErrNone if prompting successful; In case of failure, one of
+ * system wide error codes
+ *
+ */
+ TInt Prompt(RPromptDataList& aPromptDataList , TExecutableID aExecID = KAnonymousScript);
+
+ /**
+ * Definition of cost notification.
+ *
+ */
+ void PromptCostL() ;
+
+ /**
+ * Gets the underlying script object
+ *
+ * This method is to be used by components, such as application manager,
+ * that are interested in displaying script related information to the user.
+ *
+ * Following are the script related information:
+ *
+ * - Capabilities allowed by default
+ * - User-grantable capabilities
+ * - Currently allowed or denied blanket permissions
+ *
+ * Note that this method should not be used by runtimes unless and until there is
+ * a strong design justification
+ *
+ * @return a reference to underlying script object
+ */
+ inline CScript& CRTSecMgrScriptSession::Script()
+ {
+ return *iScript;
+ }
+
+ /**
+ * Returns prompt handler reference
+ *
+ * @return reference to prompt handler
+ */
+ inline MSecMgrPromptHandler* PromptHandler() const
+ {
+ return iPromptHdlr;
+ }
+
+ /**
+ * Sets prompt UI option. The supported prompt options are :
+ *
+ * - Basic/Default
+ * - Advanced
+ *
+ * The difference between the basic and advanced prompt option
+ * reisdes in the fact the number of prompt options and the corresponding
+ * prompt texts displayed would be different.
+ *
+ * If not explictly, the default prompt UI option is set to basic/default prompt UI.
+ *
+ * @param aUIPromptOption TSecMgrPromptUIOption basic/advanced prompt UI option
+ */
+ inline void SetPromptOption(TSecMgrPromptUIOption aUIPromptOption)
+ {
+ iUIPromptOption = aUIPromptOption;
+ }
+
+ /**
+ * Gets prompt UI option. The supported prompt options are :
+ *
+ * - Basic/Default
+ * - Advanced
+ *
+ * The difference between the basic and advanced prompt option
+ * reisdes in the fact the number of prompt options and the corresponding
+ * prompt texts displayed would be different.
+ *
+ * @return aUIPromptOption TSecMgrPromptUIOption basic/advanced prompt UI option
+ */
+ inline TSecMgrPromptUIOption PromptOption() const
+ {
+ return iUIPromptOption;
+ }
+
+ /**
+ * Sets the application name to the value passed by the runtime.
+ * The name is displayed as part of the prompt for provider based prompting.
+ * If name is not set then the default name is used.
+ *
+ * @param aName TDesC& name of the application.
+ */
+ IMPORT_C void SetApplicationNameL(const TDesC& aName);
+
+
+private:
+ /*
+ * Default private constructor
+ *
+ */
+ CRTSecMgrScriptSession(MSecMgrPromptHandler* aPromptHdlr=0);
+
+ /*
+ * Two phased constructor
+ *
+ */
+ void ConstructL();
+
+ /*
+ * Contains prompt logic
+ *
+ */
+ TInt Prompt(CPromptData* aPromptData);
+
+ /*
+ * Private default implementation for advanced prompt UI option
+ *
+ */
+ TInt PromptAdvanced(CPromptData* aPromptData);
+
+ /*
+ * Logic for displaying more inormation when the user selects more info
+ *
+ */
+ TInt MoreInfoL(CPromptData& aPromptData);
+
+ /*
+ * Logic identifying the user-selection of prompt
+ * duration
+ *
+ */
+ void HandleGrantChosen(CPromptData* aPromptData,
+ TCapabilityBitSet aCapBitSet, TCapabilityBitSet& aAllowedCaps,
+ TBool& aIsPermGrantModified);
+
+ /*
+ * Private implementation to update blanket permission data
+ *
+ */
+ void UpdatePermGrant();
+
+ /*
+ * Conversion utility to convert a single 32-bit value to the list of
+ * capabilities (RArray<TCapability>)
+ *
+ */
+ void BuildCapsL(TCapabilityBitSet aCapBitSet, RCapabilityArray& aInOutTCapList);
+
+ /*
+ * Private implementation to evaluate access permission check
+ *
+ */
+ TInt IsAllowed(const RCapabilityArray& aCapsToCheck,RPromptDataList& aPromptDataList,TCapabilityBitSet& aUnMatchedCapBits);
+
+ /*
+ * Private implementation to evaluate access permission check. This
+ * overloaded version additionally returns the unmatched capabilities
+ *
+ */
+ TInt IsAllowed(const RCapabilityArray& aCapsToCheck,TCapabilityBitSet& aUnMatchedCapBits);
+
+ /*
+ * Conversion utility to generate an unsigned 32-bit value toggling the individual bits
+ * to the corresponding TCapability value
+ *
+ */
+ void AddCapability(TCapabilityBitSet& aInOutCapBitSet, TCapability aCapToSet);
+
+ /*
+ * Attempts to close the script sub-session
+ *
+ */
+ void Close();
+
+ /*
+ * Function to add the security manager resource file to the CONE environment
+ */
+ void AddResourceFiles();
+
+ /*
+ * Function to add the provider's resource file from which the body of the prompt is populated.
+ *
+ * @param aResourceFileName TFileName The resource file to be added to the CONE environment
+ */
+ TInt AddProviderResourceFile(TFileName aResourceFileName);
+
+ /*
+ * Close all the resource files added to the CONE environment
+ */
+ void CloseResourceFiles();
+
+private:
+ /*
+ * permissions allowed or denied for the current session
+ * The lifetime of this data structure is associated
+ * with this script session
+ *
+ */
+ struct
+ {
+ TSessionInfo* sessionInfo; //Information about what is allowed for this session (caps/providers allowed for this session & perm allowed)
+ TCapabilityBitSet DeniedCaps; //Information about what is denied for this session (caps/providers denied for this session & perm denied)
+ }_sessionData;
+
+ /*
+ * anonymous enumerations for selection index
+ *
+ */
+ enum
+ {
+ PROMPT_SELIDX_ZERO = 0,
+ PROMPT_SELIDX_ONE = PROMPT_SELIDX_ZERO + 1,
+ PROMPT_SELIDX_TWO = PROMPT_SELIDX_ZERO + 2,
+ PROMPT_SELIDX_THREE = PROMPT_SELIDX_ZERO + 3,
+ PROMPT_SELIDX_FOUR = PROMPT_SELIDX_ZERO + 4,
+ PROMPT_SELIDX_FIVE = PROMPT_SELIDX_ZERO + 5
+ };
+
+ /*
+ * private script reference
+ *
+ */
+ CScript* iScript;
+
+ /*
+ * permanently allowed capability bits
+ *
+ */
+ TPermanentInfo* _permanentInfo; //perm allowed information, persistently stored for this script
+
+ /*
+ * Generic data about the script session
+ *
+ */
+ HBufC* iSessionData;
+
+ /*
+ * reference to prompt handler instance
+ *
+ */
+ MSecMgrPromptHandler* iPromptHdlr;
+
+ /*
+ * sub-session proxy pointer
+ *
+ */
+ CRTSecMgrSubSessionProxy* iSubSessionProxy;
+
+ /*
+ * pointer to Coe environment
+ */
+ CCoeEnv* iCoeEnv;
+
+ /*
+ * security manager resource file offset value
+ *
+ */
+ RResourceArray iResourceOffsetArray;
+
+ /*
+ * Prompt UI option
+ *
+ */
+ TSecMgrPromptUIOption iUIPromptOption;
+
+ /*
+ * Custom prompt flag
+ *
+ */
+ TBool isCustomPrompt;
+ };
+
+#endif //_CRTSECMGRSCRIPTSESSION_H_
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/rtsecmgrtrustInfo.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* 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 the License "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: Models trust information
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _CTRUSTINFO_H_
+#define _CTRUSTINFO_H_
+
+#include <rtsecmgrcommondef.h>
+
+/**
+ * CTrustInfo models trust data structure.
+ *
+ * The runtime security manager evaluates trustedness of a
+ * runtime content/script/executable based on the trust information
+ * passed by runtimes. The definition of this type is currently
+ * incomplete, with state information such as
+ *
+ * - Origin of the script
+ * - Certificate chain of the signed trusted contents
+ *
+ * @lib rtsecmgrclient.lib
+ */
+NONSHARABLE_CLASS(CTrustInfo) : public CBase
+ {
+public:
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CTrustInfo instance
+ *
+ * @return pointer to an instance of CTrustInfo
+ */
+ IMPORT_C static CTrustInfo* NewL();
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CTrustInfo instance and leaves the created instance
+ * on the cleanupstack
+ *
+ * @return pointer to an instance of CTrustInfo
+ */
+ IMPORT_C static CTrustInfo* NewLC();
+
+ /**
+ * Destructor
+ *
+ */
+ IMPORT_C ~CTrustInfo();
+private:
+ /*
+ * Default private constructor
+ */
+ CTrustInfo();
+ };
+
+#endif //_CTRUSTINFO_H_
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* 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 the License "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: Build file for rtsecuritymanager utility API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+rtsecmgrpermission.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrpermission.h)
+rtsecmgrpermissionset.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrpermissionset.h)
+rtsecmgrscript.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrscript.h)
+rtsecmgrutility.h MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrutility.h)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrpermission.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,272 @@
+/*
+* 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 the License "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: Defines permission data structure
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _C_PERMISSION_H_
+#define _C_PERMISSION_H_
+
+#include <e32debug.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <rtsecmgrcommondef.h>
+
+typedef TUint32 TPermissionData;
+const TPermissionData LOWBIT = 0x0001;
+
+/**
+ * Represents permission data structure.
+ *
+ * A permission data is modelled as 32 bit unsigned integer type
+ * with the following layout :
+ *
+ * - With leftmost 20 bits representing one of symbian native capability value
+ * - Bits 25 to 28 represent various user prompt conditions like oneshot,
+ * session or blanket
+ * - Bits 29-32 represent default condition value
+ * - Bits 21-24 are reserved
+ *
+ * Various accessor and modifier methods are provided to access underlying
+ * native capability value, the default condition and the conditions set
+ * for this permission data.
+ *
+ * @lib rtsecmgrutil.lib
+ */
+NONSHARABLE_CLASS(CPermission) : public CBase
+ {
+public:
+ /**
+ * Default constructor
+ *
+ */
+ IMPORT_C static CPermission* NewL();
+
+ /**
+ * destructor
+ *
+ */
+ IMPORT_C ~CPermission();
+
+ /**
+ * Default constructor
+ *
+ */
+ IMPORT_C static CPermission* NewLC();
+
+
+ /**
+ * Copy constructor
+ *
+ * @param aPermission TPermission permission source from which copy is made
+ */
+ IMPORT_C static CPermission* NewL(const CPermission& aPermission);
+
+ /**
+ * Copy constructor
+ *
+ * @param aPermission TPermission permission source from which copy is made
+ */
+ IMPORT_C static CPermission* NewLC(const CPermission& aPermission);
+
+ /**
+ * Overloaded constructor taking capability
+ *
+ * @param aCapability TCapability capability to be set
+ */
+ IMPORT_C static CPermission* NewL(const RCapabilityArray& aCapabilities);
+
+ /**
+ * Overloaded constructor taking capability
+ *
+ * @param aCapability TCapability capability to be set
+ */
+ IMPORT_C static CPermission* NewLC(const RCapabilityArray& aCapabilities);
+
+ /**
+ * Overloaded constructor taking capability and default condition
+ *
+ * @param aCapability TCapability capability to be set
+ * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+ */
+ IMPORT_C static CPermission* NewL(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt);
+
+ /**
+ * Overloaded constructor taking capability and default condition
+ *
+ * @param aCapability TCapability capability to be set
+ * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+ */
+ IMPORT_C static CPermission* NewLC(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt);
+
+ /**
+ * Overloaded constructor taking capability, default condition and conditions of
+ * permission
+ *
+ * @param aCapability TCapability capability to be set
+ * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+ * @param aCondition TUserPromptOption Conditions to be set
+ */
+ IMPORT_C static CPermission* NewL(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt,
+ TUserPromptOption aCondition);
+
+ /**
+ * Overloaded constructor taking capability, default condition and conditions of
+ * permission
+ *
+ * @param aCapability TCapability capability to be set
+ * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+ * @param aCondition TUserPromptOption Conditions to be set
+ */
+ IMPORT_C static CPermission* NewLC(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt,
+ TUserPromptOption aCondition);
+
+ /**
+ * Returns default prompt option
+ *
+ * @return TUserPromptOption default condition
+ */
+ IMPORT_C TUserPromptOption Default() const;
+
+ /**
+ * Returns condition
+ *
+ * @return TUserPromptOption condition
+ */
+ IMPORT_C TUserPromptOption Condition() const;
+
+ /**
+ * Returns capability value
+ *
+ * @return TCapability capability value
+ */
+ IMPORT_C TCapability Capability() const;
+
+ /**
+ * Returns capability of the permission
+ *
+ * @param aCapabilities RCapabilityArray& contains the capabilities
+ */
+ IMPORT_C void Capabilitilites(RCapabilityArray& aCapabilities) const;
+
+ /**
+ * Sets default condition value
+ *
+ * @param aDefaultOption TUserPromptOption default condition value
+ */
+ IMPORT_C void SetDefault(TUserPromptOption aDefaultOption);
+
+ /**
+ * Sets condition value
+ *
+ * @param aCondition TUserPromptOption condition value
+ */
+ IMPORT_C void SetCondition(TUserPromptOption aCondition);
+
+ /**
+ * Sets the name of the permission
+ *
+ * @param aName const TDesC& value
+ */
+ IMPORT_C void SetPermName(const TDesC& aName);
+
+ /**
+ * Returns Name of the permission
+ *
+ * @return const TDesC&
+ */
+ IMPORT_C const TDesC& PermName() const;
+
+ /**
+ * Returns iPermissionData of the permission
+ *
+ * @return TPermission iPermissionData value
+ */
+ IMPORT_C TPermissionData PermissionData() const;
+
+ // ---------------------------------------------------------------------------
+ // Adds a capability to permission data
+ // ---------------------------------------------------------------------------
+ //
+ IMPORT_C void AppendCapPermData(TCapability aCap);
+
+ // ---------------------------------------------------------------------------
+ // Adds an unconditional capability
+ // ---------------------------------------------------------------------------
+ //
+ IMPORT_C void SetPermissionData(TPermissionData aPermData);
+
+ /**
+ * Internalizes permission data from stream
+ *
+ * @param aInStream RReadStream input source stream
+ */
+ IMPORT_C void InternalizeL(RReadStream& aInStream);
+
+ /**
+ * Externalizes permission data to stream
+ *
+ * @param aOutStream RWriteStream output stream
+ */
+ IMPORT_C void ExternalizeL(RWriteStream& aOutStream) const;
+
+private:
+ /*
+ * Default private constructor
+ */
+ inline CPermission() : iPermName(NULL), iPermissionData(0)
+ {}
+
+ /*
+ * private copy constructor
+ */
+ CPermission(const CPermission& aPermission);
+
+
+ CPermission(const RCapabilityArray& aCapabilities);
+
+ CPermission(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt);
+
+ CPermission(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt,TUserPromptOption aCondition);
+
+private:
+ //layout of TPermissionData
+ //__________________________________________________________________________
+ //| | | | |
+ //| Default | Condition | RESERVED | CAPABILITY BITS |
+ //|_________________|______________|_______________|________________________|
+ //
+ // 32,31,30,29, 28,27,26,25, 24,23,22,21, 20,19,18,...4,3,2,1
+ //
+ //underlying permission data structure
+
+
+ TPermissionData iPermissionData;
+
+
+ /*
+ * alias group name
+ */
+ HBufC* iPermName;
+
+ };
+
+#endif //_T_PERMISSION_H_
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrpermissionset.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,200 @@
+/*
+* 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 the License "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: Defines permission set class
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _CPERMISSIONSET_H_
+#define _CPERMISSIONSET_H_
+
+#include <e32debug.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrpermission.h>
+
+//Forward declaration
+class CPermissionSet;
+
+typedef RPointerArray<CPermission> RPermissions;
+typedef TUint32 TUnConditionalPermission;
+typedef RArray<TCapability> RUnConditionals;
+typedef RPointerArray<CPermissionSet> RPermissionSet;
+
+/**
+ * CPermissionSet represents list of user grantable permissions
+ * and list of unconditional permissions.
+ *
+ * CPermissionSet provides accessor and modifier methods to access
+ * and modify CPermissionSet object state
+ *
+ * @lib rtsecmgrutil.lib
+ */
+NONSHARABLE_CLASS(CPermissionSet) : public CBase
+ {
+public:
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CPermissionSet instance
+ *
+ * @return pointer to an instance of CPermissionSet
+ */
+ IMPORT_C static CPermissionSet* NewL();
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CPermissionSet instance and leaves the created instance
+ * on the cleanupstack
+ *
+ * @return pointer to an instance of CPermissionSet
+ */
+ IMPORT_C static CPermissionSet* NewLC();
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CPermissionSet instance from another permissionset
+ * object
+ *
+ * @param aPermSet CPermissionSet source permissionset object
+ *
+ * @return pointer to an instance of CPermissionSet
+ */
+ IMPORT_C static CPermissionSet* NewL(const CPermissionSet& aPermSet);
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CPermissionSet instance from another permissionset
+ * object and leaves the created instance on the cleanupstack
+ *
+ * @param aPermSet CPermissionSet source permissionset object
+ *
+ * @return pointer to an instance of CPermissionSet
+ */
+ IMPORT_C static CPermissionSet* NewLC(const CPermissionSet& aPermSet);
+
+ /**
+ * Destructor
+ *
+ */
+ IMPORT_C ~CPermissionSet();
+
+ /**
+ * Externalizes permissionset data to stream
+ *
+ * @param aOutStream RWriteStream output stream
+ */
+ IMPORT_C void ExternalizeL(RWriteStream& aSink) const;
+
+ /**
+ * Internalizes permissionset data from stream
+ *
+ * @param aInStream RReadStream input source stream
+ */
+ IMPORT_C void InternalizeL(RReadStream& aSource);
+
+ /*
+ * Adds an unconditional capability to the permissionset
+ *
+ * @param aCapability TCapability unconditional capability to be added
+ */
+ IMPORT_C void AppendUncondCap(TCapability aCapability);
+
+ /*
+ * Adds a list of unconditional capabilities to the permissionset
+ *
+ * @param TUnConditionalPermission aUnConditionals - list of TCapability that are to be added
+ */
+ IMPORT_C void AppendUncondCapabilities(TUnConditionalPermission aUnConditionals);
+
+ /*
+ * Adds a permission to the permissionset
+ *
+ * @param aPermission CPermission permission data to be added
+ *
+ */
+ IMPORT_C void AppendPermission(CPermission& aPermission);
+
+ /*
+ * Gets the list of user-grantable permissions
+ *
+ * @return RPermissions non-modifiable reference to the list of user-grantable permissions
+ *
+ */
+ IMPORT_C const RPermissions& Permissions() const;
+
+ /*
+ * Gets the list of unconditional permissions
+ *
+ * @return TUnConditionalPermission unconditional permission
+ *
+ */
+ IMPORT_C TUnConditionalPermission UnconditionalCaps() const;
+
+ /*
+ * Gets the list of unconditional permissions as array of
+ * TCapability
+ *
+ * @return RUnConditionals list of unconditional capabilities
+ *
+ * @see TCapability
+ *
+ */
+ IMPORT_C void UnconditionalCaps(RUnConditionals& aUnConditionals) const;
+
+ /*
+ * Gets list of user-grantable permissions. This overloaded version
+ * returns modifiable list of user-grantable permissions
+ *
+ * @return RPermissions list of user-grantable permissions
+ *
+ */
+ IMPORT_C RPermissions& Permissions();
+
+private:
+ /*
+ * Default private constructor
+ */
+ inline CPermissionSet()
+ {}
+
+ /*
+ * private copy constructor
+ */
+ CPermissionSet(const CPermissionSet& aPermSet);
+
+ /*
+ * Private second phase constructor
+ */
+ void ConstructL(const CPermissionSet& aPermSet);
+
+private:
+
+ //unconditional permissions
+ TUnConditionalPermission iUncondCapSet;
+
+ //user-grantable permissions
+ RPermissions iPermissions;
+ };
+#endif //_CPERMISSIONSET_H_
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrscript.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,336 @@
+/*
+* 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 the License "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: Models script data structure
+ *
+*/
+
+
+
+
+
+
+#ifndef _CSCRIPT_H_
+#define _CSCRIPT_H_
+
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrutility.h>
+
+/**
+ * Type holding data to be used while prompting.
+ *
+ * The default or custom (runtime over-ridden) prompt handler requires the permission
+ * type to prompt and the user-selection to be returned to security
+ * manager for access permission check
+ *
+ * @lib rtsecmgrclient.lib
+ */
+NONSHARABLE_CLASS(CScript) : public CBase
+ {
+public:
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CScript instance
+ *
+ * @param aPolicyID TPolicyID policy identifier of the script
+ * @param aScriptID TExecutableID script identifier
+ *
+ * @return pointer to an instance of CScript
+ */
+ IMPORT_C static CScript* NewL(TPolicyID aPolicyID,TExecutableID aScriptID);
+
+ /**
+ * Two-phased constructor
+ *
+ * Constructs a CScript instance and leaves the created instance
+ * on cleanupstack
+ *
+ * @param aPolicyID TPolicyID policy identifier of the script
+ * @param aScriptID TExecutableID script identifier
+ *
+ * @return pointer to an instance of CScript
+ */
+ IMPORT_C static CScript* NewLC(TPolicyID aPolicyID,TExecutableID aScriptID);
+
+ /*
+ * Destructor
+ */
+ IMPORT_C ~CScript();
+
+ /*
+ * overloaded assignment operator
+ *
+ * @param aRhs CScript source script object specified on the right
+ * hand side of the assignment operator
+ *
+ * @return CScript returns the reference of this script object
+ */
+ IMPORT_C const CScript& operator=(const CScript& aRhs);
+
+ /*
+ * Gets the policy identifier of the script
+ *
+ * @return TPolicyID policy identifier of the script
+ */
+ IMPORT_C TPolicyID PolicyID() const;
+
+ /*
+ * Gets the script identifier
+ *
+ * @return TExecutableID identifier of the script
+ */
+ IMPORT_C TExecutableID ScriptID() const;
+
+ /*
+ * Gets the permissionset of the script. The permissionset
+ * contains the list of user-grantable permissions and the list
+ * of unconditional permissions
+ *
+ * @return CPermissionSet permissionset of the script
+ */
+ IMPORT_C const CPermissionSet& PermissionSet() const;
+
+ /*
+ * Gets the permissionset of the script. The permissionset
+ * contains the list of user-grantable permissions and the list
+ * of unconditional permissions. This overloaded version returns
+ * a modifiable reference to permissionset object.
+ *
+ * @return CPermissionSet modifiable reference to permissionset of the script
+ */
+ IMPORT_C CPermissionSet& PermissionSet();
+
+ /*
+ * Gets the permanently granted permissions
+ *
+ * @return TPermGrant permanently granted permission
+ *
+ */
+ IMPORT_C TPermGrant PermGranted() const;
+
+ /*
+ * Gets the permanently denied permissions
+ *
+ * @return TPermGrant permanently denied permission
+ *
+ */
+ IMPORT_C TPermGrant PermDenied() const;
+
+ /*
+ * Gets the permanently granted providers
+ *
+ * @param aAllowedProviders RProviderArray IN/OUT param which will co
+ *
+ */
+ IMPORT_C void PermGranted(RProviderArray& aAllowedProviders) ;
+
+ /*
+ * Gets the permanently denied permissions
+ *
+ * @return TPermGrant permanently denied permission
+ *
+ */
+ IMPORT_C void PermDenied(RProviderArray& aDeniedProviders) ;
+
+ /*
+ * Sets the permissionset of the script
+ *
+ * @param aPermissionSet CPermissionSet source permissionset to be set
+ */
+ IMPORT_C void SetPermissionSet(const CPermissionSet& aPermissionSet);
+
+ /**
+ * Externalizes script data to stream
+ *
+ * @param aOutStream RWriteStream output stream
+ */
+ IMPORT_C void ExternalizeL(RWriteStream& aSink) const;
+
+ /**
+ * Internalizes script data from stream
+ *
+ * @param aInStream RReadStream input source stream
+ */
+ IMPORT_C void InternalizeL(RReadStream& aSource);
+
+ /*
+ * Sets permanently granted permission
+ *
+ * @param aPermGrant TPermGrant permanently granted permission to be set
+ *
+ */
+ IMPORT_C void SetPermGranted(TPermGrant aPermGrant);
+
+ /*
+ * Sets permanently denied permission
+ *
+ * @param aPermDenied TPermGrant permanently denied permission to be set
+ *
+ */
+ IMPORT_C void SetPermDenied(TPermGrant aPermDenied);
+
+ /*
+ * Sets permanently granted permission
+ *
+ * @param aPermGrant TPermGrant permanently granted permission to be set
+ *
+ */
+ IMPORT_C void SetPermGranted(RProviderArray aPermGrantProviders);
+
+ /*
+ * Sets permanently denied permission
+ *
+ * @param aPermDenied TPermGrant permanently denied permission to be set
+ *
+ */
+ IMPORT_C void SetPermDenied(RProviderArray aPermDeniedProviders);
+
+ /*
+ * Sets hash value of the script
+ *
+ * @param aHashMark TDesC hash value of the script
+ *
+ */
+ inline void SetHashMarkL(const TDesC& aHashMark);
+
+ /*
+ * Compares the HashValue of the script with the one passed as argument.
+ *
+ * @return TBool hash values match or not.
+ *
+ */
+ inline TBool HashMatch(const TDesC& aHashValue = KNullDesC) const;
+
+ /*
+ * returns hash value of the script
+ *
+ * @return TDesC hash value of the script
+ *
+ */
+ inline TDesC Hash();
+
+private:
+ /*
+ * default private constructor
+ *
+ */
+ inline CScript():iPermGrant(KDefaultNullBit),iPermDenied(KDefaultNullBit)
+ {}
+
+ /*
+ * overloaded constructor
+ *
+ * @param aPolicyID TPolicyID policy identifier of the script
+ * @param aScriptID TExecutableID script identifier
+ *
+ */
+ inline CScript(TPolicyID aPolicyID,TExecutableID aScriptID):iPolicyID(aPolicyID),iPermGrant(KDefaultNullBit),iPermDenied(KDefaultNullBit),iScriptID(aScriptID)
+ {}
+
+ /*
+ * copy constructor
+ *
+ * @param aRhs source script object
+ */
+ CScript(const CScript& aRhs);
+
+ /*
+ * Two-phased constructor
+ *
+ */
+ void ConstructL();
+
+
+private:
+ //permission set
+ CPermissionSet* iPermissionSet;
+
+ //script identifier
+ TExecutableID iScriptID;
+
+ //policy identifier of the script
+ TPolicyID iPolicyID;
+
+ //permanently granted permission
+ TPermGrant iPermGrant;
+
+ //permanently denied permission
+ TPermGrant iPermDenied; //separate bit-patterns for permanently allowed & denied
+
+ //permanently allowed providers
+ RProviderArray iAllowedProviders;
+
+ //permanently denied providers
+ RProviderArray iDeniedProviders;
+
+ //hash value of the script
+ HBufC* iHashMark;
+
+ // Reserved for future additions
+ TAny* iReserved;
+ };
+
+/*
+ * Sets hash value of the script
+ *
+ * @param aHashMark TDesC hash value of the script
+ *
+ */
+inline void CScript::SetHashMarkL(const TDesC& aHashMark)
+ {
+ if ( iHashMark)
+ {
+ delete iHashMark;
+ }
+ iHashMark = aHashMark.AllocLC ();
+ CleanupStack::Pop ();
+ }
+
+/*
+ *
+ *
+ * @return TBool Etrue
+ *
+ */
+inline TBool CScript::HashMatch(const TDesC& aHashValue) const
+ {
+ TBool matches(EFalse);
+ if(iHashMark)
+ {
+ if(0==aHashValue.CompareF(*iHashMark))
+ {
+ return !matches;
+ }
+ }
+ return matches;
+ }
+
+/*
+ *
+ * @return TDesC hash value of the script.
+ *
+ */
+
+inline TDesC CScript::Hash()
+ {
+ if(iHashMark)
+ return *iHashMark;
+ else
+ return KNullDesC;
+ }
+
+#endif //_CSCRIPT_H_
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrutility.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* 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 the License "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: Security Manager utility header
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _RTSECURITYMGRUTILITY_H_
+#define _RTSECURITYMGRUTILITY_H_
+
+#include <e32debug.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrpermission.h>
+#include <rtsecmgrpermissionset.h>
+
+#endif //_RTSECURITYMGRUTILITY_H_
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/telinformationpskeys.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* 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: Telephony information Publish and Subscribe keys.
+*
+*/
+
+
+#ifndef TELINFORMATIONPSKEYS_H
+#define TELINFORMATIONPSKEYS_H
+
+#include <e32std.h>
+
+// CONSTANTS
+
+/*****************************************************************************
+* Telephony Information API UID
+*****************************************************************************/
+const TUid KPSUidTelInformation = {0x101F8789};
+
+/**
+* Identifier of Phone application.
+* @type RProperty::EInt
+*/
+const TUint32 KTelPhoneUid = 0x00000001;
+
+/**
+* Operator information display data.
+* @see TTelTitleDisplay in TelephonyDomainPSTypes.h
+* @type RProperty::EByteArray
+*/
+
+const TUint32 KTelDisplayInfo = 0x00000002;
+
+#endif // TELINFORMATIONPSKEYS_H
+
+// End of file
--- a/idlefw/group/bld.inf Fri Mar 19 13:46:28 2010 +0200
+++ b/idlefw/group/bld.inf Thu Mar 25 09:33:14 2010 +0100
@@ -16,7 +16,7 @@
*/
-#ifdef RD_CUSTOMIZABLE_AI
+// #ifdef RD_CUSTOMIZABLE_AI
#include <platform_paths.hrh>
@@ -56,4 +56,4 @@
// Plug-ins
#include "../plugins/group/bld.inf"
-#endif // RD_CUSTOMIZABLE_AI
+// #endif // RD_CUSTOMIZABLE_AI