mmappfw_plat/mpx_collection_common_definition_api/inc/mpxcollectionframeworkdefs.h
changeset 0 a2952bb97e68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_collection_common_definition_api/inc/mpxcollectionframeworkdefs.h	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,207 @@
+/*
+* 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:  Common definition
+*
+*/
+
+
+#ifndef MPXCOLLECTIONFRAMEWORKDEFS_H
+#define MPXCOLLECTIONFRAMEWORKDEFS_H
+
+
+#include <mpxcommonframeworkdefs.h>
+
+// UID definition for collection mode
+// For application collection mode, application UID can be used
+//
+const TUid KMcModeDefault = {0x1028292C};
+const TUid KMcModeIsolated = {0x1028292D};
+const TUid KMcModePlaylist = {0x1028292E}; // special mode used by playlist
+                                           // isolated, noshareable
+
+/**
+ * This is SPECIFIC to the music db plugin and is a reference implementation.
+ *
+ * EMcItemDeleted, EMcItemInserted and EMcItemModified will be called back when
+ * an item is deleted, added or modified via RemoveL(), AddL() and SetL()
+ *
+ * When user adds a new playlist through AddL, only EMcPlaylistInserted message
+ * will be sent with the Id of the playlist added.
+ *
+ * When user adds a track to a saved playlist through AddL, only EMcPlaylistModified
+ * message will be sent with the Id of the playlist modified.
+ *
+ * When user removes a track from the collection, the client will receive
+ * EMcItemDeleted for the track deleted from the collection and
+ * EMcPlaylistModified for the modified playlist to indicate which playlists
+ * have been updated as result of this track removal.
+ *
+ * When user removes a playlist from the collection, the client will receive
+ * EMcItemDeleted for the playlist removed from the collection.
+ *
+ * When user removes a track from the playlist, the client will receive
+ * EMcPlaylistModified for the playlist the track is removed from.
+ *
+ * When user renames a playlist, EMcPlaylistModified is called back with the
+ * new Id of the renamed playlist.
+ *
+ * When MTP renames a song, it will receive EMcItemModified for the track and
+ * EMcPlaylistModified for the playlist because the URI of one of the songs in
+ * the playlist has been changed.
+ *
+ * When a playlist is updated (overwrite its contents or reordering tracks in
+ * the playlist), EMcPlaylistModified is sent.
+ *
+ * This will be replaced by KMPXMessageIdItemChanged message
+ *
+ * @deprecated TO BE REMOVED IN INCREMENT 9 RELEASE
+ */
+
+enum TMPXCollectionChangeType
+    {
+    EMcItemDeleted,      // item deleted, including removing playlist itself
+    EMcItemInserted,     // item added
+    EMcItemModified,     // item modified
+    EMcPlaylistInserted, // new playlist added
+    EMcPlaylistModified  // Existing playlist content: track added to /removed from playlist or playlist being overwritten
+    };
+
+/*
+ * Simple structure to hold collection change event
+ */
+NONSHARABLE_STRUCT(TMPXCollectionChangeEvent)
+    {
+    TUid iCollectionId;
+    TMPXItemId iItemId;
+    TMPXCollectionChangeType iChangeType;
+    };
+
+enum TMPXCollectionPathChangeType
+    {
+    EMcPathChangedByOpen = 0,  // path changed due to after OpenL called
+    EMcPathChangedByCollectionChange    // path changed due to collection content change
+    };
+
+enum TMPXCollectionOpenEntry
+    {
+    EMcItemOpened = 0,
+    EMcContainerOpened
+    };
+
+enum TMPXCollectionType
+    {
+    EMcUnknown = 0x00,
+    EMcLocal = 0x01,
+    EMcRemote = 0x02
+    };
+
+enum TMPXCollectionCommand
+    {
+    EMcCmdClose,
+    EMcCmdRefresh,
+    EMcCmdRemoveAll,  // delete all items from db,
+                     // aData = collection id to remove all
+    EMcCloseCollection,
+    EMcReOpenCollection,
+    EMcRefreshStarted,
+    EMcRefreshEnded,
+    EMcCmdReCreateDB,
+    EMcCmdSelect, // aData = index of focused item
+    EMcCmdDbCorrupted,
+    EMcCmdCollectionInit,
+    EMcCmdCollectionResyn,
+    EMcCmdMtpStart,
+    EMcCmdMtpEnd
+    };
+
+enum TMPXCollectionBroadCastMsg
+    {
+    // This should be a 1:1 mapping to harvester events
+    // for easy conversion
+    // check mpxharvestercommon.h
+    //
+    EMcMsgFormatStart,
+    EMcMsgFormatEnd,
+    EMcMsgDiskRemoved,
+    EMcMsgDiskInserted,
+    EMcMsgUSBMassStorageStart,
+    EMcMsgUSBMassStorageEnd,
+    EMcMsgUSBMTPStart,
+    EMcMsgUSBMTPEnd,
+    EMcMsgUSBMTPNotActive,
+    EMcMsgSystemEventMax,
+    EMcMsgRefreshStart,
+    EMcMsgRefreshEnd
+    };
+
+// Server function codes
+enum TMPXCollectionServerOp
+    {
+    EMcsGetNextMessage,        // 0 Get next message, must be 0
+    EMcsCancelGetMessage,      // 1 Cancel get message, must be 1
+    EMcsSetMode,               // 2 Must be called before any following op
+    EMcsOpen,                  // 3
+    EMcsOpenIndex,             // 4
+    EMcsOpenPath,              // 5
+    EMcsGetUid,                // 6 Get uid of collection opened
+    EMcsGetPath,               // 7
+    EMcsBack,                  // 8
+    EMcsGetSyncBuffer,         // 9 Read buffer of last sync request
+    EMcsGetAsyncBuffer,        // 10 Read buffer of last async request
+    EMcsMedia,                 // 11 media for current path
+    EMcsMediaByPath,           // 12 media by path.
+    EMcsAddItem,               // 13 Add an item
+    EMcsRemovePath,            // 14 Remove a collection path
+    EMcsRemoveItem,            // 15 Remove a CMPXMedia
+    EMcsSetMedia,              // 16 Set a media properties
+    EMcsFindAll,               // 17 Find command
+    EMcsNotifyEvent,           // 18 Notify an event
+    EMcsGetSupportedTypes,     // 19 Get supported Types
+    EMcsCancelRequest,         // 20
+    EMcsGetCapabilities,       // 21 Find the capabilities of loaded plugin
+    EMcsCollectionID,          // 22 Get Collection implementation ID
+    EMcsCommand,               // 23 Depricated: send a command to the server, with TInt parameter
+    EMcsSetMediaAsync,         // 24 SetMediaL, Asynchronus SetL()
+    EMcsCommandExt,            // 25 Send a command to the server, with CMPXMedia-based parameter
+    EMcsFilter,                // 26 Get the current filter
+    EMcsSetFilter,             // 27 Set the filter
+    EMcsOpenByUids,            // 28 Open a list of plugins which match uids.
+    EMcsCollectionIdLookup,    // 29 Collection id lookup
+    EMcsServerOpEnd            // 30 End of operation,
+    };
+
+// Define Collection capability as an int, can expand later
+typedef TInt TCollectionCapability;
+enum
+    {
+    EMcSearch = 0x01,            // Supports search
+    EMcSearchWildCard = 0x02,    // Supports wildcard search
+    EMcNotModifiable = 0x04      // Unmodifiable collection (ie UPNP)
+    };
+
+//to indicate object type
+const TInt KMPXPathUpdated = 2;
+const TInt KMPXCollectionPath = 3;
+const TInt KMPXCollectionEntries = 4;
+const TInt KMPXCollectionMedia = 5;
+
+// Abstract UID definition for a "collection"
+// The collection server can resolve the real collection UID based on this
+//
+const TUid KLocalCollection = {0x101FFB30};
+const TUid KPodcastCollection = {0x101FFB31};
+const TUid KInMemoryCollection = {0x101FFCD7};
+
+#endif // MPXCOLLECTIONFRAMEWORKDEFS_H
+