Revert incorrect RCL_3 drop: RCL_3 PDK_3.0.2
authorPat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:24:24 +0100
branchRCL_3
changeset 50 85f623e1ef41
parent 49 f23c07ec56e2
child 53 29d87345eaeb
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035
group/bld.inf
harvester/blacklistserver/src/blacklistsession.cpp
harvester/client/inc/harvesterclientao.h
harvester/client/src/harvesterclient.cpp
harvester/client/src/harvesterclientao.cpp
harvester/client/traces/fixed_id.definitions
harvester/client/traces/harvesterclientaoTraces.h
harvester/common/bwincw/harvesterplugininterfacewinscw.def
harvester/common/eabi/harvesterplugininterfacearm.def
harvester/common/inc/harvestercommon.h
harvester/common/inc/harvesterpluginfactory.h
harvester/common/src/harvesterexifutil.cpp
harvester/common/src/harvesterplugin.cpp
harvester/common/src/harvesterpluginfactory.cpp
harvester/common/src/mdeobjectwrapper.cpp
harvester/composerplugins/imagecomposer/src/imagecomposerao.cpp
harvester/composerplugins/imagecomposer/src/imagepresentobserver.cpp
harvester/data/bld.inf
harvester/group/bld.inf
harvester/harvesterplugins/AudioPlaylistPlugin/data/200211F5.rss
harvester/harvesterplugins/AudioPlaylistPlugin/data/mdsplaylisttopcharacterset.rss
harvester/harvesterplugins/AudioPlaylistPlugin/group/bld.inf
harvester/harvesterplugins/AudioPlaylistPlugin/group/harvesteraudioplaylistplugin.mmp
harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesteraudioplaylistparser.h
harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesteraudioplaylistplugin.h
harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesterm3uplaylistparser.h
harvester/harvesterplugins/AudioPlaylistPlugin/inc/mdsplaylistcharacterset.hrh
harvester/harvesterplugins/AudioPlaylistPlugin/inc/mdsplaylistsupplementalcharsets.hrh
harvester/harvesterplugins/AudioPlaylistPlugin/inc/mdsplaylisttopcharacterset.rh
harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesteraudioplaylistparser.cpp
harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesteraudioplaylistplugin.cpp
harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesterm3uplaylistparser.cpp
harvester/harvesterplugins/AudioPlaylistPlugin/src/proxy.cpp
harvester/harvesterplugins/OMADRMPlugin/src/harvesteromadrmplugin.cpp
harvester/harvesterplugins/VideoPlugin/src/harvestervideoplugin.cpp
harvester/harvesterplugins/group/bld.inf
harvester/monitorplugins/fileplugin/src/processoriginmapper.cpp
harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h
harvester/monitorplugins/mmcplugin/src/mmcfilelist.cpp
harvester/monitorplugins/mmcplugin/src/mmcmonitorao.cpp
harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp
harvester/monitorplugins/mmcplugin/src/mmcmounttaskao.cpp
harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp
harvester/monitorplugins/mmcplugin/src/mmcusbao.cpp
harvester/server/inc/harvesterao.h
harvester/server/src/harvesterao.cpp
harvester/server/src/harvesterqueue.cpp
harvester/server/src/harvesterserver.cpp
harvester/server/src/ondemandao.cpp
harvester/server/src/reharvesterao.cpp
inc/mdcdef.h
inc/mdscommoninternal.h
locationmanager/data/bld.inf
locationmanager/group/bld.inf
locationmanager/inc/locplatsupport.mmh
locationmanager/locationtrail/src/clocationrecord.cpp
mds_plat/harvester_framework_api/inc/harvesterplugin.h
mds_plat/location_manager_api/tsrc/group/LocationManagerTestScripter.mmp
metadataengine/client/src/mdeharvestersession.cpp
metadataengine/data/schema.mde
metadataengine/server/inc/mdssqldbmaintenance.h
metadataengine/server/inc/mdssqlobjectmanipulate.h
metadataengine/server/src/mdsfindsequence.cpp
metadataengine/server/src/mdsmaintenanceengine.cpp
metadataengine/server/src/mdsmanipulationengine.cpp
metadataengine/server/src/mdsnotifycomparator.cpp
metadataengine/server/src/mdssqldbmaintenance.cpp
metadataengine/server/src/mdssqlobjectmanipulate.cpp
package_definition.xml
package_map.xml
rom/bld.inf
rom/mds_cellid_reverse_geocode_enabled.iby
rom/mds_reverse_geocode_enabled_only.iby
sis/mds/mds_stub.sis
sis/mds/package.pkg
sis/mds/package_cellid_reverse_geocode_enabled.pkg
sis/mds/package_cellidenabled.pkg
sis/mds/package_reverse_geocode_enabled_only.pkg
sis/mds/package_separate.pkg
sis/mds/stub.pkg
--- a/group/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ b/group/bld.inf	Wed Sep 01 12:24:24 2010 +0100
@@ -17,8 +17,7 @@
 
 
 #include <platform_paths.hrh>
-
-#include "../rom/bld.inf"
+#include "../locationmanager/inc/locplatsupport.mmh"
 
 #include "../metadataengine/group/bld.inf"
 #include "../locationmanager/group/bld.inf"
@@ -37,7 +36,31 @@
 
 PRJ_EXPORTS
 
+#if defined(_LOC_GEOTAGGING_CELLID)
+#ifdef _LOC_REVERSEGEOCODE
+../rom/mds_cellid_reverse_geocode_enabled.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
+#else
+../rom/mds_cellidenabled.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
+#endif
+#elif defined(_LOC_REVERSEGEOCODE)
+#ifdef _LOC_GEOTAGGING_CELLID
+../rom/mds_cellid_reverse_geocode_enabled.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
+#else
+../rom/mds_reverse_geocode_enabled_only.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
+#endif
+#else
+../rom/mds.iby    CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
+#endif
+
+#ifdef RD_MDS_2_5
+../rom/ContentListingFramework.iby	CORE_MW_LAYER_IBY_EXPORT_PATH( ContentListingFramework.iby )
+#endif
+
+//Stubs
+../sis/mds/mds_stub.sis  /epoc32/data/z/system/install/mds_stub.sis
+
 PRJ_TESTMMPFILES
 
 PRJ_TESTEXPORTS
+../rom/mds_testers.iby	CORE_MW_LAYER_IBY_EXPORT_PATH(mds_testers.iby)
 
--- a/harvester/blacklistserver/src/blacklistsession.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/blacklistserver/src/blacklistsession.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -118,7 +118,7 @@
     aMessage.ReadL( 0, mediaIdPckg );
  
  	RBuf uri;
- 	User::LeaveIfError( uri.Create( aMessage.GetDesLength( 1 ) ) );
+    uri.Create( aMessage.GetDesLength( 1 ) );
     CleanupClosePushL( uri );
     aMessage.ReadL( 1, uri );
    	
--- a/harvester/client/inc/harvesterclientao.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/client/inc/harvesterclientao.h	Wed Sep 01 12:24:24 2010 +0100
@@ -61,8 +61,6 @@
          */ 
         void Active();
         
-        void CancelRequest();
-        
     protected:
 		
         /**
@@ -113,8 +111,6 @@
          * Harvester server assigned file name
          */ 
         TFileName iURI;
-        
-        TBool iCancelled;
     };
 
 #endif // __CHARVESTERCLIENTAO_H__
--- a/harvester/client/src/harvesterclient.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/client/src/harvesterclient.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -183,23 +183,20 @@
     
     delete iSessionWatcher;
     iSessionWatcher = NULL;
-    
-    WRITELOG( "RHarvesterClient::Close() - cancelling pending harvesting requests" );
+
     if( iRequestQueue && iRequestQueue->RequestsPending() )
         {
         iRequestQueue->Cancel();
         }
     
-    WRITELOG( "RHarvesterClient::Close() - removing harvester client observer" );
+    // cancels Harvest Complete request if it exist at server
     if( iObserver )
         {
         RemoveObserver( iObserver );
         }
-    UnregisterHarvestComplete();
     
     WRITELOG( "RHarvesterClient::Close() - UnregisterHarvest done" );
     
-    WRITELOG( "RHarvesterClient::Close() - forcing remaining harvesting requests" );
     if( iRequestQueue && iRequestQueue->RequestsPending() )
         {
         WRITELOG( "RHarvesterClient::Close() - Pending harvesting requests detected -> ForceHarvest" );
@@ -214,7 +211,6 @@
     delete iHEO;
     iHEO = NULL;
     
-    WRITELOG( "RHarvesterClient::Close() - deleting harvester client AO" );
     delete iHarvesterClientAO;
     iHarvesterClientAO = NULL;
     
@@ -254,7 +250,6 @@
 		
 	    if ( iHarvesterClientAO )
 	        {
-	        WRITELOG( "RHarvesterClient::RemoveObserver() - calling iHarvesterClientAO->RemoveObserver" );
 	        iHarvesterClientAO->RemoveObserver( aObserver );
 	        }
 		
--- a/harvester/client/src/harvesterclientao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/client/src/harvesterclientao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -51,7 +51,7 @@
     OstTrace0( TRACE_NORMAL, CHARVESTERCLIENTAO_CHARVESTERCLIENTAO, "CHarvesterClientAO::~CHarvesterClientAO" );
     
     WRITELOG( "CHarvesterClientAO::~CHarvesterClientAO()" );
-    CancelRequest();
+    Cancel();
  	}
 
 // ---------------------------------------------------------------------------
@@ -60,10 +60,9 @@
 // ---------------------------------------------------------------------------
 //
 CHarvesterClientAO::CHarvesterClientAO( RHarvesterClient& aHarvesterClient )
-    : CActive( CActive::EPriorityUserInput ), 
+    : CActive( CActive::EPriorityStandard ), 
     iObserver( NULL ),
-    iHarvesterClient( aHarvesterClient ),
-    iCancelled( EFalse )
+    iHarvesterClient( aHarvesterClient )
   	{
     OstTrace0( TRACE_NORMAL, DUP1_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO, "CHarvesterClientAO::CHarvesterClientAO" );
     
@@ -101,14 +100,13 @@
 void CHarvesterClientAO::RemoveObserver( MHarvestObserver* /*aObserver*/ )
 	{
 	WRITELOG( "CHarvesterClientAO::RemoveObserver()" );
-	OstTrace0( TRACE_NORMAL, CHARVESTERCLIENTAO_REMOVEOBSERVER, "CHarvesterClientAO::RemoveObserver" );
     if ( iObserver )
         {
         WRITELOG( "CHarvesterClientAO::RemoveObserver() - deleting observer" );
         iObserver = NULL;
         }
     
-    CancelRequest();
+    Cancel();
 	}
 
 // ---------------------------------------------------------------------------
@@ -120,7 +118,6 @@
 	WRITELOG( "CHarvesterClientAO::DoCancel()" );
 	OstTrace0( TRACE_NORMAL, CHARVESTERCLIENTAO_DOCANCEL, "CHarvesterClientAO::DoCancel" );
 	iHarvesterClient.UnregisterHarvestComplete();
-	WRITELOG( "CHarvesterClientAO::DoCancel() - end" );
 	}
 	
 // ---------------------------------------------------------------------------
@@ -129,12 +126,9 @@
 //
 void CHarvesterClientAO::Active()
 	{	
-    WRITELOG( "CHarvesterClientAO::Active" );
 	if ( iObserver && !IsActive())
 		{
-	    WRITELOG( "CHarvesterClientAO::Active - calling RegisterHarvestComplete" );
 		iHarvesterClient.RegisterHarvestComplete(iURI, iStatus);
-		iCancelled = EFalse;
 		SetActive();
 		}
 	}
@@ -163,12 +157,10 @@
 		}
 	
 	// if the request was not canceled or server is not terminated, Activating AO again
-	if ( status != KErrCancel && status != KErrServerTerminated && iObserver && !iCancelled )
+	if ( status != KErrCancel && status != KErrServerTerminated && iObserver )
 		{
-	    WRITELOG( "CHarvesterClientAO::RunL() - not cancelled or terminated, calling Active" );
 		Active();
 		}
-	WRITELOG( "CHarvesterClientAO::RunL() - end" );
 	}
 	
 // ---------------------------------------------------------------------------
@@ -185,24 +177,3 @@
     
     return KErrNone;
     }
