--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpframework/upnpfiletransferengine/inc/upnpplaylisthandler.h Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,202 @@
+/*
+* Copyright (c) 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: Header file for the CUpnpPlaylistHandler class
+*
+*/
+
+
+#ifndef UPNP_FILE_TRANSFER_ENGINE_PLAYLIST_HANDLER_H
+#define UPNP_FILE_TRANSFER_ENGINE_PLAYLIST_HANDLER_H
+
+// INCLUDES
+#include <badesca.h>
+
+// FORWARD DECLARATION
+class CUpnpObject;
+class CUpnpItem;
+class CUPnPPlaylistServices;
+
+// DATA TYPES
+enum TUpnpPlaylistLocation
+ {
+ EPhoneMemory = 0,
+ EMemorycard,
+ EHarddisk,
+ EUnknown
+ };
+
+// CLASS DECLARATION
+
+/**
+* CUpnpPlaylistHandler
+* The class stores the playlist information, and generates MPX playlists and
+* Gallery albums when requested.
+*
+* @since S60 3.1
+*/
+NONSHARABLE_CLASS( CUpnpPlaylistHandler ) : public CBase
+ {
+
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CUpnpPlaylistHandler* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CUpnpPlaylistHandler();
+
+ public: // Methods for managing the content
+
+ /**
+ * Resets the playlists content.
+ *
+ * @since S60 3.1
+ */
+ void Reset();
+
+ /**
+ * Sets the name for the playlist
+ *
+ * @since S60 3.1
+ * @param aPlaylistName (const TDesC&) name for the playlist and
+ * image and video albums (same name will for all tree).
+ */
+ void SetPlaylistNameL( const TDesC& aPlaylistName );
+
+ /**
+ * Adds a audio item to the playlist (playlist will not be generated
+ * yet, it has to be created by calling a separate method).
+ *
+ * @since S60 3.1
+ * @param aFilePath (const TDesC&) filepath of the audio file
+ */
+ void AddAudioItemL( const TDesC& aFilePath );
+
+ /**
+ * Adds an image item to the playlist (playlist will not be generated
+ * yet, it has to be created by calling a separate method).
+ *
+ * @since S60 3.1
+ * @param aFilePath (const TDesC&) filepath of the image file
+ */
+ void AddImageItemL( const TDesC& aFilePath );
+
+ /**
+ * Adds a video item to the playlist (playlist will not be generated
+ * yet, it has to be created by calling a separate method).
+ *
+ * @since S60 3.1
+ * @param aFilePath (const TDesC&) filepath of the video file
+ */
+ void AddVideoItemL( const TDesC& aFilePath );
+
+ public: // Methods for getting the state of the playlist
+
+ /**
+ * Returns the number of items in the audio item array
+ *
+ * @since S60 3.1
+ * @return (TInt) the item count
+ */
+ TInt AudioItemCount();
+
+ /**
+ * Returns the number of items in the image item array
+ *
+ * @since S60 3.1
+ * @return (TInt) the item count
+ */
+ TInt ImageItemCount();
+
+ /**
+ * Returns the number of items in the video item array
+ *
+ * @since S60 3.1
+ * @return (TInt) the item count
+ */
+ TInt VideoItemCount();
+
+ public: // Methods for creating the playlists
+
+ /**
+ * Creates a MPX playlist (if there are music items added).
+ *
+ * @since S60 3.1
+ */
+ void CreateMusicPlaylistL();
+
+ /**
+ * Creates an image album (if there are image items added).
+ *
+ * @since S60 3.1
+ */
+ void CreateImageAlbumL();
+
+ /**
+ * Creates a video album (if there are video items added).
+ *
+ * @since S60 3.1
+ */
+ void CreateVideoAlbumL();
+
+ public: // Methods for notifying MPX
+
+ /**
+ * Notifies MPX of a new audio file.
+ *
+ * @since S60 3.1
+ * @param aTrackPath (const TDesC&) filepath of the audio file
+ * @param aMetadata (CUpnpItemt&) metadata as it was in media server
+ */
+ void NotifyNewAudioFileL( const TDesC& aFilePath,
+ const CUpnpItem& aMetadata );
+
+ private: // private business logic methods
+
+ /**
+ * Checks that Playlist location is valid
+ *
+ * @since S60 3.1
+ * @return TBool
+ */
+ TBool PlaylistFileLocation();
+
+ private: // 2nd phase constructors
+
+ // Constructor
+ CUpnpPlaylistHandler();
+
+ /**
+ * ConstructL.
+ */
+ void ConstructL();
+
+ private: // Data members
+
+ HBufC* iPlaylistName; // owned
+ CDesCArrayFlat* iFilesForAudioPlaylist; // owned
+ RPointerArray<HBufC> iFilesForVideoAlbum; // owned
+ RPointerArray<HBufC> iFilesForImageAlbum; // owned
+
+ // music playlist methods encapsulation
+ CUPnPPlaylistServices* iPlaylistServices; // owned
+ };
+
+#endif // UPNP_FILE_TRANSFER_ENGINE_PLAYLIST_HANDLER_H
+
+// End of file