upnpsharing/upnpcontentserver/inc/upnpselectionreader.h
changeset 0 7f85d04be362
child 38 5360b7ddc251
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpsharing/upnpcontentserver/inc/upnpselectionreader.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,260 @@
+/*
+* Copyright (c) 2005-2007 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:      CUpnpSelectionReader class definition
+ *
+*/
+
+
+
+
+
+
+#ifndef UPNPSELECTIONREADER_H
+#define UPNPSELECTIONREADER_H
+
+// INCLUDES
+
+#include "upnpcontentmetadatautility.h"
+#include "upnpcontentserverdefs.h"
+
+// FORWARD DECLARATIONS
+class CUpnpContentMetadataUtility;
+
+// CLASS DECLARATION
+
+/**
+ * CUpnpSelectionReader class
+ * Reads the selections user has made
+ * @since S60 3.1
+ */
+class CUpnpSelectionReader: public CBase
+    {
+public:
+    /**
+     * Two-phased constructor.
+     * @since S60 3.1
+     * @param aUtility Pointer to CLF interface
+     */
+    IMPORT_C static CUpnpSelectionReader* NewL(
+        CUpnpContentMetadataUtility* aUtility );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CUpnpSelectionReader();
+
+    /**
+     * Fetch collections from Media Gallery
+     * @param aSettingsTextArray, The array of collection names
+     * @since S60 3.1
+     */
+    IMPORT_C void FetchCollectionsL( CDesCArray* aSettingsTextArray );
+
+    /**
+     * Fetch playlists from Media Gallery
+     * @param aSettingsTextArray, The array of playlist names
+     * @since S60 3.1
+     */
+    IMPORT_C void FetchPlaylistsL( CDesCArray* aSettingsTextArray );
+
+    /**
+     * Checks if item is alredy shared
+     * @param aItemName, Name of the item
+     * @param aIdArray, Array of Ids to search from
+     * @return TBool, True is shared, false otherwise
+     * @since S60 3.1
+     */
+    IMPORT_C TBool IsItemShared(const TDesC& aItemName,
+                                const CDesCArray& aIDArray ) const;
+
+    /**
+     * Gets the indexes of users previous selections relative to the available
+     * playlists or albums
+     * @since S60 3.1
+     * @param aSelections, Array of selections
+     * @param aType, Selections type needed
+     */
+    IMPORT_C void GetSelectionIndexesL(
+        RArray<TInt>& aSelections,
+        const TUpnpMediaType& aType );
+
+    /**
+     * Gets the sharing state of Images and videos
+     * @since S60 3.1
+     * @param aShareAllState, The variable to store the state
+     * @return Status of the operation
+     */
+    TInt GetVisualSharingStateL( TInt& aShareAllState );
+
+    /**
+     * Gets the sharing state of music
+     * @since S60 3.1
+     * @param aShareAllState, The variable to store the state
+     * @return Status of the operation
+     */
+    TInt GetMusicSharingStateL( TInt& aShareAllState );
+
+    /**
+     * Get the number of shared containers
+     * @since S60 3.1
+     * @return number of shared containers
+     */
+    TInt GetContainerCount() const;
+
+    /**
+     * Get the playlist ids
+     * @since S60 3.1
+     * @param aPlaylistIds Array containing the playlist ids
+     * @return error code
+     */
+    TInt PlayListIdsL( CDesCArray& aPlaylistIds,
+        CDesCArray& aPlaylistNames );
+
+    /**
+     * Get the collection ids
+     * @since S60 3.1
+     * @param aCollectionIds Array containing the collection ids
+     * @return error code
+     */
+    TInt CollectionIdsL( CDesCArray& aCollectionIds, 
+        CDesCArray& aCollectionNames );
+
+    /**
+     * Set the metadata utility pointer
+     * @since S60 3.1
+     * @param aMetaData Pointer to CUpnpContentMetadataUtility instance
+     */
+    void SetMetadata( CUpnpContentMetadataUtility*
+                      aMetaData );
+
+protected:  // New functions
+    /**
+     * Two-phased constructor.
+     * @since S60 3.1
+     * @param aUtility Pointer to CLF interface
+     */
+    void ConstructL(
+        CUpnpContentMetadataUtility* aUtility);
+
+    /**
+     * Searches playlist files
+     * @since S60 3.1
+     */
+    TBool SearchPlaylistFilesL();
+
+    /**
+     * Searches collections
+     * @since S60 3.1
+     */
+    TBool SearchCollectionsL();
+
+    /**
+     * Saves sharing state to central repository
+     * @since S60 3.1
+     * @return TInt, error code
+     */
+    TInt SaveSharingState();
+
+
+private:
+    /**
+     * C++ default constructor.
+     */
+    CUpnpSelectionReader();
+
+    /**
+     * Reads container IDs from file
+     * @since S60 3.1
+     * @param aArray, array where desciptors are read
+     * @param aContainerType, type of container
+     * @return TInt, error code
+     */
+    TInt ReadSharedContainerIDsL(
+        CDesCArray* aArray,
+        const TUpnpMediaType& aContainerType ) const;
+
+
+private: //data
+
+    /**
+     *  Mediatype selected from listbox
+     */
+    TUpnpMediaType                            iMediaType;
+
+    /**
+     * Pointer to CLF interface
+     * not owned
+     */
+    CUpnpContentMetadataUtility*         iMetadataUtility;
+
+    /**
+     * Selection value for images and videos
+     */
+    TInt iVisualSharingSelection;
+
+    /**
+     * Selection value for playlists
+     */
+    TInt iMusicSharingSelection;
+
+    /** 
+     * selected image and video indexes
+     * owned
+     */
+    RArray<TInt>*            iSelectedImages;
+
+    /**
+     * selected music indexes
+     * owned
+     */
+    RArray<TInt>*            iSelectedMusic;
+
+    /** 
+     * array for playlists
+     * owned
+     */
+    CDesCArrayFlat*                 iPlIdArray;
+
+    /** 
+     * array for collection Ids
+     * owned
+     */
+    CDesCArrayFlat*                 iCollIdArray;
+
+    /**
+     * array for image and video containers shown in ui
+     * owned
+     */
+    CDesCArrayFlat*                 iImageContainers;
+
+    /**
+     * array for playlists shown in ui
+     * owned
+     */
+    CDesCArrayFlat*                 iPlaylistNames;
+
+    /**
+     * array for collections shown in ui
+     * owned
+     */
+    CDesCArrayFlat* iCollectionNames;
+
+    /**
+     * number of ui items
+     */
+    TInt iContainerCount;
+
+    };
+#endif
+// End of File