-
-// ---------------------------------------------------------------------------
-// Active
-// ---------------------------------------------------------------------------
-//
-void CHarvesterClientAO::CancelRequest()
-    {   
-    WRITELOG( "CHarvesterClientAO::CancelRequest" );
-    if( !iCancelled )
-        {
-        WRITELOG( "CHarvesterClientAO::CancelRequest - not cancelled, calling Cancel" );
-        iCancelled = ETrue;
-        Cancel();
-        }
-    if( !IsActive() )
-        {
-        WRITELOG( "CHarvesterClientAO::CancelRequest - setting priority to High" );
-        SetPriority( CActive::EPriorityHigh );
-        }
-    }
-
--- a/harvester/client/traces/fixed_id.definitions	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/client/traces/fixed_id.definitions	Wed Sep 01 12:24:24 2010 +0100
@@ -4,7 +4,6 @@
 [TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_CONSTRUCTL=0x10
 [TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_DOCANCEL=0x13
 [TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_NEWL=0xd
-[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_REMOVEOBSERVER=0x15
 [TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_RUNL=0x14
 [TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_SETOBSERVER=0x11
 [TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO=0xf
--- a/harvester/client/traces/harvesterclientaoTraces.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/client/traces/harvesterclientaoTraces.h	Wed Sep 01 12:24:24 2010 +0100
@@ -13,7 +13,6 @@
 #define CHARVESTERCLIENTAO_SETOBSERVER 0x30011
 #define CHARVESTERCLIENTAO_DOCANCEL 0x30013
 #define CHARVESTERCLIENTAO_RUNL 0x30014
-#define CHARVESTERCLIENTAO_REMOVEOBSERVER 0x30015
 
 
 #endif
--- a/harvester/common/bwincw/harvesterplugininterfacewinscw.def	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/bwincw/harvesterplugininterfacewinscw.def	Wed Sep 01 12:24:24 2010 +0100
@@ -13,5 +13,4 @@
 	?GetMimeType@CHarvesterPlugin@@UAEXABVTDesC16@@AAVTDes16@@@Z @ 12 NONAME ; void CHarvesterPlugin::GetMimeType(class TDesC16 const &, class TDes16 &)
 	?SetHarvesterPluginFactory@CHarvesterPlugin@@QAEXAAVCHarvesterPluginFactory@@@Z @ 13 NONAME ; void CHarvesterPlugin::SetHarvesterPluginFactory(class CHarvesterPluginFactory &)
 	?PluginInIdleState@CHarvesterPlugin@@QAEHXZ @ 14 NONAME ; int CHarvesterPlugin::PluginInIdleState(void)
-	?StopHarvest@CHarvesterPlugin@@UAEXXZ @ 15 NONAME ; void CHarvesterPlugin::StopHarvest(void)
 
--- a/harvester/common/eabi/harvesterplugininterfacearm.def	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/eabi/harvesterplugininterfacearm.def	Wed Sep 01 12:24:24 2010 +0100
@@ -17,5 +17,4 @@
 	_ZN16CHarvesterPlugin11GetMimeTypeERK7TDesC16R6TDes16 @ 16 NONAME
 	_ZN16CHarvesterPlugin25SetHarvesterPluginFactoryER23CHarvesterPluginFactory @ 17 NONAME
 	_ZN16CHarvesterPlugin17PluginInIdleStateEv @ 18 NONAME
-	_ZN16CHarvesterPlugin11StopHarvestEv @ 19 NONAME
 
--- a/harvester/common/inc/harvestercommon.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/inc/harvestercommon.h	Wed Sep 01 12:24:24 2010 +0100
@@ -107,8 +107,9 @@
 
 // Between Standard and UserInput to allow components to react to important events correctly
 const TInt KHarvesterCustomImportantPriority = 5;
-// Higher than MonitorPlugin priority but lower than High. Highest priority within Harvester
-const TInt KHarvesterServerHighPriority = 11;
+// Higher than MonitorPlugin priority but lower than High to ensure server can answer to all
+// connection requests as fast as possible
+const TInt KHarvesterServerSessionPriority = 11;
 
 #endif
 
--- a/harvester/common/inc/harvesterpluginfactory.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/inc/harvesterpluginfactory.h	Wed Sep 01 12:24:24 2010 +0100
@@ -61,9 +61,6 @@
 		  
 	    TBool iHarvesting;
 		CHarvesterEventManager* iHarvesterEventManager;
-		
-		HBufC* iLastConfirmedContainerExt;
-		HBufC* iLastConfirmedSupportedExt;
 	};
 
 #endif
--- a/harvester/common/src/harvesterexifutil.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/src/harvesterexifutil.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -433,7 +433,7 @@
 EXPORT_C TTime CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL(
 		const TDesC8& aDateTime )
     {
-    WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL()" );
+    WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL()" );
     OstTrace0( TRACE_NORMAL, CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL" );    
     
     TDateTime datetime( 0, EJanuary, 0, 0, 0, 0, 0 );
@@ -446,7 +446,7 @@
     TInt error = lex.Val( number );
     if ( error != KErrNone )
         {
-        WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL() - couldn't get year" );
+        WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL() - couldn't get year" );
         OstTrace0( TRACE_NORMAL, DUP1_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL - couldn't get year" );
         
         User::Leave( error );
@@ -459,7 +459,7 @@
     error = lex.Val( number );
     if ( error != KErrNone )
         {
-        WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL() - couldn't get month" );
+        WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL() - couldn't get month" );
         OstTrace0( TRACE_NORMAL, DUP2_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL - couldn't get month" );
         
         User::Leave( error );
@@ -474,7 +474,7 @@
     error = lex.Val( number );
     if ( error != KErrNone )
         {
-        WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL() - couldn't get date" );
+        WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL() - couldn't get date" );
         OstTrace0( TRACE_NORMAL, DUP3_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL - couldn't get date" );
         
         User::Leave( error );
@@ -487,7 +487,7 @@
     error = lex.Val( number );
     if ( error != KErrNone )
         {
-        WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL() - couldn't get hours" );
+        WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL() - couldn't get hours" );
         OstTrace0( TRACE_NORMAL, DUP4_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL - couldn't get hours" );
         
         User::Leave( error );
@@ -500,7 +500,7 @@
     error = lex.Val( number );
     if ( error != KErrNone )
         {
-        WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL() - couldn't get minutes" );
+        WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL() - couldn't get minutes" );
         OstTrace0( TRACE_NORMAL, DUP5_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL - couldn't get minutes" );
         
         User::Leave( error );
@@ -513,7 +513,7 @@
     error = lex.Val( number );
     if ( error != KErrNone )
         {
-        WRITELOG( "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL() - couldn't get seconds" );
+        WRITELOG( "CHarvesterImagePluginAO::ConvertExifDateTimeToSymbianTimeL() - couldn't get seconds" );
         OstTrace0( TRACE_NORMAL, DUP6_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL, "CHarvesterExifUtil::ConvertExifDateTimeToSymbianTimeL - couldn't get seconds" );
         
         User::Leave( error );
@@ -829,9 +829,7 @@
         WRITELOG( "CHarvesterExifUtil::ComposeExifData() - Image doesn't contain EXIF data" );
         modifyExif = CExifModify::NewL( aImagePtr, 
         		CExifModify::ECreate, CExifModify::ENoJpegParsing );
-        CleanupStack::PushL( modifyExif );
         SetExifDefaultsL( aMdeObject, *modifyExif );
-        CleanupStack::Pop( modifyExif );
         exifChanged = ETrue;
         }
     CleanupStack::PushL( modifyExif );
--- a/harvester/common/src/harvesterplugin.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/src/harvesterplugin.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -65,8 +65,7 @@
     iDtor_ID_Key( KNullUid ),
     iOriginPropertyDef( NULL ),
     iTitlePropertyDef( NULL ),
-    iHarvesting( EFalse ),
-    iPaused( EFalse )
+    iHarvesting( EFalse )
 	{
 	}
 
@@ -110,7 +109,6 @@
 	{
 	if( iState == EHarvesterIdle )
 		{
-		iPaused = EFalse;
 		SetNextRequest( EHarvesterGathering );
 		}
 	}
@@ -156,7 +154,6 @@
                 }
             else
             	{
-                WRITELOG( "CHarvesterPlugin::RunL EHarvesterGathering - items in queue" );
                 if ( !iHarvesting )
                     {
                     TRAP_IGNORE( iFactory->SendHarvestingStatusEventL( ETrue ) );
@@ -247,28 +244,12 @@
 	}
 
 // ---------------------------------------------------------------------------
-// StartHarvest
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CHarvesterPlugin::StopHarvest()
-    {
-    Cancel();
-    iState = EHarvesterIdle;
-    if( iHarvesting )
-        {
-        TRAP_IGNORE( iFactory->SendHarvestingStatusEventL( EFalse ) );
-        iHarvesting = EFalse;     
-        }
-    iPaused = ETrue;
-    }
-
-// ---------------------------------------------------------------------------
 // SetNextRequest
 // ---------------------------------------------------------------------------
 //
 void CHarvesterPlugin::SetNextRequest( THarvesterState aState )
     {
-    if ( !IsActive() && !iPaused )
+    if ( ! IsActive() )
         {
         iState = aState;
         SetActive();
--- a/harvester/common/src/harvesterpluginfactory.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/src/harvesterpluginfactory.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -68,12 +68,6 @@
 	{
 	WRITELOG( "CHarvesterPluginFactory::~CHarvesterPluginFactory()" );
 	
-	delete iLastConfirmedContainerExt;
-	iLastConfirmedContainerExt = NULL;
-	
-	delete iLastConfirmedSupportedExt;
-	iLastConfirmedSupportedExt = NULL;
-	
     if (iHarvesterEventManager)
         {
         iHarvesterEventManager->ReleaseInstance();
@@ -336,13 +330,6 @@
 	TPtrC extPtr;
 	if( MdsUtils::GetExt( aFileName, extPtr ) )
 		{
-        if( iLastConfirmedSupportedExt &&
-            extPtr.CompareF( iLastConfirmedSupportedExt->Des() ) == 0 )
-            {
-            // Extension has previously been confirmed to be 
-            // supported file extension, no need to ask from plugins
-            return ETrue;
-            }
 		TInt pluginInfoCount = iHarvesterPluginInfoArray.Count();
 		TInt extCount = 0;
 		for ( TInt i = pluginInfoCount; --i >= 0; )
@@ -356,9 +343,6 @@
 				TInt result = MdsUtils::Compare( *ext, extPtr );
 				if ( result == 0 )
 					{
-                    delete iLastConfirmedSupportedExt;
-                    iLastConfirmedSupportedExt = NULL;
-                    iLastConfirmedSupportedExt = extPtr.Alloc();				    
 					return ETrue;
 					}
 				}
@@ -374,14 +358,6 @@
 	
 	if( MdsUtils::GetExt( aURI, extPtr ) )
 		{
-	    if( iLastConfirmedContainerExt &&
-	        extPtr.CompareF( iLastConfirmedContainerExt->Des() ) == 0 )
-	        {
-	        // Extension has previously been confirmed to be 
-	        // container file extension, no need to ask from plugins
-	        return ETrue;
-	        }
-	
 		RPointerArray<CHarvesterPluginInfo> supportedPlugins;
 		CleanupClosePushL( supportedPlugins );
 		GetSupportedPluginsL( supportedPlugins, extPtr );
@@ -391,9 +367,6 @@
 			if( info->iObjectTypes.Count() >  1 )
 				{
 				isContainerFile = ETrue;
-				delete iLastConfirmedContainerExt;
-				iLastConfirmedContainerExt = NULL;
-				iLastConfirmedContainerExt = extPtr.Alloc();
 				break;
 				}
 			}
@@ -422,7 +395,6 @@
 
 EXPORT_C void CHarvesterPluginFactory::SendHarvestingStatusEventL( TBool aStarted )
     {
-    WRITELOG( "CHarvesterPluginFactory::SendHarvestingStatusEventL" );
     const TInt pluginInfoCount = iHarvesterPluginInfoArray.Count();
     TBool itemsLeft( EFalse );
     TBool allPluginsOnIdle( ETrue );
@@ -446,7 +418,6 @@
     
     if( !iHarvesting && itemsLeft && aStarted )
         {
-        WRITELOG( "CHarvesterPluginFactory::SendHarvestingStatusEventL - overall started" );
         iHarvesting = ETrue;
         iHarvesterEventManager->SendEventL( EHEObserverTypeOverall, EHEStateStarted );
         // This next line is for caching the harvester started event for observers registering
@@ -456,7 +427,6 @@
         }
     else if( iHarvesting && (!itemsLeft || allPluginsOnIdle) && !aStarted )
         {
-        WRITELOG( "CHarvesterPluginFactory::SendHarvestingStatusEventL - overall finished" );
         iHarvesting = EFalse;                       
         iHarvesterEventManager->SendEventL( EHEObserverTypeOverall, EHEStateFinished );
         iHarvesterEventManager->DecreaseItemCountL( EHEObserverTypeOverall, KCacheItemCountForEventCaching );
@@ -470,7 +440,7 @@
         {
         if( iHarvesterPluginInfoArray[i]->iPlugin && aPaused )
             {
-            iHarvesterPluginInfoArray[i]->iPlugin->StopHarvest();
+            iHarvesterPluginInfoArray[i]->iPlugin->Cancel();
             }
         else if( iHarvesterPluginInfoArray[i]->iPlugin )
             {
@@ -511,8 +481,6 @@
                 info->iPlugin->SetBlacklist( *iBlacklist );
                 }
             info->iPlugin->GetObjectType( aHD->Uri(), aObjectDef );
-            // It is possible for unmount to occure while we are waiting
-            // for GetObjectType to return, thus check aHD for validity
             if( aHD && aObjectDef.Length() > 0 )
                 {
                 aHD->SetHarvesterPluginInfo( info );
--- a/harvester/common/src/mdeobjectwrapper.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/common/src/mdeobjectwrapper.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -157,7 +157,7 @@
 				case EPropertyReal32:
 					{
 					TReal32* value = static_cast<TReal32*>( aData );
-					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %f", &aPropertyDef.Name(), *value );
+					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
 					property->SetReal32ValueL( *value );
 					}
 				break;
@@ -173,7 +173,9 @@
 				case EPropertyTime:
 					{
 					TTime* value = static_cast<TTime*>( aData );
-					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %u", &aPropertyDef.Name(), value->Int64() );
+#ifdef _DEBUG
+					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), value->Int64() );
+#endif
 					property->SetTimeValueL( *value );
 					}
 				break;
--- a/harvester/composerplugins/imagecomposer/src/imagecomposerao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/composerplugins/imagecomposer/src/imagecomposerao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -275,7 +275,7 @@
 	                
 	                SetNextRequest( ERequestCompose );
 	                }
-	            // if object does not exists, or data is not modified, find next
+	            // if object does not exists, find next
 	            else if ( err == KErrNotFound || err == KErrAbort )
 	                 {
 	                 if ( err == KErrAbort && mdeObjectId != KNoId )
@@ -423,7 +423,6 @@
 	
 	    	if( error != KErrNone || entry.iModified == time )
 	    		{
-	    	    WRITELOG( "CImageComposerAO::GetObjectFromMdeL() - image data has not been modified - abort" );
 	    		User::Leave( KErrAbort );
 	    		}
 	    	}
--- a/harvester/composerplugins/imagecomposer/src/imagepresentobserver.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/composerplugins/imagecomposer/src/imagepresentobserver.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -87,10 +87,8 @@
 void CImagePresentObserver::HandleObjectPresentNotification(CMdESession& /*aSession*/, 
 		TBool aPresent, const RArray<TItemId>& aObjectIdArray)
 	{
-    WRITELOG( "CImagePresentObserver::HandleObjectPresentNotification" );
 	if ( aPresent )
 		{
-	    WRITELOG( "CImagePresentObserver::HandleObjectPresentNotification - objects present" );
 		if ( !iStarted )
 			{
 			CMdEObjectDef* imageObjDef = NULL;
--- a/harvester/data/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Build information file
-*
-*/
-
-
-PRJ_PLATFORMS
-    DEFAULT
-
-PRJ_EXPORTS
-blacklist_backup_registration.xml	/epoc32/winscw/c/private/200009F5/backup_registration.xml
-blacklist_backup_registration.xml   /epoc32/data/z/private/200009F5/backup_registration.xml
-default_origin_mappings.db    /epoc32/winscw/c/private/200009F5/mappings.db
-default_origin_mappings.db    /epoc32/data/z/private/200009F5/mappings.db
-../conf/harvester.confml        MW_LAYER_CONFML(harvester.confml)
-../conf/harvester_200009FE.crml MW_LAYER_CRML(harvester_200009FE.crml)
-
-../sis/blacklistserver/blacklistserver_stub.sis  /epoc32/data/z/system/install/blacklistserver_stub.sis
-../sis/composerplugins/composerplugins_stub.sis  /epoc32/data/z/system/install/composerplugins_stub.sis
-../sis/harvester/harvester_stub.sis  /epoc32/data/z/system/install/harvester_stub.sis
-../sis/harvesterplugins/harvesterplugins_stub.sis  /epoc32/data/z/system/install/harvesterplugins_stub.sis
-../sis/monitorplugins/monitorplugins_stub.sis  /epoc32/data/z/system/install/monitorplugins_stub.sis
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-
-
-PRJ_TESTEXPORTS
--- a/harvester/group/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/group/bld.inf	Wed Sep 01 12:24:24 2010 +0100
@@ -25,16 +25,27 @@
 #include "../server/group/bld.inf"
 #include "../client/group/bld.inf"
 
-#include "../data/bld.inf"
 
 PRJ_PLATFORMS
     DEFAULT
 
 PRJ_EXPORTS
+../data/blacklist_backup_registration.xml	/epoc32/winscw/c/private/200009F5/backup_registration.xml
+../data/blacklist_backup_registration.xml   /epoc32/data/z/private/200009F5/backup_registration.xml
+../data/default_origin_mappings.db    /epoc32/winscw/c/private/200009F5/mappings.db
+../data/default_origin_mappings.db    /epoc32/data/z/private/200009F5/mappings.db
+../conf/harvester.confml        MW_LAYER_CONFML(harvester.confml)
+../conf/harvester_200009FE.crml MW_LAYER_CRML(harvester_200009FE.crml)
+
+../sis/blacklistserver/blacklistserver_stub.sis  /epoc32/data/z/system/install/blacklistserver_stub.sis
+../sis/composerplugins/composerplugins_stub.sis  /epoc32/data/z/system/install/composerplugins_stub.sis
+../sis/harvester/harvester_stub.sis  /epoc32/data/z/system/install/harvester_stub.sis
+../sis/harvesterplugins/harvesterplugins_stub.sis  /epoc32/data/z/system/install/harvesterplugins_stub.sis
+../sis/monitorplugins/monitorplugins_stub.sis  /epoc32/data/z/system/install/monitorplugins_stub.sis
 
 PRJ_MMPFILES
 
 PRJ_TESTMMPFILES
 
+
 PRJ_TESTEXPORTS
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/data/200211F5.rss	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-// 1F2F3F4F.RSS
-
-#include "registryinfov2.rh"
-
-// Declares info for one test implementation
-RESOURCE REGISTRY_INFO theInfo
-	{
-	
-  // resource_format_version must always be set as follows
-  resource_format_version = RESOURCE_FORMAT_VERSION_2;
-
-	// UID for the DLL
-	dll_uid = 0x200211F5;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented
-			interface_uid = 0x200009F8;
-			implementations = 
-				{
-				// Info for CHarvesterVideoPlugin
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x200211F6; 
-					version_no = 1;
-					display_name = "Harvester audio playlist plugin";
-					default_data = "Album";
-					opaque_data = "m3u";
-          rom_only = 0;
-					}
-				};
-			}
-		};
-	}
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/data/mdsplaylisttopcharacterset.rss	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,787 +0,0 @@
-/*
-* 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:  Resource file.
-*
-*/
-
-
-//  INCLUDES
-#include <bldvariant.hrh>
-#include <languages.hrh>
-#include "mdsplaylisttopcharacterset.rh"
-#include "mdsplaylistsupplementalcharsets.hrh"
-
-//  RESOURCE DEFINITIONS 
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_albanian_char_set
-// Description  : Albanian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_albanian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso88592
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_arabic_char_set
-// Description  : Arabic character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_arabic_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88596,
-    	// windows 1256
-    	KCharacterSetIdentifierCp1256
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_bosnian_char_set
-// Description  : Bosnian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_bosnian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_bulgarian_char_set
-// Description  : Bulgarian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_bulgarian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88595,
-    	// Windows 1251
-    	KCharacterSetIdentifierCp1251
-    	};
-    }
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_taiwan_hk_chinese_char_set
-// Description  : Taiwan HongKong Chinese character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_taiwan_hk_chinese_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierBig5
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_chinese_char_set
-// Description  : Chinese character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_chinese_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierGb2312,
-    	KCharacterSetIdentifierGbk
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_croatian_char_set
-// Description  : Croatian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_croatian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// windows 1250
-    	KCharacterSetIdentifierCp1250
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_czech_char_set
-// Description  : Czech character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_czech_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// windows 1250
-    	KCharacterSetIdentifierCp1250
-    	};
-    }    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_danish_char_set
-// Description  : Danish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_danish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_dutch_char_set
-// Description  : Dutch character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_dutch_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_english_char_set
-// Description  : English character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_english_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierAscii,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_estonian_char_set
-// Description  : Estonian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_estonian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso88594,
-    	KCharacterSetIdentifierIso885910,
-    	KCharacterSetIdentifierIso885913,
-    	// windows 1257
-    	KCharacterSetIdentifierCp1257
-
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_farsi_char_set
-// Description  : Farsi character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_farsi_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88596,
-    	// Windows-1256
-    	KCharacterSetIdentifierCp1256
-    	};
-    }    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_finnish_char_set
-// Description  : Finnish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_finnish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_french_char_set
-// Description  : English character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_french_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_german_char_set
-// Description  : German character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_german_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_greek_char_set
-// Description  : Greek character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_greek_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88597,
-    	// windows 1253
-    	KCharacterSetIdentifierCp1253
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_hebrew_char_set
-// Description  : Hebrew character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_hebrew_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88598,
-    	// windows 1255
-    	KCharacterSetIdentifierCp1255
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_hungarian_char_set
-// Description  : Hungarian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_hungarian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// windows 1250
-    	KCharacterSetIdentifierCp1250
-    	};
-    }    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_icelandic_char_set
-// Description  : Icelandic character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_icelandic_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso88599,
-    	KCharacterSetIdentifierIso885915,
-    	// windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }        
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_indian_char_set
-// Description  : Indian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_indian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	// ISCII
-    	KCharacterSetIdentifierISCII
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_indonesian_char_set
-// Description  : Indonesian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_indonesian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierAscii,
-    	KCharacterSetIdentifierIso88591,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_irish_char_set
-// Description  : Irish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_irish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885914
-    	};
-    }
-        
-//----------------------------------------------------
-// Resource     : r_mds_playlist_italian_char_set
-// Description  : Italian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_italian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_japanese_char_set
-// Description  : Japanese character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_japanese_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierShiftJis,
-    	KCharacterSetIdentifierIso2022Jp,
-    	KCharacterSetIdentifierEucJpPacked
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_latvian_char_set
-// Description  : Latvian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_latvian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88594,
-    	KCharacterSetIdentifierIso885910,
-    	KCharacterSetIdentifierIso885913,
-    	// Windows 1257
-    	KCharacterSetIdentifierCp1257    	
-    	};
-    }               
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_lithuanian_char_set
-// Description  : Lithuanian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_lithuanian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88594,
-    	KCharacterSetIdentifierIso885910,
-    	KCharacterSetIdentifierIso885913,
-    	// Windows 1257
-    	KCharacterSetIdentifierCp1257    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_malay_char_set
-// Description  : Malay character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_malay_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierAscii,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_maltese_char_set
-// Description  : Maltese character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_maltese_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88593    	
-    	};
-    }
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_norwegian_char_set
-// Description  : Norwegian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_norwegian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252    	    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_pilipino_char_set
-// Description  : Pilipino character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_pilipino_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252    	    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_polish_char_set
-// Description  : Polish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_polish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// Windows 1250
-    	KCharacterSetIdentifierCp1250    	    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_portuguese_char_set
-// Description  : Portuguese character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_portuguese_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252    	    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_romanian_char_set
-// Description  : Romanian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_romanian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// Windows 1250
-    	KCharacterSetIdentifierCp1250    	    	
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_russian_char_set
-// Description  : Russian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_russian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,    	
-    	KCharacterSetIdentifierIso88595,
-    	// Windows 1251
-    	KCharacterSetIdentifierCp1251,
-    	// KOI8-R
-    	KCharacterSetIdentifierKOI8R    	
-    	};
-    }    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_sami_char_set
-// Description  : Sami character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_sami_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88594,
-    	KCharacterSetIdentifierIso885910
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_serbian_char_set
-// Description  : Serbian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_serbian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	KCharacterSetIdentifierIso88595,
-   	// Windows 1250
-    	KCharacterSetIdentifierCp1250
-    	};
-    }
-
-//----------------------------------------------------
-// Resource     : r_mds_playlist_slovak_char_set
-// Description  : Slovak character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_slovak_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// Windows 1250
-    	KCharacterSetIdentifierCp1250
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_slovenian_char_set
-// Description  : Slovenian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_slovenian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88592,
-    	// Windows 1250
-    	KCharacterSetIdentifierCp1250
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_spanish_char_set
-// Description  : Spanish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_spanish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }    
-    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_swedish_char_set
-// Description  : Swedish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_swedish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88591,
-    	KCharacterSetIdentifierIso885915,
-    	// Windows 1252
-    	KCharacterSetIdentifierCp1252
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_thai_char_set
-// Description  : Thai character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_thai_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	// TIS-620
-    	KCharacterSetIdentifierTIS620,
-    	// Windows-874
-    	KCharacterSetIdentifierCp874
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_turkish_char_set
-// Description  : Turkish character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_turkish_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88593,
-    	// Windows 1254
-    	KCharacterSetIdentifierCp1254
-    	};
-    }
-    
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_ukrainian_char_set
-// Description  : Ukrainian character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_ukrainian_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88595,
-    	// KOI8-U
-    	KCharacterSetIdentifierKOI8U
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_urdu_char_set
-// Description  : Urdu character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_urdu_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	KCharacterSetIdentifierIso88595,
-    	KCharacterSetIdentifierIso88596,
-    	// Windows-1256
-    	KCharacterSetIdentifierCp1256
-    	};
-    }
-    
-//----------------------------------------------------
-// Resource     : r_mds_playlist_vietnamese_char_set
-// Description  : Vietnamese character sets
-//----------------------------------------------------
-//
-RESOURCE MDS_PLAYLIST_CHARACTER_SET_ENCODING r_mds_playlist_vietnamese_char_set
-    {
-    character_set_id =
-    	{
-    	KCharacterSetIdentifierUtf8,
-    	// Windows-1258
-    	KCharacterSetIdentifierCp1258
-    	};
-    }
-
-// End of File
-
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/group/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-    DEFAULT
-
-PRJ_MMPFILES
-harvesteraudioplaylistplugin.mmp
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/group/harvesteraudioplaylistplugin.mmp	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-CAPABILITY CAP_ECOM_PLUGIN
-
-TARGET        harvesteraudioplaylistplugin.dll
-TARGETTYPE    PLUGIN
-
-// ECom Dll recognition UID followed by the unique UID for this dll
-UID           0x10009D8D 0x200211F5
-
-START RESOURCE ../data/200211F5.rss
-TARGET harvesteraudioplaylistplugin.rsc
-END
-
-START RESOURCE ../data/mdsplaylisttopcharacterset.rss
-HEADER
-TARGET mdsplaylisttopcharacterset.rsc
-TARGETPATH    RESOURCE_FILES_DIR 
-END
-
-USERINCLUDE   ../../../../inc
-USERINCLUDE   ../../../common/inc
-USERINCLUDE   ../inc
-
-SYSTEMINCLUDE /epoc32/include/ecom
-SYSTEMINCLUDE /epoc32/include/connect
-
-SOURCEPATH    ../src
-SOURCE        harvesteraudioplaylistplugin.cpp
-SOURCE        proxy.cpp 
-SOURCE        harvesterm3uplaylistparser.cpp
-SOURCE        harvesteraudioplaylistparser.cpp 
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY     euser.lib
-LIBRARY     ecom.lib
-LIBRARY     efsrv.lib
-LIBRARY     apgrfx.lib  // RApaLsSession
-LIBRARY     apmime.lib  // TDataType
-LIBRARY     bafl.lib //BaflUtils
-
-LIBRARY     harvesterplugininterface.lib
-LIBRARY     mdeclient.lib
-LIBRARY		harvesterdata.lib
-LIBRARY		harvestercommon.lib
-LIBRARY     syslangutil.lib
-LIBRARY     charconv.lib
-LIBRARY         platformenv.lib
-
-PAGED
-BYTEPAIRCOMPRESSTARGET
-OPTION ARMCC -O3 -OTime
-
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesteraudioplaylistparser.h	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* 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 __CHARVESTERAUDIOPLAYLISTPARSER_H__
-#define __CHARVESTERAUDIOPLAYLISTPARSER_H__
-
-#include <charconv.h>
-#include <barsc.h>
-
-#include "harvesterm3uplaylistparser.h"
-
-//
-// CAudioMDParser
-//
-class CHarvesterAudioPlaylistParser : public CBase
-	{
-	public:
-		static CHarvesterAudioPlaylistParser* NewL();
-		virtual ~CHarvesterAudioPlaylistParser();
-        
-        TBool ParseMimeType( const TDesC& aFileName, TDes& aMimeType );
-        TBool ParseL( const TDesC& aFileName, RPointerArray<HBufC>& aUriArray, TPtrC aMimeType );
-        void Reset();
-		
-	private:
-        CHarvesterAudioPlaylistParser();
-        void ConstructL();
-        
-        /**
-        * Generate to character sets based on locale.
-        */
-        void GenerateTopCharacterSetsL();
-        
-        /**
-        * Select character set(s) for the specified language.
-        * @param aLanguage language to select character sets for
-        */
-        void SelectCharacterSetsForLanguageL( TInt aLanguage );
-     
-        /**
-        * reads the character set for the specified resource.
-        * @param aResourceId id of the resource to read from the resource file
-        */
-        void ReadCharacterSetResourceL( TInt aResourceId );
-
-        /**
-        * Determine whether the given character set is specified
-        * as top character set.
-        * @param aCharacterSetId id of the character set to be tested
-        */
-        TBool IsInTopCharacterSet( TUint aCharacterSetId );
-        
-    private:
-        RFs iFs;
-        
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* iTopCharacterSet;
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* iAvailableCharacterSet;
-        
-        RResourceFile iRscFile;
-        
-        CHarvesterM3UPlaylistParser* iM3UParser;
-	};
-
-
-
-#endif  // __CHARVESTERAUDIOPLAYLISTPARSER_H__
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesteraudioplaylistplugin.h	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/*
-* 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 <mdeobject.h>
-#include <fbs.h>
-#include <imageconversion.h>
-#include <harvesterplugin.h>
-#include <monitorplugin.h>
-#include <mdesession.h>
-#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__
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/inc/harvesterm3uplaylistparser.h	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* 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 __CHARVESTERM3UPLAYLISTPARSER_H__
-#define __CHARVESTERM3UPLAYLISTPARSER_H__
-
-#include <charconv.h>
-
-//
-// CAudioMDParser
-//
-class CHarvesterM3UPlaylistParser : public CBase
-	{
-	public:
-		static CHarvesterM3UPlaylistParser* NewL( RFs& aFs,
-		        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aAvailableCharacterSet,
-		        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aTopCharacterSet );
-		virtual ~CHarvesterM3UPlaylistParser();
-        
-        TBool ParseL( const TDesC& aFileName, RPointerArray<HBufC>& aUriArray );
-        void Reset();
-		
-	private:
-        CHarvesterM3UPlaylistParser( RFs& aFs,
-                CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aAvailableCharacterSet,
-                CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aTopCharacterSet );
-
-        /**
-        * Reads data from playlist file to the buffer
-        */
-        void ReadPlaylistFileToBufferL();
-        
-        /**
-        * Parses the buffer where playlist file was read to.
-        */
-        void ParsePlaylistBufferL(
-        		RPointerArray<HBufC>& aPlaylist,
-                TInt& aInvalidItemCount);
-    
-        /**
-        * Auto detects the character encoding from the supplied character
-        * set
-        * @param aSample a sample of the file
-        * @param aCharSetId auto-detected character set for the supplied
-        *        sample
-        * @param aCharacterSet a character set to detect the encoding from
-        * @return KErrNone if a character set is found; otherwise
-        *         KErrNotFound.
-        */
-        TInt DetectCharacterSetL(
-            const TDesC8& aSample,
-            const CArrayFix<CCnvCharacterSetConverter::SCharacterSet>& aCharacterSet,
-            TUint& aCharSetId );
-        
-        /**
-        * Reads next line from iBuffer and stores it to iLine. Returns EFalse
-        * if there are no more new lines.
-        */
-        TBool ReadNextLineL();
-        
-        /**
-        * Decides what to do with an iLine read from iBuffer
-        */
-        void ProcessLineL(
-        		RPointerArray<HBufC>& aPlaylist,
-                TInt& aInvalidItemCount);
-        
-        /**
-        * Parses path or extended info from an iLine and stores them to iItem
-        */
-        TInt ParseLineL(
-                TFileName& aItem,
-                TInt& aInvalidItemCount);
-        
-        /**
-        * Parses and returns an absolute path if aPath is relative to playlist
-        * file's path. If path is not valid or it doesn't exist, error code is
-        * returned in aError.
-        *
-        * caller assumes ownership of the returned HBufC
-        */
-        HBufC* ParseAbsolutePathLC(
-                const TDesC& aPath,
-                TInt& aError);
-        
-    private:
-        RFs& iFs;
-        
-        TPtrC iPlaylistFilePath;
-        
-        TInt iInvalidItems;
-        
-        HBufC* iBuffer;
-        TPtrC iBufferPtr;
-        
-        // Not owned.
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* iAvailableCharacterSet;
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* iTopCharacterSet;
-        
-        TInt iEndLineNumber;  
-        TInt iCurrentLineNumber;
-        
-        HBufC* iLine;
-        
-        TBool iExtendedFormat;
-        
-        TFileName iItem;
-	};
-
-
-
-#endif  // __CHARVESTERM3UPLAYLISTPARSER_H__
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/inc/mdsplaylistcharacterset.hrh	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/*
-* 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:  All needed character set IDs are included here
-*
-*/
-
-
-
-#ifndef __MDSPLAYLISTCHARACTERSET_HRH__
-#define __MDSPLAYLISTCHARACTERSET_HRH__
-
-// INCLUDES
-
-/** 
-UTF-7 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierUtf7 0x1000582c 
-/** 
-UTF-8 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierUtf8 0x1000582d 
-/** 
-IMAP UTF-7 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierImapUtf7 0x1000582e 
-/** 
-Java UTF-8 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierJavaConformantUtf8 0x1000582f 
-/** 
-Code Page 1252 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierCodePage1252 0x100012b6 
-/** 
-ISO 8859-1 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88591 0x10003b10 
-/** 
-ISO 8859-2 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88592 0x1000507e 
-/** 
-ISO 8859-3 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88593 0x10008a28 
-/** 
-ISO 8859-4 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88594 0x1000507f 
-/** 
-ISO 8859-5 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88595 0x10005080 
-/** 
-ISO 8859-6 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88596 0x10008a29 
-/** 
-ISO 8859-7 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88597 0x10005081 
-/** 
-ISO 8859-8 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88598 0x10008a2a 
-/** 
-ISO 8859-9 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso88599 0x10005082 
-/** 
-ISO 8859-10 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso885910 0x10008a2b 
-/** 
-ISO 8859-13 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso885913 0x10008a2c 
-/** 
-ISO 8859-14 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso885914 0x10008a2d 
-/** 
-ISO 8859-15 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso885915 0x10008a2e 
-/** 
-ASCII 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierAscii 0x10004cc6 
-/** 
-SMS 7-bit 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierSms7Bit 0x100053ab 
-/** 
-GB 2312 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierGb2312 0x10000fbe 
-/** 
-HZ-GB-2312 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierHz 0x10006065 
-/** 
-GB 12345 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierGb12345 0x1000401a 
-/** 
-GBK 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierGbk 0x10003ecb 
-/** 
-Big 5 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierBig5 0x10000fbf 
-/** 
-Shift-JIS 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierShiftJis 0x10000fbd 
-/** 
-ISO-2022-JP 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso2022Jp 0x100066a0 
-/** 
-ISO-2022-JP-1 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierIso2022Jp1 0x100066a3 
-/** 
-JIS Encoding 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierJis 0x10006066 
-/** 
-EUC-JP 
-@publishedAll
-@released
-*/
-#define KCharacterSetIdentifierEucJpPacked 0x10006067 
-#define KCharacterSetIdentifierUnicodeLittle 0x101f3fae   //Little Endian Unicode
-#define KCharacterSetIdentifierUnicodeBig 0x101f4052  // Big Endian Unicode 
-#define KCharacterSetIdentifierUcs2 0x101ff492  
-
-#define KCharacterSetIdentifierWindows874  0x101F854A
-#endif // __MDSPLAYLISTCHARACTERSET_HRH__
-
-
-// End of File
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/inc/mdsplaylistsupplementalcharsets.hrh	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* 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:  supplemental character set IDs are included here
-*
-*/
-
-
-#ifndef __MDSPLAYLISTSUPPLEMENTALCHARSET_HRH__
-#define __MDSPLAYLISTSUPPLEMENTALCHARSET_HRH__
-
-/** 
-EucJpDirectmap
-*/
-#define KCharacterSetIdentifierEucJpDirectmap 0x10207353
-/** 
-ShiftJisDirectmap
-*/
-#define KCharacterSetIdentifierShiftJisDirectmap 0x10207354 
-/** 
-KOI8-R
-*/
-#define KCharacterSetIdentifierKOI8R 0x10207401 
-/** 
-KOI8-U
-*/
-#define KCharacterSetIdentifierKOI8U 0x10207402 
-/** 
-TIS_620
-*/
-#define KCharacterSetIdentifierTIS620 0x10207403 
-/** 
-Windows-1250
-*/
-#define KCharacterSetIdentifierCp1250 0x10207404 
-/** 
-Windows-1251
-*/
-#define KCharacterSetIdentifierCp1251 0x10207405 
-/** 
-Windows-1252
-*/
-#define KCharacterSetIdentifierCp1252 0x10207406 
-/** 
-Windows-1253
-*/
-#define KCharacterSetIdentifierCp1253 0x10207407 
-/** 
-Windows-1254
-*/
-#define KCharacterSetIdentifierCp1254 0x10207408 
-/** 
-Windows-1255
-*/
-#define KCharacterSetIdentifierCp1255 0x10207409 
-/** 
-Windows-1256
-*/
-#define KCharacterSetIdentifierCp1256 0x1020740A 
-/** 
-Windows-1257
-*/
-#define KCharacterSetIdentifierCp1257 0x1020740B 
-/** 
-Windows-1258
-*/
-#define KCharacterSetIdentifierCp1258 0x1020740C 
-/** 
-Windows-874
-*/
-#define KCharacterSetIdentifierCp874 0x1020740D 
-/** 
-ISCII
-*/
-#define KCharacterSetIdentifierISCII 0x1027508D 
-
-#endif // __MDSPLAYLISTSUPPLEMENTALCHARSET_HRH__
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/inc/mdsplaylisttopcharacterset.rh	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* 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:  Contains definitions for structures used in Top Character Set 
-*                resource files.
-*
-*/
-
-
-
-#ifndef __MDSPLAYLISTTOPCHARACTERSET_RH__
-#define __MDSPLAYLISTTOPCHARACTERSET_RH__
-
-// INCLUDES
-#include "mdsplaylistcharacterset.hrh"         // Enumerations
-
-// STRUCTURE DEFINITIONS
-
-// -----------------------------------------------------------------------------
-// MDS_PLAYLIST_CHARACTER_SET
-// Structure definition character encoding 
-// -----------------------------------------------------------------------------
-//
-STRUCT MDS_PLAYLIST_CHARACTER_SET_ENCODING
-    {
-    LONG	character_set_id[];
-    }
-
-#endif // __MDSPLAYLISTTOPCHARACTERSET_RH__
-
-
-// End of File
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesteraudioplaylistparser.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,382 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <e32base.h>
-#include <bautils.h>
-#include <syslangutil.h>
-#include <PathInfo.h>
-#include <data_caging_path_literals.hrh>
-#include <mdsplaylisttopcharacterset.rsg>
-
-#include "harvesteraudioplaylistparser.h"
-
-#include "mdsutils.h"
-#include "harvesterlog.h"
-
-_LIT( KMimeTypeM3U,   "audio/x-mpegurl" );
-_LIT( KExtensionM3U,    "m3u" );
-
-_LIT( KMDSPlaylistCharacterSetRscFile, "mdsplaylisttopcharacterset.rsc" );
-
-const TInt KMDSArrayGranularity = 12;
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::NewL
-// -----------------------------------------------------------------------------
-//
-CHarvesterAudioPlaylistParser* CHarvesterAudioPlaylistParser::NewL()
-    {
-    CHarvesterAudioPlaylistParser* self = new ( ELeave ) CHarvesterAudioPlaylistParser();
-	CleanupStack::PushL( self );
-	self->ConstructL();
-	CleanupStack::Pop( self );
-
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CHarvesterAudioPlaylistParser::~CHarvesterAudioPlaylistParser()
-    {
-    delete iTopCharacterSet;
-    
-    delete iAvailableCharacterSet;
-    
-    iFs.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::CHarvesterAudioPlaylistParser
-// -----------------------------------------------------------------------------
-//
-CHarvesterAudioPlaylistParser::CHarvesterAudioPlaylistParser() 
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterAudioPlaylistParser::ConstructL()
-    {
-    User::LeaveIfError( iFs.Connect() );
-    iAvailableCharacterSet = CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableL( iFs );
-    iTopCharacterSet =
-        new (ELeave) CArrayFixFlat<CCnvCharacterSetConverter::SCharacterSet>( KMDSArrayGranularity );
-    GenerateTopCharacterSetsL();
-    iM3UParser = CHarvesterM3UPlaylistParser::NewL( iFs, iAvailableCharacterSet, iTopCharacterSet );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::ParseMimeType
-// -----------------------------------------------------------------------------
-//
-TBool CHarvesterAudioPlaylistParser::ParseMimeType( 
-		const TDesC& aFileName, TDes& aMimeType )
-    {
-    TPtrC ext;
-    if( MdsUtils::GetExt( aFileName, ext ) )
-    	{
-    	if( ext == KExtensionM3U )
-    	    {
-    	    aMimeType = KMimeTypeM3U;
-    	    return ETrue;
-    	    }
-    	}
-
-    aMimeType = KNullDesC;
-    return EFalse;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::ParseL
-// -----------------------------------------------------------------------------
-//
-TBool CHarvesterAudioPlaylistParser::ParseL( const TDesC& aFileName,
-		RPointerArray<HBufC>& aUriArray, TPtrC aMimeType )
-    {
-    if( aMimeType == KMimeTypeM3U )
-        {
-        return iM3UParser->ParseL( aFileName, aUriArray );
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::ResetL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterAudioPlaylistParser::Reset()
-    {
-    iM3UParser->Reset();
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::GenerateTopCharacterSetsL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterAudioPlaylistParser::GenerateTopCharacterSetsL()
-     {
-     CArrayFixFlat<TInt>* installedLanguages = NULL;
-     SysLangUtil::GetInstalledLanguages( installedLanguages );
-     CleanupStack::PushL( installedLanguages );
-     
-     TFileName fileName;
-     
-     TParsePtrC memory( PathInfo::RomRootPath() );
-     fileName.Copy( memory.Drive() );
-     fileName.Append( KDC_RESOURCE_FILES_DIR );
-     fileName.Append( KMDSPlaylistCharacterSetRscFile );
-
-     TRAPD( err, iRscFile.OpenL( iFs, fileName ) );
-     
-     // if there is no resource file, then there is no top character set list
-     if( err )
-         {
-         CleanupStack::PopAndDestroy( installedLanguages );
-         return;
-         }
-
-     const TInt count( installedLanguages->Count() );
-     for( TInt i=0; i < count; i++ )
-          {
-          SelectCharacterSetsForLanguageL( (*installedLanguages)[i] );
-          }
-     iTopCharacterSet->Compress();
-     installedLanguages->Reset();
-     CleanupStack::PopAndDestroy( installedLanguages );
-     iRscFile.Close();
-     }
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::SelectCharacterSetsForLanguageL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterAudioPlaylistParser::SelectCharacterSetsForLanguageL( TInt aLanguage )
-     {
-     switch( aLanguage )
-          {
-          case ELangEnglish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ENGLISH_CHAR_SET );
-               break;
-          case ELangFrench:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_FRENCH_CHAR_SET );
-               break;
-          case ELangGerman:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_GERMAN_CHAR_SET );
-               break;
-          case ELangTurkish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_TURKISH_CHAR_SET );
-               break;
-          case ELangFinnish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_FINNISH_CHAR_SET );
-               break;
-          case ELangSwedish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_SWEDISH_CHAR_SET );
-               break;
-          case ELangRussian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_RUSSIAN_CHAR_SET );
-               break;
-          case ELangArabic:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ARABIC_CHAR_SET );
-               break;
-          case ELangHebrew:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_HEBREW_CHAR_SET );
-               break;
-          case ELangFarsi:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_FARSI_CHAR_SET );
-               break;
-          case ELangItalian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ITALIAN_CHAR_SET );
-               break;
-          case ELangPolish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_POLISH_CHAR_SET );
-               break;
-          case ELangHungarian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_HUNGARIAN_CHAR_SET );
-               break;
-          case ELangSpanish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_SPANISH_CHAR_SET );
-               break;
-          case ELangDutch:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_DUTCH_CHAR_SET );
-               break;
-          case ELangPortuguese:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_PORTUGUESE_CHAR_SET );
-               break;
-          case ELangAmerican:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ENGLISH_CHAR_SET );
-               break;
-          case ELangCanadianFrench:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_FRENCH_CHAR_SET );
-               break;
-          case ELangBrazilianPortuguese:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_PORTUGUESE_CHAR_SET );
-               break;
-          case ELangLatinAmericanSpanish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_SPANISH_CHAR_SET );
-               break;
-          case ELangLatvian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_LATVIAN_CHAR_SET );
-               break;
-          case ELangGreek:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_GREEK_CHAR_SET );
-               break;
-          case ELangEstonian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ESTONIAN_CHAR_SET );
-               break;
-          case ELangLithuanian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_LITHUANIAN_CHAR_SET );
-               break;
-          case ELangRomanian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ROMANIAN_CHAR_SET );
-               break;
-          case ELangUkrainian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_UKRAINIAN_CHAR_SET );
-               break;
-          case ELangBulgarian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_BULGARIAN_CHAR_SET );
-               break;
-          case ELangCroatian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_CROATIAN_CHAR_SET );
-               break;
-          case ELangSerbian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_SERBIAN_CHAR_SET );
-               break;
-          case ELangIndonesian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_INDONESIAN_CHAR_SET );
-               break;
-          case ELangMalay:
-          case ELangTagalog:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_MALAY_CHAR_SET );
-               break;
-          case ELangIcelandic:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ICELANDIC_CHAR_SET );
-               break;
-          case ELangDanish:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_DANISH_CHAR_SET );
-               break;
-          case ELangNorwegian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_NORWEGIAN_CHAR_SET );
-               break;
-          case ELangHindi:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_INDIAN_CHAR_SET );
-               break;
-          case ELangUrdu:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_URDU_CHAR_SET );
-               break;
-          case ELangCzech:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_CZECH_CHAR_SET );
-               break;
-          case ELangSlovak:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_SLOVAK_CHAR_SET );
-               break;
-          case ELangSlovenian:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_SLOVENIAN_CHAR_SET );
-               break;
-          case ELangTaiwanChinese:
-          case ELangHongKongChinese:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_TAIWAN_HK_CHINESE_CHAR_SET );
-               break;
-          case ELangPrcChinese:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_CHINESE_CHAR_SET );
-               break;
-          case ELangEnglish_Taiwan:
-          case ELangEnglish_Prc:
-          case ELangEnglish_Japan:
-          case ELangEnglish_Thailand:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_ENGLISH_CHAR_SET );
-               break;
-          case ELangJapanese:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_JAPANESE_CHAR_SET );
-               break;
-          case ELangThai:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_THAI_CHAR_SET );
-               break;
-          case ELangVietnamese:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_VIETNAMESE_CHAR_SET );
-               break;
-          case ELangMalay_Apac:
-               ReadCharacterSetResourceL( R_MDS_PLAYLIST_MALAY_CHAR_SET );
-               break;
-          default:
-               break;
-          }
-     }
-
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::ReadCharacterSetResourceL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterAudioPlaylistParser::ReadCharacterSetResourceL( TInt aResourceId )
-     {
-     TResourceReader rscReader;                       // Resource reader
-     HBufC8* rscBuf;                                      // Buffer where resource is read
-
-     rscBuf = iRscFile.AllocReadL( aResourceId );
-     rscReader.SetBuffer( rscBuf );
-     CleanupStack::PushL( rscBuf );
-
-     TUint characterSetElementId;
-     TInt numCharacterSetElements = rscReader.ReadInt16();
-     TUint elemId;
-     CCnvCharacterSetConverter::SCharacterSet elem;
-
-     for( TInt i = 0; i < numCharacterSetElements; i++ )
-          {
-          characterSetElementId = rscReader.ReadInt32();
-          const TInt count( iAvailableCharacterSet->Count() );
-          for( TInt j = 0; j < count; j++ )
-               {
-               elem = (*iAvailableCharacterSet)[j];
-               elemId = elem.Identifier();
-               if ( elemId == characterSetElementId && !IsInTopCharacterSet(characterSetElementId) )
-                    {
-                    iTopCharacterSet->AppendL( elem );
-                    }
-               }
-          }
-
-     CleanupStack::PopAndDestroy( rscBuf );
-     }     
-     
-// -----------------------------------------------------------------------------
-// CHarvesterAudioPlaylistParser::IsInTopCharacterSet
-// -----------------------------------------------------------------------------
-//
-TBool CHarvesterAudioPlaylistParser::IsInTopCharacterSet( TUint aCharacterSetId )
-     {
-     const TInt count( iTopCharacterSet->Count() ); 
-     for( TInt i = 0; i < count; i++ )
-          {
-          if( (*iTopCharacterSet)[i].Identifier() == aCharacterSetId )
-               {
-               return ETrue;
-               }
-          }
-     return EFalse;
-     }
-
-// End of file
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesteraudioplaylistplugin.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <e32base.h>
-#include <harvesterdata.h>
-
-#include <mderelation.h>
-#include <mdeobjectdef.h>
-
-#include "harvesteraudioplaylistplugin.h"
-#include "mdeobjectwrapper.h"
-#include "mdsutils.h"
-#include "harvestercommon.h"
-
-#include "harvesterlog.h"
-
-// for CleanupResetAndDestroyPushL
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-
-CHarvesterAudioPlaylistPluginPropertyDefs::CHarvesterAudioPlaylistPluginPropertyDefs() : CBase()
-    {
-    }
-
-void CHarvesterAudioPlaylistPluginPropertyDefs::ConstructL(CMdEObjectDef& aObjectDef)
-    {
-    CMdENamespaceDef& nsDef = aObjectDef.NamespaceDef();
-    
-    // Property definitions
-    CMdEObjectDef& objectDef = nsDef.GetObjectDefL( MdeConstants::Object::KBaseObject );
-    iCreationDatePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KCreationDateProperty );
-    iLastModifiedDatePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KLastModifiedDateProperty );
-    iSizePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KSizeProperty );
-    iItemTypePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KItemTypeProperty );
-    iTitlePropertyDef = &objectDef.GetPropertyDefL( MdeConstants::Object::KTitleProperty );
-    
-    CMdEObjectDef& albumObjectDef = nsDef.GetObjectDefL( MdeConstants::Album::KAlbumObject );
-    iAlbumTypeDef = &albumObjectDef.GetPropertyDefL( MdeConstants::Album::KTypeProperty );
-    
-    CMdEObjectDef& playlistObjectDef = nsDef.GetObjectDefL( MdeConstants::AudioPlaylistItem::KAudioPlaylistItem );
-    iAlbumIDDef = &playlistObjectDef.GetPropertyDefL( MdeConstants::AudioPlaylistItem::KPlaylistIDProperty );
-    iAudioObjectIDDef = &playlistObjectDef.GetPropertyDefL( MdeConstants::AudioPlaylistItem::KAudioObjectIDProperty );
-    iPositionDef = &playlistObjectDef.GetPropertyDefL( MdeConstants::AudioPlaylistItem::KPositionProperty );
-    }
-
-CHarvesterAudioPlaylistPluginPropertyDefs* CHarvesterAudioPlaylistPluginPropertyDefs::NewL(CMdEObjectDef& aObjectDef)
-    {
-    CHarvesterAudioPlaylistPluginPropertyDefs* self = 
-        new (ELeave) CHarvesterAudioPlaylistPluginPropertyDefs();
-    CleanupStack::PushL( self );
-    self->ConstructL( aObjectDef );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-using namespace MdeConstants;
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlugin::CHarvesterAudioPlugin
-// ---------------------------------------------------------------------------
-//    
-CHarvesterAudioPlaylistPlugin::CHarvesterAudioPlaylistPlugin() : 
-	CHarvesterPlugin()
-	{
-	}
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::NewL
-// ---------------------------------------------------------------------------
-//    
-CHarvesterAudioPlaylistPlugin* CHarvesterAudioPlaylistPlugin::NewL()
-	{
-	WRITELOG( "CHarvesterAudioPlaylistPlugin::NewL()" );
-	CHarvesterAudioPlaylistPlugin* self = new (ELeave) CHarvesterAudioPlaylistPlugin();
-	CleanupStack::PushL( self );
-	self->ConstructL();
-	CleanupStack::Pop( self );
-	
-	return self;
-	}
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::~CHarvesterAudioPlaylistPlugin
-// ---------------------------------------------------------------------------
-//    
-CHarvesterAudioPlaylistPlugin::~CHarvesterAudioPlaylistPlugin()
-	{
-	WRITELOG( "CHarvesterAudioPlaylistPlugin::~CHarvesterAudioPlaylistPlugin()" );
-	
-	delete iPlaylistParser;
-	delete iPropDefs;
-	delete iMime;
-	}
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::ConstructL
-// ---------------------------------------------------------------------------
-//    
-void CHarvesterAudioPlaylistPlugin::ConstructL()
-	{
-	WRITELOG( "CHarvesterAudioPlaylistPlugin::ConstructL()" );
-	SetPriority( KHarvesterPriorityHarvestingPlugin - 1 );
-	
-	iPlaylistParser =  CHarvesterAudioPlaylistParser::NewL();
-	}
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::HarvestL (from CHarvesterPlugin)
-// ---------------------------------------------------------------------------
-//    
-void CHarvesterAudioPlaylistPlugin::HarvestL( CHarvesterData* aHD )
-	{
-	WRITELOG( "CHarvesterAudioPlaylistPlugin::HarvestL()" );
-	
-	TRAPD( err, DoHarvestL( aHD ) );
-	
-	if ( err != KErrNone )
-	    {
-	    aHD->SetErrorCode( err );
-	    }
-	}
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::DoHarvestL
-// ---------------------------------------------------------------------------
-//    
-void CHarvesterAudioPlaylistPlugin::DoHarvestL( CHarvesterData* aHD )
-	{
-	WRITELOG( "CHarvesterAudioPlaylistPlugin::DoHarvestL()" );
-    CMdEObject& mdeObject = aHD->MdeObject();
-        
-    TBool isAdd = EFalse;
-    if ( mdeObject.Placeholder() || mdeObject.Id() == KNoId ) // is a new object or placeholder
-        {
-        isAdd = ETrue;
-        }
-    else
-        {
-        return; // Once playlist has been imported, changes made to it by Music Player
-                     // will not get written back to original playlist file. Thus changes to playlist
-                     // should be done within Music Player, and MDS will prevent playlist that
-                     // have already been imported to be changes so that there will not be 
-                     // several versions of same playlist imported by accident.
-        }
-
-    GetPropertiesL( aHD, isAdd );
-	}
-
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::GetPropertiesL
-// ---------------------------------------------------------------------------
-//    
-void CHarvesterAudioPlaylistPlugin::GetPropertiesL( CHarvesterData* aHD,
-                                            TBool aIsAdd )
-    {
-    CMdEObject& mdeObject = aHD->MdeObject();
-    
-    // get creation time, modified time and file size
-    if( !mdeObject.Placeholder() )
-        {
-        GetPlaceHolderPropertiesL( aHD, aIsAdd );
-        }
-    
-    const TDesC& uri = mdeObject.Uri();
-    
-    TBool isSupported( GetMimeTypePropertyL( aHD, aIsAdd ) );
-
-    if( isSupported )
-    	{
-    	GetMusicPropertiesL( aHD, aIsAdd );
-    	}
-    }
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::GetPlaceHolderPropertiesL
-// Get placeholder properties (creation time, modify time and file size).
-// ---------------------------------------------------------------------------
-//    
-void CHarvesterAudioPlaylistPlugin::GetPlaceHolderPropertiesL( CHarvesterData* aHD,
-                               TBool aIsAdd )
-    {
-    CMdEObject& mdeObject = aHD->MdeObject();
-    
-    const TDesC& uri = mdeObject.Uri();
-    
-    TEntry entry;
-    TInt err = iFs.Entry( uri, entry );
-    
-    if ( err!= KErrNone )
-        {
-        User::Leave( err ); // metadata cannot be gathered!
-        }
-    
-	TTime now;
-	now.HomeTime();
-	
-    if( !iPropDefs )
-        {
-        CMdEObjectDef& objectDef = mdeObject.Def();
-        iPropDefs = CHarvesterAudioPlaylistPluginPropertyDefs::NewL( objectDef );
-        }
-    
-	CMdeObjectWrapper::HandleObjectPropertyL(
-                 mdeObject, *iPropDefs->iCreationDatePropertyDef, &now, aIsAdd );
-
-	CMdeObjectWrapper::HandleObjectPropertyL(
-             mdeObject, *iPropDefs->iLastModifiedDatePropertyDef, &entry.iModified, aIsAdd );
-
-	CMdeObjectWrapper::HandleObjectPropertyL(
-              mdeObject, *iPropDefs->iSizePropertyDef, &entry.iSize, aIsAdd );
-    }
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::GetMimeTypePropertyL
-// Get mime type.
-// ---------------------------------------------------------------------------
-//    
-TBool CHarvesterAudioPlaylistPlugin::GetMimeTypePropertyL( 
-		CHarvesterData* aHD, TBool aIsAdd )
-    {
-    CMdEObject& mdeObject = aHD->MdeObject();
- 
-    TBuf<40> mimeType( KNullDesC );
-    TBool supported( EFalse );
-    supported = iPlaylistParser->ParseMimeType( mdeObject.Uri(), mimeType );
-    delete iMime;
-    iMime = NULL;
-    iMime = mimeType.AllocL();
-        
-    if( !iPropDefs )
-        {
-        CMdEObjectDef& objectDef = mdeObject.Def();
-        iPropDefs = CHarvesterAudioPlaylistPluginPropertyDefs::NewL( objectDef );
-        }
-    
-    CMdeObjectWrapper::HandleObjectPropertyL( mdeObject, 
-            *iPropDefs->iItemTypePropertyDef, (TAny*)&(mimeType), 
-        	aIsAdd );
-    
-    return supported;
-    }
-
-// ---------------------------------------------------------------------------
-// CHarvesterAudioPlaylistPlugin::GetMusicPropertiesL
-// ---------------------------------------------------------------------------
-//    
-void CHarvesterAudioPlaylistPlugin::GetMusicPropertiesL( CHarvesterData* aHD,
-                                      TBool aIsAdd )
-    {
-    CMdEObject& mdeObject = aHD->MdeObject();
-    
-    if( !iPropDefs )
-        {
-        CMdEObjectDef& objectDef = mdeObject.Def();
-        iPropDefs = CHarvesterAudioPlaylistPluginPropertyDefs::NewL( objectDef );
-        }
-    
-    CMdESession& session = mdeObject.Session();
-
-#ifdef MDS_PLAYLIST_HARVESTING_ENABLED
-	TInt playlistType( MdeConstants::Album::EAlbumMusicPlaylist );
-	CMdeObjectWrapper::HandleObjectPropertyL( 
-              mdeObject, *iPropDefs->iAlbumTypeDef, &playlistType, aIsAdd );
-#endif
-    
-    RPointerArray<HBufC> playlistItems;
-    TCleanupItem cleanupItem( MdsUtils::CleanupPtrArray<HBufC>, &playlistItems );
-    CleanupStack::PushL( cleanupItem );
-    
-    const TBool parsed( iPlaylistParser->ParseL( mdeObject.Uri(), playlistItems, iMime->Des() ) ); 
-
-    if( parsed )
-        {
-        TTime curtime( 0 );
-        curtime.UniversalTime();
-
-        const TTimeIntervalSeconds timeOffsetSeconds = User::UTCOffset();
-        const TTime localTime = curtime + timeOffsetSeconds;
-        
-        RPointerArray<CMdEObject> objectArray;
-        
-        CMdENamespaceDef& nsDef = session.GetDefaultNamespaceDefL();
-        CMdEObjectDef& playlistObjectDef = nsDef.GetObjectDefL( MdeConstants::AudioPlaylistItem::KAudioPlaylistItem );
-        
-        const TInt count( playlistItems.Count() );
-        for( TInt i = 0; i < count; i++)
-            {
-            CMdEObject* mdeAudioObject = session.GetObjectL( playlistItems[i]->Des() );
-            if( mdeAudioObject )
-                {
-                CMdEObject* object = session.NewObjectLC( playlistObjectDef, Object::KAutomaticUri );
-                
-                object->AddTimePropertyL( *iPropDefs->iCreationDatePropertyDef, localTime );
-                object->AddTimePropertyL( *iPropDefs->iLastModifiedDatePropertyDef, curtime );
-                object->AddUint32PropertyL( *iPropDefs->iSizePropertyDef, 0 );
-                object->AddTextPropertyL( *iPropDefs->iItemTypePropertyDef, AudioPlaylistItem::KAudioPlaylistItemType );
-                
-                object->AddInt32PropertyL( *iPropDefs->iAlbumIDDef, mdeObject.Id() );
-                object->AddInt32PropertyL( *iPropDefs->iAudioObjectIDDef, mdeAudioObject->Id() );
-                
-                // position is considered to represent items relative position in the list
-                // if item is removed from the middle of the list, position is still valid even though
-                // the actual position value is not updated
-                object->AddInt32PropertyL( *iPropDefs->iPositionDef, (i+1) ); // playlist position starts from 1
-                objectArray.AppendL( object );
-                CleanupStack::Pop(); // object
-                }
-            delete mdeAudioObject;
-            }
-        CleanupResetAndDestroyPushL( objectArray );
-        TRAPD( addError, session.AddObjectsL( objectArray ) );
-        if ( addError != KErrNone )
-            {
-            WRITELOG1( "CHarvesterAudioPlaylistPlugin::GetMusicPropertiesL - Add items to MDE error: %d", addError );
-            }
-        CleanupStack::PopAndDestroy( &objectArray );
-        }
-
-    CleanupStack::PopAndDestroy( &playlistItems );
-    }
-
-// End of file
-
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesterm3uplaylistparser.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,534 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <e32base.h>
-#include <bautils.h>
-#include <syslangutil.h>
-#include <PathInfo.h>
-#include <data_caging_path_literals.hrh>
-#include <mdsplaylisttopcharacterset.rsg>
-
-#include "harvesterm3uplaylistparser.h"
-
-#include "mdsutils.h"
-#include "harvesterlog.h"
-
-_LIT( KMDSM3ULineChange, "\n" );
-_LIT( KMDSM3UTagExtm3u, "#EXTM3U" );
-_LIT (KMDSM3UTagExtinf, "#EXTINF:" );
-_LIT( KMDSM3UPoint, ",");
-_LIT( KMDSM3UTagExt, "#");
-_LIT( KMDSM3UAbsPath, ":\\");
-
-const TInt KMDSM3UCarriageReturn = 13;
-const TInt KMDSM3UNoOffset = 0;
-const TInt KPlaylistSampleLength = 10000; 
-const TUint KUnicodeBOM = 0xFEFF;
-const TInt KPlaylistMaxSampleLength = 130000;
-const TInt KMinimumConfidenceRequired = 75;
-const TInt KMDSM3UPlaylistMaxItemCount = KMaxTInt;
-const TInt KPathStartingChars = 3;
-
-// MODULE DATA STRUCTURES
-enum TMDSM3UPlaylistLineType
-    {
-    EMDSM3UPlaylistLineTypeExtinf = 1,
-    EMDSM3UPlaylistLineTypePath = 2,
-    EMDSM3UPlaylistLineTypeNotSupported = 3,
-    EMDSM3UPlaylistLineTypeCorrupted = 4
-    };
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::NewL
-// -----------------------------------------------------------------------------
-//
-CHarvesterM3UPlaylistParser* CHarvesterM3UPlaylistParser::NewL( RFs& aFs,
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aAvailableCharacterSet,
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aTopCharacterSet )
-    {
-    CHarvesterM3UPlaylistParser* self = new ( ELeave ) CHarvesterM3UPlaylistParser(
-            aFs, aAvailableCharacterSet, aTopCharacterSet );
-
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CHarvesterM3UPlaylistParser::~CHarvesterM3UPlaylistParser()
-    {
-    Reset();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::CHarvesterM3UPlaylistParser
-// -----------------------------------------------------------------------------
-//
-CHarvesterM3UPlaylistParser::CHarvesterM3UPlaylistParser( RFs& aFs,
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aAvailableCharacterSet,
-        CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* aTopCharacterSet ) 
-    :iFs( aFs ), iAvailableCharacterSet( aAvailableCharacterSet ),
-     iTopCharacterSet( aTopCharacterSet ), iEndLineNumber( KMDSM3UPlaylistMaxItemCount )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ParseL
-// -----------------------------------------------------------------------------
-//
-TBool CHarvesterM3UPlaylistParser::ParseL( const TDesC& aFileName,
-		RPointerArray<HBufC>& aUriArray )
-    {
-    iPlaylistFilePath.Set( aFileName );
-    ReadPlaylistFileToBufferL();
-    ParsePlaylistBufferL( aUriArray, iInvalidItems );
-    
-    // If at the moment, we know that there is at least one error parsing
-    // with auto detect encoding, we don't need to proceed until end of
-    // file anymore, this playlist file is concluded to be corrupted
-    if ( iInvalidItems > 0 )
-        {
-        aUriArray.Reset();
-        Reset();
-        User::Leave( KErrCorrupt );
-        }
-    
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ResetL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterM3UPlaylistParser::Reset()
-    {
-    delete iBuffer;
-    iBuffer = NULL;
-    delete iLine;
-    iLine = NULL;
-    iBufferPtr.Set( KNullDesC );
-    iCurrentLineNumber = 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ReadPlaylistFileToBufferL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterM3UPlaylistParser::ReadPlaylistFileToBufferL()
-    {
-#ifdef _DEBUG
-    WRITELOG1( "Before reading playlist to buffer: heap size = %d", User::Heap().Size() );
-#endif
-    
-    TEntry entry;
-    User::LeaveIfError( iFs.Entry( iPlaylistFilePath, entry ) );
-    
-    HBufC* buffer = HBufC::NewLC( entry.iSize );
-    TPtr ptr = buffer->Des();
-
-    HBufC8* buf8 = HBufC8::NewLC( entry.iSize );
-    TPtr8 ptr8 = buf8->Des();
-
-    // Read the first KPlaylistSampleLength bytes of the file
-    TInt sampleLength( KPlaylistSampleLength );
-    if( sampleLength > entry.iSize )
-        {
-        sampleLength = entry.iSize;
-        }
-    User::LeaveIfError( iFs.ReadFileSection(
-                            iPlaylistFilePath, 0, ptr8, sampleLength ) );
-
-    // auto detect character encoding
-    TUint charSetId( 0 );
-    TInt error = DetectCharacterSetL( *buf8, *iTopCharacterSet, charSetId );
-    WRITELOG2("Encoding detected using top character set is 0x%x, error %d", charSetId, error);
-    
-    // when we fail to detect the encoding, use all available character set in the
-    // system to try again. If that also fails, abandon the operation.
-    if ( error )
-        {
-        User::LeaveIfError( DetectCharacterSetL( *buf8, *iAvailableCharacterSet, charSetId ) );
-        WRITELOG1( "Encoding detected using available character set is 0x%x", charSetId );     
-        }
-
-    // read the whole file if the sample taken isn't the whole file
-    if ( sampleLength != entry.iSize )
-        {
-        User::LeaveIfError( iFs.ReadFileSection(
-                                iPlaylistFilePath, 0, ptr8, entry.iSize) );
-        }
-   
-    // perform character conversion using the selected encoding
-    TInt state( CCnvCharacterSetConverter::KStateDefault );
-    TInt numOfUnconvertibleChars( 0 );
-    CCnvCharacterSetConverter* charSetConv = CCnvCharacterSetConverter::NewLC();
-    charSetConv->PrepareToConvertToOrFromL( charSetId, *iAvailableCharacterSet, iFs );
-    TInt retVal = charSetConv->ConvertToUnicode( ptr, *buf8, state, numOfUnconvertibleChars );
-    User::LeaveIfError( retVal );
-
-    // try again if the character set wasn't detected using the whole file
-    if( (retVal > 0 || numOfUnconvertibleChars > 0) && (sampleLength != entry.iSize) )
-        {
-        WRITELOG3( "retVal = %d, numOfUnconvertibleChars = %d, entry.iSize = %d",
-                retVal, numOfUnconvertibleChars, entry.iSize );  
-        numOfUnconvertibleChars = 0;
-        retVal = 0;
-        User::LeaveIfError( DetectCharacterSetL( *buf8, *iAvailableCharacterSet, charSetId ) );
-        charSetConv->PrepareToConvertToOrFromL( charSetId, *iAvailableCharacterSet, iFs );
-        retVal = charSetConv->ConvertToUnicode( ptr, *buf8, state, numOfUnconvertibleChars );
-        }
-        
-    if ( retVal > 0 || numOfUnconvertibleChars > 0 )
-        {
-        WRITELOG2( "Unable to find character encoding for the playlist file. retVal = %d, numOfUnconvertibleChars = %d",
-                    retVal, numOfUnconvertibleChars );     
-        User::Leave( KErrNotSupported );
-        }
-    
-    // remove the byte order mark (BOM) character prepended at the beginning
-    // of the stream if encoded with unicode as per Unicode section 2.4
-    if ( (charSetId == KCharacterSetIdentifierUnicodeLittle ||
-         charSetId == KCharacterSetIdentifierUnicodeBig) &&
-        ptr.Length() > 0 &&
-        ptr[0] == KUnicodeBOM )
-        {
-        ptr.Delete( 0,1 );
-        }
-        
-    iBuffer = buffer;
-    iBufferPtr.Set( *iBuffer );
-    
-    CleanupStack::PopAndDestroy (2, buf8 ); // charSetConv & buf8    
-    CleanupStack::Pop( buffer );
-        
-    // brand new buffer which hasn't been read, reset iCurrentLineNumber and
-    // iEndLineNumber
-    iCurrentLineNumber = 0;
-
-#ifdef _DEBUG
-    WRITELOG1( "After reading playlist to buffer: heap size = %d", User::Heap().Size() );
-#endif
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::DetectCharacterSetL
-// -----------------------------------------------------------------------------
-//
-TInt CHarvesterM3UPlaylistParser::DetectCharacterSetL(
-            const TDesC8& aSample,
-            const CArrayFix<CCnvCharacterSetConverter::SCharacterSet>& aCharacterSet,
-            TUint& aCharSetId)
-    {
-    // CCnvCharacterSetConverter::ConvertibleToCharSetL hangs if sample is too big
-    if ( aSample.Size() > KPlaylistMaxSampleLength )
-        {
-        User::Leave( KErrNotSupported );
-        }
-        
-    TInt confidence( 0 );
-    TInt highestConfidence( 0 );
-    TUint charSetId( 0 );
-    TUint highestConfidencecharSetId( 0 );
-
-    CCnvCharacterSetConverter* charSetConv = CCnvCharacterSetConverter::NewLC();
-    TInt count = aCharacterSet.Count();
-    for ( TInt i=0; i < count; i++ )
-        {
-        charSetId = aCharacterSet.At(i).Identifier();
-        charSetConv->ConvertibleToCharSetL( confidence, charSetId, aCharacterSet, aSample );
-        if ( confidence > highestConfidence )
-            {
-            highestConfidence = confidence;
-            highestConfidencecharSetId = charSetId;
-            }
-        }
-    CleanupStack::PopAndDestroy( charSetConv );
-    WRITELOG2( "CMPXM3uPlaylistImporter::DetectCharacterSetL :-> Confidence[%d] CharSetId[0x%x]",
-            confidence, aCharSetId );
-    if ( highestConfidence == 0 || highestConfidence < KMinimumConfidenceRequired )
-        {
-        return KErrNotFound;
-        }
-    else
-        {
-        aCharSetId = highestConfidencecharSetId;
-        return KErrNone;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ParsePlaylistBufferL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterM3UPlaylistParser::ParsePlaylistBufferL(
-			RPointerArray<HBufC>& aPlaylist,
-            TInt& aInvalidItemCount)
-    {
-    // Read and process all the lines in the file
-    //
-    // the order of the following conditions is important. ReadNextLineL
-    // should be called last to avoid skipping one line
-    while ( iCurrentLineNumber < iEndLineNumber &&
-               aPlaylist.Count() < KMDSM3UPlaylistMaxItemCount &&
-               ReadNextLineL() )
-        {
-        ProcessLineL( aPlaylist, aInvalidItemCount );  
-        }
-
-    if ( aPlaylist.Count() == KMDSM3UPlaylistMaxItemCount )
-        {
-        Reset();
-        User::Leave( KErrOverflow );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ReadNextLineL
-// -----------------------------------------------------------------------------
-//
-TBool CHarvesterM3UPlaylistParser::ReadNextLineL()
-    {
-    // iBuffer should exist when this function is called
-    __ASSERT_DEBUG( iBuffer, User::Leave( KErrBadDescriptor ) );
-
-    if ( !iBufferPtr.Length() )
-        {
-        return EFalse;
-        }
-
-    delete iLine;
-    iLine = NULL;
-
-    // Try to find line change
-    TInt offset = iBufferPtr.FindF( KMDSM3ULineChange );
-  
-    if( offset == KErrNotFound )
-        {
-        // No line change was found --> last line had no line change
-        iLine = iBufferPtr.AllocL();
-        // Set iBufferPtr to the end of buffer
-        iBufferPtr.Set( iBufferPtr.Right(0) );
-        }
-    else
-        {
-        // Found line change
-        TInt length( offset );
-        if ( (offset > KMDSM3UNoOffset) && 
-            (iBufferPtr[length - 1] == KMDSM3UCarriageReturn) )
-            {
-            --length;
-            }
-
-        iLine = iBufferPtr.Left(length).AllocL();
-
-        // Move past the line feed
-        iBufferPtr.Set( iBufferPtr.Mid(++offset) );
-        }
-
-    // Remove leading and trailing space characters from iLine's data.
-    TPtr ptr = iLine->Des();
-    ptr.Trim();
-
-    iCurrentLineNumber++;
-    return ETrue;
-    }
-    
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ProcessLineL
-// -----------------------------------------------------------------------------
-//
-void CHarvesterM3UPlaylistParser::ProcessLineL(
-			RPointerArray<HBufC>& aPlaylist,
-            TInt& aInvalidItemCount)
-    {
-    if ( iCurrentLineNumber == 1 ) // first line
-        {
-        // Check whether the file is in the extented format
-        TInt offset = iLine->Find( KMDSM3UTagExtm3u );
-        if( offset == KErrNotFound || offset != KMDSM3UNoOffset ||
-            iLine->Length() != KMDSM3UTagExtm3u().Length() )
-            {
-            // The file is not in the extented format
-            iExtendedFormat = EFalse;
-            }
-        else
-            {
-            // The file is in the extented format
-            iExtendedFormat = ETrue;
-            return;
-            }        
-        }
-    
-    // Parse line and then decide what to do with it
-    switch( ParseLineL( iItem, aInvalidItemCount ) )
-        {
-        case EMDSM3UPlaylistLineTypeExtinf:
-            // Continue to next round
-            break;
-            
-        case EMDSM3UPlaylistLineTypePath:
-            {
-            // Line was a path => add item to playlist
-            aPlaylist.AppendL( iItem.AllocL() );
-            }
-            break; 
-                       
-        case EMDSM3UPlaylistLineTypeNotSupported:
-        case EMDSM3UPlaylistLineTypeCorrupted:
-        default:
-            {
-            iItem = KNullDesC;
-            }
-            break;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ParseLineL
-// -----------------------------------------------------------------------------
-//
-TInt CHarvesterM3UPlaylistParser::ParseLineL(
-            TFileName& aItem,
-            TInt& aInvalidItemCount)
-    {
-    __ASSERT_DEBUG( iLine, User::Leave(KErrAbort) );
-
-    if( !iLine->Length() )
-        {
-        // Empty line => line is invalid
-        return EMDSM3UPlaylistLineTypeNotSupported;
-        }
-
-    if( iExtendedFormat )
-        {
-        // File is in the extented format => check whether there is extented
-        // info in this line.
-        TInt offset = iLine->Find( KMDSM3UTagExtinf );
-        if( offset != KErrNotFound && offset == KMDSM3UNoOffset )
-            {
-            offset = iLine->Find( KMDSM3UPoint );
-
-            if( offset != KErrNotFound )
-                {
-                return EMDSM3UPlaylistLineTypeExtinf; // line type extinf
-                }    
-            }
-        }
-
-    // File is not in the extented format or supported info not found from this
-    // line.
-    switch( iLine->Find(KMDSM3UTagExt) )
-        {
-        case KMDSM3UNoOffset:
-            // Unsupported extended info tag found from this line
-            return EMDSM3UPlaylistLineTypeNotSupported;
-            
-        case KErrNotFound:
-        default:
-            // Extended info not found from the beginning of line => line is
-            // a path.
-            {
-            // Get absolute path
-            TInt error( KErrNone );
-            HBufC* uri = ParseAbsolutePathLC( *iLine, error );
-        
-            if( error )
-                {
-                CleanupStack::PopAndDestroy( uri );
-                ++aInvalidItemCount;
-                return EMDSM3UPlaylistLineTypeCorrupted;
-                }
-
-            aItem = uri->Des();
-
-            CleanupStack::PopAndDestroy( uri );
-            
-            return EMDSM3UPlaylistLineTypePath; // line type path
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CHarvesterM3UPlaylistParser::ParseAbsolutePathLC
-// -----------------------------------------------------------------------------
-//
-HBufC* CHarvesterM3UPlaylistParser::ParseAbsolutePathLC(
-            const TDesC& aPath,
-            TInt& aError)
-    {
-    HBufC* path = NULL;
-    
-    TBool isAbsolute( EFalse );
-    
-    if( aPath.Length() > KPathStartingChars && 
-        !aPath.Mid(1, 2).CompareF( KMDSM3UAbsPath ) ) // magic: the 2nd and 3rd chars
-                                               // are always ":\"
-                                               // for absolute paths
-        {
-        isAbsolute = ETrue;
-        }
-
-    if( aPath.Length() > KMaxFileName ) // Test if path is too long
-        {
-        aError = KErrCorrupt;
-        }
-    else if( isAbsolute )
-        {
-        aError = KErrNone;
-        aError = iFs.IsValidName( aPath ) ? KErrNone : KErrBadName;
-        path = aPath.AllocLC();
-        }
-    else
-        {
-        // Given path could be relative => create absolute path and test it
-        // Playlist file path
-        TParse playlistPath;
-        playlistPath.Set( iPlaylistFilePath, NULL, NULL );
-        // Path to the folder, where playlist file is located to
-        TPtrC currentFolder = playlistPath.DriveAndPath();
-        // Create absolute path
-        path = HBufC::NewLC( currentFolder.Length() + aPath.Length() );
-
-        TPtr tmpPtr( path->Des() );
-        tmpPtr = currentFolder;
-        tmpPtr += aPath;
-
-        aError = iFs.IsValidName(*path) ? KErrNone : KErrBadName;
-        }
-    
-    // It is possible that a song exists in the filesystem but isn't added to
-    // the database because it's not a supported type. If such song is included
-    // in a playlist, it will be added to the database when the playlist is added.
-    // Because of this, we cannot rely on whether the song exists in the database
-    // to conclude whether the song is a broken link. We need to check for file
-    // existence here. For the unsupported songs included in the playlist, they
-    // will then be marked as corrupted when user initiates playback of those
-    // songs.
-    if ( !aError &&
-         !BaflUtils::FileExists(iFs, *path) )
-        {
-        aError = KErrPathNotFound;
-        }
-
-    return path;
-    }
-
-// End of file
--- a/harvester/harvesterplugins/AudioPlaylistPlugin/src/proxy.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-
-#include <e32std.h>
-#include <implementationproxy.h>
-#include "harvesteraudioplaylistplugin.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy KImplementationTable[] = 
-	{
-		{{0x200211F6},	(TProxyNewLPtr)CHarvesterAudioPlaylistPlugin::NewL}
-	};
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-	{
-	aTableCount = sizeof(KImplementationTable) / sizeof(TImplementationProxy);
-	return KImplementationTable;
-	}
-
--- a/harvester/harvesterplugins/OMADRMPlugin/src/harvesteromadrmplugin.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/harvesterplugins/OMADRMPlugin/src/harvesteromadrmplugin.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -193,7 +193,7 @@
 
 void CHarvesterOMADRMPlugin::HarvestL( CHarvesterData* aHarvesterData )
 	{
-	WRITELOG( "CHarvesterOMADRMPlugin::HarvestL()" );
+	WRITELOG( "CHarvesterImagePlugin::HarvestL()" );
     CMdEObject& mdeObject = aHarvesterData->MdeObject();
 	CDRMHarvestData* drmHarvestData = CDRMHarvestData::NewL();
 	CleanupStack::PushL( drmHarvestData );
@@ -330,36 +330,31 @@
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting protection info failed %d", err );
         }
       
-    if( aMetadataObject.Def().Name() == MdeConstants::Image::KImageObject )
-        {
-        CImageDecoder* decoder = NULL;
+    CImageDecoder* decoder = NULL;
 
-        TRAP( err, decoder = CImageDecoder::FileNewL( iFs, uri, ContentAccess::EPeek, 
-                ( CImageDecoder::TOptions )( CImageDecoder::EPreferFastDecode )));
+    TRAP( err, decoder = CImageDecoder::FileNewL( iFs, uri, ContentAccess::EPeek, 
+            ( CImageDecoder::TOptions )( CImageDecoder::EPreferFastDecode )));
 
-        CleanupStack::PushL( decoder );
+    CleanupStack::PushL( decoder );
     
-        if(decoder && !err)
-            {
-            WRITELOG( "CHarvesterImagePlugin::GatherData() - Image decoder has opened the file." );        
-            // Get image width, frame count, height and bits per pixel from image decoder.
-            const TFrameInfo info = decoder->FrameInfo( 0 );
-            const TSize imageSize = info.iOverallSizeInPixels;
-            const TInt framecount = decoder->FrameCount();
-            aFileData.iFrameCount = framecount;
-            aFileData.iImageWidth = imageSize.iWidth;
-            aFileData.iImageHeight = imageSize.iHeight;
-            aFileData.iBitsPerPixel = info.iBitsPerPixel;
-            }
-        else
-            {
-            WRITELOG1( "CHarvesterImagePlugin::GatherData() - ERROR: decoder %d", err );
-            }    
-        CleanupStack::PopAndDestroy( decoder );
+    if(decoder && !err)
+        {
+        WRITELOG( "CHarvesterImagePlugin::GatherData() - Image decoder has opened the file." );        
+        // Get image width, frame count, height and bits per pixel from image decoder.
+        const TFrameInfo info = decoder->FrameInfo( 0 );
+        const TSize imageSize = info.iOverallSizeInPixels;
+        const TInt framecount = decoder->FrameCount();
+        aFileData.iFrameCount = framecount;
+        aFileData.iImageWidth = imageSize.iWidth;
+        aFileData.iImageHeight = imageSize.iHeight;
+        aFileData.iBitsPerPixel = info.iBitsPerPixel;
+        }
+    else
+        {
+        WRITELOG1( "CHarvesterImagePlugin::GatherData() - ERROR: decoder %d", err );
         }
 
-
-    CleanupStack::PopAndDestroy( 3 ); // content, data, attrSet
+    CleanupStack::PopAndDestroy( 4 ); // content, data, attrSet, imagedecoder
     return KErrNone;
     }
 
--- a/harvester/harvesterplugins/VideoPlugin/src/harvestervideoplugin.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/harvesterplugins/VideoPlugin/src/harvestervideoplugin.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -339,7 +339,7 @@
     if ( error != KErrNone )
         {
         WRITELOG1( "CHarvesterVideoPlugin::GetObjectType - File open error: %d", error );
-        if( error == KErrInUse || KErrLocked )
+        if( error == KErrInUse )
             {
 #ifdef _DEBUG
             TPtrC fileName( aUri.Mid(2) );
@@ -627,7 +627,6 @@
         TRAP( error, helixMetadata->OpenFileL( file ) );        
 
         // No need for the file handle anymore so closing it
-        WRITELOG( "CHarvesterVideoPlugin - Parsing done, file handle can be closed" );   
         file.Close();
         
         if ( error == KErrNone )
@@ -982,7 +981,7 @@
             }
 #endif
         }
-    WRITELOG( "CHarvesterVideoPlugin - Closing file, if still open" );        
+    WRITELOG( "CHarvesterVideoPlugin - Closing file" );        
     CleanupStack::PopAndDestroy( &file );        
 
 #ifdef _DEBUG
@@ -1248,7 +1247,6 @@
     CleanupStack::PushL( helixMetadata );
     
 	TRAPD( err, helixMetadata->OpenFileL( aFile ) );
-	aFile.Close();
 
 	if( err == KErrNone )
 		{
@@ -1275,10 +1273,10 @@
 	
 		const TInt mimeCount = mimes.Count();
 		
-		// Set to Video, regardless how badly file is corrupted
+		// at least one MIME type must be found
 		if( mimeCount == 0 )
 			{
-		    aType.Copy( KVideo );
+			User::Leave( KErrNotFound );
 			}
 	
 		for( TInt i = 0; i < mimeCount; i++ )
@@ -1338,7 +1336,8 @@
     if( blackListError == KErrNone )
         {
         RemoveFileFromBlackList( tempName, mediaId );
-        }  
+        }
+    
 	}
 
 TInt CHarvesterVideoPlugin::AddFileToBlackList( const TFileName& aFullName, const TUint32& aMediaId )
--- a/harvester/harvesterplugins/group/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/harvesterplugins/group/bld.inf	Wed Sep 01 12:24:24 2010 +0100
@@ -24,10 +24,6 @@
 #include "../RTPPlugin/group/bld.inf"
 #include "../AudioPlugin/group/bld.inf"
 
-#ifdef MDS_PLAYLIST_HARVESTING_ENABLED
-#include "../AudioPlaylistPlugin/group/bld.inf"
-#endif
-
 PRJ_PLATFORMS
     DEFAULT
 
--- a/harvester/monitorplugins/fileplugin/src/processoriginmapper.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/fileplugin/src/processoriginmapper.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -227,7 +227,7 @@
 //
 TInt CProcessOriginMapper::ReadFileL()
     {
-    WRITELOG( "CProcessOriginMapper::ReadFileL - reading default file" );
+    WRITELOG( "CProcessOriginMapper::ReadFileL - reading default file..." );
     iDefaultFileRead = ETrue;
     const TInt count = ReadFileL( KDefaultMappingFile );
     iDefaultFileRead = EFalse;
--- a/harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h	Wed Sep 01 12:24:24 2010 +0100
@@ -53,9 +53,9 @@
 		void SetHarvesterPluginFactory( CHarvesterPluginFactory* aPluginFactory );
 		
 		/**
-		 * Returns internal hard drive's media id if the device has one.
+		 * Returns internal hard drive's media id if the device has one. 0 if not or drive is not present
 		 */
-		TUint32 GetInternalDriveMediaId( TBool& aPresent );
+		TUint32 GetInternalDriveMediaId();
 		
         void SetCachingStatus( TBool aCachingStatus );
         
--- a/harvester/monitorplugins/mmcplugin/src/mmcfilelist.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcfilelist.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -104,7 +104,7 @@
 	TUint32 mediaId( 0 );
 	iMediaIdUtil->GetMediaId( aDrivePath, mediaId );
 	
-	WRITELOG1( "CMmcFileList::BuildFileListL - mediaId: %u", mediaId );
+	WRITELOG1( "CMmcFileList::BuildFileListL - mediaId: %d", mediaId );
 	
     CDir* directory = NULL;
     TFileName name; 
@@ -294,6 +294,7 @@
 		aEntryArray.Compress();
 		}
 	
+	WRITELOG( "CMmcFileList::HandleFileEntryL -- cleanupstack" );
 	CleanupStack::PopAndDestroy( &results );
 	CleanupStack::PopAndDestroy( &fileInfos );
 	CleanupStack::PopAndDestroy( &uris );
--- a/harvester/monitorplugins/mmcplugin/src/mmcmonitorao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcmonitorao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -124,8 +124,6 @@
 		return;
 		}
 
-	StartNotify();
-	
 	iPreviousDriveList.Zero();
 	iPreviousDriveList.Copy( iDriveList );
 
@@ -140,6 +138,8 @@
 #ifdef _DEBUG
 	PrintAllLists();
 #endif
+
+	StartNotify();
 	}
 
 #ifdef _DEBUG
@@ -161,7 +161,7 @@
 	iFs.NotifyChangeCancel( iStatus );
 	}
 
-CMMCMonitorAO::CMMCMonitorAO() : CActive( KHarvesterServerHighPriority ),
+CMMCMonitorAO::CMMCMonitorAO() : CActive( KHarvesterPriorityMonitorPlugin ),
     iObserver( NULL )
 	{
 	}
@@ -283,7 +283,7 @@
 			{
 			if ( iMediaIdList[i] != mediaId )
 				{
-				WRITELOG3( "CMMCMonitorAO::CompareDriveLists media changed %d, old=%u, new=%u", i, iMediaIdList[i], mediaId ); // DEBUG INFO
+				WRITELOG3( "CMMCMonitorAO::CompareDriveLists media changed %d, old=%d, new=%d", i, iMediaIdList[i], mediaId ); // DEBUG INFO
 				// skip mount events if mediaId is 0
 				if ( iMediaIdList[i] != 0 )
 					{
--- a/harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -116,8 +116,7 @@
 	TBool presentState( EFalse );
     
 	TUint32 hdMediaId( 0 );
-	TBool hdPresent( EFalse );
-    hdMediaId = iMountTask->GetInternalDriveMediaId( hdPresent );
+    hdMediaId = iMountTask->GetInternalDriveMediaId();
     
     for( TInt i = medias.Count() - 1; i >=0; i-- )
     	{
@@ -138,10 +137,10 @@
     		}
     	}
  
-    if( hdMediaId == 0 || !hdPresent )
+    if( hdMediaId == 0 )
         {
         // Try to fetch internall mass storage media id again if it was not mounted
-        hdMediaId = iMountTask->GetInternalDriveMediaId( hdPresent );
+        hdMediaId = iMountTask->GetInternalDriveMediaId();
         }
     
     // scan mass storage to catch all chances even if battery dies during operation that should  be catched
@@ -150,7 +149,7 @@
 		TBool exists( EFalse );
 		TRAP_IGNORE( exists= iMdEClient->GetMediaL( hdMediaId, driveLetter, presentState ) );
 		
-		if ( exists && hdPresent )
+		if ( exists )
 			{
 			WRITELOG("CMMCMonitorPlugin::StartMonitoring - start mass storage scan");
 			
@@ -268,39 +267,33 @@
                 if( internalMassStorageError == KErrNone )
                     {
                     const TUint32 massStorageMediaId( internalMassStorageVolumeInfo.iUniqueID );
-                    if( massStorageMediaId == aMediaID &&
-                        massStorageMediaId != 0 )
+                    TUint32 mmcMediaId( 0 );
+                    TInt mmcError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive ) );
+                    if( mmcError == KErrNone )
                         {
-                        TUint32 mmcMediaId( 0 );
-                        TInt mmcDrive( -1 );
-                        TInt mmcError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, mmcDrive ) );
+                        TVolumeInfo mmcVolumeInfo;
+                        mmcError = iFs.Volume( mmcVolumeInfo, drive );
                         if( mmcError == KErrNone )
                             {
-                            if( drive != mmcDrive )
-                                {
-                                TVolumeInfo mmcVolumeInfo;
-                                mmcError = iFs.Volume( mmcVolumeInfo, mmcDrive );
-                                if( mmcError == KErrNone )
-                                    {
-                                    mmcMediaId = mmcVolumeInfo.iUniqueID;
-                                    }                        
-                                }
-                            else
-                                {
-                                mmcMediaId = massStorageMediaId;
-                                }
+                            mmcMediaId = mmcVolumeInfo.iUniqueID;
                             }
+                        }
                     
-                        // If removable storage is not found, assume internal mass storage was mounted
-                        if( mmcError )
-                            {
-                            iMdEClient->CheckMassStorageMediaId( massStorageMediaId );              
-                            }
-                        else if( massStorageMediaId != mmcMediaId )
+                    // If removable storage is not found, assume internal mass storage was mounted
+                    if( mmcError )
+                        {
+                        if( massStorageMediaId != 0 && 
+                            massStorageMediaId == aMediaID )
                             {
                             iMdEClient->CheckMassStorageMediaId( massStorageMediaId );
-                            }          
-                        }                    
+                            }                    
+                        }
+                    else if( massStorageMediaId != mmcMediaId && 
+                                massStorageMediaId != 0 && 
+                                massStorageMediaId == aMediaID )
+                        {
+                        iMdEClient->CheckMassStorageMediaId( massStorageMediaId );
+                        }          
                     }
                 }
             
--- a/harvester/monitorplugins/mmcplugin/src/mmcmounttaskao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcmounttaskao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -114,25 +114,6 @@
 	{
 	WRITELOG("CMMCMountTaskAO::StartMount");
 	
-	// Remove pending mount request for the same drive
-	// if for example USB cable is pluged and unpluged
-	// several times in a row
-	for( TInt i = iMountDataQueue.Count() - 1; i >=0; i-- )
-	    {
-	    WRITELOG( "CMMCMountTaskAO::StartUnmountL - checking for pending mount notifications" );
-	    TMountData* tempData = iMountDataQueue[i];
-	    if( tempData->iMediaID == aMountData.iMediaID &&
-	        tempData->iMountType == TMountData::EMount &&
-	        aMountData.iMountType == TMountData::EMount &&
-	        tempData->iDrivePath == aMountData.iDrivePath )
-	        {
-	        WRITELOG( "CMMCMountTaskAO::StartUnmountL - removing obsolite mount notifications" );
-	        iMountDataQueue.Remove(i);
-	        delete tempData;
-	        tempData = NULL;
-	        }
-	    }
-
 	User::LeaveIfError( iMountDataQueue.Append( &aMountData ));
 	
 	if ( iNextRequest == ERequestIdle )
@@ -154,26 +135,7 @@
 			Deinitialize();
 			}
 		}
-
-    // Remove pending unmount request for the same drive
-    // if for example USB cable is pluged and unpluged
-    // several times in a row
-    for( TInt i = iMountDataQueue.Count() - 1; i >=0; i-- )
-        {
-        WRITELOG( "CMMCMountTaskAO::StartUnmountL - checking for pending unmount notifications" );
-        TMountData* tempData = iMountDataQueue[i];
-        if( tempData->iMediaID == aMountData.iMediaID &&
-            tempData->iMountType == TMountData::EUnmount &&
-            aMountData.iMountType == TMountData::EUnmount &&
-            tempData->iDrivePath == aMountData.iDrivePath )
-            {
-            WRITELOG( "CMMCMountTaskAO::StartUnmountL - removing obsolite unmount notifications" );
-            iMountDataQueue.Remove(i);
-            delete tempData;
-            tempData = NULL;
-            }
-        }
-	
+		
 	User::LeaveIfError( iMountDataQueue.Append( &aMountData ));
 		
 	SetNextRequest( ERequestStartTask );
@@ -219,7 +181,7 @@
 
 				WRITELOG1( "iMountData.iMountType: %d", iMountData->iMountType );
 				WRITELOG1( "iMountData.iDrivePath: %S", &iMountData->iDrivePath );
-				WRITELOG1( "iMountData.iMediaID: %u", iMountData->iMediaID );
+				WRITELOG1( "iMountData.iMediaID: %d", iMountData->iMediaID );
 
 				if ( iMountData->iMountType == TMountData::EMount )
 					{
@@ -431,7 +393,6 @@
 	{
 	WRITELOG1( "CMMCMountTaskAO::RunError with error code: %d", aError );
 	Deinitialize();
-	SetNextRequest( ERequestStartTask );
 	return KErrNone;
 	}
 
@@ -454,7 +415,7 @@
 
 void CMMCMountTaskAO::SetNotPresentToMDE()
 	{
-	WRITELOG1("CMMCMountTaskAO::SetNotPresentToMDE - MediaID %u", iMountData->iMediaID);
+	WRITELOG1("CMMCMountTaskAO::SetNotPresentToMDE - MediaID %d", iMountData->iMediaID);
 	if ( iMountData->iMediaID )
 		{
 		iMdeSession->SetFilesToNotPresent( iMountData->iMediaID );
@@ -577,7 +538,7 @@
 		}
 	}
 
-TUint32 CMMCMountTaskAO::GetInternalDriveMediaId( TBool& aPresent )
+TUint32 CMMCMountTaskAO::GetInternalDriveMediaId()
 	{
     WRITELOG( "CMMCMountTaskAO::GetInternalDriveMediaId" );
 	    
@@ -620,15 +581,10 @@
 	        	// check if disk is internal
 	        	TUint driveStatus;
 	        	const TInt err = DriveInfo::GetDriveStatus( iFs, i, driveStatus );
-	        	if ( ( err == KErrNone ) && 
-	        	     ( driveStatus & DriveInfo::EDriveInternal ))
+	        	if ( (err == KErrNone ) && ( driveStatus & DriveInfo::EDriveInternal ) )
 	        		{
 	        		// get media id
 	        		hdMediaId = FSUtil::MediaID( iFs, i );
-	        		if( driveStatus & DriveInfo::EDrivePresent )
-	        		    {
-	        		    aPresent = ETrue;
-	        		    }
 	        		break;
 	        		}
 	        	}
--- a/harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -108,14 +108,6 @@
 		{
 		case( EUninitialized ):
 			{
-		    WRITELOG("CMmcScannerAO::RunL - Starting processing");
-		    if( iMediaId == 0 )
-		        {
-		        WRITELOG("CMmcScannerAO::RunL - MediaId == 0 -> end");
-                SetState( EDone );
-                break;		    
-		        }
-		    
 			WRITELOG("CMmcScannerAO::RunL - Setting files to not present");
 			iMdEClient->SetFilesToNotPresent( iMediaId, ETrue );
 			SetState( EReadFiles );
--- a/harvester/monitorplugins/mmcplugin/src/mmcusbao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcusbao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -136,7 +136,7 @@
             TFileName* fn = new (ELeave) TFileName( driveChar );
             _LIT( KIndicator, ":" );
             fn->Append( KIndicator );
-            WRITELOG1( "CMMCUsbAO::RunL - drive letter: %S", &(*fn) );
+            WRITELOG1( "CMMCUsbAO::RunL - drive letter: %S", fn );
             PrintDriveStatus( driveStatus );
             delete fn;
             fn = NULL;
--- a/harvester/server/inc/harvesterao.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/server/inc/harvesterao.h	Wed Sep 01 12:24:24 2010 +0100
@@ -22,8 +22,6 @@
 #include <e32base.h>
 #include <badesca.h>
 
-#include <rlocationobjectmanipulator.h>
-
 #include "contextengine.h"
 #include "mdeharvestersession.h"
 
@@ -586,11 +584,7 @@
         HBufC* iMmcSoundsPath;
         
         TBool iUnmountDetected;
-        TBool iUnmountHandlingOngoing;
         TBool iPriorityInterruptDetected;
-        
-        RLocationObjectManipulator iLocManipulator;
-        TBool iLocManipulatorConnected;
 	};
 	
 #endif //__CHARVESTERAO_H__
--- a/harvester/server/src/harvesterao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/server/src/harvesterao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -19,6 +19,7 @@
 #include <caf/caf.h>
 #include <driveinfo.h>
 
+#include <rlocationobjectmanipulator.h>
 #include <placeholderdata.h>
 #include <harvesterclientdata.h>
 #include <pathinfo.h>
@@ -61,7 +62,7 @@
 _LIT(KVideo, "Video");
 _LIT(KInUse, "InUse");
 
-_LIT(KUndefined, " ");
+_LIT(KUndefinedMime, " ");
 
 _LIT( KExtensionMp4,   "mp4" );
 _LIT( KExtensionMpg4,  "mpg4" );
@@ -155,9 +156,7 @@
     iHarvestingPlaceholders = EFalse;
     
     iUnmountDetected = EFalse;
-    iUnmountHandlingOngoing = EFalse;
     iPriorityInterruptDetected = EFalse;
-    iLocManipulatorConnected = EFalse;
     }
      
 // ---------------------------------------------------------------------------
@@ -173,8 +172,6 @@
 
 	iFs.Close();
 	
-	iLocManipulator.Close();
-	
 	if (iCtxEngine)
 		{
 		iCtxEngine->ReleaseInstance();
@@ -510,7 +507,6 @@
 	OstTrace1( TRACE_NORMAL, CHARVESTERAO_HANDLEUNMOUNT, "CHarvesterAO::HandleUnmount;aMediaId=%d", aMediaId );
     
     iUnmountDetected = ETrue;
-    iUnmountHandlingOngoing = ETrue;
     
     if( !iServerPaused )
         {
@@ -735,10 +731,12 @@
     iMediaIdUtil->RemoveMediaId( aMediaId );
 	
 	// resume harvesting from last state
-    iUnmountHandlingOngoing = EFalse;
-    // resume monitoring
-    ResumeMonitoring();
-    TRAP_IGNORE( ResumeHarvesterL() );    
+    if( !iRamFull && !iDiskFull )
+        {
+        // resume monitoring
+        ResumeMonitoring();
+        TRAP_IGNORE( ResumeHarvesterL() );    
+        }
 	}
 
 // ---------------------------------------------------------------------------
@@ -849,9 +847,9 @@
             {
             SetPriority( KHarvesterCustomImportantPriority );
             }
-    	while( hd &&
-			   iPHArray.Count() < KPlaceholderQueueSize &&
-			   hd->ObjectType() == EPlaceholder )
+    	while( hd != NULL &&
+				iPHArray.Count() < KPlaceholderQueueSize &&
+				hd->ObjectType() == EPlaceholder )
     		{
         	if(iPHArray.Append( hd ) != KErrNone)
         	    {
@@ -987,9 +985,7 @@
 		{
 		CHarvesterData* hd = iPHArray[i];
 		
-		if( aCheck && 
-		    hd->Origin() != MdeConstants::Object::ECamera &&
-		    iHarvesterPluginFactory->IsContainerFileL( hd->Uri() ) )
+		if( aCheck && iHarvesterPluginFactory->IsContainerFileL( hd->Uri() ) )
 			{
 			if( iContainerPHArray.Append( hd ) != KErrNone )
 			    {
@@ -1082,30 +1078,7 @@
 		if( objDefStr.Length() == 0 ||
 		    ( objDefStr == KInUse ) )
 			{
-#ifdef _DEBUG
-		    if( objDefStr.Length() == 0 )
-		        {
-		        WRITELOG( "CHarvesterAO::HandlePlaceholdersL() - no objectDef failing harvesting" );
-		        }
-		    else
-		        {
-		        WRITELOG( "CHarvesterAO::HandlePlaceholdersL() - in use, failing harvesting" );
-		        }
-		    WRITELOG1( "CHarvesterAO::HandlePlaceholdersL() - harvesting failed, uri: %S", &(hd->Uri()) );
-#endif
-		    // If object has not been created in the device so that monitors would have
-		    // picked up creation event, and the file is in use, subclose event will
-		    // not trigger the file to be harvester when closed, thus it needs to be moved 
-		    // to reharvesting queue
-		    if( objDefStr == KInUse &&
-		        !hd->TakeSnapshot() )
-		        {
-		        iPHArray.Remove( i );
-		        i--;
-		        endindex--;
-		        iReHarvester->AddItem( hd );
-		        continue;
-		        }
+		    WRITELOG( "CHarvesterAO::HandlePlaceholdersL() - no objectDef or in use, failing harvesting" );
 			const TInt error( KErrUnknown );
             // notify observer, notification is needed even if file is not supported
             HarvestCompleted( hd->ClientId(), hd->Uri(), error );
@@ -1218,7 +1191,7 @@
             }
         else
             {
-            mdeObject->AddTextPropertyL( *iPropDefs->iItemTypePropertyDef, KUndefined );
+            mdeObject->AddTextPropertyL( *iPropDefs->iItemTypePropertyDef, KUndefinedMime );
             }
 		
         if( hd->Origin() == MdeConstants::Object::ECamera )
@@ -1240,7 +1213,7 @@
 	        }
 	    else
 	        {
-	        mdeObject->AddTextPropertyL( *iPropDefs->iTitlePropertyDef, KUndefined );
+	        mdeObject->AddTextPropertyL( *iPropDefs->iTitlePropertyDef, KNullDesC );
 	        }
 	    
     	CPlaceholderData* ph = NULL;
@@ -1593,25 +1566,18 @@
 	        		WRITELOG( "CHarvesterAO::HarvestingCompleted() - Creating location object. " );
 	        		OstTrace0( TRACE_NORMAL, DUP6_CHARVESTERAO_HARVESTINGCOMPLETED, "CHarvesterAO::HarvestingCompleted - Creating location object." );
 	        		
-	        		TInt loError( KErrNone ); 
-	        		if( !iLocManipulatorConnected )
-	        		    {
-	        		    loError = iLocManipulator.Connect();
-	        		    if( loError == KErrNone )
-	        		        {
-	        		        iLocManipulatorConnected = ETrue;
-	        		        }
-	        		    }    		
+	        		RLocationObjectManipulator lo;
+	        		
+	        		const TInt loError = lo.Connect();     		
 	        		
 	        		if (loError == KErrNone)
 	        			{
-	        			TInt err = iLocManipulator.CreateLocationObject( *locData, aHD->MdeObject().Id() );
+	        			TInt err = lo.CreateLocationObject( *locData, aHD->MdeObject().Id() );
 	        			if( err != KErrNone )
 	        				{
 	        				WRITELOG( "CHarvesterAO::HarvestingCompleted() - Location object creation failed!!!" );
 	        				OstTrace0( TRACE_NORMAL, DUP7_CHARVESTERAO_HARVESTINGCOMPLETED, "CHarvesterAO::HarvestingCompleted - Location object creation failed!!!" );
-	        				iLocManipulator.Close();
-	        				iLocManipulatorConnected = EFalse;
+	        				
 	        				}
 	        			}
 	        		else
@@ -1619,6 +1585,8 @@
 	        			WRITELOG( "CHarvesterAO::HarvestingCompleted() - LocationObjectManipulator connect failed!!!" );
 	        			OstTrace0( TRACE_NORMAL, DUP8_CHARVESTERAO_HARVESTINGCOMPLETED, "CHarvesterAO::HarvestingCompleted - LocationObjectManipulator connect failed!!" );	        			
 	        			}
+	        		
+	        		lo.Close();
 	        		}
 	        	
 	        	TRAP_IGNORE( iHarvesterEventManager->DecreaseItemCountL( EHEObserverTypeMMC, 1 ) );
@@ -1825,38 +1793,31 @@
             if( internalMassStorageError == KErrNone )
                 {
                 const TUint32 massStorageMediaId( internalMassStorageVolumeInfo.iUniqueID );
-                if( massStorageMediaId != 0 )
+                TUint32 mmcMediaId( 0 );
+                TInt mmcError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive ) );
+                if( mmcError == KErrNone )
                     {
-                    TUint32 mmcMediaId( 0 );
-                    TInt mmcDrive( -1 );
-                    TInt mmcError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, mmcDrive ) );
+                    TVolumeInfo mmcVolumeInfo;
+                    mmcError = iFs.Volume( mmcVolumeInfo, drive );
                     if( mmcError == KErrNone )
                         {
-                        if( drive != mmcDrive )
-                            {
-                            TVolumeInfo mmcVolumeInfo;
-                            mmcError = iFs.Volume( mmcVolumeInfo, mmcDrive );
-                            if( mmcError == KErrNone )
-                                {
-                                mmcMediaId = mmcVolumeInfo.iUniqueID;
-                                }                        
-                            }
-                        else
-                            {
-                            mmcMediaId = massStorageMediaId;
-                            }
+                        mmcMediaId = mmcVolumeInfo.iUniqueID;
                         }
+                    }
                 
-                    // If removable storage is not found, assume internal mass storage was mounted
-                    if( mmcError )
-                        {
-                        iMdEHarvesterSession->CheckMassStorageMediaId( massStorageMediaId );                  
-                        }
-                    else if( massStorageMediaId != mmcMediaId )
+                // If removable storage is not found, assume internal mass storage was mounted
+                if( mmcError )
+                    {
+                    if( massStorageMediaId != 0 )
                         {
                         iMdEHarvesterSession->CheckMassStorageMediaId( massStorageMediaId );
-                        }          
-                    }                    
+                        }                    
+                    }
+                else if( massStorageMediaId != mmcMediaId && 
+                            massStorageMediaId != 0 )
+                    {
+                    iMdEHarvesterSession->CheckMassStorageMediaId( massStorageMediaId );
+                    }          
                 }
             }
         }
@@ -1921,6 +1882,11 @@
     iHarvesterPluginFactory->PauseHarvester( ETrue );
     iServerPaused = ETrue;
     
+    if( !iRamFull && !iDiskFull && !iUnmountDetected )
+        {
+        iManualPauseEnabled = ETrue;
+        }
+    
     // Everything is paused
     WRITELOG( "CHarvesterAO::PauseHarvester() - Moving paused state paused" );
     OstTrace0( TRACE_NORMAL, DUP1_CHARVESTERAO_PAUSEHARVESTER, "CHarvesterAO::PauseHarvester - Moving paused state paused" );
@@ -1936,19 +1902,17 @@
     {
     WRITELOG( "CHarvesterAO::ResumeHarvesterL()" );
     OstTrace0( TRACE_NORMAL, CHARVESTERAO_RESUMEHARVESTERL, "CHarvesterAO::ResumeHarvesterL" );
-
-    if( iRamFull || iDiskFull || iUnmountHandlingOngoing || iManualPauseEnabled )
-        {
-        return;
-        }
     
     iHarvesterPluginFactory->PauseHarvester( EFalse );
     iServerPaused = EFalse;
     
-    if( iNextRequest == ERequestIdle )
+    if( !iManualPauseEnabled &&
+        iNextRequest == ERequestIdle )
         {
         SetNextRequest( ERequestHarvest );
-        }  
+        }
+    
+    iManualPauseEnabled = EFalse;
     }
 
 // ---------------------------------------------------------------------------
@@ -1984,12 +1948,6 @@
             iContainerPHArray.Compress();
             iPHArray.Compress();
             iTempReadyPHArray.Compress();
-            
-            if( iLocManipulatorConnected )
-                {
-                iLocManipulator.Close();
-                iLocManipulatorConnected = EFalse;            
-                }
             }
         break;
 
