--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/IncPresenceModel/PEngWVPresenceAttributes2.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,606 @@
+/*
+* 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 fields
+enum TPEngWVOnlineStatusIntegerFields
+ {
+ EPEngOnlineStatus = 0
+ };
+
+// Enum values for EPEngOnlineStatus field
+enum 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 fields
+enum TPEngWVClientInfoDesC16Fields
+ {
+ EPEngCliInfDeviceManufacturer = 0,
+ EPEngCliInfClientProducer = 1,
+ EPEngCliInfDeviceModel = 2,
+ EPEngCliInfClientVersion = 3,
+ EPEngCliInfClientLanguage = 4
+ };
+
+// Integer fields
+enum TPEngWVClientInfoIntegerFields
+ {
+ EPEngCliInfDeviceType = 0
+ };
+
+// Enum values for EPEngCliInfDeviceType field
+enum 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 groups
+enum TPEngWVCommunicationCapabilitiesFieldGroups
+ {
+ EPEngCommCapIMClient = 0 ///< IM field group
+ };
+
+// Integer fields
+enum TPEngWVCommunicationCapabilitiesIntegerFields
+ {
+ EPEngCommCapStatus = 0
+ };
+
+// Enum values for EPEngCommCapStatus field
+enum 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 fields
+enum TPEngWVUserAvailabilityIntegerFields
+ {
+ EPEngUsrAvailability = 0
+ };
+
+// Enum values from EPEngUsrAvailability field
+enum 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 groups
+enum TPEngInfoLinkGroups
+ {
+ EPEngInfoLinkOperations = -100
+ };
+
+// Integer fields (opcodes)
+enum TPEngInfoLinkEnumOpCodes
+ {
+ EPEngInfoLinkOpGetGroupCount = 1,
+ EPEngInfoLinkOpDeleteGroup = 2
+ };
+
+
+
+#endif // __PENGWVPRESENCEATTRIBUTES2_H
+
+// End of File
+
+