# HG changeset patch # User Christian Morlok # Date 1269505994 -3600 # Node ID d2ab7c3d0c482d170e631571b7bbb51c53d6d360 # Parent c9bafd575d886491763baab36d8f0a165d2942af homescreenpluginsrv component compiles now diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/BTSapDomainPSKeys.h --- /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__ diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/BTSapInternalPSKeys.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__ diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/CommonEngineDomainCRKeys.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 + +// ============================================================================= +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/ETELEXT.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 +#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__ diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/ET_CLSVR.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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/PSVariables.h --- /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 + +// 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__ diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/RMmCustomAPI.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 +#include +#include + +// 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 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 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 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 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 iSmsC; + TBuf 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 iName; + /** Active flag */ + TActiveFlag iActiveFlag; + }; + + /** Array of TViagElement objects */ + typedef CArrayFixFlat 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 iName; + }; + + /** Buffer for telephone number */ + typedef TBuf 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 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 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 iSubAddress; + /** Bearer */ + TBuf8 iBearer; + }; + + /** Package buffer for TCustomCallParams objects */ + typedef TPckg 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 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 TGprsInformationPckg; + + /** Package buffer for SIM File paths */ + typedef TBuf8 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 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 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 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 inline TPtr8& Set( TInt aSlot, T& aObject ) + { + TPtr8& ptr=Ptr( aSlot ); + ptr.Set( REINTERPRET_CAST( TText8*, ( &aObject ) ), sizeof( T ), + sizeof( T ) ); + + return ptr; + }; + + template 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 iPtrArray; + RArray iPtrCArray; + + private: // Data + + TPtr8& Ptr( TInt aIndex ); + TPtrC8& PtrC( TInt aIndex ); + + }; + +#endif // RMMCUSTOMAPI_H + +// End of File diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/S3libs/ABLD.BAT --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/S3libs/abclient.lib Binary file dependencies/S3libs/abclient.lib has changed diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/S3libs/bld.inf --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/S3libs/featmgr.lib Binary file dependencies/S3libs/featmgr.lib has changed diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/S3libs/liwServiceHandler.lib Binary file dependencies/S3libs/liwServiceHandler.lib has changed diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/S3libs/sysversioninfo.lib Binary file dependencies/S3libs/sysversioninfo.lib has changed diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/SAT/RSatSession.h --- /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 +#include + +/** + * 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/SAT/bld.inf --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/SAT/rsatservice.h --- /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 + +// FORWARD DECLARATIONS +class CFbsBitmap; +class RSatSession; +class TSatIconInfo; +class TSatInternalIconInfo; +class CSatPluginMonitor; + +// DATA TYPES + +/** + * Array containing the icon information + */ +typedef RArray RIconEf; + + +// CLASS DECLARATION + +/** + * Sub-session for SAT services to SIM + * + * In order to use SAT Service API, services of an another API is needed: + *
    + *
  • SAT Client API \n For connecting SAT Session
    + *
+ * + * 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/SAT/tsaticoninfo.h --- /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 + +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/SATDomainPSKeys.h --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/ScreensaverInternalPSKeys.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 +#include + +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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/SettingsInternalCRKeys.h --- /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 + +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/activebackupclient/abclient.h --- /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 +#include +#include +#include + +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__ + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/activebackupclient/bld.inf --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/avkon_localised_texts_api/avkon.loc --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/avkon_localised_texts_api/avkonsct.loc --- /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 + + + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/avkon_localised_texts_api/bld.inf --- /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 + +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) diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/avkon_localised_texts_api/platform.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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/bld.inf --- 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/common_platform_security_definitions/bld.inf --- /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 + +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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/common_platform_security_definitions/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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/common_platform_security_definitions/data_caging_path_literals.hrh --- /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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/common_platform_security_definitions/data_caging_paths.hrh --- /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 + + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/common_platform_security_definitions/data_caging_paths_for_iby.hrh --- /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 + + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/common_platform_security_definitions/data_caging_paths_strings.hrh --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/ctsydomainpskeys.h --- /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 + +/** + * 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/extended_version_info_api/bld.inf --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/extended_version_info_api/sysversioninfo.h --- /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 + +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/extended_version_info_api/sysversioninfo.inl --- /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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_criteria_api/bld.inf --- /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 + +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) diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_criteria_api/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 +#include +#include + +// 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 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 + + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_criteria_api/liwcommon.hrh --- /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 + + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_criteria_api/liwcommon.rh --- /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 + +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/bld.inf --- /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 + +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) diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/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 + +#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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/liwgenericparam.h --- /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 +#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 && aIndexAtL(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 iParameters; + friend class CLiwDefaultList; + friend class CLiwDefaultMap; + }; + + +// INLINE FUNCTIONS +#include "liwgenericparam.inl" + +#endif // LIW_GENERIC_PARAM_H + +// End of File diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/liwgenericparam.hrh --- /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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/liwgenericparam.inl --- /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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/liwvariant.h --- /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 +#include +#include +#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. + * + * + * + *