@@ -2108,11 +2066,7 @@
         	while( i < count )
         		{
         		CHarvesterData* hd = iContainerPHArray[0];
-        		if( iPHArray.Append( hd ) != KErrNone )
-        		    {
-        		    delete hd;
-        		    hd = NULL;
-        		    }
+        		iPHArray.Append( hd );
         		iContainerPHArray.Remove( 0 );
         		i++;
         		}
@@ -2139,7 +2093,6 @@
             WRITELOG( "CHarvesterAO::RunL - ERequestPause" );
             OstTrace0( TRACE_NORMAL, DUP6_CHARVESTERAO_RUNL, "CHarvesterAO::RunL - ERequestPause" );
             User::LeaveIfError( PauseHarvester() );
-            iManualPauseEnabled = ETrue;
             iHarvesterEventManager->SendEventL( EHEObserverTypeOverall, EHEStatePaused );
             if( iHarvesterStatusObserver )
             	{
@@ -2153,19 +2106,6 @@
             {
             WRITELOG( "CHarvesterAO::RunL - ERequestResume" );
             OstTrace0( TRACE_NORMAL, DUP7_CHARVESTERAO_RUNL, "CHarvesterAO::RunL - ERequestResume" );
-            iManualPauseEnabled = EFalse;
-            // If for some reason, mds session is not (yet) ready, only inform that
-            // server state is no longer paused, but do not restart actual harvesting
-            // yet.
-            if( !iMdeSessionInitialized )
-                {
-                iHarvesterEventManager->SendEventL( EHEObserverTypeOverall, EHEStateResumed );
-                if( iHarvesterStatusObserver )
-                    {
-                    iHarvesterStatusObserver->ResumeReady( KErrNone );
-                    }
-                break;
-                }
             ResumeHarvesterL();
             iHarvesterEventManager->SendEventL( EHEObserverTypeOverall, EHEStateResumed );
             if( iHarvesterStatusObserver )
@@ -2363,7 +2303,7 @@
         PauseMonitoring();   
         PauseHarvester();    
         }
-    else if( iServerPaused )
+    else if( !iRamFull && !iManualPauseEnabled && iServerPaused )
         {
         // resume monitoring
         ResumeMonitoring();
@@ -2934,6 +2874,7 @@
             	continue;
             	}
             
+            //if (aMessage.Identity() == msg.Identity())
             if( &req.iSession == &aSession )
             	{
             	err = KErrNone;
@@ -3454,10 +3395,9 @@
 	PauseMonitoring();
 	PauseHarvester();
 	
-    iReadyPHArray.Compress();
-    iContainerPHArray.Compress();
-    iPHArray.Compress();
-    iTempReadyPHArray.Compress();
+	iPHArray.Compress();
+	iReadyPHArray.Compress();
+	iContainerPHArray.Compress();
 	}
 
 void CHarvesterAO::MemoryGood()
@@ -3467,7 +3407,7 @@
     
     iRamFull = EFalse;
     
-    if( iServerPaused )
+    if( !iDiskFull && !iManualPauseEnabled && iServerPaused )
         {
         // resume monitoring
         ResumeMonitoring();
--- a/harvester/server/src/harvesterqueue.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/server/src/harvesterqueue.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -144,7 +144,7 @@
     WRITELOG( "CHarvesterQueue::Append()" );
     TInt err( KErrNone );
 
-    if ( iBlacklist && aItem->Origin() != MdeConstants::Object::ECamera )
+    if ( iBlacklist )
         {
         TUint32 mediaId( 0 );
 		err = iMediaIdUtil->GetMediaId( aItem->Uri(), mediaId );
--- a/harvester/server/src/harvesterserver.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/server/src/harvesterserver.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -162,7 +162,7 @@
     WRITELOG( "CHarvesterServer::NewLC() - begin" );
     
 	CHarvesterServer* self = new (ELeave) CHarvesterServer(
-	        KHarvesterServerHighPriority, KHarvesterServerPolicy, 
+	        KHarvesterServerSessionPriority, KHarvesterServerPolicy, 
 			ESharableSessions );
 	CleanupStack::PushL( self );
 	self->ConstructL();
--- a/harvester/server/src/ondemandao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/server/src/ondemandao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -72,7 +72,7 @@
 void COnDemandAO::DoCancel()
 	{
 	WRITELOG("COnDemandAO::DoCancel");
-	iMdEHarvesterSession->CancelHarvestingPrioritizationObserver();
+	iMdEHarvesterSession->CancelHarvestingPrioritizationObserver ();
 	}
 
 void COnDemandAO::StartL()
@@ -80,7 +80,7 @@
 	WRITELOG("COnDemandAO::StartL");
 	// Cancel any request, just to be sure
 	Cancel ();
-	iMdEHarvesterSession->SetHarvestingPrioritizationChunkL( 16384 );
+	iMdEHarvesterSession->SetHarvestingPrioritizationChunkL ( 16384 );
 	WaitHarvestingRequest ();
 	}
 
--- a/harvester/server/src/reharvesterao.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/harvester/server/src/reharvesterao.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -170,7 +170,13 @@
             }
         }
     
