mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Thu Sep 02 20:58:01 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Fri Sep 17 08:33:15 2010 +0300
@@ -824,7 +824,13 @@
{
iDataSourceAdapter = CDataSourceAdapter::NewL();
}
- iDataSourceAdapter->SetDataSourceL(&aSource, this, this);
+ TRAPD(err,iDataSourceAdapter->SetDataSourceL(&aSource, this, this));
+ if(err)
+ {
+ DP1(_L("setdatasource left for reason %d"),err);
+ iDataSourceAdapter->ResetDataSource();
+ User::Leave(err);
+ }
iDataSource = &aSource; // remove this eventually when all the references are removed
@@ -856,7 +862,12 @@
// we don't want to prime in this case
DP0(_L("CAdvancedAudioPlayController::AddDataSourceL() Prime to get duration"));
iBlockDuration = ETrue;
- DoInitializeL(); // to get data from the source to calculate bitrate and duration
+ TRAPD(err,DoInitializeL());// to get data from the source to calculate bitrate and duration
+ if(err)
+ {
+ iDataSourceAdapter->ResetDataSource();
+ User::Leave(err);
+ }
}
if ((!iEventsEnabled) && (iDataSourceAdapter->OnlyHeaderPresent()))
{
@@ -864,7 +875,12 @@
// the recorder might have to open this file again - and if we keep it open
// with shared read access, he won't be able to open it for writing.
// So we will close the file here.
- iDataSourceAdapter->SourceStopL();
+ TRAPD(err,iDataSourceAdapter->SourceStopL());
+ if(err)
+ {
+ iDataSourceAdapter->ResetDataSource();
+ User::Leave(err);
+ }
}
}