+ * + */ + 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: +*
    +*
  • access elements based on an index
  • +*
  • remove an element from the collection
  • +*
  • append to an element to the collection
  • +*
  • remove a key-value pair based on a key
  • +*
  • get the total number of stored key-value pairs
  • +*
+* 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: +*
    +*
  • insert a key-value pair
  • +*
  • find a stored value based on a key
  • +*
  • get a key based on an index
  • +*
  • remove a key-value pair based on a key
  • +*
  • get the total number of stored key-value pairs
  • +*
+* +* 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: +*
    +*
  • access elements based on index
  • +*
  • remove an element
  • +*
  • append an element to the end of the list collection
  • +*
  • get the total number of elements stored in the list collection
  • +*
+* +* +* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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 +*
    +*
  • insert a key-value pair
  • +*
  • find a stored value based on a key
  • +*
  • get a key based on an index
  • +*
  • remove a key-value pair based on a key
  • +*
  • get the total number of stored key-value pairs
  • +*
+* +* +* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/liwvariant.inl --- /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(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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liw_generic_parameter_api/liwvarianttype.hrh --- /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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liwmenu.h --- /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 +#include + +// 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 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liwservicehandler.h --- /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 +#include +#include + +// 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& 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liwserviceifbase.h --- /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 +#include + +// 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 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/liwserviceifmenu.h --- /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 + +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/platform_paths.hrh --- 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 + /** ************************************************************************** * General comments about the exporting of headers macros diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecmgrcommondef.h --- /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 +#include + +typedef TInt TPolicyID; +typedef TInt TExecutableID; +typedef TUint32 TPermGrant; +typedef RArray RCapabilityArray; +typedef TUid TProviderUid; +typedef RArray 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_ diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_client_api/bld.inf --- /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 + +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) + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_client_api/rtsecmanager.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 + +#include +#include + +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 + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_client_api/rtsecmgrscriptsession.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 +#include +#include +#include +#include + +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 RPromptDataList; +typedef RArray 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) + * + */ + 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_ + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_client_api/rtsecmgrtrustInfo.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 + +/** + * 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_utility_api/bld.inf --- /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 + +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) + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_utility_api/rtsecmgrpermission.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 +#include +#include +#include + +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_ + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_utility_api/rtsecmgrpermissionset.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 +#include +#include +#include +#include + +//Forward declaration +class CPermissionSet; + +typedef RPointerArray RPermissions; +typedef TUint32 TUnConditionalPermission; +typedef RArray RUnConditionals; +typedef RPointerArray 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_ + diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_utility_api/rtsecmgrscript.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 +#include + +/** + * 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/rtsecuritymanager_utility_api/rtsecmgrutility.h --- /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 +#include +#include +#include +#include +#include + +#endif //_RTSECURITYMGRUTILITY_H_ + +// End of file diff -r c9bafd575d88 -r d2ab7c3d0c48 dependencies/telinformationpskeys.h --- /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 + +// 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 diff -r c9bafd575d88 -r d2ab7c3d0c48 idlefw/group/bld.inf --- 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 @@ -56,4 +56,4 @@ // Plug-ins #include "../plugins/group/bld.inf" -#endif // RD_CUSTOMIZABLE_AI +// #endif // RD_CUSTOMIZABLE_AI