-    aItem->SetMdeObject( NULL );
+    CMdEObject* mdeObject = &aItem->MdeObject();
+    if( mdeObject )
+    	{
+    	delete mdeObject;
+    	mdeObject = NULL;
+    	aItem->SetMdeObject( NULL );
+    	}
     
     if(iItems.Append( aItem ) != KErrNone )
         {
--- a/inc/mdcdef.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/inc/mdcdef.h	Wed Sep 01 12:24:24 2010 +0100
@@ -25,7 +25,7 @@
 NONSHARABLE_CLASS(TMdCDef) : protected TMdCSerializationType
 	{
 	protected:
-		TMdCDef(TMdCStructTypes aType) : TMdCSerializationType( aType ), iDefId( 0 )
+		TMdCDef(TMdCStructTypes aType) : TMdCSerializationType( aType )
 			{
 			}
 		
--- a/inc/mdscommoninternal.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/inc/mdscommoninternal.h	Wed Sep 01 12:24:24 2010 +0100
@@ -45,9 +45,6 @@
 
 const TItemId KSystemFavouritesAlbumId = 1;
 
-_LIT( KSystemFavouritesAlbumUri, "defaultalbum_favourites" );
-_LIT( KSystemCapturedAlbumUri, "defaultalbum_captured" );
-
 const TInt KMaxUintValueLength   = 10;
 const TInt KMaxUint64ValueLength = 20;
 
@@ -72,7 +69,7 @@
 
 const TUint32 KNokiaVendorId = 52487775;
 
-const TInt64 KDiskFullThreshold = 1024*70; // 70 kB, SQLite default maximum journal size
+const TInt64 KDiskFullThreshold = 1024*50; // 50 kB
 
 // P&S stuff
 static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
--- a/locationmanager/data/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Build information file
-*
-*/
-#include "../inc/locplatsupport.mmh"
-
-PRJ_PLATFORMS
-    DEFAULT
-
-PRJ_EXPORTS
-200071BE.txt /epoc32/data/z/private/10202BE9/200071BE.txt
-200071BE.txt /epoc32/WINSCW/C/private/10202BE9/200071BE.txt
-../sis/locationmanager_stub.sis  /epoc32/data/z/system/install/locationmanager_stub.sis
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-
-PRJ_TESTEXPORTS
-
--- a/locationmanager/group/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ b/locationmanager/group/bld.inf	Wed Sep 01 12:24:24 2010 +0100
@@ -14,8 +14,7 @@
 * Description:  Build information file
 *
 */
-
-#include "../data/bld.inf"
+#include "../inc/locplatsupport.mmh"
 
 #ifdef _LOC_GEOTAGGING_CELLID
 #include "../geoconverter/group/bld.inf"
@@ -36,6 +35,9 @@
     DEFAULT
 
 PRJ_EXPORTS
+../data/200071BE.txt /epoc32/data/z/private/10202BE9/200071BE.txt
+../data/200071BE.txt /epoc32/WINSCW/C/private/10202BE9/200071BE.txt
+../sis/locationmanager_stub.sis  /epoc32/data/z/system/install/locationmanager_stub.sis
 
 PRJ_MMPFILES
 
--- a/locationmanager/inc/locplatsupport.mmh	Tue Aug 31 15:37:30 2010 +0300
+++ b/locationmanager/inc/locplatsupport.mmh	Wed Sep 01 12:24:24 2010 +0100
@@ -27,7 +27,7 @@
 /*
 * Define this flag when platform supports reverse geotagging.
 */
-//#define _LOC_REVERSEGEOCODE
+#define _LOC_REVERSEGEOCODE
 
 
 #endif // __LOCPLATSUPPORT_MMH__
--- a/locationmanager/locationtrail/src/clocationrecord.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/locationmanager/locationtrail/src/clocationrecord.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -509,7 +509,7 @@
     
     if ( !iTrailStarted || iState == RLocationTrail::ETrailStopped)
         {
-    	LOG("CLocationRecord::Position(), trail not started/stopped");
+    	LOG("trail not started/stopped");
         iPositionInfo->Stop();
         return;
         }
@@ -533,24 +533,24 @@
         case KPositionQualityLoss: 
             {
             // Location is stored, even if it may not be valid.
-            LOG("CLocationRecord::Position(), Partial update");
+            LOG("Partial update");
             if ( iState != RLocationTrail::EWaitingGPSData && 
             	 iState != RLocationTrail::ETrailStopping ) 
                 {
                 SetCurrentState( RLocationTrail::EWaitingGPSData );
-            	LOG("CLocationRecord::Position(), Trail waiting for gps");
+            	LOG("Trail waiting for gps");
                 }
             break;
             }
         case KErrNone:
             {
-            LOG("CLocationRecord::Position(), Good GPS coordinates");
+            LOG("Good GPS coordinates");
             iGpsDataAvailableFlag = ETrue;
             if ( iState != RLocationTrail::ETrailStarted ) 
                 {
                 if ( iRemapper )
                 	{
-                	LOG("CLocationRecord::Position(), Start remapping");
+                	LOG("Start remapping");
                		iRemapper->StartRemappingObjects( iNewItem.iLocationData );
 
                     if( iObserver->WaitForPositioningStopTimeout() && !RemappingNeeded() )                                
@@ -571,7 +571,7 @@
             }
         default:
             {
-            LOG1("CLocationRecord::Position(), Searching GPS, aError %d", aError );
+            LOG1("Searching GPS, aError %d", aError );
             if ( iState != RLocationTrail::ESearchingGPS &&
                	 iState != RLocationTrail::ETrailStopping ) 
                 {
@@ -582,12 +582,12 @@
             }      
         }
     TBool fixState = CheckGPSFix( positionSatelliteInfo );
-    LOG1( "CLocationRecord::Position(), fixState %d", fixState );
-    LOG1( "CLocationRecord::Position(), iLastGPSFixState %d", iLastGPSFixState );
+    LOG1( "fixState %d", fixState );
+    LOG1( "iLastGPSFixState %d", iLastGPSFixState );
     
     if ( iObserver && iLastGPSFixState != fixState )
     	{
-    	LOG("CLocationRecord::Position(), Quality changed");
+    	LOG("Quality changed");
     	iObserver->GPSSignalQualityChanged( positionSatelliteInfo );
     	}
     
@@ -968,7 +968,7 @@
             {
             // no n/w info... put it into remap.
             // remove the last appended element.
-            LOG("CLocationRecord::LocationSnapshotL(), No network info (offline mode + no GPS fix), keep for remapping");
+            LOG("No network info (offline mode + no GPS fix), keep for remapping");
 			TRemapItem remapItem;
 			remapItem.iObjectId = aObjectId;
 			remapItem.iTime = timestamp;
@@ -977,12 +977,7 @@
 			TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1];
 			iMediaItems.Remove(iMediaItems.Count() - 1);
 			iMediaItems.Compress();
-            if( firstPtr == newItem)
-                {                
-                newItem = NULL;
-                }           
-            delete firstPtr;            
-            firstPtr = NULL;
+			delete firstPtr;
             }   
         else
             {
@@ -993,7 +988,6 @@
 	else if ( Math::IsNaN( locationData.iPosition.Latitude() ) && 
 			Math::IsNaN( locationData.iPosition.Longitude() ))
 		{
-        LOG("CLocationRecord::LocationSnapshotL(), coordinates empty with or without cellular info")
 	    // coordinates empty, with or without cellular info
 
 		if ( net->iCellId == 0 && 
@@ -1001,7 +995,7 @@
 				net->iCountryCode.Length() == 0 &&
 				net->iNetworkId.Length() == 0 )
 			{
-            LOG("CLocationRecord::LocationSnapshotL(), No network info (offline mode + no GPS fix), keep for remapping");
+            LOG("No network info (offline mode + no GPS fix), keep for remapping");
 			TRemapItem remapItem;
 			remapItem.iObjectId = aObjectId;
 			remapItem.iTime = timestamp;
@@ -1010,12 +1004,7 @@
 			TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1];
 			iMediaItems.Remove(iMediaItems.Count() - 1);
 			iMediaItems.Compress();
-            if( firstPtr == newItem)
-                {                
-                newItem = NULL;
-                }           
-            delete firstPtr;            
-            firstPtr = NULL;
+			delete firstPtr;
 			}
 		// check match for last created locationobject
 #ifdef LOC_REVERSEGEOCODE
@@ -1025,7 +1014,6 @@
         else if ( (iLastMediaItem.iFlag & KSnapMediaFile) > 0)
 #endif //LOC_REVERSEGEOCODE
 			{
-            LOG("CLocationRecord::LocationSnapshotL(), last created locationobject match" );
 			TLocationData lastLocationData = iLastMediaItem.iLocationData;
 			CTelephony::TNetworkInfoV1* lastnet = &lastLocationData.iNetworkInfo;
 
@@ -1050,16 +1038,11 @@
 				TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1];
 				iMediaItems.Remove(iMediaItems.Count() - 1);
 				iMediaItems.Compress();
-	            if( firstPtr == newItem)
-	                {                
-	                newItem = NULL;
-	                }           
-	            delete firstPtr;            
-	            firstPtr = NULL;
+				delete firstPtr;
 				}
 			}
 		
-        if (  newItem && !previousMatch )
+		if ( !previousMatch )
 		    {
 			// go for n/w based
             newItem->iFlag |= KNetQueryBit;
@@ -1070,7 +1053,6 @@
 	else if ( lastLocationId != 0 && 
         ((iLastMediaItem.iFlag & KSnapMediaFile) > 0))
 		{
-        LOG("CLocationRecord::LocationSnapshotL(), valid coordinates found");
         TLocationData lastLocationData = iLastMediaItem.iLocationData;
 		CTelephony::TNetworkInfoV1* lastnet = &lastLocationData.iNetworkInfo;
 		
@@ -1096,7 +1078,7 @@
 				
 				if ( distance < iLocationDelta )
 					{
-					LOG("CLocationRecord::LocationSnapshotL(), location close to the previous one");
+					LOG("location close to the previous one");
 					previousMatch = ETrue;
 					CreateRelationL( aObjectId, lastLocationId );
 					
@@ -1109,14 +1091,9 @@
                         TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1];
                         iMediaItems.Remove(iMediaItems.Count() - 1);
                         iMediaItems.Compress();
-                        if( firstPtr == newItem)
-                            {                
-                            newItem = NULL;
-                            }           
-                        delete firstPtr;            
-                        firstPtr = NULL;
+                        delete firstPtr;
 					    }
-					else if (newItem)
+					else 
 					    {
 					    // country tag not found.. go for reverse geocoding..
 					    newItem->iLocationId = lastLocationId;
@@ -1140,12 +1117,7 @@
                     TLocationSnapshotItem* firstPtr = iMediaItems[iMediaItems.Count() - 1];
                     iMediaItems.Remove(iMediaItems.Count() - 1);
                     iMediaItems.Compress();
-                    if( firstPtr == newItem)
-                        {                
-                        newItem = NULL;
-                        }           
-                    delete firstPtr;            
-                    firstPtr = NULL;
+                    delete firstPtr;
 
 #endif //LOC_REVERSEGEOCODE
 					}
@@ -1221,7 +1193,7 @@
 	     || (iMediaItems.Count() <= 0))
         {
 		// query is in progress or queue is empty
-		LOG1( "CLocationRecord::FindLocationFromDBL(), Count - %d", iMediaItems.Count() );
+		LOG1( "query is in progress or queue is empty. Count - %d", iMediaItems.Count() );
         return;
         }
      if ( (iMediaItems[0]->iFlag & KNetQueryBit) > 0 )
@@ -1264,10 +1236,10 @@
      CMdELogicCondition& cond = iLocationQuery->Conditions();
      cond.SetOperator( ELogicConditionOperatorAnd );
             
-     LOG1( "CLocationRecord::FindLocationFromDBL(), latitude: %f", latitude);
-     LOG1( "CLocationRecord::FindLocationFromDBL(), latdelta: %f", latDelta);
-     LOG1( "CLocationRecord::FindLocationFromDBL(), longitude: %f", longitude);
-     LOG1( "CLocationRecord::FindLocationFromDBL(), londelta: %f", lonDelta);
+     LOG1( "latitude: %f", latitude);
+     LOG1( "latdelta: %f", latDelta);
+     LOG1( "longitude: %f", longitude);
+     LOG1( "londelta: %f", lonDelta);
             
      cond.AddPropertyConditionL( *iLatitudeDef, 
                     TMdERealBetween( latitude - latDelta, latitude + latDelta ));
@@ -1357,14 +1329,14 @@
 	locationObject->AddTextPropertyL( itemTypeDef, Location::KLocationItemType );
 	locationObject->AddInt16PropertyL( offSetDef, timeOffset.Int() / 60 );
 	
-	LOG1( "CLocationRecord::DoCreateLocationL(), Location created with stamp: %Ld", timestamp.Int64() );
+	LOG1( "Location created with stamp: %Ld", timestamp.Int64() );
 	
 	// location related properties
 	if ( !Math::IsNaN( aLocationData.iPosition.Latitude() ) && 
 		 !Math::IsNaN( aLocationData.iPosition.Longitude() ))
 		{
-        LOG1("CLocationRecord::DoCreateLocationL(), Lan - %f", aLocationData.iPosition.Latitude());
-        LOG1("CLocationRecord::DoCreateLocationL(), Lon - %f", aLocationData.iPosition.Longitude());
+        LOG1("Lan - %f", aLocationData.iPosition.Latitude());
+        LOG1("Lon - %f", aLocationData.iPosition.Longitude());
 		locationObject->AddReal64PropertyL( *iLatitudeDef, aLocationData.iPosition.Latitude() );
 		locationObject->AddReal64PropertyL( *iLongitudeDef, aLocationData.iPosition.Longitude() );
 
@@ -1389,44 +1361,29 @@
 	// network related properties
 	if ( aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown )
 		{
-		LOG1("CLocationRecord::DoCreateLocationL(), Cell id - %d", aLocationData.iNetworkInfo.iCellId);
+		LOG1("Cell id - %d", aLocationData.iNetworkInfo.iCellId);
 		locationObject->AddUint32PropertyL( cellIdDef, aLocationData.iNetworkInfo.iCellId );
 		}
 	if ( aLocationData.iNetworkInfo.iAreaKnown && 
         aLocationData.iNetworkInfo.iLocationAreaCode != 0 &&
 		aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown )
 		{
-		LOG1("CLocationRecord::DoCreateLocationL(), Areacode - %d", aLocationData.iNetworkInfo.iLocationAreaCode);
+		LOG1("Areacode - %d", aLocationData.iNetworkInfo.iLocationAreaCode);
 		locationObject->AddUint32PropertyL( locationCodeDef, 
 				aLocationData.iNetworkInfo.iLocationAreaCode );
 		}
 #ifdef _DEBUG
-	
-    if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 )
-        {
-        TLex lexer( aLocationData.iNetworkInfo.iCountryCode );
-        TUint countryCode = 0;    
-        TRAP_IGNORE(lexer.Val( countryCode, EDecimal));        
-        LOG1("CLocationRecord::DoCreateLocationL(), Country code - %d", countryCode);
-        }
-    else
-        {
-        LOG("CLocationRecord::DoCreateLocationL(), No Country code");
-        }
+    TLex lexer( aLocationData.iNetworkInfo.iCountryCode );
+    TUint countryCode = 0;
+    
+    User::LeaveIfError( lexer.Val( countryCode, EDecimal) );
+    LOG1("Country code - %d", countryCode);
     
     //Set mobile network code
-    if ( aLocationData.iNetworkInfo.iNetworkId.Length() > 0 )
-        {
-        TLex lexer = aLocationData.iNetworkInfo.iNetworkId;
-        TUint networkCode = 0;
-        TRAP_IGNORE(lexer.Val( networkCode, EDecimal));
-        LOG1("CLocationRecord::DoCreateLocationL(), Network id - %d", networkCode); 
-        }
-    else
-        {
-        LOG("CLocationRecord::DoCreateLocationL(), No network code");
-        }
-
+    lexer = aLocationData.iNetworkInfo.iNetworkId;
+    TUint networkCode = 0;
+    User::LeaveIfError( lexer.Val( networkCode, EDecimal) );
+    LOG1("Network id - %d", networkCode);
 #endif
 	if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 )
 		{
@@ -1441,7 +1398,7 @@
 	        
 	// Add the location object to the database.
 	locationObjectId = iMdeSession->AddObjectL( *locationObject );
-    LOG1("CLocationRecord::DoCreateLocationL(), Location id - %d", locationObjectId);
+    LOG1("Location id - %d", locationObjectId);
 	CleanupStack::PopAndDestroy( locationObject );
     LOG( "CLocationRecord::DoCreateLocationL(), end" );
 
@@ -2240,11 +2197,6 @@
     CMdEProperty* property = NULL;
     
     object = iMdeSession->GetObjectL( aObjectId );
-    if( !object )
-        {
-        User::Leave( KErrNotFound );
-        }
-    
     CleanupStack::PushL( object );
     object->Property( timeDef, property, 0 );
     if ( !property )
@@ -2254,10 +2206,7 @@
     
     const TTime timeValue( property->TimeValueL() );
     CleanupStack::PopAndDestroy( object );
-    
-    LOG( "CLocationRecord::GetMdeObjectTimeL(), end" );
     return timeValue;
-        
     }
 
 
--- a/mds_plat/harvester_framework_api/inc/harvesterplugin.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/mds_plat/harvester_framework_api/inc/harvesterplugin.h	Wed Sep 01 12:24:24 2010 +0100
@@ -160,11 +160,6 @@
 	 * @param aBlacklist  Reference to blacklisting component.
 	 */
 	IMPORT_C virtual void SetBlacklist( CHarvesterBlacklist& aBlacklist );
-	
-    /** 
-	 * Method to stop harvester plugin if needed.
-	 */
-	IMPORT_C virtual void StopHarvest();
 
 protected:
     
@@ -270,7 +265,6 @@
 	CMdEPropertyDef* iTitlePropertyDef;
 	
     TBool iHarvesting;
-    TBool iPaused;
 	
     };
 
--- a/mds_plat/location_manager_api/tsrc/group/LocationManagerTestScripter.mmp	Tue Aug 31 15:37:30 2010 +0300
+++ b/mds_plat/location_manager_api/tsrc/group/LocationManagerTestScripter.mmp	Wed Sep 01 12:24:24 2010 +0100
@@ -27,7 +27,7 @@
 CAPABILITY      ALL -TCB
 VENDORID        VID_DEFAULT
 
-DEFFILE         LocationManagerTestScripter.def
+DEFFILE         LocationManagerTestScripter.DEF
 
 #ifdef _LOC_REVERSEGEOCODE
 MACRO LOC_REVERSEGEOCODE
--- a/metadataengine/client/src/mdeharvestersession.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/client/src/mdeharvestersession.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -138,10 +138,8 @@
 	WRITELOG( "CMdEHarvesterSession::SetFilesToPresentL -- Start" );
 	if( aUris.Count() != aFileInfos.Count() )
 		{
-#ifdef _DEBUG
 		WRITELOG2( "CMdEHarvesterSession::SetFilesToPresentL -- Leave (%d, %d)", 
 				aUris.Count(), aFileInfos.Count() );
-#endif
 		User::Leave( KErrArgument );
 		}
 
--- a/metadataengine/data/schema.mde	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/data/schema.mde	Wed Sep 01 12:24:24 2010 +0100
@@ -166,13 +166,13 @@
 property   Duration                       0    0        8    min   max
 property   ReleaseDate                    0    0        10   min   max
 property   CaptureDate                    0    0        10   min   max
