upnpavcontroller/upnpavcontrollerclient/inc/upnpavbrowsingsession.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpavcontroller/upnpavcontrollerclient/inc/upnpavbrowsingsession.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,225 @@
+/*
+* 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:      session towards a media server
+*
+*/
+
+
+
+
+
+
+#ifndef C_UPNPAVBROWSINGSESSION_H
+#define C_UPNPAVBROWSINGSESSION_H
+
+// INCLUDE FILES
+#include <e32std.h>
+#include "upnpavsessionbase.h"
+
+// FORWARD DECLARATIONS
+class MUPnPAVDeviceObserver;
+class MUPnPAVBrowsingSessionObserver;
+class MUPnPAVFileObserver;
+class CUpnpObject;
+class CUpnpItem;
+class CUpnpAVDevice;
+class CUpnpContainer;
+
+/**
+ *  AV Controller browsing session interface.
+ *
+ *  This class defines the browsing interface of AV Controller. Includes
+ *  operations to search, browse, copy, create container, delete object and
+ *  to get search capabilities.
+ *
+ *  @lib upnpavcontrollerclient.lib
+ *  @since S60 v3.1
+ */
+class MUPnPAVBrowsingSession : public MUPnPAVSessionBase
+    {
+
+public:
+
+    /**
+     * Defines the type of browse (metadata or direct children)
+     *
+     * @since Series 60 3.1
+     */
+    enum TBrowseFlag
+        {
+        EDirectChildren = 0,
+        EMetadata
+        };
+
+    /**
+     * Defines the download location (default, phone memory, memory card or
+     * RAM Drive)
+     *
+     * @since Series 60 3.1
+     */
+    enum TMemoryType
+        {
+        EDefault = 0,
+        EPhone ,
+        EMemoryCard,
+        ERAMDrive
+        };
+
+    /**
+     * Defines the sharing status of a downloaded item
+     *
+     * @since Series 60 3.1
+     */
+    enum TFileSharing
+        {
+        EFileIsShared = 0,
+        EFileIsNotShared,
+        EShareBySettings
+        };
+
+    /**
+     * Defines the container type
+     *
+     * @since Series 60 3.1
+     */
+    enum TContainerType
+        {
+        EStorageContainer = 0,      // object.container
+        EPlaylistContainer          // object.container.playlistContainer
+        };
+
+public:
+
+    /**
+     * Sets the browsing session observer
+     *
+     * @since Series 60 3.1
+     * @param aObserver browsing session observer
+     */
+     virtual void SetObserver( MUPnPAVBrowsingSessionObserver&
+        aObserver) = 0;
+     
+    /**
+     * Removes the browsing session observer
+     *
+     * @since Series 60 3.1
+     * @param None
+     */
+    virtual void RemoveObserver() = 0;
+
+    /**
+     * Returns the browsing session observer
+     *
+     * @since Series 60 3.1
+     * @param None
+     */
+    virtual MUPnPAVBrowsingSessionObserver* Observer() const = 0;
+
+public:
+
+    /**
+     * Browses the content directory of a given Media
+     * Server.
+     *
+     * @since Series 60 3.1
+     * @param aId Container or object id.
+     * @param aFilter TDesC8& filter
+     * @param aBrowseFlag Metadata or DirectChildren
+     * @param aStartIndex TInt start index
+     * @param aRequestedCount TInt requested count
+     * @param aSortCriteria TDesC8& sort criteria
+     */
+    virtual void BrowseL( const TDesC8& aId,
+                          const TDesC8& aFilter,
+                          TBrowseFlag aBrowseFlag,
+                          TInt aStartIndex,
+                          TInt aRequestedCount,
+                          const TDesC8& aSortCriteria ) = 0;
+
+    /**
+     * Cancels the browse operation (ignores the result set when it
+     * is received).
+     *
+     * @since Series 60 3.1
+     * @param none
+     * @return none
+     */
+    virtual void CancelBrowse() = 0;
+
+    /**
+     * Searches the content directory of a given Media Server.
+     *
+     * @since Series 60 3.1
+     * @param aId container id
+     * @param aSearchCriteria TDesC8& search criteria
+     * @param aFilter TDesC8& filter
+     * @param aStartIndex TInt start index
+     * @param aRequestedCount TInt requested count
+     * @param aSortCriteria TDesC8& sort criteria
+     */
+    virtual void SearchL(   const TDesC8& aId,
+                            const TDesC8& aSearchCriteria,
+                            const TDesC8& aFilter,
+                            TInt aStartIndex,
+                            TInt aRequestedCount,
+                            const TDesC8& aSortCriteria ) = 0;
+
+    /**
+     * Cancels the search operation (ignores the result set when it
+     * is received).
+     *
+     * @since Series 60 3.1
+     * @param none
+     */
+    virtual void CancelSearch() = 0;
+
+    /**
+     * Gets the search capabilities of the Media Server that
+     * has been set as the "source device".
+     *
+     * @since Series 60 3.1
+     * @param None
+     */
+    virtual void GetSearchCapabilitiesL() = 0;
+
+    /**
+     * Creates a new container to the target Media Server.
+     *
+     * @since Series 60 3.1
+     * @param aTitle (const TDesC8&) title for the new container
+     * @param aParentId (const TDesC8&) container ID of the container into
+     *        which the new container is to be created
+     * @param aContainerType (TContainerType) type of the new container
+     */
+    virtual void CreateContainerL( const TDesC8& aTitle,
+                                   const TDesC8& aParentId,
+                                   TContainerType aContainerType ) = 0;
+
+    /**
+     * Deletes an UPnP item on the target UPnP media server.
+     *
+     * @since Series 60 3.1
+     * @param aId id of an object to be destroyed 
+     */
+    virtual void DeleteObjectL( const TDesC8& aId ) = 0;
+
+
+protected:
+
+    virtual ~MUPnPAVBrowsingSession() {};
+
+    };
+
+
+#endif // C_UPNPAVBROWSINGSESSION_H