diff -r 000000000000 -r 7f85d04be362 upnpframework/upnpfiletransferengine/inc/upnpplaylisthandler.h --- /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 + +// 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 iFilesForVideoAlbum; // owned + RPointerArray iFilesForImageAlbum; // owned + + // music playlist methods encapsulation + CUPnPPlaylistServices* iPlaylistServices; // owned + }; + +#endif // UPNP_FILE_TRANSFER_ENGINE_PLAYLIST_HANDLER_H + +// End of file