-property   Artist                         0    0        11   min   max   1
+property   Artist                         0    0        11   min   max 
 property   Author                         0    0        11   min   max
 property   Copyright                      0    0        11   min   max
 property   Legal                          0    0        11   min   max
 property   Description                    0    0        11   min   max
 property   Comment                        0    0        11   min   max
-property   Genre                          0    0        11   min   max   1
+property   Genre                          0    0        11   min   max 
 property   Track                          0    0        4    min   max
 property   AudioFourCC                    0    0        6    min   max
 
@@ -231,8 +231,8 @@
 
 object http://sw.nokia.com/MdE Audio MediaObject 0
 property   SamplingFrequency              0    0        8    min   max
-property   Album                          0    0        11   min   max   1
-property   Composer                       0    0        11   min   max   1
+property   Album                          0    0        11   min   max 
+property   Composer                       0    0        11   min   max 
 property   OriginalArtist                 0    0        11   min   max
 property   AlbumArtist                    0    0        11   min   max
 
--- a/metadataengine/server/inc/mdssqldbmaintenance.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/inc/mdssqldbmaintenance.h	Wed Sep 01 12:24:24 2010 +0100
@@ -55,11 +55,6 @@
         * Drops and re-creates tables
         */
         void CreateDatabaseL();
-
-        /**
-        * Does quick check to the existing database to detect obvious corruption
-        */
-        TBool CheckForCorruptionL();
     };
 
 #endif // __MDSSQLDBMAINTENANCE_H__
