# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268984124 -7200 # Node ID ef94aa7943d2d892f5f115bf2473b89d0f811a50 Revision: 201007 Kit: 201011 diff -r 000000000000 -r ef94aa7943d2 ai_content_model_api/ai_content_model_api.metaxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_content_model_api/ai_content_model_api.metaxml Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,18 @@ + + + AI Content Model API + AI Content Model API provides an abstraction to access the plug-in content, enables service request routing to the plug-in, and provides a callback interface used by the Active Idle plug-ins to give notification about modifications in the content and/or internal state.Each Active Idle plug-in must implement this interface together with the plug-in proprietary Content Model API, which specifies the content provided by the plug-in at run time, uniquely identifies content type and the logical means of every content entity, and specifies set of services supported by the plug-in. AI Content Model and the plug-in proprietary Content Model API are used at Active Idle UI and/or Theme development time. + c++ + activeidle + + + + + + + + + yes + no + + diff -r 000000000000 -r ef94aa7943d2 ai_content_model_api/ai_content_model_api.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_content_model_api/ai_content_model_api.pro Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,19 @@ +# +# 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: +# + +TEMPLATE = subdirs + +SUBDIRS += group \ No newline at end of file diff -r 000000000000 -r ef94aa7943d2 ai_content_model_api/group/group.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_content_model_api/group/group.pro Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,21 @@ +# +# 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: +# + +TEMPLATE = subdirs + +BLD_INF_RULES.prj_exports += \ + "$${LITERAL_HASH}include " \ + "../inc/aicontentmodel.h MW_LAYER_PLATFORM_EXPORT_PATH(aicontentmodel.h)" diff -r 000000000000 -r ef94aa7943d2 ai_content_model_api/inc/aicontentmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_content_model_api/inc/aicontentmodel.h Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,229 @@ +/* +* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef M_AICONTENTMODEL_H +#define M_AICONTENTMODEL_H + +#include +#include // For wchar_t + +/** + * Maximum length for a content item textual id. + * + * @see TAiContentItem::id + */ +const TInt KAiContentIdMaxLength = 255; + +/** + * Maximum length for content type. + * + * @see TAiContentItem::type + */ +const TInt KAiContentTypeMaxLength = 255; + +/** + * Null value for content id. Plug-in content model should never use this id + * value in its content model. + */ +const TInt KAiNullContentId = KErrNotFound; + +/** + * Encapsulates metadata of single plug-ins content item. The class is used + * as building block for the plug-ins content model, abstracts content + * selector, content reference and event. + */ +struct TAiContentItem +{ + /** + * Plug-in specific id of this content item. + */ + TInt id; + + /** + * Textual id of this content item. Used for binding content items to + * UI elements. + * + * @see KAiContentIdMaxLength + */ + const wchar_t* cid; + + /** + * Content item data MIME type. For example "text/plain" for textual + * content. + * + * @see KAiContentTypeMaxLength + */ + const char* type; +}; + +/** + * Helper function for accessing Content item textual id TAiContentItem::cid. + * + * This function's performance is relative to O(N) where N is the length of + * the textual id in characters. If the id of the same content item is accessed + * repeatedly (for example in a loop) store the returned id in a local TPtrC + * variable instead of calling this function repeatedly. + * + * @param aContentItem content item whose textual id to return. + * @return textual id of aContentItem as a descriptor. + */ +inline TPtrC16 ContentCid( const TAiContentItem& aContentItem ) + { + return TPtrC16( (const TText16*) aContentItem.cid ); + } + +/** + * Helper function for accessing Content item data type TAiContentItem::type. + * + * This function's performance is relative to O(N) where N is the length of + * the type name in characters. If the type of the same content item is accessed + * repeatedly (for example in a loop) store the returned type in a local TPtrC8 + * variable instead of calling this function repeatedly. + * + * @param aContentItem content item whose type to return. + * @return data type of aContentItem as a descriptor. + */ +inline TPtrC8 ContentType( const TAiContentItem& aContentItem ) + { + return TPtrC8( (const TText8*) aContentItem.type ); + } + + +/** + * Mime type for passing bitmap content data. + * The content data should contain a packaged CGulIcon object pointer when this + * MIME tyoe is used. + * + * @see CGulIcon + * @see MAiContentObserver::PublishPtr + */ +const char KAiContentTypeBitmap[] = "image/x-s60-bitmap"; + +/** + * MIME type for passing textual data. + * + * @see MAiContentObserver::Publish + */ +const char KAiContentTypeText[] = "text/plain"; + + +/** + * Abstract interface which provides services to iterate content items + * supported by the plug-in. Only used by the Active Idle Framework. + * Each plug-in must provide implementation of interface to access: + * content selectors, content references, and events. Instances of interface + * are accessed through method GetProperty in interface CAiContentPublisher. + * + * @since S60 3.2 + */ +class MAiContentItemIterator +{ +public: + /** + * Tests if this enumeration contains more elements. + * + * @return ETrue if this iterator object contains at least one more + * element to provide; EFalse otherwise. + */ + virtual TBool HasNext() const = 0; + + /** + * Returns the next element of this iterator if this enumeration object + * has at least one more element to provide. + * + * @return The next element. + * @leave KErrOverflow if iterator is at the end of range. + */ + virtual const TAiContentItem& NextL() = 0; + + /** + * Returns the first element of this iterator which matches aId. + * + * @param aId - unique identification of the content item, corresponds + * to TAiContentItem::id. + * @return The first element matching aId. + * @leave KErrNotFound if element matching aId is not found from the + * complete iterator range. + */ + virtual const TAiContentItem& ItemL( TInt aId ) const = 0; + + /** + * Returns the first element of this iterator which matches aCid. + * + * @param aCid - textual identification of the content item, corresponds + * to TAiContentItem::cid. + * @return The first element matching aCid. + * @leave KErrNotFound if element matching aCid is not found from the + * complete iterator range. + */ + virtual const TAiContentItem& ItemL( const TDesC& aCid ) const = 0; + + /** + * Resets iterator to the first item in the list. + */ + virtual void Reset() = 0; + + /** + * Release the iterator. + */ + virtual void Release() = 0; + +protected: + /** + * Protected destructor prevents deletion through this interface. + */ + ~MAiContentItemIterator() { } + +private: + /** + * Required to implement CleanupReleasePushL(MAiContentItemIterator*). + */ + static void Cleanup(TAny* aSelf); + friend void CleanupReleasePushL(MAiContentItemIterator*); +}; + +/** + * Helper function which calls MAiContentItemIterator::Release() with NULL + * checking. Especially useful in destructors. + */ +inline void Release(MAiContentItemIterator* aObj) + { + if (aObj) aObj->Release(); + } + +/** + * + */ +inline void CleanupReleasePushL(MAiContentItemIterator* aObj) + { + CleanupStack::PushL( + TCleanupItem(&MAiContentItemIterator::Cleanup, aObj) ); + } + +/** + * Required to implement CleanupReleasePushL(MAiContentItemIterator*). + * Inline to avoid problems with multiple definitions. + */ +inline void MAiContentItemIterator::Cleanup(TAny* aSelf) + { + ::Release(static_cast(aSelf)); + } + + + +#endif // M_AICONTENTMODEL_H diff -r 000000000000 -r ef94aa7943d2 ai_plugin_information_api/ai_plugin_information_api.metaxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_plugin_information_api/ai_plugin_information_api.metaxml Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,18 @@ + + + AI Plug-in Information API + Provides infomration about loaded active idle plug-ins + c++ + activeidle + + + + + + + + + yes + no + + diff -r 000000000000 -r ef94aa7943d2 ai_plugin_information_api/ai_plugin_information_api.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_plugin_information_api/ai_plugin_information_api.pro Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,19 @@ +# +# 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: +# + +TEMPLATE = subdirs + +SUBDIRS += group \ No newline at end of file diff -r 000000000000 -r ef94aa7943d2 ai_plugin_information_api/group/group.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_plugin_information_api/group/group.pro Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,24 @@ +# +# 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: +# + +TEMPLATE = subdirs + +BLD_INF_RULES.prj_exports += \ + "$${LITERAL_HASH}include " \ + "../inc/activeidle2domainpskeys.h MW_LAYER_PLATFORM_EXPORT_PATH(activeidle2domainpskeys.h)" \ + "../inc/aicontentpublisheruid.hrh MW_LAYER_PLATFORM_EXPORT_PATH(aicontentpublisheruid.hrh)" + + diff -r 000000000000 -r ef94aa7943d2 ai_plugin_information_api/inc/activeidle2domainpskeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_plugin_information_api/inc/activeidle2domainpskeys.h Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,187 @@ +/* +* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef ACTIVEIDLE2_DOMAIN_PS_KEYS_H +#define ACTIVEIDLE2_DOMAIN_PS_KEYS_H + +/** +* PubSub Category AI information API +*/ +const TUid KPSUidAiInformation = {0x101FD657}; + +/** +* PubSub keys +*/ +const TUint KActiveIdleUid = 0x00000001; // Contains UID of StandbyUI (Active Idle) application + +const TUint KActiveIdleState = 0x00000002; // Contains one value from following emuneration + +enum EPSActiveIdleState +{ + // Indicates that Active Idle goes to background + // Value is triggered by KAknFullOrPartialForegroundLost event + // + // Corresponds to value EPSTelephonyNotIdle writtern to former KTelephonyIdleStatus + EPSAiBackground = 0, + + // Indicates that Active Idle goes to foreground + // Value is triggered by KAknFullOrPartialForegroundGained event + // + // Corresponds to value EPSTelephonyIdle writtern to former KTelephonyIdleStatus + EPSAiForeground, + + // Indicates that Active Idle goes to background and keyboard focus goes to Phone app for Tel number entry + // The key is managed by windows server plug-in depends on the key pressed by end-user (See Chapter "Key event handling" from Active Idle SWAD) + // + // Corresponds to value EPSTelephonyIncomingKeyEvents written to former KTelephonyFocusInfo + EPSAiNumberEntry +}; + +const TUint KActiveIdlePopupState = 0x00000003; // Contains one value from following emuneration + +enum EPSActiveIdlePopupState +{ + // Indicates that Active Idle is displaying dialog or menu + // The key is managed by windows server plug-in to determine whether to enable keylock handling + EPSAiDisplayingMenuOrDialog, + + // Indicates that Active Idle is not displaying dialog or menu + // The key is managed by windows server plug-in to determine whether to enable keylock handling + EPSAiNotDisplayingMenuOrDialog +}; + + +const TUint KActiveIdleActOnSendKey = 0x00000004; // Contains 0 if we are to ignore the send or > 0 if we need to react to it + +const TUint KActiveIdleTouchToolbarWidth = 0x00000005; + +const TUint KActiveIdleTouchToolbarHeight = 0x00000006; + +const TUint KActiveIdleSimRegFailedReceived = 0x00000007; // Contains 1 if we have received sim reg failed message, 0 if not. + +enum EPSActiveIdleSimRegReceiveStatus +{ + // Indicates that Active Idle is displaying dialog or menu + // The key is managed by windows server plug-in to determine whether to enable keylock handling + EPSSimRegFailedMessageNotReceived = 0, + + // Indicates that Active Idle is not displaying dialog or menu + // The key is managed by windows server plug-in to determine whether to enable keylock handling + EPSSimRegFailedMessageReceived +}; + +const TUint KActiveIdleThemeSupportsXsp = 0x00000008; // Contains one value from following enumeration + +enum EPSActiveIdleThemeSupportsXsp +{ + // Value indicates that xSP feature is not supported in currently active theme + EPSAiXspNotSupported, + + // Value indicates that the current theme supports the xSP feature + EPSAiXspIsSupported +}; + +const TUint KActiveIdleLaunch = 0x00000009; // Contains information if shortcut launching is ongoing or not + +enum EPSActiveIdleIdleLaunch +{ + + // Value indicates that no shortcut is in launching state and new launch tapping can be handled + EPSAiLaunchNotActive = 0, + + // Value indicates that active idle shortcut is launching + EPSAiLaunchIsActive +}; + + +// Indicates that Active Idle 2 should be restarted. +const TUint KActiveIdleRestartAI2 = 0x0000000B; + +// Indicates that all the CPS Harvester plugins have been updated +const TUint KActiveIdleCpsPluginsUpdated = 0x0000000C; + +enum EPSActiveIdleCpsPluginsUpdated + { + EPSAiPluginsNotUpdated = 0, + EPSAiPluginsUpdated + }; + +// Key to indicate wether the WS plug-in forwards all the numeric keypad +// events to telephone or not. +const TUint KActiveIdleForwardNumericKeysToPhone = 0x0000000D; + +enum EActiveIdleForwardNumericKeysToPhone + { + // Forward events to phone + EPSAiForwardNumericKeysToPhone, + + // Don't forward events to phone + EPSAiDontForwardNumericKeysToPhone + }; + +// Indicates that in ExtHS mode the LSK should have a locked shortcut. +// Contains the full shortcut definition string. +const TUint KActiveIdleExtHS_LSKLocked = 0x00000501; + +// Indicates that in ExtHS mode the RSK should have a locked shortcut. +// Contains the full shortcut definition string. +const TUint KActiveIdleExtHS_RSKLocked = 0x00000502; + +// Indicates that in ExtHS mode the plugin configuration has changed. +const TUint KActiveIdleExtHS_PluginConfChange = 0x00000503; + +/** +* PubSub Category AI plug-in registry API +*/ +const TUid KPSUidActiveIdle2 = {0x102750F0}; // ActiveIdle2 SID + +/** +* +* First iterate Active plugin UID range to find all +* active plugin UID's. Use that UID as a key to find the plugins name +* from the name range. +* +*/ + +/** +* Active plugin count +* +* Possible integer values: +* 0x000000000 - 0xFFFFFFFF : Active plugin count +*/ +const TUint KAIActivePluginCount = 0x00000000; + +/** +* Active plugin UID range +* +* Possible integer values: +* 0x100000000 - 0xFFFFFFFF : Active plugins UID +*/ +const TUint KAIActivePluginRangeStart = 0x00000001; +const TUint KAIActivePluginRangeEnd = 0x0FFFFFFF; + +/** +* Active plugin name range +* +* Possible string values: +* Plugin name +*/ +const TUint KAIPluginNameRangeStart = 0x10000000; +const TUint KAIPluginNameRangeEnd = 0xFFFFFFFF; + +#endif // ACTIVEIDLE2_DOMAIN_PS_KEYS_H diff -r 000000000000 -r ef94aa7943d2 ai_plugin_information_api/inc/aicontentpublisheruid.hrh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ai_plugin_information_api/inc/aicontentpublisheruid.hrh Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,63 @@ +/* +* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#ifndef AICONTENTPUBLISHERUID_HRH +#define AICONTENTPUBLISHERUID_HRH + +/** + * Ecom interface uid for CAiContentPublisher. + * + * Example resource of a plugin that implements content publisher interface. + * @code + * #include + * #include + * + * #define MY_DLL_UID 0xFFEEDDCC + * #define MY_PLUGIN_IMPLEMENTATION_UID 0xBBAA9988 + * + * RESOURCE REGISTRY_INFO registry_info + * { + * resource_format_version = RESOURCE_FORMAT_VERSION_2; + * dll_uid = MY_DLL_UID; + * + * // Interface info array + * interfaces = + * { + * INTERFACE_INFO + * { + * // UID of the implemented interface + * interface_uid = AI_UID_ECOM_INTERFACE_CONTENTPUBLISHER; + * + * implementations = + * { + * IMPLEMENTATION_INFO + * { + * implementation_uid = MY_PLUGIN_IMPLEMENTATION_UID; + * version_no = 1; + * display_name = "My plugin"; + * } + * }; + * } + * }; + * } + * @endcode + */ +#define AI_UID_ECOM_INTERFACE_CONTENTPUBLISHER 0x102750ED + +#endif // AICONTENTPUBLISHERUID_HRH diff -r 000000000000 -r ef94aa7943d2 homescreensrvlegacy.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreensrvlegacy.pro Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,23 @@ +# +# 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: +# + +TEMPLATE = subdirs + +SUBDIRS += ai_content_model_api \ + ai_plugin_information_api + +CONFIG += ordered + diff -r 000000000000 -r ef94aa7943d2 layers.sysdef.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layers.sysdef.xml Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,16 @@ + + +]> + + + + + + + + + + + + diff -r 000000000000 -r ef94aa7943d2 sysdef_1_5_1.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysdef_1_5_1.dtd Fri Mar 19 09:35:24 2010 +0200 @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +