/** 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: Definitions for WV Presence Attributes**/#ifndef __PENGWVPRESENCEATTRIBUTES2_H#define __PENGWVPRESENCEATTRIBUTES2_H// INCLUDES#include <E32std.h>//-----------------------------------------------------------------------// SUPPORTED WV PRESENCE ATTRIBUTES/** * Online status attribute. * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrOnlineStatus = 0x10000001;/** * Client info attribute. * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrClientInfo = 0x10000002;/** * Communication capabilities attribute. * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrCommCap = 0x10000003;/** * User availability attribute. * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrUserAvailability = 0x10000004;/** * Status text attribute. * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrStatusText = 0x10000005;/** * StatusContent attribute. * * (Former KUidPrAttrMyLogoStatusContent) * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrStatusContent = 0x10000006;/** * MyLogo thumbnail. * * Supported in protocols: * - WV CSP 1.1 * - WV CSP 1.2 */const TUint32 KUidPrAttrMyLogoThumbnail = 0x10000007;/** * Infolink attribute. * * Supported in protocols: * - WV CSP 1.2 * * Infolink attribute support is variated * InfoLink support can be checked from: * 1) CenRep. See PresenceEngineInternalCRKeys.h and * KPEngVariationInfoLinkSupported key. Remeber * to check also protocol version from * WV Engine CenRep variation file. * * 2) Attribute store. See * CPEngAttributeStore2::AttributeTypeSupported() * Attribute store AttributeTypeSupported() method * combines both WV Engine protocol version and * InfoLink variation checks. */const TUint32 KUidPrAttrInfoLink = 0x10000008;/** * Alias attribute. * Supported in protocols: WV CSP 1.1 and WV CSP 1.2 */const TUint32 KUidPrAttrAlias = 0x10000009;//-----------------------------------------------------------------------// ATTRIBUTE DATA DEFINITIONS/** * Online Status. * (Attribute type KUidPrAttrOnlineStatus.) * * Online status indicates is the subscribed client * logged in to the Wireless Village server or not. * * * Integer data fields: * - EPEngOnlineStatus * Online status. Possible values enumerated * in TPEngWVOnlineStatusValues. Readonly value. * * @since 3.0 */// Integer fieldsenum TPEngWVOnlineStatusIntegerFields { EPEngOnlineStatus = 0 };// Enum values for EPEngOnlineStatus fieldenum TPEngWVOnlineStatusValues { EPEngOnlineStatusOffline = 0, //default value EPEngOnlineStatusOnline = 1 };/** * Client info. * (Attribute type KUidPrAttrClientInfo.) * * Client info indicates to the subscriber information * about this particular client. This information * includes manufacturer, model, a user defined name, * the current language and a description of the client. * One enumerated field and five descriptive text fields. * * * NOTE!! This is a readonly attribute. * Client application can't set local values. * * Integer data fields: * - EPEngCliInfDeviceType. * Device type. Different values enumerated * in TPEngWVCliInfDeviceTypeValues. Readonly value. * * Unicode data fields: * - EPEngCliInfDeviceManufacturer. * Name of the device manufacturer. Free text, readonly. * * - EPEngCliInfClientProducer. * Name of the client application producer. Free text, readonly. * * - EPEngCliInfDeviceModel. * Model of the client device. Free text, readonly. * * - EPEngCliInfClientVersion. * Version of the client application. Free text, readonly. * * - EPEngCliInfClientLanguage. * Language setting of the client device. * ISO 639-2/T (three letter language code, or empty descriptor), readonly. * (Only language code length is validated.) * * @since 3.0 */// DesC16 fieldsenum TPEngWVClientInfoDesC16Fields { EPEngCliInfDeviceManufacturer = 0, EPEngCliInfClientProducer = 1, EPEngCliInfDeviceModel = 2, EPEngCliInfClientVersion = 3, EPEngCliInfClientLanguage = 4 };// Integer fieldsenum TPEngWVClientInfoIntegerFields { EPEngCliInfDeviceType = 0 };// Enum values for EPEngCliInfDeviceType fieldenum TPEngWVCliInfDeviceTypeValues { EPEngCliDevTypeMobilePhone = 0, EPEngCliDevTypeComputer = 1, EPEngCliDevTypePDA = 2, EPEngCliDevTypeCLI = 3, EPEngCliDevTypeOther = 4 //default value };/** * Communication capability. * (Attribute type KUidPrAttrCommCap.) * * The communication capability means the capability * of the device hosting the client for certain type * of user-to-user communication. * * One integer field and two descriptive text * fields in five field groups. * * Integer data fields: * - EPEngCommCapStatus. * The status of the communication client. Values * enumerated in TPEngWVCommunicationCapabilityValues. * * DesC16 data fields: * - EPEngCommCapContact. * Contact address of the communication client. * Free text. (not supported) * * - EPEngCommCapNote. * Free text describing the communication client. * (not supported) * * Field groups for integer & DesC16 data fields: * - EPEngCommCapIMClient * - EPEngCommCapCallClient (not supported) * - EPEngCommCapSmsClient (not supported) * - EPEngCommCapMmsClient (not supported) * - EPEngCommCapEmailClient (not supported) * * @since 3.0 *///Field groupsenum TPEngWVCommunicationCapabilitiesFieldGroups { EPEngCommCapIMClient = 0 ///< IM field group };// Integer fieldsenum TPEngWVCommunicationCapabilitiesIntegerFields { EPEngCommCapStatus = 0 };// Enum values for EPEngCommCapStatus fieldenum TPEngWVCommunicationCapabilityValues { EPEngCommCapStatusClosed = 0, //default value EPEngCommCapStatusOpen = 1 };/** * User availability. * (Attribute type KUidPrAttrUserAvailability.) * * User availability status indicates how willing the publisher * is to start telephony or messaging conversation. * * Integer data field: * - EPEngUsrAvailability. * User availability. Status values are * enumerated in TPEngWVUserAvailabilityValues. * * @since 3.0 */// Integer fieldsenum TPEngWVUserAvailabilityIntegerFields { EPEngUsrAvailability = 0 };// Enum values from EPEngUsrAvailability fieldenum TPEngWVUserAvailabilityValues { EPEngUsrAvailabilityOffline = 0, //default value EPEngUsrAvailabilityDiscreet = 1, EPEngUsrAvailabilityOnline = 2 };/** * Status text. * (Attribute type KUidPrAttrStatusText.) * * A short free form text description of user status. * * DesC16 data fields: * - EPEngStatusText. * The status text. Free text with max * KPEngMaxWVStatusTextLength length. * * @since 3.0 */enum TPEngWVStatusTextDesC16Fields { EPEngStatusText = 0 };const TInt KPEngMaxWVStatusTextLength = 40;/** * Status Content attribute. * (Attribute type KUidPrAttrStatusContent.) * * Status Content presents multimedia object that * the user has selected as personal status information. * * Currently only logo image (MyLogo) content is supported. * MyLogo is JPEG, GIF 87a or GIF 89a formatted image * with max 60x100 pixel size and 5 kB byte size after * BASE64 encoding. * * If client sets too big or wrong formatted image as MyLogo, * it is automaticly tried to converted to meet the MyLogo * requirements. Conversion can fail with: * - KErrPathNotFound: image file isn't found * - KErrNotSupported: tried image format not supported by the platform * - KErrTooBig: image byte size still too big after JPEG conversion * - or some other system-wide error code. * * * DesC16 fields: * - EPEngMakeMyLogoDirectContentFromFile * Command to generate new MyLogo direct content image * asynchronously from given image file. Data parameter * is image file filename. This field ID can be used * both with synchronous SetDataDesC16L() and asynchronous * SetDataDesC16AsyncL(). With synchronous SetDataDesC16L(), internal * asynchronous processing is masqueraded as modal request * with CActiveSchedulerWait and processing errors are * handled with leave. If empty filename is given, clears * existing logo. * * - EPEngMyLogoDirectContentSourceFileName * Gets the currently set MyLogo source file name. File name * is available only for user own setted MyLogo and if the set * was done with EPEngMakeMyLogoDirectContentFromFile. * In other cases empty buffer is returned. * * * DesC8 fields: * - EPEngMakeMyLogoDirectContentFromBuffer * Command to generate new MyLogo direct content image * asynchronously from given image data. Data parameter * is images full data. This field ID can be used both * with synchronous SetDataDesC8L() and asynchronous * SetDataDesC16AsyncL(). With synchronous SetDataDesC8L(), internal * asynchronous processing is masqueraded as modal request * with CActiveSchedulerWait and processing errors are * handled with leave. If empty buffer is given, clears * existing logo. * * - EPEngMyLogoDirectContentBuffer * Gets current MyLogo direct content image data. * If no logo is set, empty buffer is returned. * * NOTE!! Only one set request may be active at time. * * @since 3.0 */// DesC16 fields.enum TPEngWVStatusContentDesC16Fields { EPEngMakeMyLogoDirectContentFromFile = 0, EPEngMyLogoDirectContentSourceFileName = 1 };// DesC8 fields.enum TPEngWVStatusContentDesC8Fields { EPEngMakeMyLogoDirectContentFromBuffer = 1000, EPEngMyLogoDirectContentBuffer = 1001 };// Max height for my logo image.const TInt KPEngWVMyLogoImageMaxHeight = 60;// Max width for my logo image.const TInt KPEngWVMyLogoImageMaxWidth = 100;// Max byte size for my logo image.const TInt KPEngWVMyLogoImageMaxByteSize = 3800;// Max byte size for BASE64 transfer encoded my logo image.const TInt KPEngWVMyLogoImageMaxEncodedByteSize = 5120;// My Logo mime types_LIT8( KPEngWVMyLogoMimeJpeg, "image/jpeg" );_LIT8( KPEngWVMyLogoMimeImageGif, "image/gif" );/** * MyLogo thumbnail attribute. * (Attribute type KUidPrAttrMyLogoThumbnail.) * * MyLogoThumbnail is a thumbnail image generated * locally on the terminal for the received MyLogo images. * * Thumbnails are generated by the platform specific * Presence Engine extension plugins and thus thumbnails * can have platform specific charasteristics like * heigth, width and image type. Thumbnails are generated * asynchronously, so their completion is notified through * common Presence Engine attribute notification systems. * Thumbnail attribute is local attribute * (TPEngAttributeOriginator::EPEngLocalAttribute) and * thus it can't be used in attribute lists nor published. * * DesC8 fields: * - EPEngMyLogoThumbnailDesC8Buf0 * - EPEngMyLogoThumbnailDesC8Buf1 * - EPEngMyLogoThumbnailDesC8Buf2 * 8 bit descriptor fields. Usage of these buffers * is up to extension plugin. * * * DesC16 fields: * - EPEngMyLogoThumbnailDesC16Buf0 * - EPEngMyLogoThumbnailDesC16Buf1 * - EPEngMyLogoThumbnailDesC16Buf2 * 16 bit descriptor fields. Usage of these buffers * is up to extension plugin. * * @since 3.0 */// DesC8 fields.enum TPEngMyLogoThumbnailDesC8Fields { EPEngMyLogoThumbnailDesC8Buf0 = 0, EPEngMyLogoThumbnailDesC8Buf1 = 1, EPEngMyLogoThumbnailDesC8Buf2 = 2 };// DesC16 fields.enum TPEngMyLogoThumbnailDesC16Fields { EPEngMyLogoThumbnailDesC16Buf0 = 1000, EPEngMyLogoThumbnailDesC16Buf1 = 1001, EPEngMyLogoThumbnailDesC16Buf2 = 1002 };/** * Alias attribute. * (Attribute type KUidPrAttrAlias.) * * Alias attribute holds the users preferred nickname. * * DesC16 fields: * - EPEngAlias * Preferred alias for a contact. * * @since 3.0 */// DesC16 fields.enum TPEngAliasDesC16Fields { EPEngAlias = 0 };/** * Info Link. * (Attribute type KUidPrAttrInfoLink.) * * NOTE: InfoLink support is still under development, * and details provided here might get changed. * * Info Link attribute. * * DesC16 data fields: * - EPEngInfoLinkLink * The Info Link. * * - EPEngInfoLinkDesc * The link description. * * - EPEngInfoLinkMimeType * The link mime type. * * DesC16 data fields are holded in groups. * Group ID in the get and set methods is index to wanted group. * Indexing is zero based. Group count can be get with * EPEngInfoLinkOpGetGroupCount opcode. * * New group is created when in data set the group ID * is the current group count. Group can be deleted * with EPEngInfoLinkOpDeleteGroup opcode. Enumeration * value is the index of to be deleted group. If value * -1 is given, all existing groups are deleted. * * @since 3.0 */// DesC16 fields.enum TPEngInfoLinkUnicodeFields { EPEngInfoLinkLink = 0, EPEngInfoLinkDesc = 1, EPEngInfoLinkMimeType = 2 };//Pre defined operation groupsenum TPEngInfoLinkGroups { EPEngInfoLinkOperations = -100 };// Integer fields (opcodes)enum TPEngInfoLinkEnumOpCodes { EPEngInfoLinkOpGetGroupCount = 1, EPEngInfoLinkOpDeleteGroup = 2 };#endif // __PENGWVPRESENCEATTRIBUTES2_H// End of File