--- a/metadataengine/server/inc/mdssqlobjectmanipulate.h	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/inc/mdssqlobjectmanipulate.h	Wed Sep 01 12:24:24 2010 +0100
@@ -523,15 +523,6 @@
 	    * Deletes BaseObject.
 	    */	   	    
         TBool DoGarbageCollectionL();    
-
-#ifdef MDS_PLAYLIST_HARVESTING_ENABLED
-    private:
-        
-        /**
-        * Deletes BaseObject.
-        */          
-        TInt CleanPlaylistsL();
-#endif
         
 	private: // Member data
 		struct TLockBuffer
--- a/metadataengine/server/src/mdsfindsequence.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/src/mdsfindsequence.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -15,7 +15,6 @@
 */
 
 #include <badesca.h>
-#include <mdequery.h>
 
 #include "mdsfindsequence.h"
 
@@ -73,7 +72,7 @@
     , iObserver( &aObserver )
     , iUserLevel( EUserLevelNone )
     {
-	iNotifyCount = KMdEQueryDefaultMaxCount;
+	iNotifyCount = KMaxTUint32;
 
     iFindOperation = NULL;
     }
--- a/metadataengine/server/src/mdsmaintenanceengine.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/src/mdsmaintenanceengine.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -120,7 +120,7 @@
     TBool isValid(EFalse);
     TRAPD(err, isValid = iMaintenance->ValidateL( ));
     
-    if( err == KErrCorrupt )
+    if(err == KErrCorrupt)
         {
         DeleteDatabase();
         User::Leave( err );
@@ -174,6 +174,11 @@
 				User::Leave( schemaError );
 				}
 			}
+
+		if ( FailedImports() != 0 )
+  			{
+	       	User::Leave( KErrBadName );
+       		}
 		
 		// try to read default import file from C drive
        	TRAPD( err, ImportMetadataL( aManipulate, aSchema, KMdsDefaultImportFile ) );
@@ -183,13 +188,6 @@
        		// and ignore errors
        		TRAP_IGNORE( ImportMetadataL( aManipulate, aSchema, KMdsDefaultRomImportFile ) );
        		}
-
-#ifdef _DEBUG
-        if ( FailedImports() != 0 )
-            {
-            User::Leave( KErrBadName );
-            }
-#endif
        	
        	__LOG1( ELogAlways, "MDS DB tables created %d", 0 );
 
@@ -208,12 +206,6 @@
 			DeleteDatabase();
 			User::Leave( err );
         	}
