diff -r b73252188534 -r f23c07ec56e2 harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesteraudioplaylistplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesteraudioplaylistplugin.h Tue Aug 31 15:37:30 2010 +0300 @@ -0,0 +1,134 @@ +/* +* Copyright (c) 2009 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: +* +*/ + + +#ifndef __CHARVESTERAUDIOPLAYLISTPLUGIN_H__ +#define __CHARVESTERAUDIOPLAYLISTPLUGIN_H__ + +#include +#include +#include +#include +#include +#include +#include "harvesteraudioplaylistparser.h" + +class CHarvestData; + +/** + * Helper class to hold all property definitions + * (pointers are not owned) used in harvester audio plug-in. + */ +class CHarvesterAudioPlaylistPluginPropertyDefs : public CBase + { + public: + // Common property definitions + CMdEPropertyDef* iCreationDatePropertyDef; + CMdEPropertyDef* iLastModifiedDatePropertyDef; + CMdEPropertyDef* iSizePropertyDef; + CMdEPropertyDef* iItemTypePropertyDef; + CMdEPropertyDef* iTitlePropertyDef; + + CMdEPropertyDef* iAlbumTypeDef; + + CMdEPropertyDef* iAlbumIDDef; + CMdEPropertyDef* iAudioObjectIDDef; + CMdEPropertyDef* iPositionDef; + + private: + CHarvesterAudioPlaylistPluginPropertyDefs(); + + void ConstructL(CMdEObjectDef& aObjectDef); + + public: + static CHarvesterAudioPlaylistPluginPropertyDefs* NewL(CMdEObjectDef& aObjectDef); + }; + + +class CHarvesterAudioPlaylistPlugin : public CHarvesterPlugin + { + public: + /** + * Construction + * @return Harvester audio plugin + */ + static CHarvesterAudioPlaylistPlugin* NewL(); + + /** + * Destruction + */ + virtual ~CHarvesterAudioPlaylistPlugin(); + + private: + // Default constructor + CHarvesterAudioPlaylistPlugin(); + + // 2nd phase constructor + void ConstructL(); + + + public: // from CHarvesterPlugin + + /** + * Harvesting multiple files + * @param aHarvesterData CHarvesterData datatype containing needed harvest data + * @return None + */ + void HarvestL( CHarvesterData* aHD ); + + private: + + /** + * Harvesting multiple files + * @param aHarvesterData CHarvesterData datatype containing needed harvest data + * + */ + void DoHarvestL( CHarvesterData* aHD ); + + /** + * Handles creation of new mde objects. + */ + void GetPropertiesL( CHarvesterData* aHarvesterData, TBool aIsAdd ); + + /** + * Get placeholder properties (creation time, modify time and file size). + */ + void GetPlaceHolderPropertiesL( CHarvesterData* aHD, TBool aIsAdd ); + + /** + * Get media file mime type (eg. "audio/mp3"). + */ + TBool GetMimeTypePropertyL( CHarvesterData* aHD, TBool aIsAdd ); + + /** + * Get song name, artist, album, genre and composer from normal music + * file (eg. mp3). + */ + void GetMusicPropertiesL( CHarvesterData* aHD, TBool aIsAdd ); + + private: + CHarvesterAudioPlaylistParser* iPlaylistParser; + HBufC* iMime; + + CHarvesterAudioPlaylistPluginPropertyDefs* iPropDefs; + + TInt iError; + }; + + +#endif // __CHARVESTERAUDIOPLAYLISTPLUGIN_H__ +