-        
-        if( !iMaintenance->CheckForCorruptionL() )
-            {
-            DeleteDatabase();
-            User::Leave( KErrCorrupt );
-            }
         }
     __LOG1( ELogAlways, "CMdSMaintenanceEngine::InstallL complete: %d", 0 );
     }
--- a/metadataengine/server/src/mdsmanipulationengine.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/src/mdsmanipulationengine.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -852,11 +852,11 @@
 
 #ifdef _DEBUG    	
     	const TInt64 time = fileInfo.iModifiedTime;
-        RDebug::Print( _L("CMdSManipulationEngine::SetFilesToPresentL: (%d) uri %S, iSize %u, iModified %Ld"),
+        RDebug::Print( _L("CMdSManipulationEngine::SetFilesToPresentL: (%d) iSize %u, iModified %Ld, uri %S"),
         		i,
-        		&uri,
         		fileInfo.iSize,
-        		time );
+        		time,
+        		&uri);
 #endif
 
     	TFilePresentStates placeHolder;
--- a/metadataengine/server/src/mdsnotifycomparator.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/src/mdsnotifycomparator.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -1180,7 +1180,7 @@
 		{
 		aSerializedCondition.PositionL( aRelationCondition.iRelationIds.iPtr.iOffset );
 
-		for (TUint i = 0; i < aRelationCondition.iRelationIds.iPtr.iCount; ++i)
+		for (TInt i = 0; i < aRelationCondition.iRelationIds.iPtr.iCount; ++i)
 			{
 			TItemId relationId;
 			aSerializedCondition.ReceiveL( relationId );
--- a/metadataengine/server/src/mdssqldbmaintenance.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/src/mdssqldbmaintenance.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -188,6 +188,7 @@
             }
           }
     CleanupStack::PopAndDestroy( &col2propQuery );
+    emptyRowData.Reset();
      
     CleanupStack::PopAndDestroy( &emptyRowData );
     
@@ -226,49 +227,3 @@
 	CleanupStack::PopAndDestroy( &emptyRowData );
     }
 
-TBool CMdSSqlDbMaintenance::CheckForCorruptionL()
-    {
-    // Check the MDS default namespace main table for validity
-    // This table should always contain at least 1 default system folder object
-    _LIT( KValidateData, "SELECT COUNT(*) FROM Object%u;" );
- 
-    RBuf commonClauseOne;
-    User::LeaveIfError( commonClauseOne.Create( KValidateData.iTypeLength + KMaxUintValueLength ) );
-    CleanupClosePushL( commonClauseOne ); 
-    commonClauseOne.Format( KValidateData, KDefaultNamespaceDefId );    
-    
-    RRowData emptyRowData;
-    CleanupClosePushL( emptyRowData );
-        
-    RMdsStatement validationQuery;
-    CleanupClosePushL( validationQuery );
-    
-    CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL();
-    
-    TInt test( KErrNone );
-    TUint32 count( 0 );
-    TRAP( test, connection.ExecuteQueryL( commonClauseOne, validationQuery, emptyRowData ) );
-    if( test == KErrNone )
-        {
-        emptyRowData.AppendL( TColumn( count ) );
-        TRAP( test, connection.NextRowL(validationQuery, emptyRowData));
-        if(test == KErrNone)
-            {
-            emptyRowData.Column(0).Get( count );
-                    
-            if(count <= 0)
-                {
-                test = KErrCorrupt;
-                }
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( &validationQuery );
-     
-    CleanupStack::PopAndDestroy( &emptyRowData );
-    
-    CleanupStack::PopAndDestroy( &commonClauseOne );
-    
-    return ( test == KErrNone );
-    }
-
--- a/metadataengine/server/src/mdssqlobjectmanipulate.cpp	Tue Aug 31 15:37:30 2010 +0300
+++ b/metadataengine/server/src/mdssqlobjectmanipulate.cpp	Wed Sep 01 12:24:24 2010 +0100
@@ -2271,8 +2271,8 @@
 		TPtrC16 uri = aBuffer.ReceivePtr16L();
         objectId = SearchObjectByUriL( uri, flags );
         if ( objectId != KNoId && 
-             uri != KSystemFavouritesAlbumUri && 
-             uri != KSystemCapturedAlbumUri )
+             objectId != KSystemFavouritesAlbumId && 
+             objectId != KSystemCapturedAlbumId )
 			{
 			// unlock object, so update is no possible anymore
 			if ( iLockList.IsLocked( *iNamespaceDef, objectId ) )
@@ -3431,13 +3431,7 @@
    	// rowDataDel, commonClauseOne
 	CleanupStack::PopAndDestroy( 7, &commonClauseOne );
 
-#ifdef MDS_PLAYLIST_HARVESTING_ENABLED	
-	if( updateResult == 0 )
-	    {
-	    updateResult = CleanPlaylistsL();
-	    }
-#endif
-
+	// When this is reached, all garbage collection steps have been fully executed
 	return EFalse;
 	}
 
@@ -3447,42 +3441,6 @@
     db.DoAnalyzeL();
     }
 
-#ifdef MDS_PLAYLIST_HARVESTING_ENABLED
-TInt CMdSSqlObjectManipulate::CleanPlaylistsL()
-    {
-    _LIT( KDeleteWholePlaylists, "DELETE FROM Object%u WHERE ObjectId IN (SELECT ObjectId FROM AudioPlaylistItem%u WHERE PlaylistID NOT IN (SELECT ObjectId FROM Object%u));" );
-    
-    RClauseBuffer commonClauseOne(*this, KDeleteWholePlaylists().Length());
-    CleanupClosePushL( commonClauseOne );
-    CMdsClauseBuffer& buffer = commonClauseOne.BufferL();
-
-    RRowData rowDataDel;
-    CleanupClosePushL( rowDataDel );
-
-    const RPointerArray<CMdsNamespaceDef>& namespaceDefs = 
-        iSchema.NamespaceDefs();
-
-    CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL();
-    const TInt updateResult = 0; // once all files to be cleaned are handled, no need to continue
-    
-    const TInt count = namespaceDefs.Count();
-    
-    for( TInt i = 0; i < count; ++i )
-        {
-        const TDefId nmspId = namespaceDefs[i]->GetId();
-
-        buffer.BufferL().Format( KDeleteWholePlaylists, nmspId, nmspId, nmspId );
-        User::LeaveIfError( connection.ExecuteL( 
-                buffer.ConstBufferL(), rowDataDel ) );    
-        }
-
-    // rowDataDel, commonClauseOne
-    CleanupStack::PopAndDestroy( 2, &commonClauseOne );
-    
-    return updateResult;
-    }
-#endif
-
 CMdSSqlObjectManipulate::RClauseBuffer::RClauseBuffer( CMdSSqlObjectManipulate& aSOM, TInt aSize )
 	: iBuffers( aSOM.iBuffers ), iBuffer( NULL ), iNr( -1 ), iSize( aSize )
 	{
--- a/package_definition.xml	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
- <package id="mds" name="Metadata Services" levels="mgr eng server int">
-  <collection id="mds_plat" name="Metadata Services Platform Interfaces" level="int">
-   <component id="context_engine_plugin_api" name="Context Engine Plugin API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_plat/context_engine_plugin_api/context_engine_plugin_api.metaxml"/>
-    <unit bldFile="mds_plat/context_engine_plugin_api/group" filter="!test"/>
-    <unit bldFile="mds_plat/context_engine_plugin_api/tsrc/group" filter="test,api_test"/>
-   </component>
-   <component id="harvester_framework_api" name="Harvester Framework API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_plat/harvester_framework_api/harvester_framework_api.metaxml"/>
-    <unit bldFile="mds_plat/harvester_framework_api/group" filter="!test"/>
-    <unit bldFile="mds_plat/harvester_framework_api/tsrc/group" filter="test,api_test"/>
-		<!-- can only have one unit with the same filter, #include the following from the previous unit -->
-    <unit bldFile="mds_plat/harvester_framework_api/tsrc/composerplugintest/group" filter="test,api_test"/>
-    <unit bldFile="mds_plat/harvester_framework_api/tsrc/harvesterclienttest/group" filter="test,api_test"/>
-    <unit bldFile="mds_plat/harvester_framework_api/tsrc/harvesterdatatest/group" filter="test,api_test"/>
-    <unit bldFile="mds_plat/harvester_framework_api/tsrc/harvesterplugintest/group" filter="test,api_test"/>
-    <unit bldFile="mds_plat/harvester_framework_api/tsrc/monitorplugintest/group" filter="test,api_test"/>
-   </component>
-   <component id="location_manager_api" name="Location Manager API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_plat/location_manager_api/location_manager_api.metaxml"/>
-    <unit bldFile="mds_plat/location_manager_api/group" filter="!test"/>
-    <unit bldFile="mds_plat/location_manager_api/tsrc/group" filter="test,api_test"/>
-   </component>
-   <component id="metadata_engine_api" name="Metadata Engine API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_plat/metadata_engine_api/metadata_engine_api.metaxml"/>
-    <unit bldFile="mds_plat/metadata_engine_api/group" filter="!test"/>
-    <unit bldFile="mds_plat/metadata_engine_api/tsrc/group" filter="test,api_test"/>
-   </component>
-   <component id="content_listing_framework_collection_manager_api" name="Content Listing Framework Collection Manager API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_plat/content_listing_framework_collection_manager_api/content_listing_framework_collection_manager_api.metaxml"/>
-    <meta rel="config">
-     <defined condition="RD_MDS_2_5"/>
-    </meta>
-    <unit bldFile="mds_plat/content_listing_framework_collection_manager_api/group" filter="!test"/>
-    <unit bldFile="mds_plat/content_listing_framework_collection_manager_api/tsrc/group" filter="test,api_test"/>
-   </component>
-   <component id="content_listing_framework_extended_api" name="Content Listing Framework Extended API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_plat/content_listing_framework_extended_api/content_listing_framework_extended_api.metaxml"/>
-    <meta rel="config">
-     <defined condition="RD_MDS_2_5"/>
-    </meta>
-    <unit bldFile="mds_plat/content_listing_framework_extended_api/group"/>
-   </component>
-  </collection>
-  <collection id="mds_pub" name="Metadata Services Public Interfaces" level="int">
-   <component id="content_listing_framework_api" name="Content Listing Framework API" introduced="^2" class="api" filter="s60">
-    <meta rel="Api" href="mds_pub/content_listing_framework_api/content_listing_framework_api.metaxml"/>
-    <meta rel="config">
-     <defined condition="RD_MDS_2_5"/>
-    </meta>
-    <unit bldFile="mds_pub/content_listing_framework_api/group" filter="!test"/>
-    <unit bldFile="mds_pub/content_listing_framework_api/tsrc/group" filter="test,api_test"/>
-   </component>
-  </collection>
-  <collection id="metadataengine" name="Metadata Engine" level="eng">
-   <component id="metadataengine_build" filter="s60" name="Metadata Engine Build" introduced="^2">
-    <!--collection is really a component. Move down a directory  -->
-    <unit bldFile="metadataengine/group"/>
-   </component>
-  </collection>
-  <collection id="locationmanager" name="Location Manager" level="mgr">
-   <component id="geoconverter" filter="s60" name="Geoconverter" introduced="^4">
-    <meta rel="config">
-    <defined condition="_LOC_GEOTAGGING_CELLID"/>
-   </meta>
-    <unit bldFile="locationmanager/geoconverter/group"/>
-   </component>
-   <component id="geo_tagcreator" filter="s60" name="Geo Tag Creator" introduced="^4">
-    <meta rel="config">
-    <defined condition="_LOC_REVERSEGEOCODE"/>
-   </meta>
-    <unit bldFile="locationmanager/tagcreator/group"/>
-   </component>
-   <component id="reversegeocode" filter="s60" name="Reverse Geocode" introduced="^4">
-    <meta rel="config">
-    <defined condition="_LOC_REVERSEGEOCODE"/>
-   </meta>
-    <unit bldFile="locationmanager/ReverseGeocode/group"/>
-   </component>
-   <component id="reversegeocoderplugin" filter="s60" name="Reverse Geo-Coder Plugin" class="plugin" introduced="^4">
-    <meta rel="config">
-    <defined condition="_LOC_REVERSEGEOCODE"/>
-   </meta>
-    <unit bldFile="locationmanager/ReverseGeoCoderPlugin/group"/>
-   </component>
-   <component id="geotagger" filter="s60" name="Geo Tagger" introduced="^4">
-    <meta rel="config">
-    <defined condition="_LOC_REVERSEGEOCODE"/>
-   </meta>
-    <unit bldFile="locationmanager/geotagger/group"/>
-   </component>
-   <component id="locationtrail" filter="s60" name="Location Trail" introduced="^2">
-    <unit bldFile="locationmanager/locationtrail/group"/>
-   </component>
-   <component id="locationmanager_server" filter="s60" name="Location Manager Server" introduced="^2">
-    <unit bldFile="locationmanager/server/group"/>
-   </component>
-   <component id="locationmanager_client" filter="s60" name="Location Manager Client" introduced="^2">
-    <unit bldFile="locationmanager/client/group"/>
-   </component>
-   <component id="locationmanager_data" filter="s60" name="Location Manager Data" introduced="^2">
-    <unit bldFile="locationmanager/data"/>
-   </component>
-  </collection>
-  <collection id="contextengine" name="Context Engine" level="eng">
-   <component id="contextengine_build" filter="s60" name="Context Engine Build" introduced="^2">
-   <!-- collection is really a component. Move down a directory -->
-    <unit bldFile="contextengine/group"/>
-   </component>
-  </collection>
-  <collection id="harvester" name="Harvester" level="eng">
-   <component id="blacklistclient" filter="s60" name="Blacklist Client" introduced="^2">
-    <unit bldFile="harvester/blacklistclient/group"/>
-   </component>
-   <component id="blacklistserver" filter="s60" name="Blacklist Server" introduced="^2">
-    <unit bldFile="harvester/blacklistserver/group"/>
-   </component>
-   <component id="harvester_common" filter="s60" name="Harvester Common" introduced="^2">
-    <unit bldFile="harvester/common/group"/>
-   </component>
-   <component id="composerplugins" filter="s60" name="Composer Plugins" class="plugin" introduced="^2">
-    <unit bldFile="harvester/composerplugins/group"/>
-   </component>
-   <component id="harvesterplugins" filter="s60" name="Harvester Plugins" class="plugin" introduced="^2">
-    <unit bldFile="harvester/harvesterplugins/group"/>
-   </component>
-   <component id="monitorplugins" filter="s60" name="Monitor Plugins" class="plugin" introduced="^2">
-    <unit bldFile="harvester/monitorplugins/group"/>
-   </component>
-   <component id="harvester_server" filter="s60" name="Harvester Server" introduced="^2">
-    <unit bldFile="harvester/server/group"/>
-   </component>
-   <component id="harvester_client" filter="s60" name="Harvester Client" introduced="^2">
-    <unit bldFile="harvester/client/group"/>
-   </component>
-   <component id="harvester_data" filter="s60" name="Harvester Data" class="config" introduced="^2">
-    <!-- consider moving these exports into the other components -->
-    <unit bldFile="harvester/data"/>
-   </component>
-  </collection>
-  <collection id="watchdog" name="Watchdog" level="server">
-   <!-- collection is really a component. Move down a directory -->
-   <component id="mdswatchdog" filter="s60" name="Metadata Watchdog" introduced="^2">
-    <unit bldFile="watchdog/group"/>
-   </component>
-  </collection>
-  <collection id="clfwrapper" name="Content Listing Framework Wrapper" level="int">
-   <!-- collection is really a component. Move down a directory -->
-   <meta rel="config">
-    <defined condition="RD_MDS_2_5"/>
-   </meta>
-   <component id="clfwrapper_build" filter="s60" name="CLF Wrapper Build" introduced="^2">
-    <unit bldFile="clfwrapper/group"/>
-   </component>
-  </collection>
-  <collection id="mds_info" name="Metadata Services Info" level="int">
-   <component id="mds_rom" filter="s60" name="Metadata Services ROM" class="config" introduced="^2">
-    <!-- consider moving these exports into the other collections -->
-    <unit bldFile="rom"/>
-   </component>
-  </collection>
- </package>
-</SystemDefinition>
--- a/package_map.xml	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<PackageMap root="sf" layer="mw"/>
--- a/rom/bld.inf	Tue Aug 31 15:37:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Build information file
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include "../locationmanager/inc/locplatsupport.mmh"
-
-PRJ_PLATFORMS
-    DEFAULT
-
-PRJ_EXPORTS
-
-#if defined(_LOC_GEOTAGGING_CELLID)
-#ifdef _LOC_REVERSEGEOCODE
-mds_cellid_reverse_geocode_enabled.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
-#else
-mds_cellidenabled.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
-#endif
-#elif defined(_LOC_REVERSEGEOCODE)
-#ifdef _LOC_GEOTAGGING_CELLID
-mds_cellid_reverse_geocode_enabled.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
-#else
-mds_reverse_geocode_enabled_only.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
-#endif
-#else
-mds.iby    CORE_MW_LAYER_IBY_EXPORT_PATH(mds.iby)
-#endif
-
-#ifdef RD_MDS_2_5
-ContentListingFramework.iby	CORE_MW_LAYER_IBY_EXPORT_PATH( ContentListingFramework.iby )
-#endif
-
-//Stubs
-../sis/mds/mds_stub.sis  /epoc32/data/z/system/install/mds_stub.sis
-
-PRJ_TESTMMPFILES
-
-PRJ_TESTEXPORTS
-mds_testers.iby	CORE_MW_LAYER_IBY_EXPORT_PATH(mds_testers.iby)
-
--- a/rom/mds_cellid_reverse_geocode_enabled.iby	Tue Aug 31 15:37:30 2010 +0300
+++ b/rom/mds_cellid_reverse_geocode_enabled.iby	Wed Sep 01 12:24:24 2010 +0100
@@ -121,4 +121,16 @@
 data=ZSYSTEM\install\mds_stub.sis	system\install\mds_stub.sis
 data=ZSYSTEM\install\mdswatchdog_stub.sis	system\install\mdswatchdog_stub.sis
 
+data=ZSYSTEM\install\locationmanagerclient_stub.sis       system\install\locationmanagerclient_stub.sis
+data=ZSYSTEM\install\locationtrail_stub.sis       system\install\locationtrail_stub.sis
+data=ZSYSTEM\install\locationmanagerserver_stub.sis       system\install\locationmanagerserver_stub.sis
+
+data=ZSYSTEM\install\ReverseGeocode_stub.sis       system\install\ReverseGeocode_stub.sis
+data=ZSYSTEM\install\ReverseGeoCoderPlugin_stub.sis       system\install\ReverseGeoCoderPlugin_stub.sis
+data=ZSYSTEM\install\tagcreator_stub.sis       system\install\tagcreator_stub.sis
+data=ZSYSTEM\install\geotagger_stub.sis       system\install\geotagger_stub.sis
+data=ZSYSTEM\install\geoconverter_stub.sis       system\install\geoconverter_stub.sis
+
+
+
 #endif //__METADATA_IBY__
--- a/rom/mds_reverse_geocode_enabled_only.iby	Tue Aug 31 15:37:30 2010 +0300
+++ b/rom/mds_reverse_geocode_enabled_only.iby	Wed Sep 01 12:24:24 2010 +0100
@@ -118,4 +118,11 @@
 data=ZSYSTEM\install\mds_stub.sis	system\install\mds_stub.sis
 data=ZSYSTEM\install\mdswatchdog_stub.sis	system\install\mdswatchdog_stub.sis
 
+data=ZSYSTEM\install\locationmanagerclient_stub.sis       system\install\locationmanagerclient_stub.sis
+data=ZSYSTEM\install\locationtrail_stub.sis       system\install\locationtrail_stub.sis
+data=ZSYSTEM\install\locationmanagerserver_stub.sis       system\install\locationmanagerserver_stub.sis
+data=ZSYSTEM\install\ReverseGeocode_stub.sis       system\install\ReverseGeocode_stub.sis
+data=ZSYSTEM\install\ReverseGeoCoderPlugin_stub.sis       system\install\ReverseGeoCoderPlugin_stub.sis
+data=ZSYSTEM\install\tagcreator_stub.sis       system\install\tagcreator_stub.sis
+data=ZSYSTEM\install\geotagger_stub.sis       system\install\geotagger_stub.sis
 #endif //__METADATA_IBY__
Binary file sis/mds/mds_stub.sis has changed
--- a/sis/mds/package.pkg	Tue Aug 31 15:37:30 2010 +0300
+++ b/sis/mds/package.pkg	Wed Sep 01 12:24:24 2010 +0100
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 13, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 9, 20, 26, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/package_cellid_reverse_geocode_enabled.pkg	Tue Aug 31 15:37:30 2010 +0300
+++ b/sis/mds/package_cellid_reverse_geocode_enabled.pkg	Wed Sep 01 12:24:24 2010 +0100
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 13, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 9, 20, 26, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/package_cellidenabled.pkg	Tue Aug 31 15:37:30 2010 +0300
+++ b/sis/mds/package_cellidenabled.pkg	Wed Sep 01 12:24:24 2010 +0100
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 13, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 9, 20, 26, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/package_reverse_geocode_enabled_only.pkg	Tue Aug 31 15:37:30 2010 +0300
+++ b/sis/mds/package_reverse_geocode_enabled_only.pkg	Wed Sep 01 12:24:24 2010 +0100
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 13, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 9, 20, 26, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/package_separate.pkg	Tue Aug 31 15:37:30 2010 +0300
+++ b/sis/mds/package_separate.pkg	Wed Sep 01 12:24:24 2010 +0100
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 13, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 9, 20, 26, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/stub.pkg	Tue Aug 31 15:37:30 2010 +0300
+++ b/sis/mds/stub.pkg	Wed Sep 01 12:24:24 2010 +0100
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"Metadata System"}, (0x200009F5), 10, 10, 13, TYPE=SA
+#{"Metadata System"}, (0x200009F5), 9, 20, 26, TYPE=SA
 
 ; Localised Vendor name
 %{"Nokia"}