Revision: 201033
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 20:58:01 +0300
changeset 47 c2e43643db4c
parent 42 1fa3fb47b1e3
child 49 7d8b3d56b7fb
child 52 4ce423f34688
Revision: 201033 Kit: 201035
khronosfws/openmax_al/group/openmaxal.mmp
khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c
khronosfws/openmax_al/src/common/xastreaminformationitf.c
khronosfws/openmax_al/src/engine/xaengineitf.c
khronosfws/openmax_al/src/engine/xathreadsyncitf.c
khronosfws/openmax_al/src/gst_adaptation/xamediarecorderadaptctx.c
khronosfws/openmax_al/src/gst_adaptation/xametadataadaptation.c
khronosfws/openmax_al/src/mediaplayer/xaseekitf.c
khronosfws/openmax_al/src/mediarecorder/xaaudioencoderitf.c
khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c
khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp
khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h
khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp
khronosfws/openmax_al/src/mmf_adaptation/xametadataadaptctxmmf.c
khronosfws/openmax_al/src/mmf_adaptation/xastreaminformationitfadaptationmmf.c
khronosfws/openmax_al/src/radio/xaradioitf.c
layers.sysdef.xml
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpDataSourceAdapter/Group/3gpDataSourceAdapter.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Group/3GPAudioPlayControllerPlugin.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Group/3GPAudioPlayControllerRecognizer.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudiorecordcontroller/Group/3GPAudioRecordControllerPlugin.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Group/AdvancedAudioController.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioControllerUtility/Group/EAACPlusAudioControllerUtility.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioInput/Group/DevSoundAudioInput.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Group/DevSoundAudioOutput.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Group/FileAudioOutput.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/MetaDataWrite/Group/MetaDataWrite.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/PlaylistRecognizer/group/playlistrecognizer.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Group/AACAudioPlayControllerPlugin.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerHwDecoder.cpp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Data/AMRAudioPlayControllerResource.rss
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Group/AMRAudioPlayControllerPlugin.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Src/AMRAudioPlayControllerPlugin.cpp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/awbaudioplaycontroller/Group/AWBAudioPlayControllerPlugin.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/mp3audioplaycontroller/Group/MP3AudioPlayControllerPlugin.mmp
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/mp3audioplaycontroller/Src/MP3AudioPlayControllerHwDecoder.cpp
mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/ringtonerecognizer/group/recrt.mmp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/group/AudioPlaybackTestModule.mmp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/conf/AudioRecorderTestModule.cfg
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/group/AudioRecorderTestModule.mmp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/AudioResourceNotification.h
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/CustomCommand.h
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/CustomCommandAsync.h
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/RecordFormats.h
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/ThreadPriority.h
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/AudioLoadingProgress.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/AudioResourceNotification.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CropFromBeginning.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CustomCommand.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CustomCommandAsync.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/MetaDataEntry.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayBalance.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayRamp.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayVolume.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayWindow.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordDataFormat.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordDataType.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordFormats.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordOpen.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordingBase.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/ThreadPriority.cpp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/group/AudioStreamTestModule.mmp
mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/EmulatorRecordTestModule/AudioRecorderBAT.cfg
mmfenh/advancedaudiocontroller/wavplaycontrollerplugin/group/MmfAudioController.mmp
mmfenh/audiooutputcontrolutility/AudioOutputControlUtilityProxy/Group/AudioOutputControlUtilityProxy.mmp
mmfenh/enhancedaudioplayerutility/AudioPlayer/group/S60AudioPlayer.mmp
mmfenh/enhancedaudioplayerutility/AudioStreaming/AudioClientStreamSource/group/S60AudioClientStreamSource.mmp
mmfenh/enhancedaudioplayerutility/S60AudioUtility/group/S60AudioUtility.mmp
mmfenh/profilesettingsmonitor/group/ProfileSettingsMonitor.mmp
mmfenh/profilesettingsmonitor/inc/ProfileSettingsMonitorServerImpl.h
mmfenh/profilesettingsmonitor/src/ProfileSettingsMonitorServerImpl.cpp
mmmw_plat/audio_metadata_reader_api/inc/MetaDataField.hrh
mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/group/MetaDataDisplay.pkg
mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/src/MetaDataDisplayBlocks.cpp
mmmw_plat/system_tone_service_api/inc/systemtoneservice.h
mmserv/callaudiocontrol/group/CallAudioControl.mmp
mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser.dso
mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser.lib
mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser{000a0000}.dso
mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser{000a0000}.lib
mmserv/metadatautility/3GPExtParserLib/armv5/udeb/3GPExtParser.dll
mmserv/metadatautility/3GPExtParserLib/armv5/urel/3GPExtParser.dll
mmserv/metadatautility/3GPExtParserLib/group/bld.inf
mmserv/metadatautility/3GPExtParserLib/winscw/udeb/3GPExtParser.dll
mmserv/metadatautility/3GPExtParserLib/winscw/udeb/3GPExtParser.lib
mmserv/metadatautility/3GPExtParserLib/winscw/urel/3GPExtParser.dll
mmserv/metadatautility/3GPExtParserLib_stub/BWINS/3GPExtParserU.DEF
mmserv/metadatautility/3GPExtParserLib_stub/EABI/3GPExtParserU.DEF
mmserv/metadatautility/3GPExtParserLib_stub/group/3GPExtParserLib_stub.mmp
mmserv/metadatautility/3GPExtParserLib_stub/group/bld.inf
mmserv/metadatautility/3GPExtParserLib_stub/src/3GPExtParserLib_stub.cpp
mmserv/metadatautility/Group/MetaDataUtility.mmp
mmserv/metadatautility/Group/bld.inf
mmserv/metadatautility/Src/3GPExtParser.h
mmserv/metadatautility/Src/MetaDataParser3GPExt.cpp
mmserv/metadatautility/Src/MetaDataParserID3v2.cpp
mmserv/metadatautility/Src/MetaDataParserID3v22.cpp
mmserv/metadatautility/Src/MetaDataParserID3v23.cpp
mmserv/metadatautility/Src/MetaDataParserID3v24.cpp
mmserv/metadatautility/Src/MetaDataParserMP4.cpp
mmserv/metadatautility/Src/MetaDataParserWMA.cpp
mmserv/metadatautility/Src/MetaDataParserWMA.h
mmserv/radioutility/radio_utility/stub/src/StubRadioFmTunerUtilityBody.cpp
mmserv/radioutility/radio_utility/stub/src/StubRadioPlayerUtilityBody.cpp
mmserv/radioutility/radio_utility/stub/src/StubRadioRdsUtilityBody.cpp
mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp
mmserv/radioutility/radioserver/Session/stub/src/RadioStubManager.h
mmserv/sts/src/systemtoneservice.cpp
mmserv/sts/sts/group/sts.mmp
mmserv/sts/sts/inc/sts.h
mmserv/sts/sts/inc/stsplayer.h
mmserv/sts/sts/inc/stssettingsmanager.h
mmserv/sts/sts/src/sts.cpp
mmserv/sts/sts/src/stsplayer.cpp
mmserv/sts/sts/src/stsplayersettings.cpp
mmserv/sts/sts/src/stsplayersettings.h
mmserv/sts/sts/src/stssettingsmanager.cpp
mmserv/sts/stsproxy/group/stsproxy.mmp
mmserv/sts/stsproxy/inc/stsimplementation.h
mmserv/sts/stsproxy/src/rstssession.cpp
mmserv/sts/stsproxy/src/rstssession.h
mmserv/sts/stsproxy/src/stsimplementation.cpp
mmserv/sts/stsserver/inc/stsclientservercommon.h
mmserv/sts/stsserver/src/stsserver.cpp
mmserv/sts/stsserver/src/stsserver.h
mmserv/sts/stsserver/src/stsserverexe.cpp
mmserv/sts/stsserver/src/stsserversession.cpp
mmserv/sts/stsserver/src/stsserversession.h
mmserv/sts/tsrc/ststester/src/ststester.cpp
mmserv/sts/tsrc/ststester/src/ststester.h
mmserv/thumbnailengine/Group/HXTNEEngine.mmp
mmserv/thumbnailengine/Group/TNEEngine.mmp
mmserv/thumbnailengine/TneAPISrc/HXTNEVideoClipInfoImp.cpp
mmserv/tms/tmscallserver/group/tmscallserver.mmp
mmserv/tms/tmsserver/src/tmsserver.cpp
mmserv/voipaudioservices/VoIPIntfc/group/VoIPAudioIntfc.mmp
mmserv/voipaudioservices/VoIPServer/group/VoIPAudioServer.mmp
package_definition.xml
--- a/khronosfws/openmax_al/group/openmaxal.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/group/openmaxal.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -148,7 +148,7 @@
 LIBRARY         ws32.lib
 LIBRARY		inetprotutil.lib
 LIBRARY         mediaclientaudio.lib
-LIBRARY         MMFControllerFramework.lib
+LIBRARY         mmfcontrollerframework.lib
 LIBRARY         mediaclientvideo.lib
 LIBRARY         AudioInputRouting.lib
 LIBRARY		Radio_Utility.lib
--- a/khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -294,15 +294,13 @@
 
     DEBUG_API("->XANokiaLinearVolumeItfimpl_AdaptCb");
 
-    if (!impl && !event)
+    if (!impl || !event)
         {
         DEBUG_ERR("XANokiaLinearVolumeItfImpl_AdaptCb, invalid context pointer!");
         DEBUG_API("<-XANokiaLinearVolumeItfImpl_AdaptCb");
         return;
         }
     
-    assert(event);
-
     if (event->eventid == XA_ADAPT_VOLUME_VOLUME_CHANGED && impl->callback)
         {
         if (XA_NOKIALINEARVOLUME_EVENT_VOLUME_CHANGED & impl->eventFlags)
@@ -312,9 +310,5 @@
                     XA_NOKIALINEARVOLUME_EVENT_VOLUME_CHANGED, eventBoolean);
             }
         }
-    else
-        {
-        /* do nothing */
-        }
     DEBUG_API("<-XANokiaLinearVolumeItfimpl_AdaptCb");
     }
--- a/khronosfws/openmax_al/src/common/xastreaminformationitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/common/xastreaminformationitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -316,9 +316,9 @@
 void XAStreamInformationItfImpl_Free(XAStreamInformationItfImpl* self)
     {
     DEBUG_API("->XAStreamInformationItfImpl_Free");
-    assert(self==self->self);
     if(self)
         {
+        assert(self==self->self);
         free(self);
         }
     DEBUG_API("<-XAStreamInformationItfImpl_Free");
--- a/khronosfws/openmax_al/src/engine/xaengineitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/engine/xaengineitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -47,8 +47,8 @@
         const XAInterfaceID *pInterfaceIds,
         const XAboolean *pInterfaceRequired)
     {
+#ifdef OMAX_CAMERABIN
     XAEngineItfImpl* impl = GetImpl(self);
-#ifdef OMAX_CAMERABIN
     return XACameraDeviceImpl_CreateCameraDevice( impl->mapper,impl->capabilities,
             pDevice, deviceID,numInterfaces,
             pInterfaceIds, pInterfaceRequired );
@@ -423,9 +423,9 @@
 void XAEngineItfImpl_Free(XAEngineItfImpl* self)
     {
     DEBUG_API("->XAEngineItfImpl_Free");
-    assert(self==self->self);
     if(self)
         {
+        assert(self==self->self);
         free(self);
         }
     DEBUG_API("<-XAEngineItfImpl_Free");
--- a/khronosfws/openmax_al/src/engine/xathreadsyncitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/engine/xathreadsyncitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -128,9 +128,9 @@
 void XAThreadSyncItfImpl_Free(XAThreadSyncItfImpl* self)
     {
     DEBUG_API("->XAThreadSyncItfImpl_Free");
-    assert(self==self->self);
     if(self)
         {
+        assert(self==self->self);
         XAImpl_DeleteMutex(self->engCriticalSection);
         free(self);
         }
--- a/khronosfws/openmax_al/src/gst_adaptation/xamediarecorderadaptctx.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/gst_adaptation/xamediarecorderadaptctx.c	Thu Sep 02 20:58:01 2010 +0300
@@ -39,11 +39,11 @@
  */
 gboolean XAMediaRecorderAdapt_GstBusCb(GstBus *bus, GstMessage *message,
         gpointer data)
-    {
+{
     XAAdaptationGstCtx* bCtx = (XAAdaptationGstCtx*) data;
     /* only listen to pipeline messages */
     if (GST_MESSAGE_SRC(message)==GST_OBJECT(bCtx->bin))
-        {
+    {
         XAMediaRecorderAdaptationCtx* mCtx = NULL;
         DEBUG_API_A2("->XAMediaRecorderAdapt_GstBusCb:\"%s\" from object \"%s\"",
                         GST_MESSAGE_TYPE_NAME(message), GST_OBJECT_NAME(GST_MESSAGE_SRC(message)));
@@ -57,7 +57,7 @@
                 if(mCtx->runpositiontimer > 0)
                 {
                     g_source_remove(mCtx->runpositiontimer);
-                    mCtx->runpositiontimer=0;
+                    mCtx->runpositiontimer = 0;
                 }
 
                 /* complete any ongoing client async operations */
@@ -158,24 +158,24 @@
  */
 XAAdaptationBaseCtx* XAMediaRecorderAdapt_Create(XADataSource* pAudioSrc,
         XADataSource* pImageVideoSrc, XADataSink* pDataSnk, XAuint8 recModes)
-    {
+{
     XAMediaRecorderAdaptationCtx *pSelf = NULL;
     DEBUG_API("->XAMediaRecorderAdapt_Create");
 
     pSelf = (XAMediaRecorderAdaptationCtx*)calloc(1, sizeof(XAMediaRecorderAdaptationCtx));
     if (pSelf)
-        {
+    {
         if (XAAdaptationGst_Init(&(pSelf->baseObj),
                 XAMediaRecorderAdaptation) != XA_RESULT_SUCCESS)
-            {
+        {
             DEBUG_ERR("Failed to init base context!!!");
             free(pSelf);
             pSelf = NULL;
             DEBUG_API("<-XAMediaRecorderAdapt_Create");
             return NULL;
-            }
+        }
         else
-            {
+        {
             pSelf->baseObj.baseObj.fwtype = FWMgrFWGST;
             pSelf->xaAudioSource = pAudioSrc;
             pSelf->xaVideoSource = pImageVideoSrc;
@@ -211,12 +211,12 @@
             pSelf->audioEncSettings.streamFormat = 0;
             pSelf->audioEncSettings.encodeOptions = 0;
             pSelf->audioEncSettings.blockAlignment = 0;
-            }
         }
+    }
 
     DEBUG_API("<-XAMediaRecorderAdapt_Create");
     return (XAAdaptationBaseCtx*) &pSelf->baseObj;
-    }
+}
 
 /*
  * XAresult XAMediaRecorderAdapt_PostInit()
@@ -225,26 +225,26 @@
  * @return XAresult - Success value
  */
 XAresult XAMediaRecorderAdapt_PostInit(XAAdaptationGstCtx* bCtx)
-    {
+{
     GstStateChangeReturn gret;
 
     XAresult ret = XA_RESULT_SUCCESS;
     XAMediaRecorderAdaptationCtx* ctx = NULL;
     DEBUG_API("->XAMediaRecorderAdapt_PostInit");
     if (bCtx == NULL || bCtx->baseObj.ctxId != XAMediaRecorderAdaptation)
-        {
+    {
         DEBUG_ERR("Invalid parameter!!");
         DEBUG_API("<-XAMediaRecorderAdapt_PostInit");
         return XA_RESULT_PARAMETER_INVALID;
-        }
+    }
     ctx = (XAMediaRecorderAdaptationCtx*) bCtx;
 
     ret = XAAdaptationGst_PostInit(bCtx);
     if (ret != XA_RESULT_SUCCESS)
-        {
+    {
         DEBUG_ERR("Gst context postinit failed!!");
         return ret;
-        }
+    }
 
     /* top level bin for media recorder */
     bCtx->bin = gst_pipeline_new("media_recorder");
@@ -252,13 +252,13 @@
     /* Create Gst bus listener. */
     ret = XAAdaptationGst_InitGstListener(bCtx);
     if (ret != XA_RESULT_SUCCESS)
-        {
+    {
         DEBUG_ERR("Bus listener creation failed!!");
         return ret;
-        }
+    }
     /* Add Media Recorder specific handler */
     if (bCtx->bus)
-        {
+    {
         bCtx->busCb = XAMediaRecorderAdapt_GstBusCb;
         gst_bus_add_signal_watch(bCtx->bus);
         g_signal_connect(bCtx->bus, "message::eos", G_CALLBACK(bCtx->busCb), ctx );
@@ -267,22 +267,22 @@
         g_signal_connect(bCtx->bus, "message::state-changed", G_CALLBACK(bCtx->busCb), ctx );
         g_signal_connect(bCtx->bus, "message::segment-done", G_CALLBACK(bCtx->busCb), ctx );
         g_signal_connect(bCtx->bus, "message::async-done", G_CALLBACK(bCtx->busCb), ctx );
-        }
+    }
     else
-        {
+    {
         DEBUG_ERR("Failed to create message bus");
         return XA_RESULT_INTERNAL_ERROR;
-        }
+    }
 
     XAMetadataAdapt_PreInit(bCtx);
 
     /* create pipeline */
     ret = XAMediaRecorderAdapt_CreatePipeline(ctx);
     if (ret != XA_RESULT_SUCCESS)
-        {
+    {
         DEBUG_ERR("Failed to create recorder pipeline");
         return XA_RESULT_INTERNAL_ERROR;
-        }
+    }
 
 #ifdef XA_IMPL_MEASURE_GST_DELAY
     bCtx->startTime = clock();
@@ -292,15 +292,15 @@
     XAAdaptationGst_PrepareAsyncWait(bCtx);
     gret = gst_element_set_state(GST_ELEMENT(bCtx->bin), bCtx->binWantedState);
     if (gret == GST_STATE_CHANGE_ASYNC)
-        {
+    {
         DEBUG_INFO("Wait for preroll");
         XAAdaptationGst_StartAsyncWait(bCtx);DEBUG_INFO("Preroll ready");
-        }
+    }
     else if (gret == GST_STATE_CHANGE_FAILURE)
-        {
+    {
         DEBUG_ERR("Preroll FAILED");
         /*ret = XA_RESULT_INTERNAL_ERROR;*/
-        }
+    }
 #ifdef XA_IMPL_MEASURE_GST_DELAY
     bCtx->endTime = clock();
     double diff = bCtx->endTime - bCtx->startTime;
@@ -313,7 +313,7 @@
 
     DEBUG_API("<-XAMediaRecorderAdapt_PostInit");
     return ret;
-    }
+}
 
 /*
  * void XAMediaRecorderAdapt_Destroy( XAAdaptationGstCtx* bCtx )
@@ -321,160 +321,153 @@
  * @param ctx - Media Recorder Adaptation context to be destroyed
  */
 void XAMediaRecorderAdapt_Destroy(XAAdaptationGstCtx* bCtx)
-    {
+{
     XAMediaRecorderAdaptationCtx* ctx = NULL;
     char* fname = NULL;
     DEBUG_API("->XAMediaRecorderAdapt_Destroy");
 
     if (bCtx == NULL || bCtx->baseObj.ctxId != XAMediaRecorderAdaptation)
-        {
+    {
         DEBUG_ERR("Invalid parameter!!");
         DEBUG_API("<-XAMediaRecorderAdapt_Destroy");
         return;
-        }
+    }
     ctx = (XAMediaRecorderAdaptationCtx*) bCtx;
 
     if (ctx->isRecord == XA_BOOLEAN_FALSE)
-        {
+    {
         DEBUG_INFO("Removing unnecessary file.");
-
-        if (ctx->xaSink && *((XAuint32*) (ctx->xaSink->pLocator))
-                == XA_DATALOCATOR_URI)
+        if (ctx->xaSink && *((XAuint32*) (ctx->xaSink->pLocator)) == XA_DATALOCATOR_URI)
+        {
+            if (strncmp( (char *)((XADataLocator_URI*)(ctx->xaSink->pLocator))->URI, "file:///", 8) == 0)
             {
-            if (strncmp(
-                    (char *) ((XADataLocator_URI*) (ctx->xaSink->pLocator))->URI,
-                    "file:///", 8) == 0)
-                {
-                fname
-                        = (char *) &(((XADataLocator_URI*) (ctx->xaSink->pLocator))->URI[8]);
-                }
+                fname = (char *) &(((XADataLocator_URI*) (ctx->xaSink->pLocator))->URI[8]);
+            }
             else
-                {
-                fname
-                        = (char *) ((XADataLocator_URI*) (ctx->xaSink->pLocator))->URI;
-                }
-
+            {
+                fname = (char *) ((XADataLocator_URI*) (ctx->xaSink->pLocator))->URI;
+            }
             if (remove(fname) != 0)
-                {
+            {
                 DEBUG_ERR_A1("Cannot remove file %s", fname);
-                }
             }
         }
+    }
 
     if (ctx->isobjvsrc && ctx->videosource)
-        { /* external source, unlink now */
+    { /* external source, unlink now */
         gst_element_unlink(ctx->videosource, ctx->codecbin);
         GST_OBJECT_FLAG_SET(GST_OBJECT(ctx->videosource),GST_OBJECT_FLOATING);
-        }
+    }
     if (bCtx->bus)
-        {
+    {
         gst_bus_remove_signal_watch(bCtx->bus);
-        }
+    }
     XAAdaptationGst_CancelAsyncWait(bCtx);
 
     if (ctx->runpositiontimer)
-        {
+    {
         g_source_remove(ctx->runpositiontimer);
-        }
-    
+    }
+
     XAAdaptationGst_Free(bCtx);
 
     free(ctx);
     ctx = NULL;
 
     DEBUG_API("<-XAMediaRecorderAdapt_Destroy");
-    }
+}
 
 /***************** INTERNAL FUNCTIONS *******************************/
 
-    /*
-     * void XAMediaRecorderAdapt_CreatePipeline( XAMediaRecorderAdaptationCtx* ctx );
-     */
+/*
+ * void XAMediaRecorderAdapt_CreatePipeline( XAMediaRecorderAdaptationCtx* ctx );
+ */
 XAresult XAMediaRecorderAdapt_CreatePipeline(
         XAMediaRecorderAdaptationCtx* ctx)
-    {
+{
     XAresult ret = XA_RESULT_SUCCESS;
     DEBUG_API("->XAMediaRecorderAdapt_CreatePipeline");
 
     /* Create the audio src */
     if ( ctx->xaAudioSource )
-        {
+    {
         /* create audio pipe source */
         ctx->audiosource = XAAdaptationGst_CreateGstSource( ctx->xaAudioSource, "audiosource",
                 &(ctx->isobjasrc), NULL, NULL );
-    
+
         if( ctx->audiosource )
-            {
+        {
             if (gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->audiosource))
-                {
+            {
                 DEBUG_API("Added audiosource to bin");
-                }
+            }
             else
-                {
+            {
                 DEBUG_API("Could not add audiosource to bin");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
             }
+        }
         else
-            {
+        {
             DEBUG_ERR("Could not create audio source!!!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
         }
+    }
 
     /* create and add video pipeline */
     ctx->codecbin = XAMediaRecorderAdapt_CreateEncodeBin(ctx);
     if (ctx->codecbin)
-        {
+    {
         if (gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->codecbin))
-            {
+        {
             DEBUG_API("->XAMediaRecorderAdapt_CreatePipeline: gst_bin_add success");
-            }
+        }
         else
-            {
+        {
             DEBUG_ERR("Could not add codec bin");
             return XA_RESULT_INTERNAL_ERROR;
-            }
         }
+    }
     else
-        {
+    {
         DEBUG_ERR("Could not create encoding bin!!!");
         return XA_RESULT_INTERNAL_ERROR;
-        }
+    }
 
     /* create and add video pipeline if video source available and codec supports video */
     if (ctx->xaVideoSource
             && gst_element_get_pad(ctx->codecbin, "v_sink"))
-        {
+    {
         /* create video pipe source */
         ctx->videosource = XAAdaptationGst_CreateGstSource(
                 ctx->xaVideoSource, "videosource", &(ctx->isobjvsrc),
                 NULL, NULL );
         if (!ctx->videosource)
-            {
+        {
             DEBUG_ERR("Could not create video source!!!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
 
         if (!ctx->isobjvsrc)
-            { /* Add other than camera sources to media recorder bin */
+        { /* Add other than camera sources to media recorder bin */
             gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->videosource);
-            }
+        }
         else
-            { /* Don't add camera source to media recorder bin */
+        { /* Don't add camera source to media recorder bin */
             GstCaps * encSrcCaps;
-            encSrcCaps = gst_caps_new_simple( "video/x-raw-yuv", 
+            encSrcCaps = gst_caps_new_simple( "video/x-raw-yuv",
             "format", GST_TYPE_FOURCC,GST_MAKE_FOURCC('I','4','2','0'),
             "framerate", GST_TYPE_FRACTION, ctx->videoEncSettings.frameRate, 1,
                     NULL);
             DEBUG_INFO_A1("new camera encoding filter: %s",gst_caps_to_string(encSrcCaps));
             g_object_set( G_OBJECT(ctx->videosource), "filter-caps",encSrcCaps,NULL);
             gst_caps_unref(encSrcCaps);
-            }
+        }
         /* create video filter for video encoder settings */
         ctx->videofilter = gst_element_factory_make("capsfilter", "videofilter");
         if( ctx->videofilter )
-            {
+        {
             GstCaps* encSrcCaps;
             gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->videofilter);
             encSrcCaps = gst_caps_new_simple("video/x-raw-yuv",
@@ -486,15 +479,15 @@
             g_object_set( G_OBJECT(ctx->videofilter), "caps",encSrcCaps,NULL);
             gst_caps_unref(encSrcCaps);
             if ( ! ctx->isobjvsrc )
-                {
+            {
                 if(!gst_element_link(ctx->videosource, ctx->videofilter))
-                    {
+                {
                     DEBUG_ERR("Could not link videopp to videofilter!!");
                     return XA_RESULT_INTERNAL_ERROR;
-                    }
                 }
+            }
             else
-                { /* For camera source used ghost-pads for linking, because elements are in different bins */
+            { /* For camera source used ghost-pads for linking, because elements are in different bins */
                 GstStateChangeReturn gret;
                 GstElement *camTee=NULL;
                 GstPad *cameraBinGhostPad=NULL;
@@ -504,21 +497,21 @@
                 DEBUG_INFO("Set ext-source PAUSED for pipeline manipulation");
                 gret = gst_element_set_state( GST_ELEMENT(ctx->videosource), GST_STATE_READY);
                 if(gret == GST_STATE_CHANGE_SUCCESS)
-                    {
+                {
                     gret = gst_element_get_state( GST_ELEMENT(ctx->videosource), NULL,NULL,XA_ADAPT_ASYNC_TIMEOUT_SHORT_NSEC);
-                    }
+                }
 
                 /* Add new ghost-pad to external camera source */
                 camTee = gst_bin_get_by_name( GST_BIN(ctx->videosource), "CamTee");
                 if ( !camTee )
-                    {
+                {
                     DEBUG_ERR("Could not get tee-element from camera");
-                    }
+                }
                 cameraBinGhostPad = gst_element_get_request_pad( camTee, "src%d" );
                 if ( !cameraBinGhostPad )
-                    {
+                {
                     DEBUG_ERR("Could not get new src-pad from CamTee element");
-                    }
+                }
                 gst_element_add_pad(ctx->videosource, gst_ghost_pad_new("MRObjSrc",cameraBinGhostPad));
                 ghost = gst_element_get_static_pad( GST_ELEMENT(ctx->videosource), "MRObjSrc" );
                 DEBUG_INFO_A2("Setting element:%s pad:%s to blocking.",
@@ -531,29 +524,29 @@
                 gst_element_add_pad(ctx->baseObj.bin, gst_ghost_pad_new("MRObjSink",mrGhostSink));
                 if ( !gst_element_link_pads( GST_ELEMENT(ctx->videosource), "MRObjSrc",
                                 GST_ELEMENT(ctx->baseObj.bin), "MRObjSink") )
-                    {
+                {
                     DEBUG_ERR("Could not link camera:MRObjSrc to videofilter:MRObjSink");
                     return XA_RESULT_INTERNAL_ERROR;
-                    }
+                }
 
                 if ( cameraBinGhostPad )
-                    {
+                {
                     gst_object_unref( cameraBinGhostPad );
-                    }
+                }
                 if ( ghost )
-                    {
+                {
                     gst_object_unref( ghost );
-                    }
+                }
                 if ( mrGhostSink )
-                    {
+                {
                     gst_object_unref( mrGhostSink );
-                    }
+                }
                 if ( camTee )
-                    {
+                {
                     gst_object_unref( camTee );
-                    }
                 }
             }
+        }
         /* create video processing pipeline */
 #ifdef XA_IMPL_FIXED_VIDEO_SIZE
         ctx->videoppbin = XAAdaptationGst_CreateFixedSizeVideoPP( );
@@ -561,97 +554,95 @@
         ctx->videoppbin = XAAdaptationGst_CreateVideoPP( );
 #endif
         if( ctx->videoppbin )
-            {
+        {
             gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->videoppbin);
             if(!gst_element_link(ctx->videofilter, ctx->videoppbin))
-                {
+            {
                 DEBUG_ERR("Could not link videofilter to videopp!!");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
             }
+        }
         else
-            {
+        {
             DEBUG_ERR("Could not create video pp bin!!!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
         /* create identity to extract buffers from */
         ctx->videoextract = gst_element_factory_make("identity", "videoextract");
         if( ctx->videoextract )
-            {
+        {
             gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->videoextract);
             if(!gst_element_link(ctx->videoppbin, ctx->videoextract))
-                {
+            {
                 DEBUG_ERR("Could not link videopp to videoextract!!");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
             }
+        }
         else
-            {
+        {
             DEBUG_ERR("Could not create videoextract!!!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
         if( ctx->videoextract )
-            {
+        {
             if( !gst_element_link_pads(ctx->videoextract, "src", ctx->codecbin, "v_sink") )
-                {
+            {
                 DEBUG_INFO("Warning: could not link videoextract to codec!!");
-                }
             }
         }
+    }
     else
-        {
+    {
         DEBUG_INFO("No video input");
-        }
+    }
 
     /* create and add audio pipeline */
     if ( ctx->audiosource )
-        {
+    {
 #ifdef USE_AUDIO_PP
         /* create audio processing pipeline */
         ctx->audioppbin = XAAdaptationGst_CreateAudioPP( );
         if( ctx->audioppbin )
-            {
+        {
             if (gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->audioppbin))
-                {
+            {
                 DEBUG_INFO("Added audioppbin to bin");
-                }
+            }
             else
-                {
+            {
                 DEBUG_ERR("Could not add audioppbin to bin");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
+            }
             if(!gst_element_link(ctx->audiosource, ctx->audioppbin))
-                {
+            {
                 DEBUG_ERR("Could not link audiofilter to audiopp!!");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
-                
-                
             }
+        }
         else
-            {
+        {
             DEBUG_ERR("Could not create audio pp bin!!!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
 #endif //USE_AUDIO_PP
-        
+
         /* create audio filter for audio encoder settings */
-       
+
 //        ret = XAMediaRecorderAdapt_CreateCapsFilter(ctx);
-//      
+//
 //        if ( XA_RESULT_SUCCESS != ret )
 //        {
 //            DEBUG_ERR("cannot create caps filter");
 //            return ret;
 //        }
-//        
+//
 //        /*LINK : audiosource -> audiofilter */
 //        if(!gst_element_link(ctx->audiosource, ctx->audiofilter))
-//            {
+//        {
 //            DEBUG_ERR("Could not link audiosource to audiofilter!!");
 //            return XA_RESULT_INTERNAL_ERROR;
-//            }
-       
+//        }
+
 /*            if( !gst_element_link_pads_filtered(ctx->audiofilter, "src", ctx->codecbin, "sink", encSrcCaps) )
             {
             DEBUG_INFO("Warning: could not link audiopp to codec!!");
@@ -660,167 +651,169 @@
 */
 #ifdef USE_AUDIO_PP
             if (!gst_element_link_filtered( ctx->audiofilter , ctx->audioppbin ,encSrcCaps))
-                {
+            {
                 DEBUG_INFO("Warning: could not link audiosource to audiopp!!");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
+            }
             if(!gst_element_link(ctx->audioppbin, ctx->codecbin))
-                {
+            {
                 DEBUG_INFO("Warning: could not link audioppbin to codecbin!!");
                 return XA_RESULT_INTERNAL_ERROR;
-                }
+            }
 #else
         //if(!gst_element_link(ctx->audiofilter, ctx->codecbin ))
         if(!gst_element_link(ctx->audiosource, ctx->codecbin ))
-            {
+        {
             DEBUG_ERR("Could not link audiosource to codecbin!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
         else
-            {
+        {
             DEBUG_INFO("Warning: link audiosource to codecbin is successfull with muxcaps!!");
-            }
+        }
 #endif // USE_AUDIO_PP
-        }
+    }
     else
-        {
+    {
         DEBUG_INFO("No audio input");
-        }
+    }
 
     /* create and add data sink */
     ctx->datasink = XAAdaptationGst_CreateGstSink( ctx->xaSink, "datasink", &(ctx->isobjsink) );
     if( ctx->datasink )
-        {
+    {
         if ( GST_IS_APP_SINK(ctx->datasink) )
-            {
+        {
             gst_app_sink_set_emit_signals( GST_APP_SINK(ctx->datasink), TRUE );
-            }
+        }
         if (gst_bin_add(GST_BIN(ctx->baseObj.bin), ctx->datasink))
-            {
+        {
             DEBUG_INFO("Added datasink to bin");
-            }
+        }
         else
-            {
+        {
             DEBUG_ERR("Could not add datasink to bin");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
         if(!gst_element_link(ctx->codecbin, ctx->datasink))
-            {
+        {
             DEBUG_ERR("Could not link codec to sink!!");
             return XA_RESULT_INTERNAL_ERROR;
-            }
+        }
         /* NOTE: no actual object sinks applicable, variable used to imply appsrc (recording to memory)*/
         if(ctx->isobjsink)
-            {
+        {
             g_signal_connect(ctx->datasink, "new-buffer",
                     G_CALLBACK (XAMediaRecorderAdapt_BufferAvailable),ctx);
 
             ret = XAImpl_CreateSemaphore( &(ctx->recThrCtx.bufInsufficientSem));
             if ( ret != XA_RESULT_SUCCESS )
-                {
+            {
                 DEBUG_ERR("WARN: Could not create semaphore for recorder event handler!");
-                }
+            }
             XAImpl_CreateThreadHandle( &(ctx->recordingEventThr) );
-            }
         }
+    }
     else
-        {
+    {
         DEBUG_ERR("Could not create data sink!!!");
         return XA_RESULT_INTERNAL_ERROR;
-        }
+    }
     DEBUG_API("<-XAMediaRecorderAdapt_CreatePipeline");
     return ret;
-    }
+}
 
-    /*
-     * XAresult XAMediaRecorderAdapt_CheckCodec( XAMediaRecorderAdaptationCtx_* mCtx );
-     * Check codec compatibility and support with initiated datasink content
-     */
-    XAresult XAMediaRecorderAdapt_CheckCodec( XAMediaRecorderAdaptationCtx_* mCtx, XACapsType encType, XAuint32 encoderId )
+/*
+ * XAresult XAMediaRecorderAdapt_CheckCodec( XAMediaRecorderAdaptationCtx_* mCtx );
+ * Check codec compatibility and support with initiated datasink content
+ */
+XAresult XAMediaRecorderAdapt_CheckCodec( XAMediaRecorderAdaptationCtx_* mCtx, XACapsType encType, XAuint32 encoderId )
+    {
+    XAresult ret = XA_RESULT_SUCCESS;
+    XAuint32 format;
+    XACapabilities temp;
+
+    DEBUG_API("->XAMediaRecorderAdapt_CheckCodec");
+
+    /*first, check if codec supported at all*/
+    ret = XACapabilitiesMgr_GetCapsById(mCtx->baseObj.baseObj.capslist,(XACapsType)(XACAP_ENCODER|encType), encoderId, &temp);
+
+    if( ret==XA_RESULT_SUCCESS )
+    {
+        if(encType & (XACAP_VIDEO|XACAP_AUDIO))
         {
-        XAresult ret = XA_RESULT_SUCCESS;
-        XAuint32 format;
-        XACapabilities temp;
-
-        DEBUG_API("->XAMediaRecorderAdapt_CheckCodec");
-
-        /*first, check if codec supported at all*/
-        ret = XACapabilitiesMgr_GetCapsById(mCtx->baseObj.baseObj.capslist,(XACapsType)(XACAP_ENCODER|encType), encoderId, &temp);
-
-        if( ret==XA_RESULT_SUCCESS )
+            if(mCtx->xaSink && mCtx->xaSink->pFormat)
             {
-            if(encType & (XACAP_VIDEO|XACAP_AUDIO))
-                {
-                if(mCtx->xaSink && mCtx->xaSink->pFormat)
-                    {
-                    format = *(XAuint32*)(mCtx->xaSink->pFormat);
-                    }
-                else
-                    {
-                    ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                    }
-                }
+                format = *(XAuint32*)(mCtx->xaSink->pFormat);
+            }
             else
-                {
-                if(mCtx->snapshotVars.xaSink && mCtx->snapshotVars.xaSink->pFormat)
-                    {
-                    format = *(XAuint32*)(mCtx->snapshotVars.xaSink->pFormat);
-                    }
-                else
-                    {
-                    ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                    }
-                }
-            if(ret==XA_RESULT_SUCCESS) switch ( format )
-                {
+            {
+                ret=XA_RESULT_FEATURE_UNSUPPORTED;
+            }
+        }
+        else
+        {
+            if(mCtx->snapshotVars.xaSink && mCtx->snapshotVars.xaSink->pFormat)
+            {
+                format = *(XAuint32*)(mCtx->snapshotVars.xaSink->pFormat);
+            }
+            else
+            {
+                ret=XA_RESULT_FEATURE_UNSUPPORTED;
+            }
+        }
+        if(ret==XA_RESULT_SUCCESS)
+        {
+             switch ( format )
+            {
                 case XA_DATAFORMAT_PCM:
                 if ( (encType == XACAP_AUDIO) && (encoderId == XA_AUDIOCODEC_PCM) )
-                    {
+                {
                     ret=XA_RESULT_SUCCESS;
-                    }
+                }
                 else
-                    {
+                {
                     ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                    }
+                }
                 break;
-
+    
                 case XA_DATAFORMAT_RAWIMAGE:
                 if ( (encType == XACAP_IMAGE) && (encoderId == XA_IMAGECODEC_RAW) )
-                    {
+                {
                     ret=XA_RESULT_SUCCESS;
-                    }
+                }
                 else
-                    {
+                {
                     ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                    }
+                }
                 break;
-
+    
                 case XA_DATAFORMAT_MIME:
                 DEBUG_INFO("XA_DATAFORMAT_MIME ");
-                    {
+                {
                     XADataFormat_MIME* mime = ((XADataFormat_MIME*)mCtx->xaSink->pFormat);
                     DEBUG_INFO_A1("mime->containerType:%u",(int)mime->containerType);
                     DEBUG_INFO_A1("mime->mimeType:%s",mime->mimeType);
                     switch ( mime->containerType )
-                        {
+                    {
                         case XA_CONTAINERTYPE_RAW:
                         if( ((encType == XACAP_AUDIO) && (encoderId == XA_AUDIOCODEC_PCM)) ||
                                 ((encType == XACAP_VIDEO) && (encoderId == XA_ADAPTID_RAWVIDEO)) ||
                                 ((encType == XACAP_IMAGE) && (encoderId == XA_IMAGECODEC_RAW)) )
-                            {
+                        {
                             ret=XA_RESULT_SUCCESS;
-                            }
+                        }
                         else
-                            {
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
-
+    
                         case XA_CONTAINERTYPE_AVI:
                         if(encType == XACAP_VIDEO)
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_ADAPTID_MOTIONJPEG:
                                 case XA_ADAPTID_RAWVIDEO:
                                 ret=XA_RESULT_SUCCESS;
@@ -828,173 +821,175 @@
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else if(encType == XACAP_AUDIO)
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_AUDIOCODEC_PCM:
                                 ret=XA_RESULT_SUCCESS;
                                 break;
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else
-                            {
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
-
+    
                         case XA_CONTAINERTYPE_WAV:
                         if(encType == XACAP_AUDIO)
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_AUDIOCODEC_PCM:
                                 ret=XA_RESULT_SUCCESS;
                                 break;
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else
-                            {
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
-
+    
                         case XA_CONTAINERTYPE_JPG:
                         if(encType == XACAP_VIDEO)
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_ADAPTID_MOTIONJPEG:
                                 ret=XA_RESULT_SUCCESS;
                                 break;
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else if(encType == XACAP_IMAGE)
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_IMAGECODEC_JPEG:
                                 ret=XA_RESULT_SUCCESS;
                                 break;
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else
-                            {
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
-
+    
                         case XA_CONTAINERTYPE_UNSPECIFIED:
                         if(strstr( (char *) mime->mimeType, "/ogg") != 0)
+                        {
+                            if(encType == XACAP_VIDEO)
                             {
-                            if(encType == XACAP_VIDEO)
+                                switch(encoderId)
                                 {
-                                switch(encoderId)
-                                    {
                                     case XA_ADAPTID_THEORA:
                                     ret=XA_RESULT_SUCCESS;
                                     break;
                                     default:
                                     ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                     break;
-                                    }
                                 }
+                            }
                             else if(encType == XACAP_AUDIO)
-                                {
+                            {
                                 switch(encoderId)
-                                    {
+                                {
                                     case XA_ADAPTID_VORBIS:
                                     ret=XA_RESULT_SUCCESS;
                                     break;
                                     default:
                                     ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                     break;
-                                    }
-                                }
-                            else
-                                {
-                                ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 }
                             }
-                        else
+                            else
                             {
+                                ret=XA_RESULT_FEATURE_UNSUPPORTED;
+                            }
+                        }
+                        else
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
                         case XA_CONTAINERTYPE_AMR:
                         if(encType == XACAP_AUDIO)
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_AUDIOCODEC_AMR:
                                 ret=XA_RESULT_SUCCESS;
                                 break;
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else
-                            {
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
                         case XA_CONTAINERTYPE_MP4:
                         if(encType == XACAP_AUDIO )
-                            {
+                        {
                             switch(encoderId)
-                                {
+                            {
                                 case XA_AUDIOCODEC_AAC:
                                 ret=XA_RESULT_SUCCESS;
                                 break;
                                 default:
                                 ret=XA_RESULT_FEATURE_UNSUPPORTED;
                                 break;
-                                }
                             }
+                        }
                         else
-                            {
+                        {
                             ret=XA_RESULT_FEATURE_UNSUPPORTED;
-                            }
+                        }
                         break;
                         default: /*switch (containertype)*/
                         ret = XA_RESULT_FEATURE_UNSUPPORTED;
                         break;
-                        }
+                    }
                     break;
-                    }
+                }
                 default: /*switch (format)*/
                 ret = XA_RESULT_CONTENT_UNSUPPORTED;
                 break;
-                }
             }
-        if( ret!=XA_RESULT_SUCCESS )
-            {
-            DEBUG_ERR("cannot accommodate given codec & datasink pair!!!");
-            }
-        DEBUG_API("<-XAMediaRecorderAdapt_CheckCodec");
-        return ret;
         }
+    }
+    if( ret!=XA_RESULT_SUCCESS )
+    {
+        DEBUG_ERR("cannot accommodate given codec & datasink pair!!!");
+    }
+    DEBUG_API("<-XAMediaRecorderAdapt_CheckCodec");
+    return ret;
+}
+
 /*
  * XAresult XAMediaRecorderAdapt_ChangeEncoders( XAMediaRecorderAdaptationCtx* mCtx );
  * re-create encodebin based on new encoder settings
  */
 XAresult XAMediaRecorderAdapt_ChangeEncoders( XAMediaRecorderAdaptationCtx* mCtx )
-    {
+{
     XAresult ret = XA_RESULT_SUCCESS;
     GstElement  *encoderelement = NULL;
     XAAdaptationGstCtx* bCtx = &(mCtx->baseObj);
@@ -1002,10 +997,10 @@
     DEBUG_API("->XAMediaRecorderAdapt_ChangeEncoders");
     /* check state */
     if(GST_STATE(mCtx->baseObj.bin)<GST_STATE_PLAYING)
-        {
+    {
         GstElement* newBin = XAMediaRecorderAdapt_CreateEncodeBin(mCtx);
         if(newBin)
-            { /* replace old bin with new */
+        { /* replace old bin with new */
             GstStateChangeReturn gret;
             GstPad *asink=NULL, *linkedasrc=NULL;
             GstPad *vsink=NULL, *linkedvsrc=NULL;
@@ -1022,7 +1017,7 @@
 
             /*set new stream settings*/
             if( mCtx->videofilter )
-                {
+            {
                 encSrcCaps = gst_caps_new_simple("video/x-raw-yuv",
                         "format", GST_TYPE_FOURCC,GST_MAKE_FOURCC('I','4','2','0'),
                         "width", G_TYPE_INT, mCtx->videoEncSettings.width,
@@ -1032,57 +1027,55 @@
                 DEBUG_INFO_A1("new video encoder config from settings: %s",gst_caps_to_string(encSrcCaps));
                 g_object_set( G_OBJECT(mCtx->videofilter), "caps",encSrcCaps,NULL);
                 gst_caps_unref(encSrcCaps);
+            }
+            if(!mCtx ->audiofilter)
+            {
+               //creating caps filter
+               mCtx->audiofilter = gst_element_factory_make("capsfilter", "audiofilter");
+               if ( mCtx->audiofilter )
+               {
+                   gst_bin_add(GST_BIN(bCtx->bin), mCtx->audiofilter);
+                   encSrcCaps = gst_caps_new_full(
+                   gst_structure_new("audio/x-raw-int",
+                           "channels", G_TYPE_INT, mCtx->audioEncSettings.channelsOut,
+                           "rate", G_TYPE_INT, (mCtx->audioEncSettings.sampleRate / 1000),
+                           "depth", G_TYPE_INT, mCtx->audioEncSettings.bitsPerSample,
+                           "signed",G_TYPE_BOOLEAN, TRUE,
+                           "endianness",G_TYPE_INT, mCtx->audioEncSettings.blockAlignment,
+                           NULL),
+                   gst_structure_new("audio/amr",
+                          "signed",G_TYPE_BOOLEAN, TRUE,
+                          "endianness",G_TYPE_INT, mCtx->audioEncSettings.blockAlignment,
+                          "depth", G_TYPE_INT, mCtx->audioEncSettings.bitsPerSample,
+                          "rate", G_TYPE_INT, (mCtx->audioEncSettings.sampleRate / 1000),
+                          "channels", G_TYPE_INT, mCtx->audioEncSettings.channelsOut,
+                          NULL),
+                    gst_structure_new("audio/x-raw-float",
+                           "channels", G_TYPE_INT, mCtx->audioEncSettings.channelsOut,
+                           "width", G_TYPE_INT, mCtx->audioEncSettings.bitsPerSample,
+                           "rate", G_TYPE_INT , mCtx->audioEncSettings.sampleRate / 1000,
+                           NULL),
+                           NULL);
+                   DEBUG_INFO_A1("new audio encoder config from settings: %s",gst_caps_to_string(encSrcCaps));
+                   g_object_set( G_OBJECT(mCtx->audiofilter), "caps",encSrcCaps,NULL);
+
+                   gst_caps_unref(encSrcCaps);
                 }
-            if(!mCtx ->audiofilter)
+                else
                 {
-                   //creating caps filter 
-                   mCtx->audiofilter = gst_element_factory_make("capsfilter", "audiofilter");
-                   if ( mCtx->audiofilter )
-                    {
-                       gst_bin_add(GST_BIN(bCtx->bin), mCtx->audiofilter);
-                       encSrcCaps = gst_caps_new_full(
-                       gst_structure_new("audio/x-raw-int",
-                               "channels", G_TYPE_INT, mCtx->audioEncSettings.channelsOut,
-                               "rate", G_TYPE_INT, (mCtx->audioEncSettings.sampleRate / 1000),
-                               "depth", G_TYPE_INT, mCtx->audioEncSettings.bitsPerSample,
-                               "signed",G_TYPE_BOOLEAN, TRUE,
-                               "endianness",G_TYPE_INT, mCtx->audioEncSettings.blockAlignment,
-                               NULL),
-                       gst_structure_new("audio/amr",
-                              "signed",G_TYPE_BOOLEAN, TRUE,
-                              "endianness",G_TYPE_INT, mCtx->audioEncSettings.blockAlignment,
-                              "depth", G_TYPE_INT, mCtx->audioEncSettings.bitsPerSample,
-                              "rate", G_TYPE_INT, (mCtx->audioEncSettings.sampleRate / 1000),
-                              "channels", G_TYPE_INT, mCtx->audioEncSettings.channelsOut,
-                              NULL),
-                        gst_structure_new("audio/x-raw-float",
-                               "channels", G_TYPE_INT, mCtx->audioEncSettings.channelsOut,
-                               "width", G_TYPE_INT, mCtx->audioEncSettings.bitsPerSample,
-                               "rate", G_TYPE_INT , mCtx->audioEncSettings.sampleRate / 1000,
-                               NULL),
-                               NULL);
-                       DEBUG_INFO_A1("new audio encoder config from settings: %s",gst_caps_to_string(encSrcCaps));
-                       g_object_set( G_OBJECT(mCtx->audiofilter), "caps",encSrcCaps,NULL);
-                                                             
-                       gst_caps_unref(encSrcCaps);
-
-                    }else
-                        {
-                        DEBUG_ERR("cannot create caps filter");
-                        return XA_RESULT_INTERNAL_ERROR;
-                        }
-                    
+                    DEBUG_ERR("cannot create caps filter");
+                    return XA_RESULT_INTERNAL_ERROR;
                 }
+            }
 
             if(mCtx->isobjvsrc)
-                {
+            {
                 moSrc = gst_element_get_static_pad(mCtx->videosource,"MRObjSrc");
                 moSink = gst_pad_get_peer(moSrc);
                 if(moSink)
-                    {
+                {
                     gst_pad_unlink(moSrc,moSink);
-                    }
-                moSrc = gst_element_get_static_pad(mCtx->videosource,"mediaobjectsrc");
+                }
                 encSrcCaps = gst_caps_new_simple("video/x-raw-yuv",
                         "format", GST_TYPE_FOURCC,GST_MAKE_FOURCC('I','4','2','0'),
                         "framerate", GST_TYPE_FRACTION, mCtx->videoEncSettings.frameRate, 1,
@@ -1090,36 +1083,36 @@
                 DEBUG_INFO_A1("new camera encoding filter: %s",gst_caps_to_string(encSrcCaps));
                 g_object_set( G_OBJECT(mCtx->videosource), "filter-caps",encSrcCaps,NULL);
                 gst_caps_unref(encSrcCaps);
-                }
+            }
 
             DEBUG_INFO("Unlink and remove old encodebin");
             asink = gst_element_get_static_pad(mCtx->codecbin,"sink");
             if(asink)
-                {
+            {
                 linkedasrc = gst_pad_get_peer(asink);
                 if(linkedasrc)
-                    {
+                {
                     gst_pad_unlink(linkedasrc,asink);
-                    }
                 }
+            }
             vsink = gst_element_get_static_pad(mCtx->codecbin,"v_sink");
             if(vsink)
-                {
+            {
                 linkedvsrc = gst_pad_get_peer(vsink);
                 if(linkedvsrc)
-                    {
+                {
                     gst_pad_unlink(linkedvsrc,vsink);
-                    }
                 }
+            }
             src = gst_element_get_static_pad(mCtx->codecbin,"src");
             if(src)
-                {
+            {
                 linkedsink = gst_pad_get_peer(src);
                 if(linkedsink)
-                    {
+                {
                     gst_pad_unlink(src,linkedsink);
-                    }
                 }
+            }
 
             gst_element_set_state( GST_ELEMENT(mCtx->codecbin), GST_STATE_NULL );
             gst_element_get_state( GST_ELEMENT(mCtx->codecbin),NULL,NULL,1000 );
@@ -1136,107 +1129,111 @@
             afiltsink = gst_element_get_static_pad(mCtx->audiofilter,"sink");
             afiltsrc = gst_element_get_static_pad(mCtx->audiofilter,"src");
             if(linkedasrc && afiltsink)
+            {
+                if(gst_pad_link(linkedasrc , afiltsink ) != GST_PAD_LINK_OK)
                 {
-                    if(gst_pad_link(linkedasrc , afiltsink ) != GST_PAD_LINK_OK)
-                        {
-                        DEBUG_ERR("Could not link audiosource to audiofilter!!");
-                        return XA_RESULT_INTERNAL_ERROR;
-                        }
+                    DEBUG_ERR("Could not link audiosource to audiofilter!!");
+                    return XA_RESULT_INTERNAL_ERROR;
                 }
+            }
             if(asink && afiltsrc)
+            {
+                if(gst_pad_link(afiltsrc , asink) != GST_PAD_LINK_OK)
                 {
-                    if(gst_pad_link(afiltsrc , asink) != GST_PAD_LINK_OK)
-                        {
-                        DEBUG_ERR("Could not link audiosource to audiofilter!!");
-                        return XA_RESULT_INTERNAL_ERROR;
-                        }
+                    DEBUG_ERR("Could not link audiosource to audiofilter!!");
+                    return XA_RESULT_INTERNAL_ERROR;
                 }
+            }
             vsink = gst_element_get_static_pad(mCtx->codecbin,"v_sink");
             if(vsink && linkedvsrc)
-                {
-                    if(gst_pad_link(linkedvsrc,vsink) != GST_PAD_LINK_OK)
-                                {
-                                DEBUG_ERR("Could not link linkedvsrc to vsink!!");
-                                return XA_RESULT_INTERNAL_ERROR;
-                                }
-                }
+            {
+                if(gst_pad_link(linkedvsrc,vsink) != GST_PAD_LINK_OK)
+                        {
+                            DEBUG_ERR("Could not link linkedvsrc to vsink!!");
+                            return XA_RESULT_INTERNAL_ERROR;
+                        }
+            }
             src = gst_element_get_static_pad(mCtx->codecbin,"src");
             if(src && linkedsink)
+            {
+                if(gst_pad_link(src,linkedsink) != GST_PAD_LINK_OK)
                 {
-                        if(gst_pad_link(src,linkedsink) != GST_PAD_LINK_OK)
-                            {
-                            DEBUG_ERR("Could not link codecbin src pad  to linkedsink!!");
-                            return XA_RESULT_INTERNAL_ERROR;
-                            }
+                    DEBUG_ERR("Could not link codecbin src pad  to linkedsink!!");
+                    return XA_RESULT_INTERNAL_ERROR;
                 }
+            }
 
             if(mCtx->isobjvsrc)
-                {
+            {
                 moSrc = gst_element_get_static_pad(mCtx->videosource,"MRObjSrc");
                 if(moSink&&moSrc)
+                {
+                    if(gst_pad_link(moSrc,moSink) != GST_PAD_LINK_OK)
                     {
-                            if(gst_pad_link(moSrc,moSink) != GST_PAD_LINK_OK)
-                                {
-                                DEBUG_ERR("Could not link codecbin src pad  to linkedsink!!");
-                                return XA_RESULT_INTERNAL_ERROR;
-                                }
+                        DEBUG_ERR("Could not link codecbin src pad  to linkedsink!!");
+                        return XA_RESULT_INTERNAL_ERROR;
                     }
                 }
+            }
 
-            
+
             //setting the Bitrate and other properties for elements
-                if(mCtx->audioEncSettings.encoderId == XA_AUDIOCODEC_AAC)
-                    {   
-                        encoderelement = gst_bin_get_by_name((GstBin*)mCtx->codecbin, "audioenc") ;
-                        if(encoderelement){   
-                            g_object_set(G_OBJECT(encoderelement),"bitrate" , mCtx->audioEncSettings.bitRate , NULL );
-                            g_object_set(G_OBJECT(encoderelement),"profile", mCtx->audioEncSettings.levelSetting , NULL );
-                            g_object_set(G_OBJECT(encoderelement),"output-format", mCtx->audioEncSettings.streamFormat , NULL );
-                            gst_object_unref (encoderelement);
-                     }else
-                         DEBUG_ERR("Encoder Element not found for AAC");
-                    }
-                else if(mCtx->audioEncSettings.encoderId == XA_AUDIOCODEC_AMR)
-                    {
-                        g_object_set(G_OBJECT(mCtx->audiosource),"speechbitrate", mCtx->audioEncSettings.bitRate , NULL );
-                    }
-                else
-                    {
-                        DEBUG_INFO("No properties for PCM or Wav")
-                    }       
-                
+            if(mCtx->audioEncSettings.encoderId == XA_AUDIOCODEC_AAC)
+            {
+                encoderelement = gst_bin_get_by_name((GstBin*)mCtx->codecbin, "audioenc") ;
+                if(encoderelement)
+                {
+                    g_object_set(G_OBJECT(encoderelement),"bitrate" , mCtx->audioEncSettings.bitRate , NULL );
+                    g_object_set(G_OBJECT(encoderelement),"profile", mCtx->audioEncSettings.levelSetting , NULL );
+                    g_object_set(G_OBJECT(encoderelement),"output-format", mCtx->audioEncSettings.streamFormat , NULL );
+                    gst_object_unref (encoderelement);
+                 }
+                 else
+                 {
+                    DEBUG_ERR("Encoder Element not found for AAC");
+                 }
+            }
+            else if(mCtx->audioEncSettings.encoderId == XA_AUDIOCODEC_AMR)
+            {
+                g_object_set(G_OBJECT(mCtx->audiosource),"speechbitrate", mCtx->audioEncSettings.bitRate , NULL );
+            }
+            else
+            {
+                DEBUG_INFO("No properties for PCM or Wav")
+            }
+
             /*re-roll*/
             DEBUG_INFO("Reroll pipeline");
             bCtx->binWantedState = GST_STATE_PAUSED;
             gret = gst_element_set_state( GST_ELEMENT(bCtx->bin), bCtx->binWantedState);
             if( gret == GST_STATE_CHANGE_ASYNC )
-                {
+            {
                 DEBUG_INFO("Wait for reroll");
                 XAAdaptationGst_StartAsyncWait(bCtx);
-                }
+            }
             else if( gret == GST_STATE_CHANGE_FAILURE )
-                {
+            {
                 DEBUG_ERR("reroll FAILED");
                 ret = XA_RESULT_INTERNAL_ERROR;
-                }
+            }
             bCtx->waitingasyncop = XA_BOOLEAN_FALSE;
             DEBUG_INFO_A1("Pipeline in state %s",gst_element_state_get_name(GST_STATE(bCtx->bin)));
-            }
+        }
         else
-            {
+        {
             /* could not support wanted encoders */
             DEBUG_ERR("Failed to create encodebin with new settings, using old one!");
             ret = XA_RESULT_FEATURE_UNSUPPORTED;
-            }
         }
+    }
     else
-        { /* n/a while playing */
+    { /* n/a while playing */
         DEBUG_ERR("Cannot change encoder when recording ongoing!");
         ret = XA_RESULT_PRECONDITIONS_VIOLATED;
-        }
+    }
     DEBUG_API("<-XAMediaRecorderAdapt_ChangeEncoders");
     return ret;
-    }
+}
 
 /**
  * GstElement* XAMediaRecorderAdapt_CreateEncodeBin( XAMediaRecorderAdaptationCtx* ctx )
@@ -1244,7 +1241,7 @@
  * Decription: Create encoder/muxer element based on given format and encoder settings
  */
 GstElement* XAMediaRecorderAdapt_CreateEncodeBin( XAMediaRecorderAdaptationCtx* ctx )
-    {
+{
     XAresult ret = XA_RESULT_SUCCESS;
     GstElement *audioenc = NULL, *videoenc=NULL, *mux=NULL;
     GstElement *codecbin = gst_bin_new( "mrcodecbin" );
@@ -1254,21 +1251,21 @@
 
     DEBUG_API("->XAMediaRecorderAdapt_CreateEncodeBin");
     if(ctx->recModes & XA_RECMODE_STREAM)
-        {
+    {
         if(ctx->xaSink && ctx->xaSink->pFormat)
-            {
+        {
             format = *(XAuint32*)(ctx->xaSink->pFormat);
             switch ( format )
-                {
+            {
                 case XA_DATAFORMAT_PCM:
                 DEBUG_INFO("XA_DATAFORMAT_PCM");
-                    {
+                {
                     XADataFormat_PCM* pcm = ((XADataFormat_PCM*)ctx->xaSink->pFormat);
                     if(!ctx->xaAudioSource)
-                        {
+                    {
                         DEBUG_ERR("Unsupported dataformat for given data sources");
                         return NULL;
-                        }
+                    }
                     /* no need for codec, just pass data on */
                     mux = gst_element_factory_make("identity", "mux");
                     gst_bin_add(GST_BIN(codecbin), mux);
@@ -1278,18 +1275,18 @@
                     ctx->audioEncSettings.encoderId = XA_AUDIOCODEC_PCM;
                     ctx->audioEncSettings.channelsOut = pcm->numChannels;
                     ctx->audioEncSettings.bitsPerSample = pcm->bitsPerSample;
-                    }
+                }
                 break;
 
                 case XA_DATAFORMAT_RAWIMAGE:
                 DEBUG_INFO("XA_DATAFORMAT_RAWIMAGE");
-                    {
+                {
                     XADataFormat_RawImage* img = ((XADataFormat_RawImage*)ctx->xaSink->pFormat);
                     if(!ctx->xaVideoSource)
-                        {
+                    {
                         DEBUG_ERR("Unsupported dataformat for given data sources");
                         return NULL;
-                        }
+                    }
                     /* no need for codec, just pass data on */
                     mux = gst_element_factory_make("identity", "mux");
                     gst_bin_add(GST_BIN(codecbin), mux);
@@ -1300,118 +1297,118 @@
                     ctx->imageEncSettings.width = img->width;
                     ctx->imageEncSettings.height = img->height;
                     ctx->imageEncSettings.colorFormat = img->colorFormat;
-                    }
+                }
                 break;
 
                 case XA_DATAFORMAT_MIME:
                 DEBUG_INFO("XA_DATAFORMAT_MIME ");
-                    {
+                {
                     XADataFormat_MIME* mime = ((XADataFormat_MIME*)ctx->xaSink->pFormat);
                     DEBUG_INFO_A1("mime->containerType:%u",(int)mime->containerType);
                     DEBUG_INFO_A1("mime->mimeType:%s",mime->mimeType);
                     switch ( mime->containerType )
-                        {
+                    {
                         case XA_CONTAINERTYPE_AVI:
                         DEBUG_INFO("XA_CONTAINERTYPE_AVI");
                         mux = gst_element_factory_make("avimux", "mux");
                         if(mux)
-                            {
+                        {
                             if (gst_bin_add(GST_BIN(codecbin), mux))
-                                {
+                            {
                                 DEBUG_INFO("Added mux to codecbin");
-                                }
+                            }
                             else
-                                {
+                            {
                                 DEBUG_ERR("Could not add mux to codecbin");
                                 return NULL;
-                                }
+                            }
                             /*use this as linkpoint*/
                             ghostsrc = gst_element_get_static_pad(mux,"src");
-                            }
+                        }
                         /* Add and link audio/video codecs */
                         /*set video defaults*/
                         if(ctx->videoEncSettings.encoderId == XA_ADAPTID_UNINITED)
                         ctx->videoEncSettings.encoderId = XA_ADAPTID_MOTIONJPEG;
                         if(ctx->xaVideoSource)
-                            {
+                        {
                             if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_VIDEO), ctx->videoEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                                {
+                            {
                                 if(temp.adaptId)
-                                    {
+                                {
                                     videoenc = gst_element_factory_make((char*)temp.adaptId, "videoenc");
-                                    }
                                 }
+                            }
                             if(videoenc)
-                                {
+                            {
                                 gst_bin_add(GST_BIN(codecbin), videoenc);
                                 if(!gst_element_link(videoenc, mux))
-                                    {
+                                {
                                     DEBUG_ERR("Could not link videoenc to mux!!");
                                     DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
                                     return NULL;
-                                    }
+                                }
                                 ghostvideosink = gst_element_get_static_pad(videoenc,"sink");
-                                }
+                            }
                             else
-                                {
+                            {
                                 /*no video codec but video source = raw video case, request video pad directly from mux*/
                                 ghostvideosink = gst_element_get_request_pad(mux,"video_%d");
-                                }
                             }
+                        }
                         /*set audio defaults*/
                         if(ctx->audioEncSettings.encoderId == XA_ADAPTID_UNINITED)
                         ctx->audioEncSettings.encoderId = XA_AUDIOCODEC_PCM;
                         if(ctx->xaAudioSource)
-                            {
+                        {
                             if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_AUDIO), ctx->audioEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                                {
+                            {
                                 if(temp.adaptId)
-                                    {
+                                {
                                     audioenc = gst_element_factory_make((char*)temp.adaptId, "audioenc");
-                                    }
                                 }
+                            }
                             if(audioenc)
-                                {
+                            {
                                 gst_bin_add(GST_BIN(codecbin), audioenc);
                                 if(!gst_element_link(audioenc, mux))
-                                    {
+                                {
                                     DEBUG_ERR("Could not link audioenc to mux!!");
                                     DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
                                     return NULL;
-                                    }
+                                }
                                 ghostaudiosink = gst_element_get_static_pad(audioenc,"sink");
-                                }
+                            }
                             else
-                                {
+                            {
                                 /*no audio codec but audio source = PCM case, explicity request audio pad*/
                                 ghostaudiosink = gst_element_get_request_pad(mux,"audio_%d");
-                                }
                             }
+                        }
                         break;
 
                         case XA_CONTAINERTYPE_WAV:
                         DEBUG_INFO("XA_CONTAINERTYPE_WAV");
                         audioenc = gst_element_factory_make("wavenc", "audioenc");
                         if(audioenc)
-                            {
+                        {
                             if (gst_bin_add(GST_BIN(codecbin), audioenc))
-                                {
+                            {
                                 DEBUG_INFO("added audioenc to codecbin");
-                                }
+                            }
                             else
-                                {
+                            {
                                 DEBUG_ERR("Could not add audioenc to codecbin");
                                 return NULL;
-                                }
+                            }
                             /*use this as linkpoint*/
                             ghostsrc = gst_element_get_static_pad(audioenc,"src");
                             ghostaudiosink = gst_element_get_static_pad(audioenc,"sink");
                             if ( ghostsrc == NULL || ghostaudiosink == NULL)
-                                {
+                            {
                                 DEBUG_ERR("Could not get src or sink ghoset element(s)");
                                 return NULL;
-                                }
                             }
+                        }
                         /* no other codecs needed */
                         break;
                         case XA_CONTAINERTYPE_JPG:
@@ -1421,167 +1418,167 @@
                         if(ctx->videoEncSettings.encoderId == XA_ADAPTID_UNINITED)
                         ctx->videoEncSettings.encoderId = XA_ADAPTID_MOTIONJPEG;
                         if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_VIDEO), ctx->videoEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                            {
+                        {
                             videoenc = gst_element_factory_make((char*)temp.adaptId, "videoenc");
-                            }
+                        }
                         if(videoenc)
-                            {
+                        {
                             gst_bin_add(GST_BIN(codecbin), videoenc);
                             /*use this as linkpoint*/
                             ghostsrc = gst_element_get_static_pad(videoenc,"src");
                             ghostvideosink = gst_element_get_static_pad(videoenc,"sink");
-                            }
+                        }
                         /* no other codecs needed */
                         break;
                         case XA_CONTAINERTYPE_RAW:
                         DEBUG_INFO("XA_CONTAINERTYPE_RAW");
                         /* no need for codec, just pass data on */
                         if(strncmp((char *)mime->mimeType, "video", 5) == 0 && ctx->xaVideoSource)
-                            {
+                        {
                             mux = gst_element_factory_make("identity", "mux");
                             gst_bin_add(GST_BIN(codecbin), mux);
                             ghostvideosink = gst_element_get_static_pad(mux,"sink");
-                            }
+                        }
                         else if (strncmp((char *)mime->mimeType, "audio", 5) == 0 && ctx->xaAudioSource)
-                            {
+                        {
                             mux = gst_element_factory_make("identity", "mux");
                             gst_bin_add(GST_BIN(codecbin), mux);
                             ghostaudiosink = gst_element_get_static_pad(mux,"sink");
-                            }
+                        }
                         else
-                            {
+                        {
                             ret = XA_RESULT_CONTENT_UNSUPPORTED;
                             DEBUG_ERR("Content mismatch with given sources!!!")
-                            }
+                        }
                         ghostsrc = gst_element_get_static_pad(mux,"src");
                         break;
                         case XA_CONTAINERTYPE_UNSPECIFIED:
                         DEBUG_INFO("No support for requested encoder...try to select encoder from mime string");
                         if(strstr( (char *) mime->mimeType, "/ogg") != 0)
-                            {
+                        {
                             DEBUG_INFO("XA_CONTAINERTYPE_UNSPECIFIED - mimetype ogg detected");
                             mux = gst_element_factory_make("oggmux", "mux");
                             if(mux)
-                                {
+                            {
                                 gst_bin_add(GST_BIN(codecbin), mux);
                                 /*use this as linkpoint*/
                                 ghostsrc = gst_element_get_static_pad(mux,"src");
                                 /*set defaults*/
                                 if(ctx->audioEncSettings.encoderId == XA_ADAPTID_UNINITED)
-                                    {
+                                {
                                     ctx->audioEncSettings.encoderId = XA_ADAPTID_VORBIS;
                                     ctx->audioEncSettings.bitsPerSample=32;
-                                    }
+                                }
                                 if(ctx->videoEncSettings.encoderId == XA_ADAPTID_UNINITED)
-                                    {
+                                {
                                     ctx->videoEncSettings.encoderId = XA_ADAPTID_THEORA;
-                                    }
+                                }
                                 if(ctx->xaAudioSource)
+                                {
+                                    if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_AUDIO), ctx->audioEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
                                     {
-                                    if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_AUDIO), ctx->audioEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                                        {
                                         audioenc = gst_element_factory_make((char*)temp.adaptId, "audioenc");
-                                        }
+                                    }
                                     if(audioenc)
-                                        {
+                                    {
                                         gst_bin_add(GST_BIN(codecbin), audioenc);
                                         if(!gst_element_link(audioenc, mux))
-                                            {
+                                        {
                                             DEBUG_ERR("Could not link audioenc to mux!!");
                                             DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
                                             return NULL;
-                                            }                                            
+                                        }
                                         ghostaudiosink = gst_element_get_static_pad(audioenc,"sink");
-                                        }
                                     }
+                                }
                                 if(strncmp((char *)mime->mimeType, "video", 5) == 0 && ctx->xaVideoSource)
+                                {
+                                    if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_VIDEO), ctx->videoEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
                                     {
-                                    if(XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_ENCODER|XACAP_VIDEO), ctx->videoEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                                        {
                                         videoenc = gst_element_factory_make((char*)temp.adaptId, "videoenc");
-                                        }
+                                    }
                                     if(videoenc)
-                                        {
+                                    {
                                         gst_bin_add(GST_BIN(codecbin), videoenc);
                                         if(!gst_element_link(videoenc, mux))
-                                            {
+                                        {
                                             DEBUG_ERR("Could not link videoenc to mux!!");
                                             DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
                                             return NULL;
-                                            }                                            
+                                        }
                                         ghostvideosink = gst_element_get_static_pad(videoenc,"sink");
-                                        }
                                     }
                                 }
                             }
+                        }
                         else
-                            {
+                        {
                             DEBUG_INFO("No support for requested mime/container type.");
                             ret = XA_RESULT_CONTENT_UNSUPPORTED;
-                            }
+                        }
                         break;
                         case XA_CONTAINERTYPE_MOBILE_DLS:
                         case XA_CONTAINERTYPE_MP4:
                         DEBUG_INFO("XA_CONTAINERTYPE_MP4");
                         mux = gst_element_factory_make("mp4mux", "mp4mux");
                         if(mux)
-                            {
+                        {
                             if (gst_bin_add(GST_BIN(codecbin), mux))
-                                {
+                            {
                                 DEBUG_INFO("Added mux to codecbin");
-                                }
+                            }
                             else
-                                {
+                            {
                                 DEBUG_ERR("Could not add mux to codecbin");
                                 return NULL;
-                                }
+                            }
                             /*use this as linkpoint*/
                             ghostsrc = gst_element_get_static_pad(mux,"src");
-                            }
+                        }
                         /* Add and link audio/video codecs */
                         /*set video defaults*/
                         if(ctx->videoEncSettings.encoderId == XA_ADAPTID_UNINITED)
                             ctx->videoEncSettings.encoderId = XA_ADAPTID_MOTIONJPEG;
                         if(ctx->xaVideoSource)
-                            {
+                        {
                             if(XACapabilitiesMgr_GetCapsById(ctx->baseObj.baseObj.capslist, (XACapsType)(XACAP_ENCODER|XACAP_VIDEO), ctx->videoEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                                {
+                            {
                                 if(temp.adaptId)
-                                    {
+                                {
                                     videoenc = gst_element_factory_make((char*)temp.adaptId, "videoenc");
-                                    }
                                 }
+                            }
                             if(videoenc)
-                                {
+                            {
                                 gst_bin_add(GST_BIN(codecbin), videoenc);
                                 if(!gst_element_link(videoenc, mux))
-                                    {
+                                {
                                     DEBUG_ERR("Could not link videoenc to mux!!");
                                     DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
                                     return NULL;
-                                    }
+                                }
                                 ghostvideosink = gst_element_get_static_pad(videoenc,"sink");
-                                }
+                            }
                             else
-                                {
+                            {
                                 /*no video codec but video source = raw video case, request video pad directly from mux*/
                                 ghostvideosink = gst_element_get_request_pad(mux,"video_%d");
-                                }
                             }
+                        }
                         /*set audio defaults*/
                         if(ctx->audioEncSettings.encoderId == XA_ADAPTID_UNINITED)
                             ctx->audioEncSettings.encoderId = XA_AUDIOCODEC_AAC;
                         if(ctx->xaAudioSource)
-                            {
+                        {
                             if(XACapabilitiesMgr_GetCapsById(ctx->baseObj.baseObj.capslist, (XACapsType)(XACAP_ENCODER|XACAP_AUDIO), ctx->audioEncSettings.encoderId, &temp) == XA_RESULT_SUCCESS)
-                                {
+                            {
                                 if(temp.adaptId)
-                                    {
+                                {
                                     audioenc = gst_element_factory_make((char*)temp.adaptId, "audioenc");
-                                    }
                                 }
+                            }
                             if(audioenc)
-                                {
+                            {
 //                                GstCaps* caps = gst_caps_new_simple((const char*)mime->mimeType,
 //                                        "mpegversion", G_TYPE_INT, 4,
 //                                        "channels", G_TYPE_INT, 1,
@@ -1590,51 +1587,51 @@
                                 gst_bin_add(GST_BIN(codecbin), audioenc);
                                 //if(!gst_element_link_filtered(audioenc, mux,caps))
                                 if(!gst_element_link(audioenc, mux))
-                                    {
+                                {
                                     DEBUG_ERR("Could not link audioenc to mux!!");
                                     DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
                                     return NULL;
-                                    }
+                                }
                                 ghostaudiosink = gst_element_get_static_pad(audioenc,"sink");
-                                }
+                            }
                             else
-                                {
+                            {
                                 /*no audio codec but audio source = PCM case, explicity request audio pad*/
                                 ghostaudiosink = gst_element_get_request_pad(mux,"audio_%d");
-                                }
                             }
-                        break;							
+                        }
+                        break;
                         case XA_CONTAINERTYPE_AMR:
                             DEBUG_INFO("XA_CONTAINERTYPE_AMR");
                             if(ctx->audioEncSettings.encoderId == XA_ADAPTID_UNINITED)
                                 ctx->audioEncSettings.encoderId = XA_AUDIOCODEC_AMR;
                              mux = gst_element_factory_make("amrmux", "mux");
                              if(mux)
-                                 {
+                             {
                                  if (gst_bin_add(GST_BIN(codecbin), mux))
-                                     {
+                                 {
                                      DEBUG_INFO("Added mux to codecbin");
-                                     /*Setting the buffer size on src since amr generates 
+                                     /*Setting the buffer size on src since amr generates
                                       * small amounts of data */
                                      g_object_set (G_OBJECT (ctx->audiosource),
                                                "blocksize", 1280,
-                                                NULL);                                         
-                                     }
+                                                NULL);
+                                 }
                                  else
-                                     {
+                                 {
                                      DEBUG_ERR("Could not add mux to codecbin");
                                      return NULL;
-                                     }
+                                 }
                                  /*use this as linkpoint*/
                                  ghostsrc = gst_element_get_static_pad(mux,"src");
-                                 }
+                             }
                              /*set audio defaults*/
                              if(ctx->xaAudioSource)
-                                 {
+                             {
                                  /*no audio codec but audio source = PCM case, explicity request audio pad*/
                                  ghostaudiosink = gst_element_get_static_pad(mux,"sink");
-                                 }
-                             break;                                
+                             }
+                             break;
                         case XA_CONTAINERTYPE_3GPP:
                         case XA_CONTAINERTYPE_BMP:
                         case XA_CONTAINERTYPE_ASF:
@@ -1658,28 +1655,28 @@
                         DEBUG_INFO("No support for requested container type.");
                         ret = XA_RESULT_CONTENT_UNSUPPORTED;
                         break;
-                        }
+                    }
                     break;
-                    }
+                }
                 default:
                 DEBUG_ERR("Incorrect data format type.");
                 ret = XA_RESULT_PARAMETER_INVALID;
                 break;
-                }
             }
+        }
         else
-            {
+        {
             DEBUG_ERR("Invalid data sink for stream recording!!");
             ret = XA_RESULT_PARAMETER_INVALID;
-            }
         }
+    }
     else
-        {/* stream recording not requested, datasink ignored, use uncoded recordstream*/
+    {/* stream recording not requested, datasink ignored, use uncoded recordstream*/
         mux = gst_element_factory_make("identity", "mux");
         gst_bin_add(GST_BIN(codecbin), mux);
         ghostsrc = gst_element_get_static_pad(mux,"src");
         ghostvideosink = gst_element_get_static_pad(mux,"sink");
-        }
+    }
 
     /*set default codecs for unrecognized*/
     if(ctx->audioEncSettings.encoderId == XA_ADAPTID_UNINITED)
@@ -1690,73 +1687,73 @@
     ctx->videoEncSettings.encoderId = XA_ADAPTID_RAWVIDEO;
 
     if ( ret != XA_RESULT_SUCCESS )
-        {
+    {
         gst_object_unref(codecbin);
         codecbin=NULL;
-        }
+    }
     else
-        {
+    {
         /*add ghost pad(s) to link to*/
         if(ghostsrc)
-            {
+        {
             gst_element_add_pad(codecbin, gst_ghost_pad_new("src",ghostsrc));
             gst_object_unref(GST_OBJECT(ghostsrc));
-            }
+        }
         if(ghostaudiosink)
-            {
+        {
             gst_element_add_pad(codecbin, gst_ghost_pad_new("sink",ghostaudiosink));
             gst_object_unref(GST_OBJECT(ghostaudiosink));
-            }
+        }
         if(ghostvideosink)
-            {
+        {
             gst_element_add_pad(codecbin, gst_ghost_pad_new("v_sink",ghostvideosink));
             gst_object_unref(GST_OBJECT(ghostvideosink));
-            }
+        }
         DEBUG_INFO_A1("Created encoder bin at %x", (int)codecbin);
-        }
+    }
 
     DEBUG_API("<-XAMediaRecorderAdapt_CreateEncodeBin");
     return codecbin;
 
-    }
+}
 
 /*
  * void XAMediaRecorderAdapt_BufferAvailable(GstElement* sink, gpointer user_data)
  * called when new buffer is available at appsink
  */
 void XAMediaRecorderAdapt_BufferAvailable(GstElement* sink, gpointer user_data)
-    {
+{
     GstBuffer *buffer=NULL;
     XAMediaRecorderAdaptationCtx* mCtx = (XAMediaRecorderAdaptationCtx*)user_data;
     DEBUG_API("->XAMediaRecorderAdapt_BufferAvailable");
     if(!mCtx || !mCtx->xaSink)
-        {
+    {
         DEBUG_ERR("Invalid context")
         return;
-        }
+    }
     /* get the buffer */
     buffer = gst_app_sink_pull_buffer(GST_APP_SINK(sink));
     if(buffer)
-        {
+    {
         guint size;
         XADataLocator_Address* address;
         size = GST_BUFFER_SIZE(buffer);
         DEBUG_INFO_A1("Pulled new buffer of size %d", size);
         address = (XADataLocator_Address*)(mCtx->xaSink->pLocator);
         if( !address || *(XAuint32*)address != XA_DATALOCATOR_ADDRESS )
-            {
+        {
             DEBUG_ERR("Invalid address datalocator")
             return;
-            }
+        }
 
         if(mCtx->writepos + size < address->length )
-            { /*enough room in buffer*/
+        { /*enough room in buffer*/
             memcpy(((char*)(address->pAddress) + mCtx->writepos),
                     GST_BUFFER_DATA (buffer), size);
             mCtx->writepos+=size;
-            }
+        }
         else
-            { /*not enough room in buffer*/
+        { /*not enough room in buffer*/
             XAAdaptEvent event =
                 {XA_RECORDITFEVENTS, XA_RECORDEVENT_BUFFER_FULL, 0, NULL};
 
@@ -1770,24 +1767,24 @@
             mCtx->writepos=0;
             mCtx->recThrCtx.buffer_insufficient = XA_BOOLEAN_TRUE;
             if ( XAImpl_PostSemaphore( mCtx->recThrCtx.bufInsufficientSem ) != XA_RESULT_SUCCESS)
-                {
+            {
                 DEBUG_ERR("Posting buffer-insufficien semaphore FAILED!");
-                }
             }
-        gst_buffer_unref (buffer);
         }
+        gst_buffer_unref (buffer);
+    }
     else
-        {
+    {
         DEBUG_ERR("Could not pull buffer from appsink!");
-        }
+    }
     DEBUG_API("<-XAMediaRecorderAdapt_BufferAvailable");
-    }
+}
 
 /*
  * void* XAMediaRecorderAdapt_RecordEventThr( void* ctx )
  */
 void* XAMediaRecorderAdapt_RecordEventThr( void* ctx )
-    {
+{
     XAMediaRecorderAdaptationCtx* mrCtx = (XAMediaRecorderAdaptationCtx*)ctx;
     GstStateChangeReturn gret;
     XAresult ret;
@@ -1796,43 +1793,43 @@
     /* Wait semaphore here */
     ret = XAImpl_WaitSemaphore( mrCtx->recThrCtx.bufInsufficientSem );
     if ( ret != XA_RESULT_SUCCESS)
-        {
+    {
         DEBUG_ERR("Could not start semaphore");
-        }
+    }
 
     if(mrCtx->recThrCtx.buffer_insufficient)
-        {
+    {
         mrCtx->baseObj.binWantedState = GST_STATE_PAUSED;
         XAAdaptationGst_PrepareAsyncWait(&(mrCtx->baseObj));
         gret = gst_element_set_state( GST_ELEMENT(mrCtx->baseObj.bin), mrCtx->baseObj.binWantedState);
         if( gret == GST_STATE_CHANGE_ASYNC )
-            {
+        {
             DEBUG_INFO("Start to wait recoder state change.");
             XAAdaptationGst_StartAsyncWait(&(mrCtx->baseObj));
             DEBUG_INFO("Recorder state change async. SUCCESFULL.");
-            }
+        }
         else if( gret == GST_STATE_CHANGE_FAILURE )
-            {
+        {
             DEBUG_INFO("Recorder state change FAILED");
             /*ret = XA_RESULT_INTERNAL_ERROR;*/
-            }
+        }
         else
-            {
+        {
             DEBUG_INFO("Recorder state change SUCCESFULL")
-            }
+        }
 
         mrCtx->baseObj.waitingasyncop= XA_BOOLEAN_FALSE;
-        }
+    }
     DEBUG_API("<-XAMediaRecorderAdapt_RecordEventThr");
     return NULL;
-    }
+}
 
 /*XAresult XAMediaRecorderAdapt_CreateCapsFilter( XAMediaRecorderAdaptationCtx* ctx )
 {
 
     GstCaps* encSrcCaps = NULL;
     XADataFormat_MIME *pMime = 0;
-    
+
     if (!ctx )
         return XA_RESULT_PARAMETER_INVALID;
 
@@ -1852,10 +1849,10 @@
         DEBUG_ERR("Could not add audio filter to bin");
         return XA_RESULT_INTERNAL_ERROR;
     }
-    
+
     pMime = (XADataFormat_MIME*) ctx->xaSink->pFormat;
     if(!strcmp((const char*)pMime->mimeType, "audio/amr"))
-        {
+    {
         encSrcCaps = gst_caps_new_simple ("audio/amr",
                    "width", G_TYPE_INT, ctx->audioEncSettings.bitsPerSample,
                    "depth", G_TYPE_INT, ctx->audioEncSettings.bitsPerSample,
@@ -1863,14 +1860,14 @@
                    "endianness",G_TYPE_INT, G_BYTE_ORDER,
                    "rate", G_TYPE_INT,  ctx->audioEncSettings.sampleRate,
                    "channels", G_TYPE_INT, ctx->audioEncSettings.channelsOut, NULL);
-        }
+    }
     else
-        {
+    {
         encSrcCaps = gst_caps_new_full(
                 gst_structure_new("audio/x-raw-int",
                   "channels", G_TYPE_INT, ctx->audioEncSettings.channelsOut,
-				  "width", G_TYPE_INT, ctx->audioEncSettings.bitsPerSample,
-				  "width", G_TYPE_INT, ctx->audioEncSettings.bitsPerSample,
+                  "width", G_TYPE_INT, ctx->audioEncSettings.bitsPerSample,
+                  "width", G_TYPE_INT, ctx->audioEncSettings.bitsPerSample,
                   "rate", G_TYPE_INT, ctx->audioEncSettings.sampleRate,
                   "bitrate", G_TYPE_INT, ctx->audioEncSettings.bitRate,
                   "signed",G_TYPE_BOOLEAN, TRUE,
@@ -1886,7 +1883,7 @@
                     NULL),
                 NULL);
 
-        }
+    }
 
 
     DEBUG_INFO_A1("audio encoder config from settings: %s",gst_caps_to_string(encSrcCaps));
--- a/khronosfws/openmax_al/src/gst_adaptation/xametadataadaptation.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/gst_adaptation/xametadataadaptation.c	Thu Sep 02 20:58:01 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description: 
+* Description:
 *
 */
 
@@ -110,7 +110,7 @@
     XAresult ret = XA_RESULT_SUCCESS;
     XAMetadataAdaptVars* mdv;
     DEBUG_API("->XAMetadataAdapt_PreInit");
-    
+
     if ( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
     {
         mdv = (XAMetadataAdaptVars*) calloc(1, sizeof(XAMetadataAdaptVars));
@@ -522,7 +522,7 @@
                 DEBUG_ERR("Nodetype not supported!");
                 ret = XA_RESULT_CONTENT_UNSUPPORTED;
                 DEBUG_API_A1("<-XAMetadataInsertionItfAdapt_CreateChildNode (%d)", (int)ret);
-                return ret;            
+                return ret;
             }
 
             mdv = mCtx->metadatavars;
@@ -530,7 +530,9 @@
             {
                 DEBUG_ERR("Metadata variables not initialized!");
                 ret = XA_RESULT_PRECONDITIONS_VIOLATED;
+                return ret;
             }
+
             switch(type)
             {
             case XA_NODETYPE_IMAGE:
@@ -858,7 +860,7 @@
  */
 XAMetadataAdaptVars* XAMetadataAdapt_GetMetadataVars(XAAdaptationGstCtx *bCtx)
 {
-    
+
     if( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
     {
         return ((XAMediaRecorderAdaptationCtx*)bCtx)->metadatavars;
@@ -985,7 +987,7 @@
                         GST_MESSAGE_TYPE_NAME(message), GST_OBJECT_NAME(GST_MESSAGE_SRC(message)));
         gst_message_parse_tag (message, &new_tags);
         /* NOTE: only general tags received this way (not child nodes)*/
-        
+
         if( bCtx->baseObj.ctxId == XAMediaRecorderAdaptation )
         {
             old_tags = &((XAMediaRecorderAdaptationCtx*)bCtx)->metadatavars->generaltags;
--- a/khronosfws/openmax_al/src/mediaplayer/xaseekitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mediaplayer/xaseekitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -242,9 +242,9 @@
 void XASeekItfImpl_Free(XASeekItfImpl* self)
     {
     DEBUG_API("->XASeekItfImpl_Free");
-    assert(self==self->self);
     if(self)
         {
+        assert(self==self->self);
         free(self);
         }
     DEBUG_API("<-XASeekItfImpl_Free");
--- a/khronosfws/openmax_al/src/mediarecorder/xaaudioencoderitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mediarecorder/xaaudioencoderitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -304,9 +304,9 @@
 void XAAudioEncoderItfImpl_Free(XAAudioEncoderItfImpl* self)
     {
     DEBUG_API("->XAAudioEncoderItfImpl_Free");
-    assert( self==self->self );
     if(self)
         {
+        assert( self==self->self );
         free(self);
         }
     DEBUG_API("<-XAAudioEncoderItfImpl_Free");
--- a/khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c	Thu Sep 02 20:58:01 2010 +0300
@@ -208,7 +208,7 @@
     /* Determine framework type that can handle recording */
     fwType = (FWMgrFwType) FWMgrMOUnknown;
     /**/
-    if (pDataSnk->pLocator)
+    if (pDataSnk && pDataSnk->pLocator)
         {
         XADataLocator_URI* dataLoc = (XADataLocator_URI*) pDataSnk->pLocator;
         if (dataLoc->locatorType == XA_DATALOCATOR_URI)
--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -413,12 +413,12 @@
         {
         //RDebug::Print(_L("CMMFBackendEngine::MvpuoEvent: Audio Device taken"));
         PausePlayback();
-        XAAdaptEvent event =
+        XAAdaptEvent alEvent =
             {
             XA_PLAYITFEVENTS, XA_OBJECT_EVENT_RESOURCES_LOST, 0, NULL
             };
         XAAdaptationBase_SendAdaptEvents(
-                (XAAdaptationBaseCtx*) iAdaptContext, &event);
+                (XAAdaptationBaseCtx*) iAdaptContext, &alEvent);
         }
     else if (event.iEventType == KMMFRefreshMetaData)
         {
--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h	Thu Sep 02 20:58:01 2010 +0300
@@ -31,7 +31,7 @@
 #include <videoplayer2.h>
 #include <e32std.h>
 #include <mmf/common/mmferrors.h>
-#include <mmf/common/Mmfbase.h>
+#include <mmf/common/mmfbase.h>
 #include <MMFMetadataEventConfigConstants.h>
 #include <mmf/common/mmfstandardcustomcommands.h>
 #ifdef ENABLE_GRAPHICS_SURFACE_INTEGRATION
--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -28,358 +28,358 @@
 
 CMMFRadioBackendEngine* CMMFRadioBackendEngine::Instance()
 {
-	if (!s_instance)
-	{	
-		s_instance = new CMMFRadioBackendEngine();
-		if (s_instance)
-		{
-			s_instance->ConstructL();
-		}
-	}
-	return s_instance;
+    if (!s_instance)
+    {
+        s_instance = new CMMFRadioBackendEngine();
+        if (s_instance)
+        {
+            s_instance->ConstructL();
+        }
+    }
+    return s_instance;
 }
 
 void CMMFRadioBackendEngine::DeleteInstance()
 {
-	if (iFmTunerUtility)
+    if (iFmTunerUtility)
   {
-  	iFmTunerUtility->Close();
-  	iFmTunerUtility = NULL;
-  }	
+    iFmTunerUtility->Close();
+    iFmTunerUtility = NULL;
+  }
   if (iRadioPlayerUtility)
   {
-  	iRadioPlayerUtility->Close();
-  	iRadioPlayerUtility = NULL;
+    iRadioPlayerUtility->Close();
+    iRadioPlayerUtility = NULL;
   }
-  
+
   if (iRadioUtility)
   {
-		delete iRadioUtility;
-		iRadioUtility = NULL;
-	}
-		
+        delete iRadioUtility;
+        iRadioUtility = NULL;
+    }
+
 }
 
 CMMFRadioBackendEngine::~CMMFRadioBackendEngine()
 {
 }
-    
+
 CMMFRadioBackendEngine::CMMFRadioBackendEngine()
 {
-	
+
 }
 
 void CMMFRadioBackendEngine::ConstructL()
-{		
- 	iRadioUtility = CRadioUtility::NewL( ETrue );
- 	if (iRadioUtility)
- 	{		
- 		iFmTunerUtility = &iRadioUtility->RadioFmTunerUtilityL( *this );
- 	}
- 	if (iFmTunerUtility)
- 	{
- 		iFmTunerUtility->EnableTunerInOfflineMode( ETrue );
- 		iFmTunerUtility->RequestTunerControl();  
- 	} 
+{
+    iRadioUtility = CRadioUtility::NewL( ETrue );
+    if (iRadioUtility)
+    {
+        iFmTunerUtility = &iRadioUtility->RadioFmTunerUtilityL( *this );
+    }
+    if (iFmTunerUtility)
+    {
+        iFmTunerUtility->EnableTunerInOfflineMode( ETrue );
+        iFmTunerUtility->RequestTunerControl();
+    }
   if (iRadioUtility)
-  {  
- 		iRadioPlayerUtility = &iRadioUtility->RadioPlayerUtilityL( *this ); 
- 	}   
- 	 
-	SetForceMonoFlag();
-	iDefaultFrequency = RADIO_DEFAULT_FREQ;
-	iDefaultFreqRange = (TFmRadioFrequencyRange)RADIO_DEFAULT_FREQ_RANGE;  
-	iDefaultMinFreq = RADIO_DEFAULT_MIN_FREQ;
-	iDefaultMaxFreq = RADIO_DEFAULT_MAX_FREQ;
-	 	 
+  {
+        iRadioPlayerUtility = &iRadioUtility->RadioPlayerUtilityL( *this );
+    }
+
+    SetForceMonoFlag();
+    iDefaultFrequency = RADIO_DEFAULT_FREQ;
+    iDefaultFreqRange = (TFmRadioFrequencyRange)RADIO_DEFAULT_FREQ_RANGE;
+    iDefaultMinFreq = RADIO_DEFAULT_MIN_FREQ;
+    iDefaultMaxFreq = RADIO_DEFAULT_MAX_FREQ;
+
 }
 void CMMFRadioBackendEngine::StationSeek(XAboolean aUpwards)
 {
-	if (iFmTunerUtility)
- 	{
-  	iFmTunerUtility->StationSeek(aUpwards);
- 	}	
+    if (iFmTunerUtility)
+    {
+    iFmTunerUtility->StationSeek(aUpwards);
+    }
 }
 
 void CMMFRadioBackendEngine::SetFrequency(TInt aFreq)
 {
-  DEBUG_API_A1("CMMFRadioBackendEngine::SetFrequency: %d", aFreq);	
-  
-	if (iFmTunerUtility)
- 	{
-  	iFmTunerUtility->SetFrequency(aFreq);
- 	}	
+  DEBUG_API_A1("CMMFRadioBackendEngine::SetFrequency: %d", aFreq);
+
+    if (iFmTunerUtility)
+    {
+    iFmTunerUtility->SetFrequency(aFreq);
+    }
 }
 
 TInt CMMFRadioBackendEngine::GetFrequency(TInt& aFreq)
 {
-  DEBUG_API("CMMFRadioBackendEngine::GetFrequency");	
-	TInt ret = KErrNotFound;
-	if (iFmTunerUtility)
-	{
-  	ret = iFmTunerUtility->GetFrequency(aFreq);
-  	if (ret != KErrNone)
-  	{
-  		aFreq = iDefaultFrequency;
-  		ret = KErrNone;
-  	}
- 	}	
-  DEBUG_API_A1("CMMFRadioBackendEngine::GetFrequency RET: %d", ret);	 
-//  RDebug::Print(_L("CMMFRadioBackendEngine::GetFrequency RET: %d"), ret);	 
- 	return ret; 	
+  DEBUG_API("CMMFRadioBackendEngine::GetFrequency");
+    TInt ret = KErrNotFound;
+    if (iFmTunerUtility)
+    {
+    ret = iFmTunerUtility->GetFrequency(aFreq);
+    if (ret != KErrNone)
+    {
+        aFreq = iDefaultFrequency;
+        ret = KErrNone;
+    }
+    }
+  DEBUG_API_A1("CMMFRadioBackendEngine::GetFrequency RET: %d", ret);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::GetFrequency RET: %d"), ret);
+    return ret;
 }
 
 TInt CMMFRadioBackendEngine::GetSignalStrength(TInt& aSignalStrength)
 {
-	TInt ret = KErrNotFound;
- 	if (iFmTunerUtility)
-	{
-  	ret = iFmTunerUtility->GetSignalStrength(aSignalStrength);
- 	}	
-  DEBUG_API_A1("CMMFRadioBackendEngine::GetSignalStrength RET: %d", ret);	
-//  RDebug::Print(_L("CMMFRadioBackendEngine::GetSignalStrength RET: %d"), ret);	    	
-	return ret;
+    TInt ret = KErrNotFound;
+    if (iFmTunerUtility)
+    {
+    ret = iFmTunerUtility->GetSignalStrength(aSignalStrength);
+    }
+  DEBUG_API_A1("CMMFRadioBackendEngine::GetSignalStrength RET: %d", ret);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::GetSignalStrength RET: %d"), ret);
+    return ret;
 }
 
 void CMMFRadioBackendEngine::CancelSetFrequency()
 {
-	if (iFmTunerUtility)
- 	{
- 		iFmTunerUtility->CancelSetFrequency();
- 	}	
+    if (iFmTunerUtility)
+    {
+        iFmTunerUtility->CancelSetFrequency();
+    }
 }
 
 void CMMFRadioBackendEngine::CancelStationSeek()
 {
-	if (iFmTunerUtility)
- 	{
- 		iFmTunerUtility->CancelStationSeek();
- 	}	
+    if (iFmTunerUtility)
+    {
+        iFmTunerUtility->CancelStationSeek();
+    }
 }
 
 void CMMFRadioBackendEngine::SetFreqRange(TFmRadioFrequencyRange aRange)
 {
-	if (iFmTunerUtility)
- 	{
- 		iFmTunerUtility->SetFrequencyRange(aRange);
- 	}	
+    if (iFmTunerUtility)
+    {
+        iFmTunerUtility->SetFrequencyRange(aRange);
+    }
 }
 
 TInt CMMFRadioBackendEngine::GetFreqRange(TFmRadioFrequencyRange& aRange)
 {
-	TInt ret = KErrNotFound;
-	TInt minFreq;
-	TInt maxFreq;
-		
- 	if (iFmTunerUtility)
- 	{
- 		ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)minFreq, (TInt&)maxFreq);
- 		if (ret != KErrNone)
- 		{
- 			minFreq = iDefaultMinFreq;
- 			maxFreq = iDefaultMaxFreq;
- 			aRange = iDefaultFreqRange;
- 			ret = KErrNone;
- 		}
- 	}	
-  DEBUG_API_A1("CMMFRadioBackendEngine::GetFreqRange RET: %d", ret);	 
-//  RDebug::Print(_L("CMMFRadioBackendEngine::GetFreqRange RET: %d"), ret);	   	
+    TInt ret = KErrNotFound;
+    TInt minFreq;
+    TInt maxFreq;
+
+    if (iFmTunerUtility)
+    {
+        ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)minFreq, (TInt&)maxFreq);
+        if (ret != KErrNone)
+        {
+            minFreq = iDefaultMinFreq;
+            maxFreq = iDefaultMaxFreq;
+            aRange = iDefaultFreqRange;
+            ret = KErrNone;
+        }
+    }
+  DEBUG_API_A1("CMMFRadioBackendEngine::GetFreqRange RET: %d", ret);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::GetFreqRange RET: %d"), ret);
   return ret;
 }
 
 TInt CMMFRadioBackendEngine::GetFreqRangeProperties(TFmRadioFrequencyRange& aRange, TInt& aMinFreq, TInt& aMaxFreq)
 {
-	TInt ret = KErrNotFound;
-		
-	if (iFmTunerUtility)
- 	{
-  		ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)aMinFreq, (TInt&)aMaxFreq);
-  		if (ret != KErrNone)
-  		{
-  			aRange = iDefaultFreqRange;
-  			aMinFreq = iDefaultMinFreq;
-  			aMaxFreq = iDefaultMaxFreq;
-  			ret = KErrNone;
-  		}
- 	}	
-  DEBUG_API_A1("CMMFRadioBackendEngine::GetFreqRangeProperties RET: %d", ret);	 	
-//  RDebug::Print(_L("CMMFRadioBackendEngine::GetFreqRangeProperties RET: %d"), ret);	   
+    TInt ret = KErrNotFound;
+
+    if (iFmTunerUtility)
+    {
+        ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)aMinFreq, (TInt&)aMaxFreq);
+        if (ret != KErrNone)
+        {
+            aRange = iDefaultFreqRange;
+            aMinFreq = iDefaultMinFreq;
+            aMaxFreq = iDefaultMaxFreq;
+            ret = KErrNone;
+        }
+    }
+  DEBUG_API_A1("CMMFRadioBackendEngine::GetFreqRangeProperties RET: %d", ret);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::GetFreqRangeProperties RET: %d"), ret);
   return ret;
 }
 TInt CMMFRadioBackendEngine::GetMaxVolume(TInt& aMaxVol)
 {
-	TInt ret = KErrNotFound;
+    TInt ret = KErrNotFound;
 
-	if (iRadioPlayerUtility)
-	{
-		ret = iRadioPlayerUtility->GetMaxVolume(aMaxVol);
-	}		 
+    if (iRadioPlayerUtility)
+    {
+        ret = iRadioPlayerUtility->GetMaxVolume(aMaxVol);
+    }
   return ret;
 }
 
 TInt CMMFRadioBackendEngine::SetVolume(TInt aVol)
 {
-	TInt ret = KErrNotFound; 
+    TInt ret = KErrNotFound;
 
-	if (iRadioPlayerUtility)
-	{
-		ret = iRadioPlayerUtility->SetVolume(aVol);
-	}		 
+    if (iRadioPlayerUtility)
+    {
+        ret = iRadioPlayerUtility->SetVolume(aVol);
+    }
   return ret;
 }
 
 TInt CMMFRadioBackendEngine::SetMute(XAboolean aMute)
 {
-	TInt ret = KErrNotFound;
+    TInt ret = KErrNotFound;
 
-	if (iRadioPlayerUtility)
-	{
-		ret = iRadioPlayerUtility->Mute(aMute);
-	}		
+    if (iRadioPlayerUtility)
+    {
+        ret = iRadioPlayerUtility->Mute(aMute);
+    }
   return ret;
 }
 
 TInt CMMFRadioBackendEngine::GetVolume(TInt& aVol)
 {
-	TInt ret = KErrNotFound;
+    TInt ret = KErrNotFound;
 
-	if (iRadioPlayerUtility)
-	{
-		ret = iRadioPlayerUtility->GetVolume(aVol);
-	}		
+    if (iRadioPlayerUtility)
+    {
+        ret = iRadioPlayerUtility->GetVolume(aVol);
+    }
   return ret;
 }
 
-TInt CMMFRadioBackendEngine::GetForcedMonoReception(XAuint32& aForcedMono) 
+TInt CMMFRadioBackendEngine::GetForcedMonoReception(XAuint32& aForcedMono)
 {
-	TInt ret = KErrNotFound;
-	TBool forceMono;
+    TInt ret = KErrNotFound;
+    TBool forceMono(EFalse);
 
-	if (iFmTunerUtility)
-	{
-		ret = iFmTunerUtility->GetForcedMonoReception(forceMono);
-		if (ret == KErrNotReady)
-		{
-			aForcedMono = XA_STEREOMODE_AUTO; // Radio Utility Default value
-			return KErrNone;
-		}
-	}		 
-		
-	
-	if (forceMono)
-	{
-		aForcedMono = XA_STEREOMODE_MONO;
-	}
-	else
-	{
-		if (iForceStereo)			
-			aForcedMono = XA_STEREOMODE_STEREO;		
-		else	
-			aForcedMono = XA_STEREOMODE_AUTO;					
-	}
+    if (iFmTunerUtility)
+    {
+        ret = iFmTunerUtility->GetForcedMonoReception(forceMono);
+        if (ret == KErrNotReady)
+        {
+            aForcedMono = XA_STEREOMODE_AUTO; // Radio Utility Default value
+            return KErrNone;
+        }
+    }
+
+
+    if (forceMono)
+    {
+        aForcedMono = XA_STEREOMODE_MONO;
+    }
+    else
+    {
+        if (iForceStereo)
+            aForcedMono = XA_STEREOMODE_STEREO;
+        else
+            aForcedMono = XA_STEREOMODE_AUTO;
+    }
   return ret;
 }
 
 void CMMFRadioBackendEngine::PlayRadio()
 {
-	if (iRadioPlayerUtility)
-	{
-		iRadioPlayerUtility->Play();
-	}		
+    if (iRadioPlayerUtility)
+    {
+        iRadioPlayerUtility->Play();
+    }
 }
 
 void CMMFRadioBackendEngine::StopRadio()
 {
-	if (iRadioPlayerUtility)
-	{
-		iRadioPlayerUtility->Stop();
-	}		
+    if (iRadioPlayerUtility)
+    {
+        iRadioPlayerUtility->Stop();
+    }
 }
 
 TInt CMMFRadioBackendEngine::ForceMonoReception(XAuint32 aForcedMono)
 {
-	TInt ret = KErrNotFound;
-	XAuint32 currentMode;
-	
-	ret = GetForcedMonoReception(currentMode);
-	if (ret != XA_RESULT_SUCCESS)
-		return ret;
-		
-	if (iFmTunerUtility)
-	{
-		if (aForcedMono == XA_STEREOMODE_MONO)
-		{
-			iForceStereo = EFalse;
-			ret = iFmTunerUtility->ForceMonoReception(ETrue);
-		}
-		else if (aForcedMono == XA_STEREOMODE_STEREO)
-		{
-			iForceStereo = ETrue;						
-			if (currentMode == XA_STEREOMODE_AUTO) // Transition from Auto to Stereo doesn't require Utility call:
-			{
-				MrftoForcedMonoChange(ETrue);
-			}	
-			else
-			{	
-				ret = iFmTunerUtility->ForceMonoReception(EFalse);
-			}
-		}	
-		else // (aForcedMono == XA_STEREOMODE_AUTO)
-		{
-			iForceStereo = EFalse;
-			if (currentMode == XA_STEREOMODE_STEREO) // Transition from Stereo to Auto doesn't require Utility call:	
-			{
-				MrftoForcedMonoChange(EFalse);
-			}	
-			else
-			{										
-				ret = iFmTunerUtility->ForceMonoReception(EFalse);
-			}
-		}							
-	}	
-  DEBUG_API_A1("CMMFRadioBackendEngine::ForceMonoReception RET: %d", ret);	
- // RDebug::Print(_L("CMMFRadioBackendEngine::ForceMonoReception RET: %d"), ret);	   		
+    TInt ret = KErrNotFound;
+    XAuint32 currentMode;
+
+    ret = GetForcedMonoReception(currentMode);
+    if (ret != XA_RESULT_SUCCESS)
+        return ret;
+
+    if (iFmTunerUtility)
+    {
+        if (aForcedMono == XA_STEREOMODE_MONO)
+        {
+            iForceStereo = EFalse;
+            ret = iFmTunerUtility->ForceMonoReception(ETrue);
+        }
+        else if (aForcedMono == XA_STEREOMODE_STEREO)
+        {
+            iForceStereo = ETrue;
+            if (currentMode == XA_STEREOMODE_AUTO) // Transition from Auto to Stereo doesn't require Utility call:
+            {
+                MrftoForcedMonoChange(ETrue);
+            }
+            else
+            {
+                ret = iFmTunerUtility->ForceMonoReception(EFalse);
+            }
+        }
+        else // (aForcedMono == XA_STEREOMODE_AUTO)
+        {
+            iForceStereo = EFalse;
+            if (currentMode == XA_STEREOMODE_STEREO) // Transition from Stereo to Auto doesn't require Utility call:
+            {
+                MrftoForcedMonoChange(EFalse);
+            }
+            else
+            {
+                ret = iFmTunerUtility->ForceMonoReception(EFalse);
+            }
+        }
+    }
+  DEBUG_API_A1("CMMFRadioBackendEngine::ForceMonoReception RET: %d", ret);
+ // RDebug::Print(_L("CMMFRadioBackendEngine::ForceMonoReception RET: %d"), ret);
   return ret;
 }
 
-XAresult CMMFRadioBackendEngine::SetForceMonoFlag() 
+XAresult CMMFRadioBackendEngine::SetForceMonoFlag()
 {
-	TInt ret = KErrNotFound;
-	TBool forceMono;
+    TInt ret = KErrNotFound;
+    TBool forceMono(EFalse);
 
-	if (iFmTunerUtility)
-	{
-		ret = iFmTunerUtility->GetForcedMonoReception(forceMono);
-		if (ret == KErrNotReady)
-		{
-			// For Radio Utility Default value = XA_STEREOMODE_STEREO
-			iForceStereo = ETrue;
-			return KErrNone;
-		}
-				
-	}		 
-		
-	if (forceMono == XA_STEREOMODE_MONO)
-	{
-		iForceStereo = EFalse;
-	}
-	else
-	{
-		iForceStereo = ETrue;			
-	}
+    if (iFmTunerUtility)
+    {
+        ret = iFmTunerUtility->GetForcedMonoReception(forceMono);
+        if (ret == KErrNotReady)
+        {
+            // For Radio Utility Default value = XA_STEREOMODE_STEREO
+            iForceStereo = ETrue;
+            return KErrNone;
+        }
+
+    }
+
+    if (forceMono == XA_STEREOMODE_MONO)
+    {
+        iForceStereo = EFalse;
+    }
+    else
+    {
+        iForceStereo = ETrue;
+    }
   return ret;
 }
 XAresult CMMFRadioBackendEngine::SetRadioAdaptContext(void * adaptcontext)
 {
-	iRadioAdaptContext = adaptcontext;
-	return XA_RESULT_SUCCESS;
-} 
+    iRadioAdaptContext = adaptcontext;
+    return XA_RESULT_SUCCESS;
+}
 
 XAresult CMMFRadioBackendEngine::SetPlayerAdaptContext(void * adaptcontext)
 {
-	iPlayerAdaptContext = adaptcontext;
-	return XA_RESULT_SUCCESS;
-} 
+    iPlayerAdaptContext = adaptcontext;
+    return XA_RESULT_SUCCESS;
+}
 
 XAresult TranslateError(TInt error)
     {
@@ -390,9 +390,9 @@
             status = XA_RESULT_SUCCESS;
             break;
         // to do: investigate and add other possible errors:
-            
+
        /* case XA_RESULT_PRECONDITIONS_VIOLATED:
- 
+
             break;
         case XA_RESULT_PARAMETER_INVALID:
 
@@ -404,7 +404,7 @@
 
             break;
         case XA_RESULT_RESOURCE_LOST:
- 
+
             break;
         case XA_RESULT_IO_ERROR:
 
@@ -416,7 +416,7 @@
 
             break;
         case XA_RESULT_CONTENT_UNSUPPORTED:
- 
+
             break;
         case XA_RESULT_CONTENT_NOT_FOUND:
 
@@ -441,7 +441,7 @@
             break;
             */
         default:
-        	break;
+            break;
         } // end switch
     return status;
     }
@@ -464,8 +464,8 @@
 void CMMFRadioBackendEngine::MrftoSquelchChange(
     TBool /*aSquelch*/ )
 {
-	
-}    
+
+}
 
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoForcedMonoChanged
@@ -475,11 +475,11 @@
 void CMMFRadioBackendEngine::MrftoForcedMonoChange(
     TBool aForcedMono )
 {
-  DEBUG_API_A1("CMMFRadioBackendEngine::MrftoForcedMonoChange: aForcedMono =  %d", aForcedMono);	
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoForcedMonoChange: aForcedMono = %d"), aForcedMono);	   	
-	XARadioItfAdapt_StereoStatusChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aForcedMono);    
-}  
-    
+  DEBUG_API_A1("CMMFRadioBackendEngine::MrftoForcedMonoChange: aForcedMono =  %d", aForcedMono);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoForcedMonoChange: aForcedMono = %d"), aForcedMono);
+    XARadioItfAdapt_StereoStatusChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aForcedMono);
+}
+
  // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoFrequencyChange
 // Called when the tuned frequency changes
@@ -488,11 +488,11 @@
 void CMMFRadioBackendEngine::MrftoFrequencyChange(
     TInt aNewFrequency)
 {
- 	DEBUG_API_A1("CMMFRadioBackendEngine::MrftoFrequencyChange: aNewFrequency =  %d", aNewFrequency);	
- // RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrequencyChange aNewFrequency = %d"), aNewFrequency);	  			
-	XARadioItfAdapt_FrequencyChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aNewFrequency);    
-}  
-    
+    DEBUG_API_A1("CMMFRadioBackendEngine::MrftoFrequencyChange: aNewFrequency =  %d", aNewFrequency);
+ // RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrequencyChange aNewFrequency = %d"), aNewFrequency);
+    XARadioItfAdapt_FrequencyChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aNewFrequency);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoFrequencyRangeChange
 //
@@ -501,11 +501,11 @@
 void CMMFRadioBackendEngine::MrftoFrequencyRangeChange(
     TFmRadioFrequencyRange aNewRange )
 {
- 	DEBUG_API_A1("CMMFRadioBackendEngine::MrftoFrequencyRangeChange: aNewRange =  %d", aNewRange);		
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrequencyRangeChange: aNewRange = %d"), aNewRange);	  		
-	XARadioItfAdapt_FrequencyRangeChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aNewRange);        
-} 
- 
+    DEBUG_API_A1("CMMFRadioBackendEngine::MrftoFrequencyRangeChange: aNewRange =  %d", aNewRange);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrequencyRangeChange: aNewRange = %d"), aNewRange);
+    XARadioItfAdapt_FrequencyRangeChange((XAAdaptationBaseCtx*)iRadioAdaptContext, aNewRange);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoOfflineModeStatusChange
 // Called when offline mode status changes
@@ -514,9 +514,9 @@
 void CMMFRadioBackendEngine::MrftoOfflineModeStatusChange(
     TBool /*aOfflineMode*/ )
 {
- 
-}  
-    
+
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoAntennaStatusChange
 // Called when antenna status changes.
@@ -536,9 +536,9 @@
 void CMMFRadioBackendEngine::MrftoFmTransmitterStatusChange(
     TBool /*aActive*/ )
 {
- 
+
 }
-  
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoStationSeekComplete
 //
@@ -548,9 +548,9 @@
     TInt aError,
     TInt aFrequency )
 {
-	XARadioItfAdapt_SeekComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError, aFrequency);    
-}      	
-    
+    XARadioItfAdapt_SeekComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError, aFrequency);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoSetFrequencyComplete
 // ----------------------------------------------------
@@ -558,18 +558,18 @@
 void CMMFRadioBackendEngine::MrftoSetFrequencyComplete(
     TInt aError )
 {
- 	DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: aError =  %d", aError);		
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrrequencyComplete: aError = %d"), aError);	  		
-	TInt freq = 0;
-  if (!aError) 
- 	{
- 		iFmTunerUtility->GetFrequency(freq);
- 	}
- 	DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: new freq is: %d", freq);	 
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: new freq is: %d"), freq);	  		
-	XARadioItfAdapt_SetFrequencyComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError, freq);    
-}  
-    
+    DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: aError =  %d", aError);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoFrrequencyComplete: aError = %d"), aError);
+    TInt freq = 0;
+  if (!aError)
+    {
+        iFmTunerUtility->GetFrequency(freq);
+    }
+    DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: new freq is: %d", freq);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoSetFrequencyComplete: new freq is: %d"), freq);
+    XARadioItfAdapt_SetFrequencyComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError, freq);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete
 //
@@ -578,9 +578,9 @@
 void CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete(
     TInt aError )
 {
- 	DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete: aError =  %d", aError);		
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete: aError = %d"), aError);	  	
-	XARadioItfAdapt_SetFrequencyRangeComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError);       	  
+    DEBUG_API_A1("CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete: aError =  %d", aError);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoSetFrequencyRangeComplete: aError = %d"), aError);
+    XARadioItfAdapt_SetFrequencyRangeComplete((XAAdaptationBaseCtx*)iRadioAdaptContext, aError);
 }
 
 // ----------------------------------------------------
@@ -590,9 +590,9 @@
 void CMMFRadioBackendEngine::MrftoRequestTunerControlComplete(
     TInt aError)
 {
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoRequestTunerControlComplete: aError = %d"), aError);	  	  			 
-} 
-    
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrftoRequestTunerControlComplete: aError = %d"), aError);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrpoBalanceChange
 //
@@ -602,9 +602,9 @@
     TInt /*aLeftPercentage*/,
     TInt /*aRightPercentage*/ )
 {
-	
-} 
-    
+
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrpoMuteChange
 //
@@ -613,9 +613,9 @@
 void CMMFRadioBackendEngine::MrpoMuteChange(
     TBool aMute )
 {
-	XANokiaVolumeExtItfAdapt_MuteChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, aMute);   
-}  
-    
+    XANokiaVolumeExtItfAdapt_MuteChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, aMute);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrpoVolumeChange
 //
@@ -624,9 +624,9 @@
 void CMMFRadioBackendEngine::MrpoVolumeChange(
     TInt aVolume )
 {
-	XANokiaLinearVolumeItfAdapt_VolumeChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, aVolume);      	
-}  
-    
+    XANokiaLinearVolumeItfAdapt_VolumeChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, aVolume);
+}
+
 // ----------------------------------------------------
 // CMMFRadioBackendEngine::MrpoStateChange This is Tuner State
 // Called when the state of the tuner changes
@@ -635,130 +635,130 @@
 void CMMFRadioBackendEngine::MrpoStateChange(
     TPlayerState aState,
     TInt aError )
-{	    	
-	if ( aError )
- 	{
- 		DEBUG_API_A1("CMMFRadioBackendEngine::MrpoStateChange: aError =  %d", aError);
- // 	RDebug::Print(_L("CMMFRadioBackendEngine::MrpoStateChange: aError = %d"), aError);	  	 			     	
- 	}
+{
+    if ( aError )
+    {
+        DEBUG_API_A1("CMMFRadioBackendEngine::MrpoStateChange: aError =  %d", aError);
+ //     RDebug::Print(_L("CMMFRadioBackendEngine::MrpoStateChange: aError = %d"), aError);
+    }
+
+    DEBUG_API_A1("CMMFRadioBackendEngine::MrpoStateChange: new state =  %d", aState);
+//  RDebug::Print(_L("CMMFRadioBackendEngine::MrpoStateChange: new state = %d"), aState);
 
- 	DEBUG_API_A1("CMMFRadioBackendEngine::MrpoStateChange: new state =  %d", aState);	
-//  RDebug::Print(_L("CMMFRadioBackendEngine::MrpoStateChange: new state = %d"), aState);	  	 	   
- 	      
-	if ( aState == ERadioPlayerPlaying )
- 	{
-  	XAPlayItfAdaptMMF_StateChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, ETrue);  
-	}  
- 	else  // ERadioPlayerIdle
- 	{
-  	XAPlayItfAdaptMMF_StateChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, EFalse);  
- 	}        	
-}                           
-               
+    if ( aState == ERadioPlayerPlaying )
+    {
+    XAPlayItfAdaptMMF_StateChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, ETrue);
+    }
+    else  // ERadioPlayerIdle
+    {
+    XAPlayItfAdaptMMF_StateChange((XAAdaptationBaseCtx*)iPlayerAdaptContext, EFalse);
+    }
+}
+
 extern "C" {
 
-	void* cmmfradiobackendengine_init()
-	{ 
-		return CMMFRadioBackendEngine::Instance();
-	}
-    
-	void cmmfradiobackendengine_delete(void* context)
-	{ 
-		((CMMFRadioBackendEngine*)(context))->DeleteInstance();
-	}    
-                 
-	void  set_frequency(void* context, XAuint32 freq)
-	{
-		((CMMFRadioBackendEngine*)(context))->SetFrequency((TInt)freq); 			
-	}
-    
-	XAresult  get_frequency(void* context, XAuint32* freq)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->GetFrequency((TInt&)*freq); 			
-	}  
-    
-	XAresult  get_signal_strength(void* context, XAuint32* signalStrength)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->GetSignalStrength((TInt&)*signalStrength); 			
-	}      
-    
-	void station_seek(void* context, XAboolean upwards)      
-	{
-		((CMMFRadioBackendEngine*)(context))->StationSeek(upwards); 			
-	}
-		
-	void cancel_set_frequency(void* context)      
-	{
-		((CMMFRadioBackendEngine*)(context))->CancelSetFrequency(); 			
-	}		
-		
-	void cancel_station_seek(void* context)      
-	{
-		((CMMFRadioBackendEngine*)(context))->CancelStationSeek(); 			
-	}		
-		
-	void set_freq_range(void* context, XAuint8 range)      
-	{
-		((CMMFRadioBackendEngine*)(context))->SetFreqRange((TFmRadioFrequencyRange)range); 			
-	}	
-		
-	XAresult  get_freq_range(void* context, XAuint8* range)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->GetFreqRange((TFmRadioFrequencyRange&)*range); 			
-	}
-    
-	XAresult  get_freq_range_properties(void* context, XAuint8 aRange, XAuint32* aMinFreq, XAuint32* aMaxFreq)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->GetFreqRangeProperties((TFmRadioFrequencyRange&) aRange, (TInt&) *aMinFreq, (TInt&) *aMaxFreq); 		
-	}   
-    
-	XAresult  get_max_volume(void* context, XAmillibel* maxVol)
-	{
-		return  ((CMMFRadioBackendEngine*)(context))->GetMaxVolume((TInt&)*maxVol); 
-	}   
+    void* cmmfradiobackendengine_init()
+    {
+        return CMMFRadioBackendEngine::Instance();
+    }
+
+    void cmmfradiobackendengine_delete(void* context)
+    {
+        ((CMMFRadioBackendEngine*)(context))->DeleteInstance();
+    }
+
+    void  set_frequency(void* context, XAuint32 freq)
+    {
+        ((CMMFRadioBackendEngine*)(context))->SetFrequency((TInt)freq);
+    }
+
+    XAresult  get_frequency(void* context, XAuint32* freq)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->GetFrequency((TInt&)*freq);
+    }
+
+    XAresult  get_signal_strength(void* context, XAuint32* signalStrength)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->GetSignalStrength((TInt&)*signalStrength);
+    }
+
+    void station_seek(void* context, XAboolean upwards)
+    {
+        ((CMMFRadioBackendEngine*)(context))->StationSeek(upwards);
+    }
+
+    void cancel_set_frequency(void* context)
+    {
+        ((CMMFRadioBackendEngine*)(context))->CancelSetFrequency();
+    }
+
+    void cancel_station_seek(void* context)
+    {
+        ((CMMFRadioBackendEngine*)(context))->CancelStationSeek();
+    }
+
+    void set_freq_range(void* context, XAuint8 range)
+    {
+        ((CMMFRadioBackendEngine*)(context))->SetFreqRange((TFmRadioFrequencyRange)range);
+    }
+
+    XAresult  get_freq_range(void* context, XAuint8* range)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->GetFreqRange((TFmRadioFrequencyRange&)*range);
+    }
 
-	XAresult  set_volume(void* context, XAuint32 vol)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->SetVolume((TInt)vol); 			
-	} 
-    
-	XAresult  get_volume(void* context, XAuint32* vol)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->GetVolume((TInt&)*vol); 		
-	}  
-    
-	XAresult  set_mute(void* context, XAboolean mute)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->SetMute(mute); 			
-	} 
-    
-	XAresult  get_stereo_mode(void* context, XAuint32* mode)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->GetForcedMonoReception(*mode); 			
-	}     
-    
-	XAresult  set_stereo_mode(void* context, XAuint32 mode)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->ForceMonoReception(mode); 		
-	}  
-     
-	void play_radio(void* context)
-	{
-		((CMMFRadioBackendEngine*)(context))->PlayRadio(); 			
-	} 
-    
-	void stop_radio(void* context)
-	{
-		((CMMFRadioBackendEngine*)(context))->StopRadio(); 	
-	}        
-    
-	XAresult mmf_set_radio_adapt_context(void * context, void * adaptcontext)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->SetRadioAdaptContext(adaptcontext);
-	}   
-	
-	XAresult mmf_set_player_adapt_context(void * context, void * adaptcontext)
-	{
-		return ((CMMFRadioBackendEngine*)(context))->SetPlayerAdaptContext(adaptcontext);
-	}   	                       										
+    XAresult  get_freq_range_properties(void* context, XAuint8 aRange, XAuint32* aMinFreq, XAuint32* aMaxFreq)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->GetFreqRangeProperties((TFmRadioFrequencyRange&) aRange, (TInt&) *aMinFreq, (TInt&) *aMaxFreq);
+    }
+
+    XAresult  get_max_volume(void* context, XAmillibel* maxVol)
+    {
+        return  ((CMMFRadioBackendEngine*)(context))->GetMaxVolume((TInt&)*maxVol);
+    }
+
+    XAresult  set_volume(void* context, XAuint32 vol)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->SetVolume((TInt)vol);
+    }
+
+    XAresult  get_volume(void* context, XAuint32* vol)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->GetVolume((TInt&)*vol);
+    }
+
+    XAresult  set_mute(void* context, XAboolean mute)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->SetMute(mute);
+    }
+
+    XAresult  get_stereo_mode(void* context, XAuint32* mode)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->GetForcedMonoReception(*mode);
+    }
+
+    XAresult  set_stereo_mode(void* context, XAuint32 mode)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->ForceMonoReception(mode);
+    }
+
+    void play_radio(void* context)
+    {
+        ((CMMFRadioBackendEngine*)(context))->PlayRadio();
+    }
+
+    void stop_radio(void* context)
+    {
+        ((CMMFRadioBackendEngine*)(context))->StopRadio();
+    }
+
+    XAresult mmf_set_radio_adapt_context(void * context, void * adaptcontext)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->SetRadioAdaptContext(adaptcontext);
+    }
+
+    XAresult mmf_set_player_adapt_context(void * context, void * adaptcontext)
+    {
+        return ((CMMFRadioBackendEngine*)(context))->SetPlayerAdaptContext(adaptcontext);
+    }
 }
--- a/khronosfws/openmax_al/src/mmf_adaptation/xametadataadaptctxmmf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/xametadataadaptctxmmf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -28,43 +28,39 @@
     DEBUG_API("->XAMetadataAdaptCtxMMF_Create");
 
     pSelf = calloc(1, sizeof(XAMetadataAdaptationMMFCtx));
-    if (pSelf)
+    if(!pSelf)
         {
-
-        if (XAAdaptationBaseMMF_Init(&(pSelf->baseObj), XAMDAdaptation)
-                != XA_RESULT_SUCCESS)
-            {
-            DEBUG_ERR("Failed to init base context!!!");
-            free(pSelf);
-            pSelf = NULL;
-            }
-        else
-
-            {
-            pSelf->baseObj.baseObj.fwtype = FWMgrFWMMF;
-            pSelf->xaSource = pDataSrc;
-            }
+        /* memory allocation failed */
+        DEBUG_ERR("Failed to allocate memory");
+        DEBUG_API("<-XAMetadataAdaptCtxMMF_Create");
+        return NULL;
+        }
 
-        if (pDataSrc)
-            {
-            pSelf->mmfContext
-                    = mmf_metadata_utility_init(
-                            (char *) (((XADataLocator_URI*) (pDataSrc->pLocator))->URI));
-            if (!pSelf->mmfContext)
-                {
-                DEBUG_ERR("Failed to init mmf context!!!");
-                free(pSelf);
-                pSelf = NULL;
-                }
-            }
-
-        }
-    else
+    if (XAAdaptationBaseMMF_Init(&(pSelf->baseObj), XAMDAdaptation)
+            != XA_RESULT_SUCCESS)
         {
-        DEBUG_ERR("Failed to create XAMetadataAdaptationMMFCtx !!!");
+        free(pSelf);
+        DEBUG_ERR("Failed to init base context!!!");
+        DEBUG_API("<-XAMetadataAdaptCtxMMF_Create");
         return NULL;
         }
-       
+
+    pSelf->baseObj.baseObj.fwtype = FWMgrFWMMF;
+    pSelf->xaSource = pDataSrc;
+
+    if (pDataSrc)
+        {
+        pSelf->mmfContext
+                = mmf_metadata_utility_init(
+                        (char *) (((XADataLocator_URI*) (pDataSrc->pLocator))->URI));
+        if (!pSelf->mmfContext)
+            {
+            free(pSelf);
+            DEBUG_ERR("Failed to init mmf context!!!");
+            DEBUG_API("<-XAMetadataAdaptCtxMMF_Create");
+            return NULL;
+            }
+        }
 
     DEBUG_API("<- XAMetadataAdaptCtxMMF_Create");
     return (XAAdaptationBaseCtx*) (&pSelf->baseObj.baseObj);
--- a/khronosfws/openmax_al/src/mmf_adaptation/xastreaminformationitfadaptationmmf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/mmf_adaptation/xastreaminformationitfadaptationmmf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -39,7 +39,7 @@
     if (!adaptCtx || (adaptCtx->ctxId != XAMediaPlayerAdaptation))
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryMediaContainerInformation");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryMediaContainerInformation");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
@@ -70,7 +70,7 @@
             ((XAMediaPlayerAdaptationMMFCtx*) adaptCtx)->mmfContext,
             numStreams);
 
-    DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryMediaContainerInformation");
+    DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryMediaContainerInformation");
     return ret;
     }
 
@@ -102,7 +102,7 @@
     if (ret != XA_RESULT_SUCCESS)
         {
         DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamType");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamType");
         return ret;
         }
 
@@ -110,7 +110,7 @@
     if (streamIndex > numStreams)
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamType");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamType");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
@@ -130,7 +130,7 @@
                 streamIndex, domain);
         }
 
-    DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamType");
+    DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamType");
     return ret;
     }
 
@@ -173,7 +173,7 @@
     if (ret != XA_RESULT_SUCCESS)
         {
         DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamInformation");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamInformation");
         return ret;
         }
 
@@ -194,83 +194,92 @@
                     &height, &width, &frameRate);
             break;
         case XA_DOMAINTYPE_IMAGE:
-            DEBUG_INFO("Getting Image Stream Info from SrcPad");
-            break;
+        case XA_DOMAINTYPE_MIDI:
         default:
             DEBUG_ERR("XA_RESULT_CONTENT_UNSUPPORTED");
-            DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamInformation");
             ret = XA_RESULT_CONTENT_UNSUPPORTED;
             break;
         };
 
-    if (ret == XA_RESULT_SUCCESS)
+    if (ret != XA_RESULT_SUCCESS)
         {
-        DEBUG_INFO("Getting media duration");
-        ret = XAPlayItfAdaptMMF_GetDuration(adaptCtx, &duration);
+        DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamInformation");
+        return ret;
+        }
+
+    DEBUG_INFO("Getting media duration");
+    ret = XAPlayItfAdaptMMF_GetDuration(adaptCtx, &duration);
+
+    if (ret != XA_RESULT_SUCCESS)
+        {
+        DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamInformation");
+        return ret;
         }
 
     /* Now assign properties to data structure */
-    if (ret == XA_RESULT_SUCCESS)
+    switch (domain)
         {
-        switch (domain)
+        case XA_DOMAINTYPE_AUDIO:
+            {
+            XAAudioStreamInformation* streamInfo =
+                    (XAAudioStreamInformation*) info;
+            DEBUG_INFO("Assigning values for XAAudioStreamInformation");
+            streamInfo->codecId = codecId;
+            streamInfo->channels = channels;
+            streamInfo->sampleRate = sampleRate;
+            streamInfo->bitRate = bitRate;
+            streamInfo->langCountry[0] = '\0';
+            streamInfo->duration = duration;
+            }
+            break;
+/*
+        case XA_DOMAINTYPE_MIDI:
             {
-            case XA_DOMAINTYPE_AUDIO:
-                {
-                XAAudioStreamInformation* streamInfo =
-                        (XAAudioStreamInformation*) info;
-                DEBUG_INFO("Assigning values for XAAudioStreamInformation");
-                streamInfo->codecId = codecId;
-                streamInfo->channels = channels;
-                streamInfo->sampleRate = sampleRate;
-                streamInfo->bitRate = bitRate;
-                streamInfo->langCountry[0] = '\0';
-                streamInfo->duration = duration;
-                }
-                break;
-            case XA_DOMAINTYPE_MIDI:
-                {
-                XAMIDIStreamInformation* streamInfo =
-                        (XAMIDIStreamInformation*) info;
-                DEBUG_INFO("Assigning values for XAMIDIStreamInformation");
-                /*currently there is no way to get these information from gstreamer*/
-                streamInfo->channels = XA_MIDI_UNKNOWN;
-                streamInfo->tracks = XA_MIDI_UNKNOWN;
-                streamInfo->bankType = XA_MIDIBANK_DEVICE;
-                /*streamInfo->bitRate = 0;*/
-                streamInfo->langCountry[0] = '\0';
-                streamInfo->duration = duration;
-                }
-                break;
-            case XA_DOMAINTYPE_VIDEO:
-                {
-                XAVideoStreamInformation* streamInfo =
-                        (XAVideoStreamInformation*) info;
-                DEBUG_INFO("Assigning values for XAVideoStreamInformation");
-                streamInfo->codecId = codecId;
-                streamInfo->width = width;
-                streamInfo->height = height;
-                streamInfo->bitRate = bitRate;
-                streamInfo->duration = duration;
-                streamInfo->frameRate = frameRate;
-                }
-                break;
-            case XA_DOMAINTYPE_IMAGE:
-                {
-                XAImageStreamInformation* streamInfo =
-                        (XAImageStreamInformation*) info;
-                DEBUG_INFO("Assigning values for XAImageStreamInformation");
-                streamInfo->codecId = codecId;
-                streamInfo->width = width;
-                streamInfo->height = height;
-                streamInfo->presentationDuration = duration;
-                }
-                break;
-            default:
-                break;
-            };
-        } /*if ( ret == XA_RESULT_SUCCESS)*/
-
-    DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamInformation");
+            XAMIDIStreamInformation* streamInfo =
+                    (XAMIDIStreamInformation*) info;
+            DEBUG_INFO("Assigning values for XAMIDIStreamInformation");*/
+            /*currently there is no way to get these information from gstreamer*/
+/*            streamInfo->channels = XA_MIDI_UNKNOWN;
+            streamInfo->tracks = XA_MIDI_UNKNOWN;
+            streamInfo->bankType = XA_MIDIBANK_DEVICE;*/
+            /*streamInfo->bitRate = 0;*/
+/*            streamInfo->langCountry[0] = '\0';
+            streamInfo->duration = duration;
+            }
+            break;
+*/
+        case XA_DOMAINTYPE_VIDEO:
+            {
+            XAVideoStreamInformation* streamInfo =
+                    (XAVideoStreamInformation*) info;
+            DEBUG_INFO("Assigning values for XAVideoStreamInformation");
+            streamInfo->codecId = codecId;
+            streamInfo->width = width;
+            streamInfo->height = height;
+            streamInfo->bitRate = bitRate;
+            streamInfo->duration = duration;
+            streamInfo->frameRate = frameRate;
+            }
+            break;
+/*
+        case XA_DOMAINTYPE_IMAGE:
+            {
+            XAImageStreamInformation* streamInfo =
+                    (XAImageStreamInformation*) info;
+            DEBUG_INFO("Assigning values for XAImageStreamInformation");
+            streamInfo->codecId = codecId;
+            streamInfo->width = width;
+            streamInfo->height = height;
+            streamInfo->presentationDuration = duration;
+            }
+            break;
+        default:
+            break;
+*/
+        };
+    DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamInformation");
     return ret;
     }
 
@@ -295,7 +304,7 @@
             != XAMediaPlayerAdaptation))
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamName");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamName");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
@@ -306,7 +315,7 @@
     if (ret != XA_RESULT_SUCCESS)
         {
         DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamName");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamName");
         return ret;
         }
 
@@ -314,7 +323,7 @@
     if (streamIndex > numStreams)
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamName");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamName");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
@@ -326,7 +335,7 @@
         /* TODO copy stream name into pName taking into account inputNameSize */
         }
 
-    DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryStreamName");
+    DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryStreamName");
     return ret;
     }
 
@@ -351,14 +360,14 @@
             != XAMediaPlayerAdaptation))
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryActiveStreams");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryActiveStreams");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
     if (adaptCtx->ctxId == XAMDAdaptation)
         {
         DEBUG_ERR("XA_RESULT_PRECONDITIONS_VIOLATED");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryActiveStreams");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryActiveStreams");
         return XA_RESULT_PRECONDITIONS_VIOLATED;
         }
 
@@ -369,7 +378,7 @@
     if (ret != XA_RESULT_SUCCESS)
         {
         DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryActiveStreams");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryActiveStreams");
         return ret;
         }
 
@@ -379,7 +388,7 @@
         if (*numStreams < inputNumStreams)
             {
             DEBUG_INFO("numStreams param value is smaller than number of streams");
-            DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryActiveStreams");
+            DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryActiveStreams");
             return XA_RESULT_PARAMETER_INVALID;
             }
         for (loopIndex = 0; loopIndex < inputNumStreams; loopIndex++)
@@ -411,14 +420,14 @@
     if (!adaptCtx || (adaptCtx->ctxId != XAMediaPlayerAdaptation))
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_SetActiveStream");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_SetActiveStream");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
     if (adaptCtx->ctxId == XAMDAdaptation)
         {
         DEBUG_ERR("XA_RESULT_PRECONDITIONS_VIOLATED");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_SetActiveStream");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_SetActiveStream");
         return XA_RESULT_PRECONDITIONS_VIOLATED;
         }
 
@@ -429,7 +438,7 @@
     if (ret != XA_RESULT_SUCCESS)
         {
         DEBUG_ERR_A1("XA_RESULT_[0x%x]", (unsigned int)ret);
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_QueryActiveStreams");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_QueryActiveStreams");
         return ret;
         }
 
@@ -437,7 +446,7 @@
     if (streamNum > numStreams)
         {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("-<XAStreamInformationItfAdaptMMF_SetActiveStream");
+        DEBUG_API("<-XAStreamInformationItfAdaptMMF_SetActiveStream");
         return XA_RESULT_PARAMETER_INVALID;
         }
 
@@ -451,4 +460,3 @@
     DEBUG_API("->XAStreamInformationItfAdaptMMF_SetActiveStream");
     return ret;
     }
-
--- a/khronosfws/openmax_al/src/radio/xaradioitf.c	Wed Aug 18 10:17:22 2010 +0300
+++ b/khronosfws/openmax_al/src/radio/xaradioitf.c	Thu Sep 02 20:58:01 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description: 
+* Description:
 *
 */
 
@@ -159,11 +159,8 @@
                                                XAuint32 * pFreqInterval)
 {
     XAresult ret = XA_RESULT_SUCCESS;
-    XAboolean isSupported = XA_BOOLEAN_FALSE;
     XARadioItfImpl* impl = GetImpl(self);
 
-   *pFreqInterval = FREQINTERVAL;   
-		    
     DEBUG_API("->XARadioItfImpl_GetFreqRangeProperties");
 
     if(!impl || !pMinFreq || !pMaxFreq || !pFreqInterval)
@@ -173,9 +170,13 @@
         DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
         return XA_RESULT_PARAMETER_INVALID;
     }
-		
+
     ret = XARadioItfAdapt_GetFreqRangeProperties( (XAAdaptationMMFCtx*)impl->adapCtx,
             range, pMinFreq, pMaxFreq );
+    if (ret == XA_RESULT_SUCCESS)
+    {
+        *pFreqInterval = FREQINTERVAL;
+    }
 
     DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
     return ret;
@@ -196,7 +197,7 @@
     XAuint32 minFreq;
     XAuint32 maxFreq;
    	XAuint32 freqInterval;
-        
+
     XARadioItfImpl* impl = GetImpl(self);
     DEBUG_API("->XARadioItfImpl_SetFrequency");
     XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
@@ -208,23 +209,23 @@
         DEBUG_API("<-XARadioItfImpl_SetFrequency");
         return XA_RESULT_PARAMETER_INVALID;
     }
-    
-    // Check for valid entries: 
- 		ret = XARadioItfImpl_GetFreqRangeProperties(self, range, &minFreq, &maxFreq, &freqInterval);   
+
+    // Check for valid entries:
+ 		ret = XARadioItfImpl_GetFreqRangeProperties(self, range, &minFreq, &maxFreq, &freqInterval);
     if (ret != XA_RESULT_SUCCESS)
     {
     	XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
-    	DEBUG_API("<-XARadioItfImpl_SetFrequency");    	
+    	DEBUG_API("<-XARadioItfImpl_SetFrequency");
     	return ret;
-    }		
-    
+    }
+
     if ( (freq < minFreq) || (freq > maxFreq) )
     {
     	XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
-    	DEBUG_API("<-XARadioItfImpl_SetFrequency");    	
+    	DEBUG_API("<-XARadioItfImpl_SetFrequency");
     	return XA_RESULT_PARAMETER_INVALID;
-    }	  
-           
+    }
+
    	ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
 
     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
@@ -372,7 +373,7 @@
         {
          	  impl->stereoMode = mode;
         }
-    }    
+    }
     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
     DEBUG_API("<-XARadioItfImpl_SetStereoMode");
     return ret;
@@ -541,7 +542,7 @@
                                   XAchar * pName,
                                   XAuint16 * pNameLength)
 {
- 
+
     XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED;
 
     DEBUG_API("<-XARadioItfImpl_GetPreset");
@@ -657,7 +658,7 @@
     XARadioItfImpl* impl =(XARadioItfImpl*)pHandlerCtx;
     XAuint32 eventData = 0;
     XAboolean eventBoolean = XA_BOOLEAN_FALSE;
-    
+
     DEBUG_API("->XARadioItfimpl_AdaptCb");
 
     if(!impl)
@@ -670,37 +671,37 @@
 
     if( event->eventid == XA_ADAPT_RADIO_FREQUENCY_CHANGED && impl->callback )
     {
-        DEBUG_API("Frequency changed in adaptation"); 
+        DEBUG_API("Frequency changed in adaptation");
         eventData = *(XAuint32*)event->data;
         impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_FREQUENCY_CHANGED, eventData, eventBoolean );
     }
-    
+
     else if( event->eventid == XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED && impl->callback )
     {
         DEBUG_API("Frequency range changed in adaptation");
 
         impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED, eventData, eventBoolean  );
     }
-    
+
     else if( event->eventid == XA_ADAPT_RADIO_SEEK_COMPLETE && impl->callback )
     {
         DEBUG_API("Seek complete in adaptation");
-       	eventBoolean = *(XAboolean*)event->data;        
-        impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_SEEK_COMPLETED, eventData, eventBoolean  );     
+       	eventBoolean = *(XAboolean*)event->data;
+        impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_SEEK_COMPLETED, eventData, eventBoolean  );
     }
-    
+
     else if( event->eventid == XA_ADAPT_RADIO_STEREO_STATUS_CHANGED && impl->callback )
     {
         DEBUG_API("Stereo status change in adaptation");
-      	eventBoolean = *(XAboolean*)event->data;          
+      	eventBoolean = *(XAboolean*)event->data;
         impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_STEREO_STATUS_CHANGED, eventData, eventBoolean  );
-    } 
-        
+    }
+
     else if( event->eventid == XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED && impl->callback )
     {
         DEBUG_API("Signal Strength Change in adaptation");
         impl->callback( impl->cbPtrToSelf, impl->context, XA_RADIO_EVENT_SIGNAL_STRENGTH_CHANGED, eventData, eventBoolean  );
-    }      
+    }
     else
     {
         /* do nothing */
--- a/layers.sysdef.xml	Wed Aug 18 10:17:22 2010 +0300
+++ b/layers.sysdef.xml	Thu Sep 02 20:58:01 2010 +0300
@@ -3,16 +3,13 @@
   <!ENTITY layer_real_source_path "sf/mw/mmmw" >
 ]> 
 
-<SystemDefinition name="avdomain" schema="1.4.0">
+<SystemDefinition name="mmmw" schema="1.4.0">
 	<systemModel>
   <!-- Common file for prebuild layers-->
   	<layer name="mw_layer">
 			<module name="mmmw">
 				<unit unitID="mmmw" mrp="" bldFile="&layer_real_source_path;/group" name="mmmw" />
 			</module>
-			<module name="">
-				<unit unitID="mmmw_3GPExtParserLib" mrp="" bldFile="&layer_real_source_path;/mmserv/metadatautility/3GPExtParserLib/group" filter="!sf_build" name="mmmw_3GPExtParserLib" />
-			</module>
     </layer>
     
   	<layer name="api_test_layer">
@@ -43,9 +40,6 @@
 			<module name="mmmw_group">
 				<unit unitID="mmmw_group" mrp="" bldFile="&layer_real_source_path;/group" name="mmmw_group" />
 			</module>
-			<module name="">
-				<unit unitID="mmmw_3GPExtParserLib_group" mrp="" bldFile="&layer_real_source_path;/mmserv/metadatautility/3GPExtParserLib/group" filter="!sf_build" name="mmmw_3GPExtParserLib_group" />
-			</module>
     </layer>
 
   	<layer name="mw_mmmw_tms_layer">
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpDataSourceAdapter/Group/3gpDataSourceAdapter.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpDataSourceAdapter/Group/3gpDataSourceAdapter.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -49,7 +49,7 @@
 
 LIBRARY         ecom.lib
 
-LIBRARY		3GPMP4Lib.lib
+LIBRARY		3gpmp4lib.lib
 LIBRARY         efsrv.lib				// File server session
 LIBRARY		bafl.lib				// Resource file
 LIBRARY         caf.lib
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Group/3GPAudioPlayControllerPlugin.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Group/3GPAudioPlayControllerPlugin.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -134,15 +134,21 @@
 LIBRARY 	AdvancedAudioController.lib
 LIBRARY         DevSoundAudioOutput.lib
 LIBRARY		FileAudioOutput.lib
-LIBRARY		3GPMP4Lib.lib
+LIBRARY		3gpmp4lib.lib
 LIBRARY         efsrv.lib				// File server session
 LIBRARY		bafl.lib				// Resource file
-LIBRARY		MMFDevSound.lib
+LIBRARY		mmfdevsound.lib
 LIBRARY         caf.lib
 LIBRARY         cafutils.lib
 LIBRARY			3gpDataSourceAdapter.lib
-LIBRARY         FrameTable.lib             // for CFrameTable
-LIBRARY EAacPlusAudioControllerUtility.lib
+
+#ifndef WINSCW					//to support build on Linux
+LIBRARY		FrameTable.lib			// for CFrameTable
+#else
+LIBRARY		frametable.lib
+#endif 
+
+LIBRARY EAACPlusAudioControllerUtility.lib
 
 LIBRARY AMRAudioControllerUtility.lib
 LIBRARY AWBAudioControllerUtility.lib
@@ -152,15 +158,27 @@
         #ifndef __AAC_PLUS_DECODER_PLUGIN
             LIBRARY	AacDecoderConfig.lib
         #else
+        	#ifndef WINSCW								//to support build on Linux
 			    LIBRARY EAacPlusUtil.lib							// MMF eAAC+ Utility
+			#else
+				LIBRARY eaacplusutil.lib    
+			#endif	
             LIBRARY EAacPlusDecoderIntfc.lib
         #endif
     #else      
-		  LIBRARY EAacPlusUtil.lib								// MMF eAAC+ Utility
+        #ifndef WINSCW									//to support build on Linux
+			LIBRARY EAacPlusUtil.lib							// MMF eAAC+ Utility
+		#else
+			LIBRARY eaacplusutil.lib    
+		#endif									
         LIBRARY	AacDecoderConfig.lib
     #endif
 #else
-    LIBRARY EAacPlusUtil.lib									// MMF eAAC+ Utility 
+    #ifndef WINSCW										//to support build on Linux
+	    LIBRARY EAacPlusUtil.lib							// MMF eAAC+ Utility
+	#else
+		LIBRARY  eaacplusutil.lib    
+	#endif										
     LIBRARY	AacDecoderConfig.lib
 #endif
 
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Group/3GPAudioPlayControllerRecognizer.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Group/3GPAudioPlayControllerRecognizer.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -47,5 +47,5 @@
 LIBRARY         euser.lib 
 LIBRARY	        apmime.lib
 LIBRARY	        efsrv.lib
-LIBRARY	        3GPMP4Lib.lib
+LIBRARY	        3gpmp4lib.lib
 
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudiorecordcontroller/Group/3GPAudioRecordControllerPlugin.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudiorecordcontroller/Group/3GPAudioRecordControllerPlugin.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -76,10 +76,10 @@
 LIBRARY 	mmfserverbaseclasses.lib
 LIBRARY 	AdvancedAudioController.lib
 LIBRARY         DevSoundAudioInput.lib
-LIBRARY		3GPMP4Lib.lib
+LIBRARY		3gpmp4lib.lib
 LIBRARY         efsrv.lib				// File server session
 LIBRARY		bafl.lib				// Resource file
-LIBRARY		MMFDevSound.lib
+LIBRARY		mmfdevsound.lib
 
 // for MP4MetaDataWrite
 LIBRARY         MetaDataWrite.lib			// for MMetaDataWriteCustomCommandImplementor
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Group/AdvancedAudioController.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Group/AdvancedAudioController.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -61,11 +61,17 @@
 LIBRARY         sysutil.lib
 LIBRARY         mmfdevsound.lib
 LIBRARY         mmfstandardcustomcommands.lib
-LIBRARY         custominterfacebuilder.lib
-LIBRARY         MetaDataUtility.lib
+LIBRARY         CustomInterfaceBuilder.lib
+LIBRARY         metadatautility.lib
 LIBRARY         AudioOutputRouting.lib
 LIBRARY         DrmDcf.lib
-LIBRARY         FrameTable.lib		            // for CFrameTable
+
+#ifndef WINSCW						//to support build on Linux
+LIBRARY		FrameTable.lib			// for CFrameTable
+#else
+LIBRARY		frametable.lib
+#endif 
+
 LIBRARY         MMDataSourceFactory.lib         // for MMultimediaDataSourceObserver
 LIBRARY         StreamControlCustomCommands.lib // for MStreamControlCustomCommandImplementor
 LIBRARY			DataSourceAdapter.lib
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioControllerUtility/Group/EAACPlusAudioControllerUtility.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioControllerUtility/Group/EAACPlusAudioControllerUtility.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -42,9 +42,14 @@
 
 LIBRARY         euser.lib
 LIBRARY         AdvancedAudioController.lib
-LIBRARY         EAacPlusUtil.lib																// MMF eAAC+ Utility - Kirit
+#ifndef WINSCW						//to support build on Linux
+LIBRARY         EAacPlusUtil.lib	// MMF eAAC+ Utility - Kirit
+#else
+LIBRARY         eaacplusutil.lib
+#endif
+																
 LIBRARY         mmfserverbaseclasses.lib
 
 #ifdef EABI
-LIBRARY         ECOM.LIB
+LIBRARY         ecom.lib
 #endif
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioInput/Group/DevSoundAudioInput.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioInput/Group/DevSoundAudioInput.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -46,5 +46,5 @@
 LIBRARY 	mmfdevsound.lib
 #ifdef EABI
 // modified by BuildTeam
-LIBRARY     ECOM.LIB
+LIBRARY     ecom.lib
 #endif
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Group/DevSoundAudioOutput.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Group/DevSoundAudioOutput.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -49,5 +49,5 @@
 LIBRARY		DataSourceAdapter.lib
 #ifdef EABI
 // modified by BuildTeam
-LIBRARY     ECOM.LIB
+LIBRARY     ecom.lib
 #endif
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Group/FileAudioOutput.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Group/FileAudioOutput.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -44,5 +44,5 @@
 LIBRARY 	mmfcontrollerframework.lib
 LIBRARY 	mmfserverbaseclasses.lib
 #ifdef EABI
-LIBRARY     ECOM.LIB
+LIBRARY     ecom.lib
 #endif
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/MetaDataWrite/Group/MetaDataWrite.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/MetaDataWrite/Group/MetaDataWrite.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -39,4 +39,4 @@
 
 LIBRARY         euser.lib
 LIBRARY         mediaclientaudio.lib
-LIBRARY         MMFControllerFramework.lib
+LIBRARY         mmfcontrollerframework.lib
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/PlaylistRecognizer/group/playlistrecognizer.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/PlaylistRecognizer/group/playlistrecognizer.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: bh1mmcf#4 %
+// Version : %version: 5 %
 
 
 
@@ -42,7 +42,7 @@
 
 LIBRARY         euser.lib
 LIBRARY         apmime.lib
-LIBRARY         EFSRV.LIB
+LIBRARY         efsrv.lib
 LIBRARY         playbackhelper.lib
 
 #ifdef __WINDOWS_MEDIA
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Group/AACAudioPlayControllerPlugin.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Group/AACAudioPlayControllerPlugin.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -85,29 +85,38 @@
 LIBRARY         DevSoundAudioOutput.lib
 LIBRARY         FileAudioOutput.lib
 LIBRARY         bafl.lib                        // Resource file
-LIBRARY         MMFDevSound.lib
+LIBRARY         mmfdevsound.lib
 LIBRARY         efsrv.lib
-LIBRARY         FrameTable.lib             // for CFrameTable
+
+#ifndef WINSCW					//to support build on Linux
+LIBRARY		FrameTable.lib			// for CFrameTable
+#else
+LIBRARY		frametable.lib
+#endif            
 
 #ifndef __USE_AAC_CMMFCODEC
     #ifndef __USE_EAACPLUS_CMMFCODEC
         #ifndef __AAC_PLUS_DECODER_PLUGIN
 // only EAACPlusAudioControllerUtility support AAC optimization
 //            LIBRARY AACAudioControllerUtility.lib
-            LIBRARY EAacPlusAudioControllerUtility.lib
+            LIBRARY EAACPlusAudioControllerUtility.lib
             LIBRARY AacDecoderConfig.lib   
         #else
-            LIBRARY EAacPlusAudioControllerUtility.lib
+            LIBRARY EAACPlusAudioControllerUtility.lib
             LIBRARY EAacPlusDecoderIntfc.lib
 //            LIBRARY EAacPlusFrameParser.lib
-						LIBRARY EAacPlusUtil.lib
+			#ifndef WINSCW								//to support build on Linux
+				LIBRARY         EAacPlusUtil.lib		// MMF eAAC+ Utility
+			#else
+				LIBRARY         eaacplusutil.lib
+			#endif
         #endif
     #else
-        LIBRARY EAacPlusAudioControllerUtility.lib    
+        LIBRARY EAACPlusAudioControllerUtility.lib    
         LIBRARY AacDecoderConfig.lib   
     #endif
 #else    
-    LIBRARY EAacPlusAudioControllerUtility.lib    
+    LIBRARY EAACPlusAudioControllerUtility.lib    
     LIBRARY AacDecoderConfig.lib   
 #endif
 
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerHwDecoder.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerHwDecoder.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -21,7 +21,7 @@
 // INCLUDE FILES
 #include "AACAudioPlayControllerDecoder.h"
 #include "DebugMacros.h"
-#include <Mmfcodec.h>
+#include <mmfcodec.h>
 
 #include <mmfpaniccodes.h>
 
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Data/AMRAudioPlayControllerResource.rss	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Data/AMRAudioPlayControllerResource.rss	Thu Sep 02 20:58:01 2010 +0300
@@ -30,9 +30,9 @@
 //
 RESOURCE ADVANCED_AUDIO_CONTROLLER_RESOURCE amrDecoder
     {
-    shared_buffer_max_num = 1;
-    shared_buffer_max_size = 524288; // multiple of 1024
-    shared_buffer_max_size_non_seekable_source = 8192;
+    shared_buffer_max_num = 2;
+    shared_buffer_max_size = 8192;
+
     sampling_rate = EAapSampleRate8000Hz;
     stereo_support = 0;
     metadata_support = EAapMetadataSupportFalse;
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Group/AMRAudioPlayControllerPlugin.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Group/AMRAudioPlayControllerPlugin.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -87,7 +87,12 @@
 LIBRARY		FileAudioOutput.lib
 LIBRARY		bafl.lib				// Resource file
 LIBRARY		efsrv.lib 
+
+#ifndef WINSCW					//to support build on Linux
 LIBRARY		FrameTable.lib
+#else
+LIBRARY		frametable.lib
+#endif
 
 #ifdef EABI
 LIBRARY     	ecom.lib
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Src/AMRAudioPlayControllerPlugin.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/amraudioplaycontroller/Src/AMRAudioPlayControllerPlugin.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -51,14 +51,13 @@
     {
     CAdvancedAudioPlayController::ConstructL();
 
-	iAudioResource = CAMRAudioPlayControllerResource::NewL();
+	  iAudioResource = CAMRAudioPlayControllerResource::NewL();
     TAapProperties aapProperties = iAudioResource->PropertiesL();
     iSharedBufferMaxNum = aapProperties.iSharedBufferMaxNum;
     iSharedBufferMaxSize = aapProperties.iSharedBufferMaxSize;
     iMetaDataSupport = aapProperties.iMetaDataSupport;
-    iSharedBufferMaxSizeForNonSeekableSrc = aapProperties.iSharedBufferMaxSizeForNonSeekableSrc;
-	iAudioUtility = CAMRAudioControllerUtility::NewL();
-	iDecoderBuilder = CAMRAudioPlayControllerDecoderBuilder::NewL();
+  	iAudioUtility = CAMRAudioControllerUtility::NewL();
+	  iDecoderBuilder = CAMRAudioPlayControllerDecoderBuilder::NewL();
     }
 
 // -----------------------------------------------------------------------------
@@ -104,18 +103,6 @@
 void CAMRAudioPlayControllerPlugin::DoAddDataSourceL()
     {
     DP0(_L("CAMRAudioPlayControllerPlugin::DoAddDataSourceL"));
-        // ou1cimx1#205863
-    if (iSourceType != KUidMmfFileSource) 
-    	{
-	    DP0(_L("CAMRAudioPlayControllerPlugin::DoAddDataSourceL not file source"));        
-	    if (iSharedBufferMaxNum <= 2)
-	        {
-	        	iSharedBufferMaxNum = 3;
-	        }
-		 iSharedBufferMaxSize = iSharedBufferMaxSizeForNonSeekableSrc;
-	    DP2(_L("CAMRAudioPlayControllerPlugin::DoAddDataSourceL new iSharedBufferMaxNum[%d] iSharedBufferMaxSize[%d]"), iSharedBufferMaxNum, iSharedBufferMaxSize);
-    	}
-
     }
 
 // -----------------------------------------------------------------------------
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/awbaudioplaycontroller/Group/AWBAudioPlayControllerPlugin.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/awbaudioplaycontroller/Group/AWBAudioPlayControllerPlugin.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -85,7 +85,12 @@
 LIBRARY		FileAudioOutput.lib
 LIBRARY		bafl.lib				// Resource file
 LIBRARY		efsrv.lib 
-LIBRARY		FrameTable.lib
+
+#ifndef WINSCW					//to support build on Linux
+LIBRARY		FrameTable.lib			// for CFrameTable
+#else
+LIBRARY		frametable.lib
+#endif 
 
 #ifdef EABI
 LIBRARY     	ecom.lib
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/mp3audioplaycontroller/Group/MP3AudioPlayControllerPlugin.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/mp3audioplaycontroller/Group/MP3AudioPlayControllerPlugin.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -85,7 +85,12 @@
 LIBRARY		bafl.lib				// Resource file
 LIBRARY		efsrv.lib
 LIBRARY         charconv.lib
+
+#ifndef WINSCW					//to support build on Linux
 LIBRARY		FrameTable.lib
+#else
+LIBRARY		frametable.lib
+#endif
 
 #ifdef EABI
 LIBRARY     	ecom.lib
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/mp3audioplaycontroller/Src/MP3AudioPlayControllerHwDecoder.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/mp3audioplaycontroller/Src/MP3AudioPlayControllerHwDecoder.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -22,7 +22,7 @@
 #include "MP3AudioPlayControllerDecoder.h"
 #include "DebugMacros.h"
 #include <mmfpaniccodes.h>
-#include <Mmfcodec.h>
+#include <mmfcodec.h>
 
 const TUint KRawMp3MaxFrameSize  = 1441;
 const TUint KSizeOfInBuffer   = 2*KRawMp3MaxFrameSize;
--- a/mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/ringtonerecognizer/group/recrt.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiotonecontrollerplugin/ringtonerecognizer/group/recrt.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -36,7 +36,7 @@
 
 SOURCE          recrt.cpp
 
-LIBRARY         EUSER.LIB
-LIBRARY         APMIME.LIB
+LIBRARY         euser.lib
+LIBRARY         apmime.lib
 
 // End of File
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/group/AudioPlaybackTestModule.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/group/AudioPlaybackTestModule.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -65,8 +65,8 @@
 //LIBRARY	    parser.lib
 //LIBRARY	    logger.lib
 LIBRARY	    efsrv.lib
-LIBRARY     MediaClientAudio.lib
-LIBRARY     MMFControllerFramework.lib
+LIBRARY     mediaclientaudio.lib
+LIBRARY     mmfcontrollerframework.lib
 LIBRARY     ecom.lib
 LIBRARY     mmcommon.lib
 //LIBRARY     estor.lib
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/conf/AudioRecorderTestModule.cfg	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/conf/AudioRecorderTestModule.cfg	Thu Sep 02 20:58:01 2010 +0300
@@ -15,7 +15,7 @@
 Id 205
 Title AudioRecord.2 - RecordClip - amr
 ErrorRange 5 000 000
-File e:\testing\data\record\RecAMRTest.AMR
+File c:\data\RecAMRTest.AMR
 RecTime 15 000 000
 [End_TestCase]
 
@@ -23,7 +23,7 @@
 #[TestCase]
 #Id 206
 #Title AudioRecord.3 - SetMaxWriteLength - amr
-#File e:\testing\data\record\SizeTest.amr
+#File c:\data\SizeTest.amr
 #MaxLength 5000
 #ErrorRange 2000
 #[End_TestCase]
@@ -43,7 +43,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.5 - SetGain - amr
-File e:\testing\data\record\GainTest.amr	
+File c:\data\GainTest.amr	
 RecTime 15 0 0 
 RelativeGain 50
 [End_TestCase]
@@ -51,7 +51,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.6 - SetGain - amr
-File e:\testing\data\record\GainTest.amr	
+File c:\data\GainTest.amr	
 RecTime 15 0 0 
 RelativeGain 12
 [End_TestCase]
@@ -59,7 +59,7 @@
 [TestCase]
 Id 212
 Title AudioRecord.7 - RecordBalance - amr
-File e:\testing\data\record\BalanceTest.amr	
+File c:\data\BalanceTest.amr	
 RecTime 7 0 0 
 Balance 0
 [End_TestCase]
@@ -127,7 +127,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.15 - BitRate 4750 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 4750
 [End_TestCase]
@@ -135,7 +135,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.16 - BitRate 5150 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 5150
 [End_TestCase]
@@ -143,7 +143,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.17 - BitRate 5900 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 5900
 [End_TestCase]
@@ -151,7 +151,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.18 - BitRate 6700 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 6700
 [End_TestCase]
@@ -159,7 +159,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.19 - BitRate 7400 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 7400
 [End_TestCase]
@@ -167,7 +167,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.20 - BitRate 7950 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 7950
 [End_TestCase]
@@ -175,7 +175,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.21 - BitRate 10200 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 10200
 [End_TestCase]
@@ -183,7 +183,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.22 - BitRate 12200 - amr
-File e:\testing\data\record\TestBitRate.amr
+File c:\data\TestBitRate.amr
 RecTime 15 0 0
 BitRate 12200
 [End_TestCase]
@@ -191,15 +191,15 @@
 #[TestCase]
 #Id 223
 #Title AudioRecord.23 - DataType amr - amr
-#File e:\testing\data\record\testDataType.amr
+#File c:\data\testDataType.amr
 #[End_TestCase]
 
 [TestCase]
 Id 211
 Title AudioRecord.24 - SetPriority - amr
-File e:\testing\data\record\PriorityTest1-.amr 5 0 6 0 0
-File e:\testing\data\record\PriorityTest2-.amr 3 1 2 0 0 
-File e:\testing\data\record\PriorityTest3-.amr 8 0 11 0 0
+File c:\data\PriorityTest1-.amr 5 0 6 0 0
+File c:\data\PriorityTest2-.amr 3 1 2 0 0 
+File c:\data\PriorityTest3-.amr 8 0 11 0 0
 RecTime 3 0 0 
 [End_TestCase]
 
@@ -220,7 +220,7 @@
 Id 205
 Title AudioRecord.26 - RecordClip - wav
 ErrorRange 5 000 000
-File e:\testing\data\record\RecWAVTest.wav
+File c:\data\RecWAVTest.wav
 RecTime 15 000 000
 [End_TestCase]
 
@@ -228,7 +228,7 @@
 [TestCase]
 Id 206
 Title AudioRecord.27 - SetMaxWriteLength - WAV 
-File e:\testing\data\record\SizeTest.wav
+File c:\data\SizeTest.wav
 MaxLength 5000
 ErrorRange 2000
 [End_TestCase]
@@ -248,7 +248,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.29 - SetGain - WAV 
-File e:\testing\data\record\GainTest.wav	
+File c:\data\GainTest.wav	
 RecTime 15 0 0 
 RelativeGain 50
 [End_TestCase]
@@ -256,7 +256,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.30 - SetGain - WAV 
-File e:\testing\data\record\GainTest.wav	
+File c:\data\GainTest.wav	
 RecTime 15 0 0 
 RelativeGain 12
 [End_TestCase]
@@ -265,7 +265,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.31 - SetGain beyond max Gain - wav
-File e:\testing\data\record\GainTest.wav	
+File c:\data\GainTest.wav	
 RecTime 15 0 0 
 RelativeGain 110
 [End_TestCase]
@@ -273,7 +273,7 @@
 [TestCase]
 Id 211
 Title AudioRecord.32 - PriorityRecordClip1 - WAV
-File e:\testing\data\record\PriorityTest1-.wav 5 0 5 0 0
+File c:\data\PriorityTest1-.wav 5 0 5 0 0
 RecTime 3 0 0 
 [End_TestCase]
 
@@ -281,7 +281,7 @@
 [TestCase]
 Id 211
 Title AudioRecord.33 - PriorityRecordClip2 - WAV
-File e:\testing\data\record\PriorityTest2-.wav 3 1 3 0 0
+File c:\data\PriorityTest2-.wav 3 1 3 0 0
 RecTime 3 0 0 
 [End_TestCase]
 
@@ -289,14 +289,14 @@
 [TestCase]
 Id 211
 Title AudioRecord.34 - PriorityRecordClip3 - WAV
-File e:\testing\data\record\PriorityTest3-.wav 8 0 10 0 0 
+File c:\data\PriorityTest3-.wav 8 0 10 0 0 
 RecTime 3 0 0 
 [End_TestCase]
 
 [TestCase]
 Id 212
 Title AudioRecord.35 - RecordBalance center- WAV 
-File e:\testing\data\record\BalanceTest.wav	
+File c:\data\BalanceTest.wav	
 RecTime 7 0 0 
 Balance 0
 [End_TestCase]
@@ -304,7 +304,7 @@
 [TestCase]
 Id 212
 Title AudioRecord.36 - RecordBalance max right- WAV
-File e:\testing\data\record\BalanceTest.wav	
+File c:\data\BalanceTest.wav	
 RecTime 7 0 0 
 Balance 100
 [End_TestCase]
@@ -312,7 +312,7 @@
 [TestCase]
 Id 212
 Title AudioRecord.37 - RecordBalance max left - WAV
-File e:\testing\data\record\BalanceTest.wav	
+File c:\data\BalanceTest.wav	
 RecTime 7 0 0 
 Balance -100
 [End_TestCase]
@@ -320,7 +320,7 @@
 [TestCase]
 Id 212
 Title AudioRecord.38 - RecordBalance right - WAV
-File e:\testing\data\record\BalanceTest.wav	
+File c:\data\BalanceTest.wav	
 RecTime 7 0 0 
 Balance 77
 [End_TestCase]
@@ -391,7 +391,7 @@
 [TestCase]
 Id 222
 Title AudioRecord.46 - 8000hz SampleRate wav
-File e:\testing\data\record\testSR.wav
+File c:\data\testSR.wav
 RecTime 15 0 0
 SampleRate 8000
 [End_TestCase]
@@ -399,7 +399,7 @@
 [TestCase]
 Id 222
 Title AudioRecord.47 - 16000hz SampleRate wav
-File e:\testing\data\record\testSR.wav
+File c:\data\testSR.wav
 RecTime 15 0 0
 SampleRate 16000
 [End_TestCase]
@@ -408,7 +408,7 @@
 [TestCase]
 Id 222
 Title AudioRecord.48 - 32000hz SampleRate wav
-File e:\testing\data\record\testSR.wav
+File c:\data\testSR.wav
 RecTime 15 0 0
 SampleRate 32000
 [End_TestCase]
@@ -417,7 +417,7 @@
 #[TestCase]
 #Id 223
 #Title AudioRecord.49 - DataType wav
-#File e:\testing\data\record\testDataType.wav
+#File c:\data\testDataType.wav
 #[End_TestCase]
 
 
@@ -426,7 +426,7 @@
 Id 224
 Title AudioRecord.50 - DataFormat WAV
 ErrorRange 0 0 0
-File e:\testing\data\record\testDataFormat.wav
+File c:\data\testDataFormat.wav
 DataFormat wav
 [End_TestCase]
 
@@ -434,7 +434,7 @@
 [TestCase]
 Id 225
 Title AudioRecord.51 - test steror Channel for wav
-File e:\testing\data\record\testChannel.wav
+File c:\data\testChannel.wav
 RecTime 15 0 0
 Channels 2
 [End_TestCase]
@@ -442,7 +442,7 @@
 [TestCase]
 Id 225 
 Title AudioRecord.52 - test mono Channel for wav
-File e:\testing\data\record\testChannel.wav
+File c:\data\testChannel.wav
 RecTime 15 0 0
 Channels 1
 [End_TestCase]
@@ -465,7 +465,7 @@
 Id 205
 Title AudioRecord.54 - RecordClip - MP4
 ErrorRange 5 000 000
-File e:\testing\data\record\RecMP4Test.MP4
+File c:\data\RecMP4Test.MP4
 RecTime 15 000 000
 BitRate 32000
 Channels 1
@@ -487,7 +487,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.56 - SetGain - Mp4 
-File e:\testing\data\record\GainTest.mp4	
+File c:\data\GainTest.mp4	
 RecTime 15 0 0 
 RelativeGain 50
 BitRate 32000
@@ -499,7 +499,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.57 - SetGain - Mp4 
-File e:\testing\data\record\GainTest.mp4	
+File c:\data\GainTest.mp4	
 RecTime 15 0 0 
 RelativeGain 12
 BitRate 32000
@@ -512,7 +512,7 @@
 [TestCase]
 Id 209
 Title AudioRecord.58 - SetGain beyond max Gain - Mp4
-File e:\testing\data\record\GainTest.mp4	
+File c:\data\GainTest.mp4	
 RecTime 15 0 0 
 RelativeGain 110
 BitRate 32000
@@ -526,7 +526,7 @@
 [TestCase]
 Id 212
 Title AudioRecord.59 - RecordBalance center- Mp4 
-File e:\testing\data\record\BalanceTest.mp4	
+File c:\data\BalanceTest.mp4	
 RecTime 7 0 0 
 Balance 0
 BitRate 32000
@@ -590,7 +590,7 @@
 [TestCase]
 Id 221
 Title AudioRecord.66 - BitRate - Mp4
-File e:\testing\data\record\TestBitRate.mp4
+File c:\data\TestBitRate.mp4
 RecTime 15 0 0
 DataFormat mp4
 [End_TestCase]
@@ -598,7 +598,7 @@
 [TestCase]
 Id 222
 Title AudioRecord.67 - 8000hz SampleRate Mp4
-File e:\testing\data\record\testSR.mp4
+File c:\data\testSR.mp4
 RecTime 15 0 0
 SampleRate 8000
 [End_TestCase]
@@ -606,7 +606,7 @@
 [TestCase]
 Id 222
 Title AudioRecord.68 - 16000hz SampleRate Mp4
-File e:\testing\data\record\testSR.mp4
+File c:\data\testSR.mp4
 RecTime 15 0 0
 SampleRate 16000
 [End_TestCase]
@@ -615,7 +615,7 @@
 [TestCase]
 Id 222
 Title AudioRecord.69 - 32000hz SampleRate Mp4
-File e:\testing\data\record\testSR.mp4
+File c:\data\testSR.mp4
 RecTime 15 0 0
 SampleRate 32000
 [End_TestCase]
@@ -624,14 +624,14 @@
 #[TestCase]
 #Id 223
 #Title AudioRecord.70 - DataType mp4
-#File e:\testing\data\record\testDataType.mp4
+#File c:\data\testDataType.mp4
 #[End_TestCase]
 
 
 [TestCase]
 Id 225
 Title AudioRecord.71 - test steror Channel for mp4
-File e:\testing\data\record\testChannel.mp4
+File c:\data\testChannel.mp4
 RecTime 15 0 0
 Channels 2
 [End_TestCase]
@@ -639,7 +639,7 @@
 [TestCase]
 Id 225
 Title AudioRecord.72 - test mono Channel for mp4
-File e:\testing\data\record\testChannel.mp4
+File c:\data\testChannel.mp4
 RecTime 15 0 0
 Channels 1
 [End_TestCase]
@@ -648,7 +648,7 @@
 [TestCase]
 Id 211
 Title AudioRecord.73 - PriorityRecordClip1 - Mp4
-File e:\testing\data\record\PriorityTest1-.mp4 5 0 5 0 0
+File c:\data\PriorityTest1-.mp4 5 0 5 0 0
 RecTime 3 0 0
 BitRate 32000
 Channels 2
@@ -659,7 +659,7 @@
 [TestCase]
 Id 211
 Title AudioRecord.74 - PriorityRecordClip2 - Mp4
-File e:\testing\data\record\PriorityTest2-.mp4 3 1 3 0 0
+File c:\data\PriorityTest2-.mp4 3 1 3 0 0
 RecTime 3 0 0 
 BitRate 32000
 Channels 2
@@ -671,7 +671,7 @@
 [TestCase]
 Id 211
 Title AudioRecord.75 - PriorityRecordClip3 - Mp4
-File e:\testing\data\record\PriorityTest3-.mp4 8 0 10 0 0 
+File c:\data\PriorityTest3-.mp4 8 0 10 0 0 
 RecTime 3 0 0
 BitRate 32000
 Channels 2
@@ -727,7 +727,7 @@
 Id 219
 Title Plugin.REC.28 - CropL from middle
 ErrorRange 2 0 0
-File e:\testing\data\record\CropTest.amr 
+File c:\data\CropTest.amr 
 RecTime 10 0 0
 RelativePos 50
 [End_TestCase]
@@ -736,7 +736,7 @@
 Id 219
 Title Plugin.REC.36 - CropFromBeginningL from middle
 ErrorRange 2 0 0
-File e:\testing\data\record\CropTest.wav
+File c:\data\CropTest.wav
 RecTime 10 0 0
 FromBegining 0
 RelativePos 50
@@ -846,7 +846,7 @@
 [End_TestCase]
 
 
-//not working???
+//Fails on Udeb logs enabled image, .Need to test on clean fix image
 [TestCase]
 Id 201
 Title AudioRecord.87 - RecordFormats right - amr
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/group/AudioRecorderTestModule.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/group/AudioRecorderTestModule.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -87,9 +87,9 @@
 LIBRARY         euser.lib
 LIBRARY         ecom.lib
 LIBRARY         stiftestinterface.lib
-LIBRARY		      MediaClientAudio.lib
+LIBRARY		      mediaclientaudio.lib
 LIBRARY		      efsrv.lib 
-LIBRARY		      MMFControllerFramework.lib
+LIBRARY		      mmfcontrollerframework.lib
 LIBRARY         mmcommon.lib
 LIBRARY     	ecom.lib
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/AudioResourceNotification.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/AudioResourceNotification.h	Thu Sep 02 20:58:01 2010 +0300
@@ -54,6 +54,7 @@
 	CMdaAudioRecorderUtility* recorder;
 
 	void ConstructL(TFileName* fileName);
+	TInt iCallBackErr;
 
 
 };
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/CustomCommand.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/CustomCommand.h	Thu Sep 02 20:58:01 2010 +0300
@@ -54,6 +54,7 @@
 	CMdaAudioRecorderUtility* recorder;
 
 	void ConstructL(TFileName* fileName);
+	TInt iCallBackErr;
 
 
 };
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/CustomCommandAsync.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/CustomCommandAsync.h	Thu Sep 02 20:58:01 2010 +0300
@@ -54,6 +54,7 @@
 	CMdaAudioRecorderUtility* recorder;
 
 	void ConstructL(TFileName* fileName);
+	TInt iCallBackErr;
 
 
 };
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/RecordFormats.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/RecordFormats.h	Thu Sep 02 20:58:01 2010 +0300
@@ -46,6 +46,7 @@
 
 private:
 	void ConstructL(TFileName* fileName);
+	TInt iCallBackErr;
 };
 
 #endif // !defined(AFX_RECORDFORMATS_H__3EDE1ACC_939F_49BE_B0B1_55C01807632D__INCLUDED_)
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/ThreadPriority.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/inc/ThreadPriority.h	Thu Sep 02 20:58:01 2010 +0300
@@ -46,6 +46,8 @@
 	CMdaAudioRecorderUtility* recorder;
 
 	void ConstructL(TFileName* fileName);
+	
+	TInt iCallbackErr;
 
 
 };
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/AudioLoadingProgress.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/AudioLoadingProgress.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -142,9 +142,15 @@
 #ifdef _DEBUG
     RDebug::Print (_L ("CAudioLoadingProgress::MoscoStateChangeEvent"));
 #endif
-	TInt err = KErrNone;
-	callbackErr = KErrNone;
+    
+    callbackErr = aErrorCode;
 
+    if (aErrorCode != KErrNone)
+        {
+
+        CActiveScheduler::Stop();
+
+        }
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
 
     TInt aState = recorder->State();
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/AudioResourceNotification.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/AudioResourceNotification.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -28,6 +28,7 @@
 {
 	console = aConsole;
 	logger = aLogger;
+	iCallBackErr = KErrNone;
 
 }
 
@@ -107,7 +108,10 @@
 	CleanupStack::PushL(selfObj);
 
 	CActiveScheduler::Start();
-
+	if(selfObj->iCallBackErr != KErrNone)
+	    {
+        error = selfObj->iCallBackErr;
+        }
 
 	CleanupStack::PopAndDestroy(2); // schedule, selfObj
 
@@ -141,7 +145,7 @@
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
 
-
+	iCallBackErr = aErrorCode;	
 
 	if (recorder && aErrorCode == KErrNone && aCurrentState == CMdaAudioClipUtility::EOpen && aPreviousState == 0)
 	{
@@ -205,9 +209,15 @@
 
 		recorder->WillResumePlay();
 		CActiveScheduler::Stop();
+		return;
 	}
-
-	return;
+	if (aErrorCode != KErrNone)
+	        {
+	        
+	        CActiveScheduler::Stop();
+	        return;
+	        }
+	
 
 }
 
@@ -222,7 +232,7 @@
 }
 
 
-void CAudioResourceNotification::MarncResourceAvailable(TUid aNotificationEventId, const TDesC8 &aNotificationData)
+void CAudioResourceNotification::MarncResourceAvailable(TUid /*aNotificationEventId*/, const TDesC8 &/*aNotificationData*/)
 {
 		logger->Log(_L("MarncResourceAvailable "));
 }
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CropFromBeginning.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CropFromBeginning.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -107,7 +107,7 @@
 
 	CActiveScheduler::Start();
 
-	if (error == KErrNone)
+	if (selfObj->callbackErr != KErrNone)
 	{
 		error = selfObj->callbackErr;
 	}
@@ -140,8 +140,8 @@
 #ifdef _DEBUG
     RDebug::Print (_L ("CCropFromBeginning::MoscoStateChangeEvent"));
 #endif
-	TInt err = KErrNone;
-//	callbackErr = KErrNone;
+
+	callbackErr = aErrorCode;
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
 
@@ -185,6 +185,12 @@
 
 		CActiveScheduler::Stop();
 	}
+	if (aErrorCode != KErrNone)
+	        {
+
+	        CActiveScheduler::Stop();
+	        
+	        }
 
 
 	return;
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CustomCommand.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CustomCommand.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -28,7 +28,7 @@
 {
 	console = aConsole;
 	logger = aLogger;
-
+	iCallBackErr = KErrNone;
 }
 
 CCustomCommand::~CCustomCommand()
@@ -107,8 +107,12 @@
 	CleanupStack::PushL(selfObj);
 
 	CActiveScheduler::Start();
-
-
+	
+	if(selfObj->iCallBackErr != KErrNone)
+	    {
+        error = selfObj->iCallBackErr;
+	    }
+	
 	CleanupStack::PopAndDestroy(2); // schedule, selfObj
 
 	return error;
@@ -137,13 +141,16 @@
 #ifdef _DEBUG
     RDebug::Print (_L ("CCustomCommand::MoscoStateChangeEvent"));
 #endif
-	TInt err = KErrNone;
+	
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
-
+	
+	iCallBackErr = aErrorCode;
+	
 	TUint bitRate = recorder->SourceBitRateL();
 	logger->Log(_L("SourceBitRateL %d "),bitRate);
-
+	
+	
 
 	if (recorder && aErrorCode == KErrNone && aCurrentState == CMdaAudioClipUtility::EOpen && aPreviousState == 0)
 	{
@@ -237,6 +244,12 @@
 		recorder->WillResumePlay();
 		CActiveScheduler::Stop();
 	}
+	if(aErrorCode != KErrNone)
+	        {
+	            
+	            CActiveScheduler::Stop();
+	            
+	        }
 
 	return;
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CustomCommandAsync.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/CustomCommandAsync.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -28,6 +28,7 @@
 {
 	console = aConsole;
 	logger = aLogger;
+	iCallBackErr = KErrNone;
 
 }
 
@@ -108,7 +109,10 @@
 
 	CActiveScheduler::Start();
 
-
+	if(selfObj->iCallBackErr != KErrNone)
+	        {
+	        error = selfObj->iCallBackErr;
+	        }
 	CleanupStack::PopAndDestroy(2); // schedule, selfObj
 
 	return error;
@@ -137,12 +141,11 @@
 #ifdef _DEBUG
     RDebug::Print (_L ("CCustomCommandAsync::MoscoStateChangeEvent"));
 #endif
-	TInt err = KErrNone;
+	
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
 
-
-
+	iCallBackErr = aErrorCode;
 	if (recorder && aErrorCode == KErrNone && aCurrentState == CMdaAudioClipUtility::EOpen && aPreviousState == 0)
 	{
 		TBuf8<25> dataFrom;
@@ -204,6 +207,12 @@
 		CActiveScheduler::Stop();
 	}
 
+    if (aErrorCode != KErrNone)
+    {
+    
+    CActiveScheduler::Stop();
+    
+    }
 	return;
 
 }
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/MetaDataEntry.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/MetaDataEntry.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -109,7 +109,7 @@
 
 	CActiveScheduler::Start();
 
-	if (error == KErrNone)
+	if (selfObj->callbackErr != KErrNone)
 	{
 		error = selfObj->callbackErr;
 	}
@@ -143,13 +143,12 @@
     RDebug::Print (_L ("CMetaDataEntry::MoscoStateChangeEvent"));
 #endif
 	TInt err = KErrNone;
-//	callbackErr = KErrNone;
+	callbackErr = aErrorCode;
 	RArray<TFourCC> dataTypes;
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
 
-
-
+	
 	if (recorder && aErrorCode == KErrNone && aCurrentState == CMdaAudioClipUtility::EOpen && aPreviousState == 0)
 	{
 		// Initialize
@@ -269,6 +268,13 @@
 		logger->Log(_L("before stop....-"));
 		CActiveScheduler::Stop();
 	}
+	if (aErrorCode != KErrNone)
+	    {
+        
+	    CActiveScheduler::Stop();
+	    
+	    }
+
 
 	return;
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayBalance.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayBalance.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -225,6 +225,11 @@
 
 		CActiveScheduler::Stop();
 	}
+	if (aErrorCode != KErrNone)
+	    {
+	    expectedBalance = 0;
+	    CActiveScheduler::Stop();   
+	    }
 
 	return;
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayRamp.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayRamp.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -201,6 +201,13 @@
 		logger->Log(_L("MoscoStateChangeEvent GetVolume after play: %d  "),expectedVol);
 		CActiveScheduler::Stop();
 	}
+	
+	if (aErrorCode != KErrNone)
+	    {
+	    expectedVol = 0;
+	    CActiveScheduler::Stop();
+	    
+	    }
 	return;
 
 }
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayVolume.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayVolume.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -115,8 +115,14 @@
 		this->volume = volume;
 		logger->Log(_L("MoscoStateChangeEvent getVolume:  %d "),volume);
 		CActiveScheduler::Stop();
+		return;
 	}
-	return;
+	if (aErrorCode != KErrNone)
+	    {
+        CActiveScheduler::Stop();
+		return;
+        }
+    
 }
 
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayWindow.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/PlayWindow.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -227,6 +227,10 @@
 
 		CActiveScheduler::Stop();
 	}
+	   if (aErrorCode != KErrNone)
+	    {
+	    CActiveScheduler::Stop();   
+	    }
 	return;
 
 }
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordDataFormat.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordDataFormat.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -122,7 +122,7 @@
 
 	CActiveScheduler::Start();
 
-	if (error == KErrNone)
+	if (selfObj->callbackErr != KErrNone)
 	{
 		error = selfObj->callbackErr;
 	}
@@ -160,7 +160,6 @@
 
 	if (recorder && aErrorCode == KErrNone && aCurrentState == CMdaAudioClipUtility::EOpen && aPreviousState == 0)
 	{
-
 		if (dataFormat == KFormatWav)
 		{
 			logger->Log(_L("SetDestinationFormatL(KMmfUidFormatWAVWrite)"));
@@ -174,13 +173,11 @@
 				CActiveScheduler::Stop();
 				return;
 			}
-
 			if (recorder->DestinationFormatL() != id)
 			{
 				logger->Log(_L("Retrieved format is not same as set format") );
 				callbackErr = KErrOutOfRange;
 			}
-
 		}
 		else
 		{
@@ -209,6 +206,10 @@
 			}*/
 		}
 	}
+	if (aErrorCode != KErrNone)
+	    {
+        callbackErr = aErrorCode;	    
+	    }
 
 	CActiveScheduler::Stop();
 	return;
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordDataType.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordDataType.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -107,7 +107,11 @@
 	CleanupStack::PushL(selfObj);
 
 	CActiveScheduler::Start();
-
+	
+	if(selfObj->callbackErr != KErrNone)
+	    {
+        error = selfObj->callbackErr;
+	    }
 
 	CleanupStack::PopAndDestroy(2); // schedule, selfObj
 
@@ -137,8 +141,8 @@
 #ifdef _DEBUG
     RDebug::Print (_L ("CRecordDataType::MoscoStateChangeEvent"));
 #endif
-	TInt err = KErrNone;
-	callbackErr = KErrNone;
+	
+	callbackErr = aErrorCode;
 	RArray<TFourCC> dataTypes;
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
@@ -207,7 +211,11 @@
 
 		CActiveScheduler::Stop();
 	}
-
+	if (aErrorCode != KErrNone)
+	    {
+	    CActiveScheduler::Stop();
+	    
+	    }
 
 
 	return;
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordFormats.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordFormats.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -29,6 +29,7 @@
 {
 	console = aConsole;
 	logger = aLogger;
+	iCallBackErr = KErrNone;
 }
 
 CRecordFormats::~CRecordFormats()
@@ -81,7 +82,8 @@
 #endif
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
-
+	iCallBackErr = aErrorCode;
+	
 	if (recorder && aErrorCode == KErrNone && aCurrentState == CMdaAudioClipUtility::EOpen)
 	{
 		TRAPD(err3, recorder->AudioRecorderControllerImplementationInformationL());
@@ -106,6 +108,7 @@
 
 TInt CRecordFormats::RunTestL(CTestModuleIf* aConsole, CStifLogger *aLogger, CStifSectionParser* aParser, TInt* /*clipCounter*/)
 {
+    TInt error = KErrNone;
 	aLogger->Log(_L("Creating scheduler"));
 
 	CActiveScheduler*  scheduler = new (ELeave) CActiveScheduler;
@@ -136,8 +139,11 @@
 	CActiveScheduler::Start();
 
 	CleanupStack::PopAndDestroy(2);
-
-	return KErrNone;
+	
+	if(selfObj->iCallBackErr != KErrNone)
+	    error = selfObj->iCallBackErr;
+	
+	return error;
 }
 
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordOpen.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordOpen.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -259,7 +259,7 @@
 	//File with controller
 	if (type == KOpenFile2)
 	{
-		TInt aUid = 1;
+		//TInt aUid = 1;
 		//TUid aRecordControllerUid = TUid::Uid(aUid);
 		TUid aRecordControllerUid = KNullUid;//KUidInterfaceMMFController;//TUid::Uid(KMmfUidPluginInterfaceFormatDecode);//KMmfUidPluginInterfaceController;//{0x10203827};
 		//const TUid KUidBassBoostEffect = {0x10203827};
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordingBase.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/RecordingBase.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -142,7 +142,8 @@
     RDebug::Print (_L ("CRecordingBase::MoscoStateChangeEvent"));
 #endif
 
-    if (aErrorCode != KErrNone)
+    
+
 	    logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),
 	                   aErrorCode,aPreviousState,aCurrentState);
 /*
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/ThreadPriority.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioRecorderTestModule/src/ThreadPriority.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -106,8 +106,10 @@
 	CleanupStack::PushL(selfObj);
 
 	CActiveScheduler::Start();
-
-
+	
+	if(selfObj->iCallbackErr != KErrNone)
+	    error = selfObj->iCallbackErr;
+	
 	CleanupStack::PopAndDestroy(2); // schedule, selfObj
 
 	return error;
@@ -136,10 +138,12 @@
 #ifdef _DEBUG
     RDebug::Print (_L ("CThreadPriority::MoscoStateChangeEvent"));
 #endif
-	TInt err = KErrNone;
+	
 
 	logger->Log(_L("MoscoStateChangeEvent called, error: %d	prev: %d curr : %d"),aErrorCode,aPreviousState,aCurrentState);
 logger->Log(_L("Before Checking Duaration."));
+iCallbackErr = aErrorCode;
+    
 		TTimeIntervalMicroSeconds aDuration, aRecordTime;
   	    TMMFDurationInfo clipDuration = recorder->Duration(aDuration);
 		logger->Log(_L("Duaration is %d"), aDuration.Int64());
@@ -191,10 +195,17 @@
 
 
 		CActiveScheduler::Stop();
+		return;
 	}
+	 if (aErrorCode != KErrNone)
+        {
+        
+        CActiveScheduler::Stop();
+        return ;
+        }
 
 
-	return;
+
 
 }
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/group/AudioStreamTestModule.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/group/AudioStreamTestModule.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -54,8 +54,8 @@
 LIBRARY         ecom.lib
 LIBRARY         stiftestinterface.lib
 LIBRARY	        efsrv.lib
-LIBRARY     		MediaClientAudioStream.lib
-LIBRARY     		MediaClientAudioInputStream.lib
+LIBRARY     		mediaclientaudiostream.lib
+LIBRARY     		mediaclientaudioinputstream.lib
 
 LANG            SC
 
--- a/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/EmulatorRecordTestModule/AudioRecorderBAT.cfg	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/EmulatorRecordTestModule/AudioRecorderBAT.cfg	Thu Sep 02 20:58:01 2010 +0300
@@ -251,12 +251,13 @@
 Title AudioRecord.85-1 - Open File/RFile/SFile/Desc with controller - amr
 ErrorRange 1 0 0
 1 Desc2 c:\testing\data\amr\10s_AMR_NB_mode_0.amr 2 0 0
-[End_TestCase
+[End_TestCase]
 
+// This test case is not used temporarily because the value used is the local variable for testing
 //Open SourceFile/Desc
-[TestCase]
-Id 234
-Title AudioRecord.88 - Open Desc - amr
-ErrorRange 1 0 0
-1 Desc c:\testing\data\amr\10s_AMR_NB_mode_0.amr 2 0 0
-[End_TestCase]
\ No newline at end of file
+//[TestCase]
+//Id 234
+//Title AudioRecord.88 - Open Desc - amr
+//ErrorRange 1 0 0
+//1 Desc c:\testing\data\amr\10s_AMR_NB_mode_0.amr 2 0 0
+//[End_TestCase]
\ No newline at end of file
--- a/mmfenh/advancedaudiocontroller/wavplaycontrollerplugin/group/MmfAudioController.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/wavplaycontrollerplugin/group/MmfAudioController.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -49,7 +49,7 @@
 LIBRARY mmfdevsound.lib
 LIBRARY mmfcontrollerframework.lib
 LIBRARY mmfstandardcustomcommands.lib
-LIBRARY	custominterfacebuilder.lib
+LIBRARY	CustomInterfaceBuilder.lib
 LIBRARY	AudioOutputRouting.lib
 LIBRARY DrmDcf.lib
 LIBRARY	ConfigurationComponentsFactory.lib
--- a/mmfenh/audiooutputcontrolutility/AudioOutputControlUtilityProxy/Group/AudioOutputControlUtilityProxy.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/audiooutputcontrolutility/AudioOutputControlUtilityProxy/Group/AudioOutputControlUtilityProxy.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -37,7 +37,7 @@
 SYSTEMINCLUDE   /epoc32/include/mmf/common 
 SYSTEMINCLUDE   /epoc32/include/mmf/server
 
-LIBRARY    	Euser.lib
+LIBRARY    	euser.lib
 LIBRARY		AudioOutputControlUtility.lib
 LIBRARY		ConfigurationComponentsFactory.lib
 LIBRARY		RestrictedAudioOutput.lib
--- a/mmfenh/enhancedaudioplayerutility/AudioPlayer/group/S60AudioPlayer.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/enhancedaudioplayerutility/AudioPlayer/group/S60AudioPlayer.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -52,7 +52,7 @@
 LIBRARY		mmfcontrollerframework.lib 
 LIBRARY		mmfstandardcustomcommands.lib 
 LIBRARY 	caf.lib
-LIBRARY 	ECom.lib
+LIBRARY 	ecom.lib
 LIBRARY		S60AudioSource.lib
 LIBRARY		S60AudioClientStreamSource.lib
 LIBRARY		S60AudioUtility.lib
--- a/mmfenh/enhancedaudioplayerutility/AudioStreaming/AudioClientStreamSource/group/S60AudioClientStreamSource.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/enhancedaudioplayerutility/AudioStreaming/AudioClientStreamSource/group/S60AudioClientStreamSource.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -50,5 +50,5 @@
 LIBRARY 	efsrv.lib  
 LIBRARY		mmfcontrollerframework.lib 
 LIBRARY		mmfstandardcustomcommands.lib 
-LIBRARY 	ECom.lib
+LIBRARY 	ecom.lib
 LIBRARY		S60AudioSource.lib
--- a/mmfenh/enhancedaudioplayerutility/S60AudioUtility/group/S60AudioUtility.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/enhancedaudioplayerutility/S60AudioUtility/group/S60AudioUtility.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -45,7 +45,7 @@
 
 library			euser.lib
 library			efsrv.lib
-library			MmfControllerFramework.lib
+library			mmfcontrollerframework.lib
 library			caf.lib
 library			cafutils.lib
 library			ecom.lib
--- a/mmfenh/profilesettingsmonitor/group/ProfileSettingsMonitor.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/profilesettingsmonitor/group/ProfileSettingsMonitor.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -41,6 +41,7 @@
 LIBRARY		    ProfileEngine.lib
 LIBRARY		centralrepository.lib
 LIBRARY         euser.lib
+LIBRARY         ProfileEng.lib
 
 epocprocesspriority background
 
--- a/mmfenh/profilesettingsmonitor/inc/ProfileSettingsMonitorServerImpl.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/profilesettingsmonitor/inc/ProfileSettingsMonitorServerImpl.h	Thu Sep 02 20:58:01 2010 +0300
@@ -38,6 +38,7 @@
 #include <ProfilesVariant.hrh>
 #include <e32capability.h>
 #include <GlobalAudioSettings.h>
+#include <MProfileEngineExtended2.h>
 class CProfileSettingsMonitorServerImpl : 
 public CBase, 
 public MProEngProfileActivationObserver, 
@@ -70,6 +71,7 @@
 private:
     MProEngEngine* iEngine;
     MProEngNotifyHandler* iNotifyHandler;
+    MProfileEngineExtended2* iProfileEngineExtended;
     TInt iActiveProfileId;
     TBool iWarningTones;
     TBool iMessagingTones;
@@ -85,6 +87,7 @@
     CGlobalAudioSettings::TGASRingingType iGASRingingType;
   
     CGlobalAudioSettings::TGASKeypadVolume iGASKeypadVolume;
+    TBool iSilenceMode;
     RProperty iWarningTonesProperty;
     RProperty iMessagingTonesProperty;
     RProperty iSilentProfileProperty;
@@ -97,6 +100,7 @@
     RProperty iRingingTone1NameProperty;
     RProperty iRingingTone2NameProperty;
     RProperty iKeypadVolumeProperty;
+    RProperty iSilenceModeProperty;
 	};
 
 #endif
--- a/mmfenh/profilesettingsmonitor/src/ProfileSettingsMonitorServerImpl.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmfenh/profilesettingsmonitor/src/ProfileSettingsMonitorServerImpl.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -21,6 +21,7 @@
 #include <AudioClientsListPSKeys.h>
 #include <AudioClientsListPSData.h>
 #include <MediaStreamPropertiesPSKeys.h>
+#include <MProfileExtended.h>
 
 #ifdef _DEBUG
 #define DEB_TRACE0(str)             RDebug::Print(str)
@@ -99,6 +100,11 @@
 	   delete iRingingTone2Name;
 	   iRingingTone2Name=NULL;
 	   }
+	if(iProfileEngineExtended)
+	    {
+	    iProfileEngineExtended->Release();
+	    }
+	//delete iProfileEngineExtended;
 	// Release profile engine resources
 	if ( iEngine )
 	    {
@@ -158,6 +164,10 @@
   
     CMapGASKeypadVolume(settings.KeypadVolume());
     
+    iProfileEngineExtended =::CreateProfileEngineExtended2L();
+   
+     iSilenceMode = iProfileEngineExtended->SilenceModeL();
+     RDebug::Printf("value of silence mode %d",iSilenceMode);
     // Get PublicSilence from CenRep
     TInt featureBitmask( 0 );     
     CRepository* profileCenRep = CRepository::NewL( KCRUidProfilesLV );
@@ -343,6 +353,20 @@
                                                KGASPSUidGlobalAudioSettings,
                                                KGASKeypadToneVolume,
                                                iGASKeypadVolume));
+    
+    User::LeaveIfError(RProperty::Define(
+                                        KGASPSUidGlobalAudioSettings,
+                                        KGASSilenceMode,
+                                        RProperty::EInt,
+                                        read,
+                                        write));
+        User::LeaveIfError(iSilenceModeProperty.Attach(
+                                                   KGASPSUidGlobalAudioSettings,
+                                                   KGASSilenceMode));
+        User::LeaveIfError(iSilenceModeProperty.Set(
+                                                   KGASPSUidGlobalAudioSettings,
+                                                   KGASSilenceMode,
+                                                   iSilenceMode));
 
     //Stream Gain Control
     TInt status = RProperty::Define(
@@ -550,6 +574,16 @@
               
               
             }
+        if(iSilenceMode != iProfileEngineExtended->SilenceModeL())
+            {
+             RDebug::Printf("silence mode changed");
+             iSilenceMode = iProfileEngineExtended->SilenceModeL();
+             User::LeaveIfError(iSilenceModeProperty.Set(
+                                                        KGASPSUidGlobalAudioSettings,
+                                                        KGASSilenceMode,
+                                                        iSilenceMode));
+            }
+        
         CleanupStack::PopAndDestroy(currentProfile);
         }
 #ifdef _DEBUG
@@ -671,6 +705,15 @@
           
           
         }
+    if(iSilenceMode != iProfileEngineExtended ->SilenceModeL())
+        {
+    RDebug::Printf("silence mode changed");
+         iSilenceMode = iProfileEngineExtended ->SilenceModeL();
+         User::LeaveIfError(iSilenceModeProperty.Set(KGASPSUidGlobalAudioSettings,
+                                                                                KGASSilenceMode,
+                                                                                iSilenceMode));
+         }
+   
     CleanupStack::PopAndDestroy(currentProfile);
     }
 
--- a/mmmw_plat/audio_metadata_reader_api/inc/MetaDataField.hrh	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmmw_plat/audio_metadata_reader_api/inc/MetaDataField.hrh	Thu Sep 02 20:58:01 2010 +0300
@@ -26,7 +26,7 @@
     EUnknownMetaDataField = 0,
 
     EMetaDataSongTitle = 1,
-    EMetaDataArtist,
+    EMetaDataArtist,     // the artist of the song
     EMetaDataAlbum,
     EMetaDataYear,
     EMetaDataComment,
@@ -46,7 +46,8 @@
     EMetaDataUnsyncLyrics,
     EMetaDataProtected,   // get the Protected info, "0"=non protected, "1"=protected
     EMetaDataSampleRate,  // Hz
-    EMetaDataBitRate      // Bps		
+    EMetaDataBitRate,     // Bps		
+    EMetaDataAlbumArtist  // the artist of the album
 	
     // More later...
     };
--- a/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/group/MetaDataDisplay.pkg	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/group/MetaDataDisplay.pkg	Thu Sep 02 20:58:01 2010 +0300
@@ -44,15 +44,15 @@
 ; None
 
 ; Install files
-"..\..\data\mmc\DownUnder_remix.aac"   -   "e:\testing\data\DownUnder_remix.aac"
-"..\..\data\mmc\DRM_NRTmeta.dcf"   -   "e:\testing\data\DRM_NRTmeta.dcf"
-"..\..\data\mmc\JapJap.mp3"   -   "e:\testing\data\JapJap.mp3"
-"..\..\data\mmc\JepJep.mp3"   -   "e:\testing\data\JepJep.mp3"
-"..\..\data\mmc\JipJip.mp3"   -   "e:\testing\data\JipJip.mp3"
-"..\..\data\mmc\MP3_MD.mp3"   -   "e:\testing\data\MP3_MD.mp3"
-"..\..\data\mmc\test3gp.3gp"   -   "e:\testing\data\test3gp.3gp"
-"..\..\data\mmc\testm4a.m4a"   -   "e:\testing\data\testm4a.m4a"
-"..\..\data\mmc\testmp4.mp4"   -   "e:\testing\data\testmp4.mp4"
+; "..\..\data\mmc\DownUnder_remix.aac"   -   "e:\testing\data\DownUnder_remix.aac"
+; "..\..\data\mmc\DRM_NRTmeta.dcf"   -   "e:\testing\data\DRM_NRTmeta.dcf"
+; "..\..\data\mmc\JapJap.mp3"   -   "e:\testing\data\JapJap.mp3"
+; "..\..\data\mmc\JepJep.mp3"   -   "e:\testing\data\JepJep.mp3"
+; "..\..\data\mmc\JipJip.mp3"   -   "e:\testing\data\JipJip.mp3"
+; "..\..\data\mmc\MP3_MD.mp3"   -   "e:\testing\data\MP3_MD.mp3"
+; "..\..\data\mmc\test3gp.3gp"   -   "e:\testing\data\test3gp.3gp"
+; "..\..\data\mmc\testm4a.m4a"   -   "e:\testing\data\testm4a.m4a"
+; "..\..\data\mmc\testmp4.mp4"   -   "e:\testing\data\testmp4.mp4"
 "..\..\init\TestFramework.ini"   -   "c:\TestFramework\TestFramework.ini" 
 "..\..\conf\MetaDataDisplay.cfg"   -   "c:\TestFramework\MetaDataDisplay.cfg"
 "\epoc32\release\armv5\urel\MetaDataDisplay.dll"   -   "!:\Sys\Bin\MetaDataDisplay.dll"
--- a/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/src/MetaDataDisplayBlocks.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/src/MetaDataDisplayBlocks.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -1872,7 +1872,8 @@
 						}
 					else
 						{
-						iLog->Log( _L("The content of meta data field [%d] is [%S]."),field.Alloc() );
+						//iLog->Log( _L("The content of meta data field [%d] is [%S]."),field.Alloc() );
+					    iLog->Log( _L("Unknown meta data field"));
 						}
 					break;
 					}
--- a/mmmw_plat/system_tone_service_api/inc/systemtoneservice.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmmw_plat/system_tone_service_api/inc/systemtoneservice.h	Thu Sep 02 20:58:01 2010 +0300
@@ -15,13 +15,10 @@
  * This file defines the API for System Tone Service which is
  * implemented in the systemtoneservice.dll.
  */
-
 #ifndef SYSTEMTONESERVICE_H_
 #define SYSTEMTONESERVICE_H_
-
 // System includes
 #include <e32base.h>
-
 // Forward declarations
 NONSHARABLE_CLASS( CStsImplementation);
 
@@ -202,7 +199,7 @@
      * when an alarm playback completes if it is not manually stopped by the client.
      *
      * @param[in]  aAlarm        The system alarm type to play.
-     * @param[out] aAlarmContext A guaranteed globablly unique context representing this
+     * @param[out] aAlarmContext A guaranteed globally unique context representing this
      *                           specific alarm playback that can be used for stopping the
      *                           alarm or used to indicate to the observer which alarm playback
      *                           has completed.
@@ -214,7 +211,29 @@
      *                           all alarms the observer is associated with are either completed
      *                           or stopped.
      */
-    IMPORT_C void PlayAlarm(TAlarmType aAlarm, unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
+    IMPORT_C void PlayAlarm(TAlarmType aAlarm, unsigned int& aAlarmContext,
+            MStsPlayAlarmObserver& aObserver);
+
+    /**
+     * Plays the specified system tone as an alarm.  If the tone type is not recognized, a default
+     * default tone will be played.  Using this method allows the clients to stop the tone or get
+     * a callback when the tone playback completes.
+     *
+     * @param[in]  aTone         The system tone type to play.
+     * @param[out] aAlarmContext A guaranteed globally unique context representing this
+     *                           specific tone playback that can be used for stopping the
+     *                           tone or used to indicate to the observer which playback
+     *                           has completed.
+     * @param[in] aObserver      A reference to the observer that is to be notified if this alarm
+     *                           playback completes before StopAlarm is called.  The same observer
+     *                           can be used for multiple PlayAlarms, even for ones playing at the
+     *                           same time.  It is the responsibility of the client to manage the
+     *                           life cycle of the observer.  However the observer must exist until
+     *                           all alarms the observer is associated with are either completed
+     *                           or stopped.
+     */
+    IMPORT_C void PlayAlarm(TToneType aTone, unsigned int& aAlarmContext,
+            MStsPlayAlarmObserver& aObserver);
 
     /**
      * Stops the specified system alarm playback.  If the playback has already completed or the
@@ -223,8 +242,6 @@
      * @param[in] aAlarmContext The context to the specific alarm that is to be stopped.
      */
     IMPORT_C void StopAlarm(unsigned int aAlarmContext);
-    
-    IMPORT_C void PlayAlarm(TToneType aTone, unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
 
 protected:
     // Protected constructors and destructors
--- a/mmserv/callaudiocontrol/group/CallAudioControl.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/callaudiocontrol/group/CallAudioControl.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -46,7 +46,7 @@
 //SYSTEMINCLUDE	/epoc32/include/CallAudioControl
 
 LIBRARY         euser.lib
-LIBRARY		telephonyaudiorouting.lib
+LIBRARY		TelephonyAudioRouting.lib
 LIBRARY		centralrepository.lib
 
 #ifdef __SERIES60_31__
Binary file mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser.dso has changed
Binary file mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser.lib has changed
Binary file mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser{000a0000}.dso has changed
Binary file mmserv/metadatautility/3GPExtParserLib/armv5/LIB/3GPExtParser{000a0000}.lib has changed
Binary file mmserv/metadatautility/3GPExtParserLib/armv5/udeb/3GPExtParser.dll has changed
Binary file mmserv/metadatautility/3GPExtParserLib/armv5/urel/3GPExtParser.dll has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/metadatautility/3GPExtParserLib/group/bld.inf	Thu Sep 02 20:58:01 2010 +0300
@@ -0,0 +1,43 @@
+/*
+* 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:  Project build file for 3GPExtParser lib
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+#ifdef  __3GP_EXTENTION
+
+// Exporting 3GPExtParser Binaries
+../armv5/LIB/3GPExtParser.lib                   /epoc32/release/armv5/LIB/3GPExtParser.lib
+../armv5/LIB/3GPExtParser.dso                   /epoc32/release/armv5/LIB/3GPExtParser.dso
+../armv5/LIB/3GPExtParser{000a0000}.lib         /epoc32/release/armv5/LIB/3GPExtParser{000a0000}.lib
+../armv5/LIB/3GPExtParser{000a0000}.dso         /epoc32/release/armv5/LIB/3GPExtParser{000a0000}.dso
+
+../armv5/udeb/3GPExtParser.dll 			/epoc32/release/armv5/udeb/3GPExtParser.dll
+../armv5/urel/3GPExtParser.dll 			/epoc32/release/armv5/urel/3GPExtParser.dll
+
+../winscw/udeb/3GPExtParser.lib 		/epoc32/release/winscw/udeb/3GPExtParser.lib
+../winscw/udeb/3GPExtParser.dll 		/epoc32/release/winscw/udeb/3GPExtParser.dll
+../winscw/urel/3GPExtParser.dll 		/epoc32/release/winscw/urel/3GPExtParser.dll
+
+#endif
+
+PRJ_MMPFILES
+
+
+//  End of File  
Binary file mmserv/metadatautility/3GPExtParserLib/winscw/udeb/3GPExtParser.dll has changed
Binary file mmserv/metadatautility/3GPExtParserLib/winscw/udeb/3GPExtParser.lib has changed
Binary file mmserv/metadatautility/3GPExtParserLib/winscw/urel/3GPExtParser.dll has changed
--- a/mmserv/metadatautility/3GPExtParserLib_stub/BWINS/3GPExtParserU.DEF	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-EXPORTS
-	??1C3GPExtParser@@UAE@XZ @ 1 NONAME ; C3GPExtParser::~C3GPExtParser(void)
-	?GetilstBoxesL@C3GPExtParser@@QAEXABVTDesC8@@W4TMetaDataFieldId@@PAPAVHBufC16@@@Z @ 2 NONAME ; void C3GPExtParser::GetilstBoxesL(class TDesC8 const &, enum TMetaDataFieldId, class HBufC16 * *)
-	?Is3GPExtMetadataL@C3GPExtParser@@QAEHXZ @ 3 NONAME ; int C3GPExtParser::Is3GPExtMetadataL(void)
-	?NewL@C3GPExtParser@@SAPAV1@AAPAJ@Z @ 4 NONAME ; class C3GPExtParser * C3GPExtParser::NewL(long * &)
-	?GetilstBoxesL@C3GPExtParser@@QAEXABVTDesC8@@W4TMetaDataFieldId@@PAPAVHBufC8@@@Z @ 5 NONAME ; void C3GPExtParser::GetilstBoxesL(class TDesC8 const &, enum TMetaDataFieldId, class HBufC8 * *)
-
--- a/mmserv/metadatautility/3GPExtParserLib_stub/EABI/3GPExtParserU.DEF	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-EXPORTS
-	_ZN13C3GPExtParser13GetilstBoxesLERK6TDesC816TMetaDataFieldIdPP7HBufC16 @ 1 NONAME
-	_ZN13C3GPExtParser17Is3GPExtMetadataLEv @ 2 NONAME
-	_ZN13C3GPExtParser4NewLERPl @ 3 NONAME
-	_ZTI13C3GPExtParser @ 4 NONAME ; #<TI>#
-	_ZTV13C3GPExtParser @ 5 NONAME ; #<VT>#
-	_ZN13C3GPExtParser13GetilstBoxesLERK6TDesC816TMetaDataFieldIdPP6HBufC8 @ 6 NONAME
-
--- a/mmserv/metadatautility/3GPExtParserLib_stub/group/3GPExtParserLib_stub.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Project file for 3GPExtParser
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-
-TARGET      3GPExtParser.dll
-TARGETTYPE  DLL
-UID         0x1000008D 0x10207B25
-VENDORID    VID_DEFAULT
-
-#if (defined EKA2)
-CAPABILITY ALL -Tcb
-#endif
-
-VERSION 10.0
-
-SOURCEPATH		../Src 
-SOURCE			3GPExtParserLib_stub.cpp
-
-//Need to add a path to  "3GPExtParser.h"
-USERINCLUDE     	../../Src
-
-MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE		/epoc32/include/libc
-
-LIBRARY         euser.lib
-
-SMPSAFE
-
-// End of file
--- a/mmserv/metadatautility/3GPExtParserLib_stub/group/bld.inf	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Project build file for 3GPExtParser
-*
-*/
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_MMPFILES
-3GPExtParserLib_stub.mmp
-
-//  End of File  
--- a/mmserv/metadatautility/3GPExtParserLib_stub/src/3GPExtParserLib_stub.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* Copyright (c) 2004 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:  This class implements an 3GPExt metadata parser
-*
-*/
-
-// INCLUDE FILES
-#include "3GPExtParser.h"
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C3GPExtParser::C3GPExtParser
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-C3GPExtParser::C3GPExtParser(MP4Handle& aMP4Handle): iMP4Handle(aMP4Handle), ilst(NULL, 0)
-	{
-    }
-
-// -----------------------------------------------------------------------------
-// C3GPExtParser::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void C3GPExtParser::ConstructL()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// C3GPExtParser::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C C3GPExtParser* C3GPExtParser::NewL(MP4Handle& aMP4Handle)
-    {
-	C3GPExtParser* self = new( ELeave ) C3GPExtParser (aMP4Handle);
-    return self;
-    }
-
-// Destructor
-C3GPExtParser::~C3GPExtParser()
-	{
-	}
-
-// -----------------------------------------------------------------------------
-// 3GPExtParser::GetilstBoxesL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void C3GPExtParser::GetilstBoxesL(const TDesC8 &/*aBox*/, TMetaDataFieldId /*aFieldId*/, HBufC** /*aBuf*/)
-{
-    User::Leave(KErrNotSupported);    
-}
-// -----------------------------------------------------------------------------
-// 3GPExtParser::GetilstBoxesL for 8-bit descriptor fields 
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void C3GPExtParser::GetilstBoxesL(const TDesC8 &/*aBox*/, TMetaDataFieldId /*aFieldId*/, HBufC8** /*aBuf*/)
-{
-    User::Leave(KErrNotSupported);   
-}
-
-// -----------------------------------------------------------------------------
-// C3GPExtParser::Is3GPExtMetadataL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TBool C3GPExtParser::Is3GPExtMetadataL()
-{
-    User::Leave(KErrNotSupported); 
-    return EFalse;   
-}
-
-// -----------------------------------------------------------------------------
-// 3GPExtParser::MapID3v1GenreToString()
-// -----------------------------------------------------------------------------
-//
-void C3GPExtParser::ParseIlstBoxesL()
-{
-}
-
-// -----------------------------------------------------------------------------
-// 3GPExtParser::MapID3v1GenreToString()
-// -----------------------------------------------------------------------------
-//
-void C3GPExtParser::MapID3GenreToString(TInt /*aNum*/, TDes& /*aGenrePtr*/)
-{
-}
-		
-			
-// -----------------------------------------------------------------------------
-// 3GPExtParser::TranslateMP4Err
-// -----------------------------------------------------------------------------
-//
-TInt C3GPExtParser::TranslateMP4Err(MP4Err /*aError*/)
-{
-	return KErrNotSupported;
-}
-	
-
-	
-//  End of File
--- a/mmserv/metadatautility/Group/MetaDataUtility.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Group/MetaDataUtility.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -85,12 +85,12 @@
 LIBRARY                 euser.lib
 LIBRARY                 efsrv.lib	// File handling
 LIBRARY                 charconv.lib
-LIBRARY                 3GPMP4Lib.lib
+LIBRARY                 3gpmp4lib.lib
 LIBRARY                 caf.lib
 LIBRARY                 estlib.lib
 LIBRARY                 centralrepository.lib
 LIBRARY                 bafl.lib 
-LIBRARY                 SysLangUtil.lib 
+LIBRARY                 syslangutil.lib 
 LIBRARY                 DrmRightsInfo.lib
 
 LIBRARY			        3GPExtParser.lib
--- a/mmserv/metadatautility/Group/bld.inf	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Group/bld.inf	Thu Sep 02 20:58:01 2010 +0300
@@ -37,8 +37,8 @@
 
 PRJ_MMPFILES
 
-#ifndef  __3GP_EXTENTION
-#include "../3GPExtParserLib_stub/group/bld.inf"
+#ifdef  __3GP_EXTENTION
+#include "../3GPExtParserLib/group/bld.inf"
 #endif 
 
 MetaDataUtility.mmp
--- a/mmserv/metadatautility/Src/3GPExtParser.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/3GPExtParser.h	Thu Sep 02 20:58:01 2010 +0300
@@ -158,7 +158,9 @@
  		TUint32 iTrackNumberSize;
  		TUint32 iCoverOffset;
  		TUint32 iCoverSize;
- 		
+        TUint32 iAlbumArtistOffset;  
+        TUint32 iAlbumArtistSize;
+        
  	public:
  				// constants
 		TBuf8<4> K3GPExtMetaTitle;
--- a/mmserv/metadatautility/Src/MetaDataParser3GPExt.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParser3GPExt.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -167,6 +167,12 @@
 
         TRAP(err, GetDurationL(EMetaDataDuration));
 		
+        TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaArtistFormat, EMetaDataAlbumArtist, &buf8));
+        if (KErrNone == err)
+            {
+            ConvertAndAppendL(&buf8, EMetaDataAlbumArtist);
+            }
+        
         TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaJpeg, EMetaDataJpeg, &buf8));
         if (KErrNone == err)
             {
@@ -258,6 +264,14 @@
                         }					
                     break;
 					
+                case EMetaDataAlbumArtist:
+                    TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaArtistFormat, EMetaDataAlbumArtist, &buf8));
+                    if (KErrNone == err)
+                        {
+                        ConvertAndAppendL(&buf8, EMetaDataAlbumArtist);
+                        }                   
+                    break;
+                    
                 case EMetaDataJpeg:
                     TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaJpeg, EMetaDataJpeg, &buf8));
                     if (KErrNone == err)
--- a/mmserv/metadatautility/Src/MetaDataParserID3v2.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v2.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -232,6 +232,7 @@
 				case EMetaDataComposer:
 				case EMetaDataCopyright:
 				case EMetaDataOriginalArtist:
+                case EMetaDataAlbumArtist:
 					TRAP(err, GetTextInfoL( fieldId, frameSize ));
 					break;
 
@@ -339,6 +340,7 @@
 						case EMetaDataComposer:
 						case EMetaDataCopyright:
 						case EMetaDataOriginalArtist:
+		                case EMetaDataAlbumArtist:
 							TRAP(err, GetTextInfoL( fieldId, frameSize ));
 							break;
 
--- a/mmserv/metadatautility/Src/MetaDataParserID3v22.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v22.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -47,6 +47,7 @@
 _LIT8( KID3v2FrameIdDuration, 		"TLE" );
 _LIT8( KID3v2FrameIdDate, 			"TDA" );
 _LIT8( KID3v2FrameIdRating, 		"POP" );
+_LIT8( KID3v2FrameIdAlbumArtist,    "TP2" );
 
 _LIT8( KID3v2ImageFormatPng, 		"PNG" );
 _LIT8( KID3v2ImageFormatJpeg, 		"JPG" );
@@ -253,6 +254,10 @@
 		{
 		aFieldId = EMetaDataRating;
 		}
+    else if ( frameId.Compare( KID3v2FrameIdAlbumArtist ) == 0 )
+        {
+        aFieldId = EMetaDataAlbumArtist;
+        }
 	else
 		{
 		aFieldId = EUnknownMetaDataField;
--- a/mmserv/metadatautility/Src/MetaDataParserID3v23.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v23.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -46,6 +46,7 @@
 _LIT8( KID3v2FrameIdDuration, 		"TLEN" );
 _LIT8( KID3v2FrameIdDate, 			"TDAT" );
 _LIT8( KID3v2FrameIdRating, 		"POPM" );
+_LIT8( KID3v2FrameIdAlbumArtist,    "TPE2" );
 
 _LIT8( KID3v2ImageFormatPngMime, 	"image/png" );
 _LIT8( KID3v2ImageFormatPng, 		"png" );
@@ -281,6 +282,10 @@
 		{
 		aFieldId = EMetaDataRating;
 		}
+    else if ( frameId.Compare( KID3v2FrameIdAlbumArtist ) == 0 )
+        {
+        aFieldId = EMetaDataAlbumArtist;
+        }
 	else
 		{
 		aFieldId = EUnknownMetaDataField;
--- a/mmserv/metadatautility/Src/MetaDataParserID3v24.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v24.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -47,6 +47,7 @@
 _LIT8( KID3v2FrameIdDuration, 		"TLEN" );
 _LIT8( KID3v2FrameIdDate, 			"TDRC" ); // same as year
 _LIT8( KID3v2FrameIdRating,			"POPM" );
+_LIT8( KID3v2FrameIdAlbumArtist,    "TPE2" );
 
 _LIT8( KID3v2ImageFormatPngMime, 	"image/png" );
 _LIT8( KID3v2ImageFormatPng, 		"png" );
@@ -285,6 +286,10 @@
 		{
 		aFieldId = EMetaDataRating;
 		}
+    else if ( frameId.Compare( KID3v2FrameIdAlbumArtist ) == 0 )
+        {
+        aFieldId = EMetaDataAlbumArtist;
+        }
 	else
 		{
 		aFieldId = EUnknownMetaDataField;
--- a/mmserv/metadatautility/Src/MetaDataParserMP4.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserMP4.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -64,8 +64,8 @@
 	RDebug::Print(_L("CMetaDataParserMP4::InitializeFileL - MP4ParseOpen err = %d"), err);
 #endif
 	User::LeaveIfError(TranslateMP4Err(err));
-	MP4SetCustomFileBufferSizes( iMP4Handle, 0, 0, KCustomFileBufferSize);
-	if ( ValidateL() )
+	MP4Err mp4Err = MP4SetCustomFileBufferSizes( iMP4Handle, 0, 0, KCustomFileBufferSize);
+	if ( (mp4Err == MP4_OK) && ValidateL() )
 		{
 		User::LeaveIfError(iFs.Connect());
 		// Get list of charconv supported character sets
--- a/mmserv/metadatautility/Src/MetaDataParserWMA.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserWMA.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -69,6 +69,8 @@
 _LIT(KWMAudioFileURL,	"WM/AudioFileURL\0");
 _LIT(KWMSharedUserRating, "WM/SharedUserRating\0");
 _LIT(KWMDate, "WM/OriginalReleaseTime\0");
+_LIT(KWMAlbumArtist, "WM/AlbumArtist\0");
+
 #ifdef __WINDOWS_MEDIA
 _LIT(KWMProvider, "WM/Provider\0");
 #endif
@@ -181,6 +183,7 @@
 		TRAP(err, GetExtContDesEntryL(EMetaDataAlbumTrack, iTrackNumberOffset));
 		TRAP(err, GetExtContDesEntryL(EMetaDataUniqueFileIdentifier, iUniqueFileIdentifierOffset));
 		TRAP(err, GetExtContDesEntryL(EMetaDataUrl, iAudioFileURLOffset));
+        TRAP(err, GetExtContDesEntryL(EMetaDataAlbumArtist, iAlbumArtistOffset));
 		TRAP(err, GetDurationL());
 		TRAP(err, GetExtContDesEntryL(EMetaDataDate, iDateOffset));
 	#ifdef __WINDOWS_MEDIA
@@ -245,6 +248,9 @@
 				case EMetaDataDate:
 					TRAP(err, GetExtContDesEntryL(EMetaDataDate, iDateOffset));
 					break;
+                case EMetaDataAlbumArtist:
+                    TRAP(err, GetExtContDesEntryL(EMetaDataAlbumArtist, iAlbumArtistOffset));
+					break;
 			#ifdef __WINDOWS_MEDIA
 				case EMetaDataVendor:
 					TRAP(err, GetExtContDesEntryL(EMetaDataVendor, iProviderOffset));
@@ -886,6 +892,10 @@
 				{
 				iDateOffset = offset; 
 				}
+            else if(!name16.Compare(KWMAlbumArtist))
+                {
+                iAlbumArtistOffset = offset; 
+                }
 		#ifdef __WINDOWS_MEDIA
 			else if(!name16.Compare(KWMProvider))
 				{
--- a/mmserv/metadatautility/Src/MetaDataParserWMA.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserWMA.h	Thu Sep 02 20:58:01 2010 +0300
@@ -236,6 +236,7 @@
 		TInt iSharedUserRatingOffset;
 		TInt iDateOffset;
 		TInt iLyricsOffset;
+        TInt iAlbumArtistOffset;
 	#ifdef __WINDOWS_MEDIA
 		TInt iProviderOffset;
 	#endif
--- a/mmserv/radioutility/radio_utility/stub/src/StubRadioFmTunerUtilityBody.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,327 +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:  Radio FM Tuner Utility implementation body's stub.
-*
-*/
-
-
-#include "RadioFmTunerUtilityBody.h"
-#include "RadioUtilityBody.h"
-#include "RadioStubManager.h"
-
-
-#define STUB  CRadioStubManager::GetRadioStubManager()->iTuner
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CRadioFmTunerUtility::CBody* CRadioFmTunerUtility::CBody::NewL(
-    RRadioSession& aRadioSession,
-    MRadioFmTunerObserver& aObserver )
-    {
-    if ( STUB.iLeaveNewL.iError )
-        {
-        User::Leave( STUB.iLeaveNewL.iError );
-        }
-    CRadioFmTunerUtility::CBody* s = new(ELeave) CRadioFmTunerUtility::CBody( aRadioSession, aObserver );
-    CleanupStack::PushL(s);
-    s->ConstructL();
-    CleanupStack::Pop();
-    return s;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::ConstructL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::ConstructL()
-    {
-    if ( STUB.iLeaveErrorForConstructL.iError )
-        {
-        User::Leave( STUB.iLeaveErrorForConstructL.iError );
-        }
-    STUB.iRadioFmTunerUtilityClient = &iRadioFmTunerUtilityClient;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::CBody
-// -----------------------------------------------------------------------------
-//
-CRadioFmTunerUtility::CBody::CBody(
-        RRadioSession& aRadioSession,
-        MRadioFmTunerObserver& aObserver )
-    :iRadioSession( aRadioSession ), 
-    iRadioFmTunerUtilityClient( aObserver )
-    
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::~CBody
-// -----------------------------------------------------------------------------
-//
-CRadioFmTunerUtility::CBody::~CBody()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::RequestTunerControl
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::RequestTunerControl()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::Close
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::Close()
-    {
-    // Consider releasing tuner control here.
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetCapabilities
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetCapabilities(
-    TFmTunerCapabilities& aCaps ) const
-    {
-    aCaps.iTunerBands = STUB.iCaps.iTunerBands;
-    aCaps.iTunerFunctions = STUB.iCaps.iTunerFunctions;
-    aCaps.iAdditionalFunctions1 = STUB.iCaps.iAdditionalFunctions1;
-    aCaps.iAdditionalFunctions2 = STUB.iCaps.iAdditionalFunctions2;
-    return STUB.iGetCapabilitiesError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::EnableTunerInOfflineMode
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::EnableTunerInOfflineMode(
-    TBool aEnable )
-    {
-    STUB.iTunerInOfflineMode = aEnable;
-    return STUB.iEnableTunerInOfflineModeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetFrequencyRange
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetFrequencyRange(
-    TFmRadioFrequencyRange& aRange,
-    TInt& aMinFreq,
-    TInt& aMaxFreq ) const
-    {
-
-    aRange = STUB.iRange;
-    aMinFreq = STUB.iMinFreq;
-    aMaxFreq = STUB.iMaxFreq;
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioFmTunerUtility::CBody::GetFrequencyRange, aRange = %d, aMinFreq = %d, aMaxFreq = %d"),
-        aRange, aMinFreq, aMaxFreq);
-#endif
-    return STUB.iGetFrequencyRangeError.Error();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::SetFrequencyRange
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::SetFrequencyRange(
-    TFmRadioFrequencyRange aRange )
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioFmTunerUtility::CBody::SetFrequencyRange, aRange = %d"), aRange);
-#endif
-    STUB.iPreviousRange = STUB.iRange;
-    STUB.iRange = aRange;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::CancelSetFrequencyRange
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::CancelSetFrequencyRange()
-    {
-    STUB.iRange = STUB.iPreviousRange;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::SetFrequency
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::SetFrequency(
-    TInt aFrequency )
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioFmTunerUtility::CBody::SetFrequency, aFrequency = %d"), aFrequency);
-#endif
-    STUB.iPreviousFrequency = STUB.iFrequency;
-    STUB.iFrequency = aFrequency;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::CancelSetFrequencyRange
-// Body of CancelSetFrequencyRange
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::CancelSetFrequency()
-    {
-    STUB.iFrequency = STUB.iPreviousFrequency;
-    STUB.iPreviousFrequency = 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetFrequency
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetFrequency(
-    TInt& aFrequency ) const
-    {
-    aFrequency = STUB.iFrequency;
-    return STUB.iGetFrequencyError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::StationSeek
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::StationSeek(
-    TBool aUpwards )
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioFmTunerUtility::CBody::StationSeek, aUpwards = %d"), aUpwards);
-#endif
-    STUB.iStationSeekUpwards = aUpwards;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::CancelStationSeek
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioFmTunerUtility::CBody::CancelStationSeek()
-    {
-    STUB.iStationSeekUpwards = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetSignalStrength
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetSignalStrength(
-    TInt& aSignalStrength ) const
-    {
-    aSignalStrength = STUB.iSignalStrength;
-    return STUB.iGetSignalStrengthError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::GetMaxSignalStrength
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetMaxSignalStrength(
-    TInt& aMaxSignalStrength ) const
-    {
-    aMaxSignalStrength = STUB.iMaxSignalStrength;
-    return STUB.iGetMaxSignalStrengthError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetStereoMode
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetStereoMode(
-    TBool& aStereo ) const
-    {
-    aStereo = STUB.iStereoMode;
-    return STUB.iGetStereoModeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::ForceMonoReception
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::ForceMonoReception(
-    TBool aForcedMono)
-    {
-    STUB.iForcedMono = aForcedMono;
-    return STUB.iForcedMonoReceptionError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetForcedMonoReception
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetForcedMonoReception(
-    TBool& aForcedMono ) const
-    {
-    aForcedMono = STUB.iForcedMono;
-    return STUB.iGetForcedMonoReceptionError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::SetSquelch
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::SetSquelch(
-    TBool aSquelch )
-    {
-    STUB.iSquelch = aSquelch;
-    return STUB.iSetSquelchError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioFmTunerUtility::CBody::GetSquelch
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioFmTunerUtility::CBody::GetSquelch(
-    TBool& aSquelch ) const
-    {
-    aSquelch = STUB.iSquelch;
-    return STUB.iGetSquelchError.Error();
-    }
-
-// End of File
-
-
-
-
-
--- a/mmserv/radioutility/radio_utility/stub/src/StubRadioPlayerUtilityBody.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +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:  Radio Player Utility body's stub implementation
-*
-*/
-
-
-#include <custominterfaceutility.h>
-#include "RadioServerData.h"
-#include "RadioPlayerUtilityBody.h"
-#include "RadioSession.h"
-#include "RadioStubManager.h"
-
-#define STUB  CRadioStubManager::GetRadioStubManager()->iPlayer
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-
-CRadioPlayerUtility::CBody* CRadioPlayerUtility::CBody::NewL(
-    RRadioSession& aRadioSession,
-    MRadioPlayerObserver& aObserver )
-    {
-    if ( STUB.iLeaveNewL.iError )
-        {
-        User::Leave( STUB.iLeaveNewL.iError );
-        }
-    CRadioPlayerUtility::CBody* s = new(ELeave) CRadioPlayerUtility::CBody( aRadioSession, aObserver);
-    CleanupStack::PushL(s);
-    s->ConstructL();
-    CleanupStack::Pop();
-    return s;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::ConstructL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-void CRadioPlayerUtility::CBody::ConstructL()
-    {
-    if ( STUB.iLeaveErrorForConstructL.iError )
-        {
-        User::Leave( STUB.iLeaveErrorForConstructL.iError );
-        }
-    STUB.iRadioPlayerUtilityClient = &iRadioPlayerUtilityClient;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::CBody
-// -----------------------------------------------------------------------------
-//
-CRadioPlayerUtility::CBody::CBody( 
-        RRadioSession& aRadioSession,
-        MRadioPlayerObserver& aObserver )
-    :iRadioSession( aRadioSession ),
-    iRadioPlayerUtilityClient( aObserver )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CRadioPlayerUtility::CBody::~CBody()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::PlayerState
-// Get the player's state.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-//
-void CRadioPlayerUtility::CBody::PlayerState(
-    TPlayerState& aPlayerState ) const
-    {
-    aPlayerState = STUB.iPlayerState;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::Close
-// Stops radio playback only if no other primary clients are connected to the
-// radio server.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioPlayerUtility::CBody::Close()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::Play
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioPlayerUtility::CBody::Play()
-    {
-    STUB.iPlayerState = ERadioPlayerPlaying;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::Stop
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioPlayerUtility::CBody::Stop()
-    {
-    STUB.iPlayerState = ERadioPlayerIdle;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::Mute
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::Mute(
-    TBool aMute )
-    {
-    STUB.iMuteStatus = aMute;
-    return STUB.iMuteError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::IsMute
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CRadioPlayerUtility::CBody::IsMute()
-    {
-    return STUB.iMuteStatus;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::SetVolume
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::SetVolume(
-    TInt aVolume )
-    {
-    STUB.iVolume = aVolume;
-    return STUB.iSetVolumeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::GetVolume
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::GetVolume(
-    TInt& aVolume ) const
-    {
-    aVolume = STUB.iVolume;
-    return STUB.iGetVolumeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::SetVolumeRamp
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::SetVolumeRamp(
-    const TTimeIntervalMicroSeconds& aRampInterval )
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioPlayerUtility::CBody::SetVolumeRamp"));
-#endif
-    STUB.iRampInterval = aRampInterval;
-    return STUB.iSetVolumeRampError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::GetMaxVolume
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::GetMaxVolume(
-    TInt& aMaxVolume ) const
-    {
-    aMaxVolume = STUB.iMaxVolume;
-    return STUB.iGetMaxVolumeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::SetBalance
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::SetBalance(
-    TInt aLeftPercentage,
-    TInt aRightPercentage )
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioPlayerUtility::CBody::SetBalance, aLeftPercentage = %d, aRightPercentage = %d"),
-        aLeftPercentage, aRightPercentage);
-#endif
-    STUB.iLeftPercentage = aLeftPercentage;
-    STUB.iRightPercentage = aRightPercentage;
-    return STUB.iSetBalanceError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::GetBalance
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioPlayerUtility::CBody::GetBalance(
-    TInt& aLeftPercentage,
-    TInt& aRightPercentage ) const
-    {
-    aLeftPercentage = STUB.iLeftPercentage;
-    aRightPercentage = STUB.iRightPercentage;
-    return STUB.iGetBalanceError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioPlayerUtility::CBody::CustomInterface
-// Get a custom interface for the specified interface Id.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TAny* CRadioPlayerUtility::CBody::CustomInterface(
-    TUid aInterfaceId )
-    {
-//    TAny* ci = NULL;
-//    return ci;
-#ifdef _DEBUG
-    RDebug::Print(_L("CRadioPlayerUtility::CBody::CustomInterface, aInterfaceId = %d"), aInterfaceId);
-#endif
-    TAny* ci = NULL;
-    CCustomInterfaceUtility* customInterfaceUtil = NULL;
-
-    TRAPD( error, customInterfaceUtil = CCustomInterfaceUtility::NewL( iRadioSession ) );
-
-    if ( !error )
-        {
-        ci = customInterfaceUtil->CustomInterface( aInterfaceId );
-        if ( !ci )
-            {
-            // The custom interface utility is owned by the custom interface, implicitly.
-            // The custom interface utility instance is destroyed when the
-            // custom interface is finally destroyed!
-            // But if there's no valid ci, we need to take care of deleting the
-            // custom interface utility instance.
-            delete customInterfaceUtil;
-            }
-        }
-    return ci;
-    }
-
-//End of File
--- a/mmserv/radioutility/radio_utility/stub/src/StubRadioRdsUtilityBody.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,433 +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:  Radio RDS Utility body's stub implementation
-*
-*/
-
-
-#include "RadioRdsUtilityBody.h"
-#include "RadioServerData.h"
-#include "RadioSession.h"
-#include "RadioStubManager.h"
-
-#define STUB  CRadioStubManager::GetRadioStubManager()->iRds
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CRadioRdsUtility::CBody* CRadioRdsUtility::CBody::NewL(
-    RRadioSession& aRadioSession,
-    MRadioRdsObserver& aObserver )
-    {
-    if ( STUB.iLeaveNewL.iError )
-        {
-        User::Leave( STUB.iLeaveNewL.iError );
-        }
-    CRadioRdsUtility::CBody* s = new(ELeave) CRadioRdsUtility::CBody( aRadioSession, aObserver );
-    CleanupStack::PushL(s);
-    s->ConstructL();
-    CleanupStack::Pop();
-    return s;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::ConstructL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::ConstructL()
-    {
-    if ( STUB.iLeaveErrorForConstructL.iError )
-        {
-        User::Leave( STUB.iLeaveErrorForConstructL.iError );
-        }
-    STUB.iRadioRdsUtilityClient = &iRadioRdsUtilityClient;
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CBody
-// -----------------------------------------------------------------------------
-//
-CRadioRdsUtility::CBody::CBody(
-        RRadioSession& aRadioSession,
-        MRadioRdsObserver& aObserver )
-    : iRadioSession(aRadioSession),
-    iRadioRdsUtilityClient(aObserver)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CRadioRdsUtility::CBody::~CBody()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::Close
-// Cancel all requested RDS notifications if any were requested.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::Close()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetCapabilities
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetCapabilities(
-    TRdsCapabilities& aCaps ) const
-    {
-    if ( !STUB.iGetCapabilitiesError.Error() )
-        {
-        aCaps.iRdsFunctions = STUB.iCaps.iRdsFunctions;
-        aCaps.iAdditionalFunctions1 = STUB.iCaps.iAdditionalFunctions1;
-        aCaps.iAdditionalFunctions2 = STUB.iCaps.iAdditionalFunctions2;
-        }
-    return STUB.iGetCapabilitiesError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetRdsSignalStatus
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetRdsSignalStatus(
-    TBool& aRdsSignal ) const
-    {
-    aRdsSignal = STUB.iRdsSignal;
-    return STUB.iGetRdsSignalStatusError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::NotifyRdsDataChange
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::NotifyRdsDataChange(
-    TRdsData aRdsData )
-    {
-    iRdsDataReq.iRdsFunctions = aRdsData.iRdsFunctions;
-    iRdsDataReq.iAdditionalFunctions1 = aRdsData.iAdditionalFunctions1;
-    iRdsDataReq.iAdditionalFunctions2 = aRdsData.iAdditionalFunctions2;
-    return STUB.iNotifyRdsDataChangeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelNotifyRdsDataChange
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelNotifyRdsDataChange()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::SetAutomaticSwitching
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::SetAutomaticSwitching(
-    TBool aAuto )
-    {
-    STUB.iAutomaticSwitching = aAuto;
-    return STUB.iSetAutomaticSwitchingError.Error();
-
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetAutomaticSwitching
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetAutomaticSwitching(
-    TBool& aAuto )
-    {
-    aAuto = STUB.iAutomaticSwitching;
-    return STUB.iGetAutomaticSwitchingError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelAFSearch
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelAFSearch()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::SetAutomaticTrafficAnnouncement
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::SetAutomaticTrafficAnnouncement(
-    TBool aAuto )
-    {
-    STUB.iTaStatus = aAuto;
-    return STUB.iSetAutomaticTrafficAnnouncementError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetAutomaticTrafficAnnouncement
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetAutomaticTrafficAnnouncement(
-    TBool& aAuto )
-    {
-    aAuto = STUB.iTaStatus;
-    return STUB.iGetAutomaticTrafficAnnouncementError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::StationSeekByPTY
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::StationSeekByPTY(
-    TRdsProgrammeType /*aPty*/,
-    TBool /*aUpwards*/ )
-    {
-    iRadioRdsUtilityClient.MrroStationSeekByPTYComplete( 
-            STUB.iStationSeekByPTYError.Error(), STUB.iFrequency );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::StationSeekByTA
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::StationSeekByTA(
-    TBool /*aSeekUp*/ )
-    {
-    iRadioRdsUtilityClient.MrroStationSeekByTAComplete( STUB.iStationSeekByTAError.Error(), STUB.iFrequency );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::StationSeekByTP
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::StationSeekByTP(
-    TBool /*aSeekUp*/ )
-    {
-    iRadioRdsUtilityClient.MrroStationSeekByTPComplete( STUB.iStationSeekByTPError.Error(), STUB.iFrequency );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelRdsStationSeek
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelRdsStationSeek()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetFreqByPTY
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::GetFreqByPTY(
-    TRdsProgrammeType /*aPty*/ )
-    {
-    iRadioRdsUtilityClient.MrroGetFreqByPTYComplete( STUB.iGetFreqByPTYError.Error(), STUB.iFreqList );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelGetFreqByPTY
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelGetFreqByPTY()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetFreqByTA
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::GetFreqByTA()
-    {
-    iRadioRdsUtilityClient.MrroGetFreqByTAComplete( STUB.iGetFreqByTAError.Error(), STUB.iFreqList );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelGetFreqByTA
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelGetFreqByTA()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetPSByPTY
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::GetPSByPTY(
-    TRdsProgrammeType /*aPty*/ )
-    {
-    iRadioRdsUtilityClient.MrroGetPSByPTYComplete( STUB.iGetPSByPTYError.Error(), STUB.iPsList );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelGetPSByPTY
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelGetPSByPTY()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetPSByTA
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::GetPSByTA()
-    {
-    iRadioRdsUtilityClient.MrroGetPSByPTYComplete( STUB.iGetPSByTAError.Error(), STUB.iPsList );
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::CancelGetPSByTA
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CRadioRdsUtility::CBody::CancelGetPSByTA()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetProgrammeIdentification
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetProgrammeIdentification(
-    TInt& /*aPi*/ )
-    {
-    return STUB.iGetProgrammeIdentificationError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetProgrammeType
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetProgrammeType(
-    TRdsProgrammeType& /*aPty*/ )
-    {
-    return STUB.iGetProgrammeTypeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetProgrammeService
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetProgrammeService(
-    TRdsPSName& aPs )
-    {
-    if ( STUB.iPs.Length() )
-        {
-        aPs.Copy( STUB.iPs );
-        }
-
-    return STUB.iGetProgrammeServiceError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetRadioText
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetRadioText(
-    TRdsRadioText& aRt )
-    {
-    if ( STUB.iRtPlusData.Length() )
-       {
-       aRt.Copy( STUB.iRtPlusData );
-       }
-
-    return STUB.iGetRadioTextError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetRadioTextPlus
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetRadioTextPlus(
-    TRdsRTplusClass /*aRtPlusClass*/,
-    TRdsRadioText& aRtPlusData )
-    {
-
-    if ( STUB.iRtPlusData.Length() )
-        {
-        aRtPlusData.Copy( STUB.iRtPlusData );
-        }
-
-    return STUB.iGetRadioTextPlusError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetClockTime
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetClockTime(
-    TDateTime& aCt )
-    {
-    aCt = STUB.iCt;
-    return STUB.iGetClockTimeError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetTrafficAnnouncementStatus
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetTrafficAnnouncementStatus(
-    TBool& aTaStatus )
-    {
-    STUB.iTaStatus = aTaStatus;
-    return STUB.iGetTrafficAnnouncementStatusError.Error();
-    }
-
-// -----------------------------------------------------------------------------
-// CRadioRdsUtility::CBody::GetTrafficProgrammeStatus
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CRadioRdsUtility::CBody::GetTrafficProgrammeStatus(
-    TBool& aTpStatus )
-    {
-    aTpStatus = STUB.iTpStatus;
-    return STUB.iGetTrafficProgrammeStatusError.Error();
-    }
-
-
-//End of File
--- a/mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -2099,7 +2099,8 @@
                 }
             }
         }
-
+    process.Close();
+    client.Close();
 #endif // RD_TSP_CLIENT_MAPPER
 
     if ( --iSessionCountPrimary == 0 )
@@ -3348,6 +3349,8 @@
         {
         iProcessId = process.Id();
         }
+    process.Close();
+    client.Close();
 #endif // RD_TSP_CLIENT_MAPPER
     }
 //  End of File
--- a/mmserv/radioutility/radioserver/Session/stub/src/RadioStubManager.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/radioutility/radioserver/Session/stub/src/RadioStubManager.h	Thu Sep 02 20:58:01 2010 +0300
@@ -28,7 +28,6 @@
 
 #include "RadioServerData.h"
 #include "mradioheadseteventobserver.h"
-#include "RadioStubManager.h"
 
 _LIT(KRadioStubManagerLocalChunkName, "RadioStubManagerLocalChunkName");
 
@@ -258,6 +257,6 @@
 const TUid KStub_KPSUidVoiceUiAccMonitor = {SRadioStubManager::EStub_KPSUidVoiceUiAccMonitor};
 const TUid KStub_KPSUidMMFAudioServer = {SRadioStubManager::EStub_KPSUidMMFAudioServer};
 const TUid KStub_KRadioPSUid = {SRadioStubManager::EStub_KRadioPSUid};
-const TUid KStub_KRadioCRUid = {0x101FF976}; // tried with this {SRadioStubManager::EStub_KRadioPSUid} but failed
+const TUid KStub_KRadioCRUid = {0x2002FF52};
 
 #endif /* RADIOSTUBMANAGER_H_ */
--- a/mmserv/sts/src/systemtoneservice.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/src/systemtoneservice.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -64,14 +64,13 @@
     iImplementation.PlayAlarm(aAlarm, aAlarmContext, aObserver);
     }
 
+EXPORT_C void CSystemToneService::PlayAlarm(TToneType aTone,
+        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
+    {
+    iImplementation.PlayAlarm(aTone, aAlarmContext, aObserver);
+    }
+
 EXPORT_C void CSystemToneService::StopAlarm(unsigned int aAlarmContext)
     {
     iImplementation.StopAlarm(aAlarmContext);
     }
-
-EXPORT_C void CSystemToneService::PlayAlarm(TToneType aTone,
-				unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
-		{
-		iImplementation.PlayAlarm(aTone, aAlarmContext, aObserver);
-		}			
-	    
--- a/mmserv/sts/sts/group/sts.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/group/sts.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -26,9 +26,12 @@
 OS_LAYER_LIBC_SYSTEMINCLUDE
 OS_LAYER_STDCPP_SYSTEMINCLUDE
 
+USERINCLUDE     ../src
 USERINCLUDE     ../inc
 
 SOURCEPATH      ../src
 
 SOURCE          sts.cpp
 SOURCE          stsplayer.cpp
+SOURCE          stsplayersettings.cpp
+SOURCE          stssettingsmanager.cpp
--- a/mmserv/sts/sts/inc/sts.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/inc/sts.h	Thu Sep 02 20:58:01 2010 +0300
@@ -18,20 +18,14 @@
  * server.  This class manages all of the active players, and guarantees
  * that the context values are unique.
  */
-
 #ifndef STS_H_
 #define STS_H_
 
-
 #include <systemtoneservice.h>
 #include <map>
 
 #include "stsplayer.h"
 
-class MProEngEngine;
-class MProEngProfile;
-
-
 class CSts : private MStsPlayerObserver
     {
 public:
@@ -40,16 +34,14 @@
     void PlayTone(CSystemToneService::TToneType aTone);
     void PlayAlarm(CSystemToneService::TAlarmType aAlarm,
             unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
+    void PlayAlarm(CSystemToneService::TToneType aTone,
+            unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
     void StopAlarm(unsigned int aAlarmContext);
-    void PlayToneStop(CSystemToneService::TToneType aTone,
-    	      unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
 
 protected:
     CSts();
     virtual ~CSts();
     bool Init();
-    void LoadActiveProfileSettingsL();
-    
 
 private:
     void CleanUpPlayers();
@@ -59,19 +51,10 @@
 
 private:
     unsigned int iNextContext;
+    CStsSettingsManager* iSettingsManager;
     class CPlayerNode;
     typedef std::map<unsigned int, CPlayerNode*> TPlayerMap;
     TPlayerMap iPlayerMap;
-    
-    TPtrC iFileName;
-    MProEngEngine* iEngine;
-    MProEngProfile* iProfile;
-
-    TInt  iVolume;
-    TBool iWarningToneEnabled;
-    TUint iAudioPreference;
-    TUint iAudioPriority;
-    
     };
 
 #endif //STS_H
--- a/mmserv/sts/sts/inc/stsplayer.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/inc/stsplayer.h	Thu Sep 02 20:58:01 2010 +0300
@@ -18,10 +18,9 @@
 #ifndef STSPLAYER_H_
 #define STSPLAYER_H_
 
-
 #include <systemtoneservice.h>
 #include <mdaaudiosampleplayer.h>
-
+#include "stssettingsmanager.h"
 
 class MStsPlayerObserver
     {
@@ -32,43 +31,35 @@
 class CStsPlayer : private MMdaAudioPlayerCallback
     {
 public:
-
-    static CStsPlayer* CreateTonePlayer(MStsPlayerObserver& aObserver,
-            CSystemToneService::TToneType aTone, unsigned int aContext, 
-           	const TDesC& aFileName, TInt aVolume, 
-           	TUint aAudioPreference, TUint  aAudioPriority);
-    static CStsPlayer* CreateAlarmPlayer(MStsPlayerObserver& aObserver,
-            CSystemToneService::TAlarmType aAlarm, unsigned int aContext,
-            const TDesC& aFileName, TInt aVolume,
-    				TUint aAudioPreference, TUint  aAudioPriority);	
+    static CStsPlayer* Create(MStsPlayerObserver& aObserver,
+            CStsSettingsManager& aSettingsManager, unsigned int aContext,
+            CSystemToneService::TAlarmType aAlarm);
+    static CStsPlayer* Create(MStsPlayerObserver& aObserver,
+            CStsSettingsManager& aSettingsManager, unsigned int aContext,
+            CSystemToneService::TToneType aTone);
     virtual ~CStsPlayer();
     void Play();
     void Stop();
-    
-    
+
 protected:
-        
-    CStsPlayer(MStsPlayerObserver& aObserver, const TDesC& aFileName,
-    int aRepeatNumberOfTimes, unsigned int aContext,
-    TInt aVolume, TUint aAudioPreference, TUint aAudioPriority);
+    CStsPlayer(MStsPlayerObserver& aObserver,
+            CStsSettingsManager::MPlayerSettings& aPlayerSettings,
+            unsigned int aContext, TUint aAudioPreference,
+            TUint aAudioPriority);
     bool Init();
 
 private:
     void MapcInitComplete(TInt aError,
-    const TTimeIntervalMicroSeconds& aDuration);
+            const TTimeIntervalMicroSeconds& aDuration);
     void MapcPlayComplete(TInt aError);
 
     MStsPlayerObserver& iObserver;
-    CMdaAudioPlayerUtility* iPlayer;
-    TPtrC iFileName;
-    int iRepeatNumberOfTimes;
+    CStsSettingsManager::MPlayerSettings& iPlayerSettings;
     unsigned int iContext;
-
-	TInt  iVolume;
-    TBool iWarningToneEnabled;
     TUint iAudioPreference;
     TUint iAudioPriority;
-		
+    TInt iVolume;
+    CMdaAudioPlayerUtility* iPlayer;
     };
 
 #endif // STSPLAYER_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/sts/sts/inc/stssettingsmanager.h	Thu Sep 02 20:58:01 2010 +0300
@@ -0,0 +1,73 @@
+/*
+ * 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:
+ * This file defines the interface for creating, playing,
+ * stopping, and deleting an MMF player for a tone type.
+ */
+#ifndef STSSETTINGSMANAGER_H_
+#define STSSETTINGSMANAGER_H_
+
+#include <e32std.h>
+#include <MProEngActiveProfileObserver.h>
+#include <MProEngProfileActivationObserver.h>
+#include <systemtoneservice.h>
+
+class CStsPlayerSettings;
+class MProEngEngine;
+class MProEngNotifyHandler;
+
+class CStsSettingsManager : private MProEngActiveProfileObserver,
+        MProEngProfileActivationObserver
+    {
+public:
+    static CStsSettingsManager* Create();
+    static void Delete(CStsSettingsManager* aStsSettingsManager);
+
+public:
+    // Data types
+    class MPlayerSettings
+        {
+    public:
+        virtual TPtrC GetFileName() = 0;
+        virtual int GetNumberOfRepeats() = 0;
+        virtual TTimeIntervalMicroSeconds& GetRepeatDelay() = 0;
+        virtual int GetVolumePercentage() = 0;
+        virtual TTimeIntervalMicroSeconds& GetVolumeRamp() = 0;
+        };
+
+    MPlayerSettings& GetPlayerSettings(CSystemToneService::TAlarmType aAlarm);
+    MPlayerSettings& GetPlayerSettings(CSystemToneService::TToneType aTone);
+    void GetAudioPriorityPref(CSystemToneService::TAlarmType aAlarm,
+            TUint& aPriority, TUint& aPreference);
+    void GetAudioPriorityPref(CSystemToneService::TToneType aTone,
+            TUint& aPriority, TUint& aPreference);
+
+protected:
+    CStsSettingsManager();
+    virtual ~CStsSettingsManager();
+    bool Init();
+
+private:
+    bool LoadActiveProfileSettings();
+    // inherited from MProEngActiveProfileObserver
+    virtual void HandleActiveProfileModifiedL();
+    //inherited from MProEngProfileActivationObserver
+    virtual void HandleProfileActivatedL(TInt aProfileId);
+
+    MProEngEngine* iEngine;
+    MProEngNotifyHandler* iNotifyHandler;
+    CStsPlayerSettings* iPlayerSettings;
+    };
+
+#endif //STSSETTINGSMANAGER_H_
--- a/mmserv/sts/sts/src/sts.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/src/sts.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -15,17 +15,9 @@
  * This file provides the implementation of System Tone Service used
  * by the STS Server.
  */
-
+//  Include Files  
 #include "sts.h"
-#include <AudioPreference.h>
-#include <MProEngEngine.h>
-#include <MProEngProfile.h>
-#include <MProEngTones.h>
-#include <MProEngToneSettings.h>
-#include <ProEngFactory.h>
-
-_LIT(KDefaultFile,"z:\\data\\sounds\\digital\\clock.aac");
-
+#include "stssettingsmanager.h"
 
 class CSts::CPlayerNode
     {
@@ -75,21 +67,17 @@
 /*static*/CSts* CSts::Create()
     {
     CSts* self = new CSts();
-     
+
     if (self != 0)
         {
         bool successful = self->Init();
-       
-        if(successful)
-        {	
-        	TRAPD( err ,self->LoadActiveProfileSettingsL());
-        	if( (err != KErrNone ) && (!successful))
-           {
+
+        if (!successful)
+            {
             delete self;
             self = 0;
-           }
+            }
         }
-      }
     return self;
     }
 
@@ -99,118 +87,31 @@
     }
 
 CSts::CSts() :
-    iNextContext(1)
+    iNextContext(1), iSettingsManager(0)
     {
     }
 
 bool CSts::Init()
     {
-    iEngine =  ProEngFactory::NewEngineL();
-    return true;
+    bool successful = false;
+    iSettingsManager = CStsSettingsManager::Create();
+    if (iSettingsManager != 0)
+        {
+        successful = true;
+        }
+    return successful;
     }
 
 CSts::~CSts()
     {
     CleanUpPlayers();
-    if (iProfile)
-        {
-        iProfile->Release();
-        }
-    	if (iEngine)
-        {
-        iEngine->Release();
-        }
-        
+    CStsSettingsManager::Delete(iSettingsManager);
     }
 
-
-void CSts::LoadActiveProfileSettingsL()
-	{
-		if(!iEngine)
-		   	{
-		   		iEngine =  ProEngFactory::NewEngineL();
-        	}
-		
-        if (iEngine)
-            iProfile = iEngine->ActiveProfileL();
-	    
-	    if (iProfile)
-	        {
-             MProEngToneSettings& settings  = iProfile->ToneSettings();
-             iWarningToneEnabled = settings.WarningAndGameTones();
-	        }
-      
-  }
-
 void CSts::PlayTone(CSystemToneService::TToneType aTone)
     {
-    if(iProfile)
-    
-    {
-    	MProEngTones&         tones = iProfile->ProfileTones();
-		
-			switch (aTone)
-				{
-				case CSystemToneService::EEmailAlert:
-					{
-				    	iFileName.Set(tones.EmailAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg ;
-				    	break;
-				    }
-				case CSystemToneService::ESmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break; 
-				    }
-				case CSystemToneService::EMmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				  	}
-				case CSystemToneService::EChatAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS ;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				    } 
-				case CSystemToneService::EWarningBeep:
-				    {
-				    	iAudioPreference = KAudioPrefWarning;
-				    	iAudioPriority =  KAudioPriorityWarningTone ;
-				    	if (iWarningToneEnabled)
-				      	  iFileName.Set(KDefaultFile);
-				    	else
-				      	  iVolume = 0;
-				    
-				    	break;
-				    }
-				default:
-					{
-					  	iFileName.Set(KDefaultFile);
-					  	iAudioPreference = KAudioPrefDefaultTone;
-				        iAudioPriority = KAudioPriorityWarningTone ;
-				      break;
-				    }
-				}
-			}
-			
-		else
-		{			 
-				 iFileName.Set(KDefaultFile);
-				 iAudioPreference = KAudioPrefDefaultTone;
-				 iAudioPriority = KAudioPriorityWarningTone ;
-		}
-		
-		
-    CStsPlayer* player = CStsPlayer::CreateTonePlayer(*this, aTone,
-            iNextContext, iFileName, iVolume, 
-            iAudioPreference, iAudioPriority);
+    CStsPlayer* player = CStsPlayer::Create(*this, *iSettingsManager,
+            iNextContext, aTone);
     if (player != 0)
         {
         iPlayerMap[iNextContext] = new CPlayerNode(player);
@@ -228,55 +129,29 @@
 void CSts::PlayAlarm(CSystemToneService::TAlarmType aAlarm,
         unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
     {
-    
-    if(iProfile)
-    
-   		 {
-    		MProEngTones&         tones = iProfile->ProfileTones();
-		 
-		 	switch (aAlarm)
-        	{
-        	case CSystemToneService::EIncomingCall:
-        		{
-            		iFileName.Set(tones.RingingTone1());
-            		iAudioPreference = KAudioPrefIncomingCall ;
-					iAudioPriority = KAudioPriorityRingingTone ;
-            		break;
-            	}
-       		case CSystemToneService::EIncomingCallLine2:
-       			{
-            		iFileName.Set(tones.RingingTone2());
-            		iAudioPreference = KAudioPrefIncomingCall;
-					iAudioPriority = KAudioPriorityRingingTone ;
-            		break;  
-            	}
-            case CSystemToneService::EIncomingDataCall:
-            	{
-            		iFileName.Set(tones.VideoCallRingingTone());
-            		iAudioPreference = KAudioPrefIncomingDataCall;
-		    		iAudioPriority = KAudioPriorityRealOnePlayer;
-            		break;
-            	}
-        	default:
-        		{
-        			iFileName.Set(KDefaultFile);
-        			iAudioPreference = KAudioPrefAlarmClock  ;
-					iAudioPriority = KAudioPriorityAlarm;
-					break;
-            	}
-       		}
-      	}
-      else
-		{		
-			     iFileName.Set(KDefaultFile);	 
-				 iAudioPreference = KAudioPrefDefaultTone;
-				 iAudioPriority = KAudioPriorityWarningTone ;
-				 
-		}  
-    	
-    CStsPlayer* player = CStsPlayer::CreateAlarmPlayer(*this, aAlarm,
-             iNextContext, iFileName, iVolume, 
-             iAudioPreference, iAudioPriority);
+    CStsPlayer* player = CStsPlayer::Create(*this, *iSettingsManager,
+            iNextContext, aAlarm);
+    if (player != 0)
+        {
+        iPlayerMap[iNextContext] = new CPlayerNode(player, aObserver);
+        aAlarmContext = iNextContext;
+        iNextContext++;
+        if (iNextContext == 0)
+            iNextContext++;
+        player->Play();
+        }
+    else
+        {
+        //TODO: Add trace here
+        aAlarmContext = 0;
+        }
+    }
+
+void CSts::PlayAlarm(CSystemToneService::TToneType aTone,
+        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
+    {
+    CStsPlayer* player = CStsPlayer::Create(*this, *iSettingsManager,
+            iNextContext, aTone);
     if (player != 0)
         {
         iPlayerMap[iNextContext] = new CPlayerNode(player, aObserver);
@@ -308,104 +183,15 @@
         }
     }
 
-
-void CSts::PlayToneStop(CSystemToneService::TToneType aTone,
-        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
-    {
-    
-    if(iProfile)
-    
+void CSts::CleanUpPlayers()
     {
-    	MProEngTones&         tones = iProfile->ProfileTones();
-		
-			switch (aTone)
-				{
-				case CSystemToneService::EEmailAlert:
-					{
-				    	iFileName.Set(tones.EmailAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg ;
-				    	break;
-				    }
-				case CSystemToneService::ESmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break; 
-				    }
-				case CSystemToneService::EMmsAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				  	}
-				case CSystemToneService::EChatAlert:
-					{
-				    	iFileName.Set(tones.MessageAlertTone());
-				    	iAudioPreference = KAudioPrefNewSMS ;
-				    	iAudioPriority = KAudioPriorityRecvMsg;
-				    	break;
-				    } 
-				case CSystemToneService::EWarningBeep:
-				    {
-				    	iAudioPreference = KAudioPrefWarning;
-				    	iAudioPriority =  KAudioPriorityWarningTone ;
-				    	if (iWarningToneEnabled)
-				      	  iFileName.Set(KDefaultFile);
-				    	else
-				      	  iVolume = 0;
-				    
-				    	break;
-				    }
-				default:
-					{
-					  	iFileName.Set(KDefaultFile);
-					  	iAudioPreference = KAudioPrefDefaultTone;
-				        iAudioPriority = KAudioPriorityWarningTone ;
-				      break;
-				    }
-				}
-			}
-			
-		else
-		{			 
-				 iFileName.Set(KDefaultFile);
-				 iAudioPreference = KAudioPrefDefaultTone;
-				 iAudioPriority = KAudioPriorityWarningTone ;
-		}
-    	
-    CStsPlayer* player = CStsPlayer::CreateTonePlayer(*this, aTone,
-             iNextContext, iFileName, iVolume, 
-             iAudioPreference, iAudioPriority);
-    if (player != 0)
-        {
-        iPlayerMap[iNextContext] = new CPlayerNode(player, aObserver);
-        aAlarmContext = iNextContext;
-        iNextContext++;
-        if (iNextContext == 0)
-            iNextContext++;
-        player->Play();
-        }
-    else
+    while (!iPlayerMap.empty())
         {
         //TODO: Add trace here
-        aAlarmContext = 0;
+        StopAlarm(iPlayerMap.begin()->first);
         }
     }
 
-
-
-void CSts::CleanUpPlayers()
-    {
-        while (!iPlayerMap.empty())
-            {
-            //TODO: Add trace here
-            StopAlarm(iPlayerMap.begin()->first);
-            }
-    }
-
 void CSts::PlayComplete(unsigned int aContext)
     {
     CPlayerNode* node = iPlayerMap[aContext];
--- a/mmserv/sts/sts/src/stsplayer.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/sts/src/stsplayer.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -15,94 +15,88 @@
  * This file provides the implementation for creating and deleting a
  * an MMF based player for playing and stopping a tone playback.
  */
+
+//  Include Files  
 #include "stsplayer.h"
 #include <AudioPreference.h>
 #include <systemtoneservice.h>
-
-
+#include "stsplayersettings.h"
+#include "stssettingsmanager.h"
 
-/*static*/CStsPlayer* CStsPlayer::CreateTonePlayer(
-        MStsPlayerObserver& aObserver,CSystemToneService::TToneType aTone,
-       	unsigned int aContext, const TDesC& aFileName, TInt aVolume,
-       	TUint aAudioPreference, TUint  aAudioPriority)
+/*static*/CStsPlayer* CStsPlayer::Create(MStsPlayerObserver& aObserver,
+        CStsSettingsManager& aSettingsManager, unsigned int aContext,
+        CSystemToneService::TAlarmType aAlarm)
     {
     CStsPlayer* self = 0;
-    
-    self = new CStsPlayer(aObserver, aFileName, 0, aContext, aVolume, aAudioPreference, aAudioPriority);
-    
-           	        
-    		if (self != 0)
-         {
-            bool successful = self->Init();
-            if (!successful)
+    CStsSettingsManager::MPlayerSettings& playerSettings =
+            aSettingsManager.GetPlayerSettings(aAlarm);
+    TUint audioPreference;
+    TUint audioPriority;
+    aSettingsManager.GetAudioPriorityPref(aAlarm, audioPriority,
+            audioPreference);
+    self = new CStsPlayer(aObserver, playerSettings, aContext,
+            audioPreference, audioPriority);
+    if (self != 0)
+        {
+        bool successful = self->Init();
+        if (!successful)
             {
-               delete self;
-               self = 0;
+            delete self;
+            self = 0;
             }
-          }
-        
+        }
     return self;
     }
 
-/*static*/CStsPlayer* CStsPlayer::CreateAlarmPlayer(
-        MStsPlayerObserver& aObserver, CSystemToneService::TAlarmType aAlarm,
-        unsigned int aContext, const TDesC& aFileName, TInt aVolume,
-       	TUint aAudioPreference, TUint  aAudioPriority)
+/*static*/CStsPlayer* CStsPlayer::Create(MStsPlayerObserver& aObserver,
+        CStsSettingsManager& aSettingsManager, unsigned int aContext,
+        CSystemToneService::TToneType aTone)
     {
     CStsPlayer* self = 0;
-   
-   	
-   	self = new CStsPlayer(aObserver, aFileName, 10, aContext, aVolume, aAudioPreference, aAudioPriority);
-   	
-     
-    	if (self != 0)
-      	  {
-        	  bool successful = self->Init();
-          	if (!successful)
+    CStsSettingsManager::MPlayerSettings& playerSettings =
+            aSettingsManager.GetPlayerSettings(aTone);
+    TUint audioPreference;
+    TUint audioPriority;
+    aSettingsManager.GetAudioPriorityPref(aTone, audioPriority,
+            audioPreference);
+    self = new CStsPlayer(aObserver, playerSettings, aContext,
+            audioPreference, audioPriority);
+    if (self != 0)
+        {
+        bool successful = self->Init();
+        if (!successful)
             {
-             	  delete self;
-               	self = 0;
-            }	
-        	}
-        
+            delete self;
+            self = 0;
+            }
+        }
     return self;
     }
 
-
-
-
-
-CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver, const TDesC& aFileName,
-        int aRepeatNumberOfTimes, unsigned int aContext, TInt aVolume, TUint aAudioPreference, TUint aAudioPriority ) :
-    iObserver(aObserver), iPlayer(0), iFileName(aFileName),
-            iRepeatNumberOfTimes(aRepeatNumberOfTimes), iContext(aContext), iVolume(aVolume),
-            iAudioPreference(aAudioPreference), iAudioPriority(aAudioPriority)
+CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver,
+        CStsSettingsManager::MPlayerSettings& aPlayerSettings,
+        unsigned int aContext, TUint aAudioPreference, TUint aAudioPriority) :
+    iObserver(aObserver), iPlayerSettings(aPlayerSettings),
+            iContext(aContext), iAudioPreference(aAudioPreference),
+            iAudioPriority(aAudioPriority), iPlayer(0)
     {
-    	
     }
 
 bool CStsPlayer::Init()
     {
-
-    
-        TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this));
-        return result == KErrNone;
-    
+    TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this));
+    return result == KErrNone;
     }
 
-
 CStsPlayer::~CStsPlayer()
     {
-    	
-    delete iPlayer; 
-    
+    delete iPlayer;
     }
 
 void CStsPlayer::Play()
     {
     // Play the tone
-    TRAPD(err, iPlayer->OpenFileL(iFileName));
-
+    TRAPD( err, iPlayer->OpenFileL(iPlayerSettings.GetFileName()) );
     // If there is an error, indicate that the playback is complete. 
     if (err)
         {
@@ -121,10 +115,15 @@
     {
     if (aError == KErrNone)
         {
-        TTimeIntervalMicroSeconds delay = 0;
+        TInt64 volumex100 = iPlayer->MaxVolume()
+                * iPlayerSettings.GetVolumePercentage();
+        TInt volume = volumex100 / 100;
         // Set PriorityPref
-        iPlayer->SetPriority(iAudioPriority,iAudioPreference);
-        iPlayer->SetRepeats(iRepeatNumberOfTimes, delay);
+        iPlayer->SetPriority(iAudioPriority, iAudioPreference);
+        iPlayer->SetRepeats(iPlayerSettings.GetNumberOfRepeats(),
+                iPlayerSettings.GetRepeatDelay());
+        iPlayer->SetVolume(volume);
+        iPlayer->SetVolumeRamp(iPlayerSettings.GetVolumeRamp());
         iPlayer->Play();
         }
     else
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/sts/sts/src/stsplayersettings.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -0,0 +1,86 @@
+/*
+ * 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:
+ * This file provides the implementation for creating and deleting a
+ * an MMF based player for playing and stopping a tone playback.
+ */
+
+//  Include Files  
+#include "stsplayersettings.h"
+_LIT(KDefaultFile,"z:\\data\\sounds\\digital\\clock.aac");
+
+CStsPlayerSettings::CStsPlayerSettings() :
+    iFileName(0), iNumberOfRepeats(0), iRepeatDelay(0),
+            iVolumePercentage(50), iVolumeRamp(0)
+    {
+    TBufC<40> defaultFile(KDefaultFile); 
+    iFileName = defaultFile.AllocL();
+    }
+
+CStsPlayerSettings::~CStsPlayerSettings()
+    {
+    delete iFileName;
+    }
+
+TPtrC CStsPlayerSettings::GetFileName()
+    {
+    return iFileName->Des();
+    }
+
+int CStsPlayerSettings::GetNumberOfRepeats()
+    {
+    return iNumberOfRepeats;
+    }
+
+TTimeIntervalMicroSeconds& CStsPlayerSettings::GetRepeatDelay()
+    {
+    return iRepeatDelay;
+    }
+
+int CStsPlayerSettings::GetVolumePercentage()
+    {
+    return iVolumePercentage;
+    }
+
+TTimeIntervalMicroSeconds& CStsPlayerSettings::GetVolumeRamp()
+    {
+    return iVolumeRamp;
+    }
+
+void CStsPlayerSettings::SetFileName(const TDesC& aFileName)
+    {
+    delete iFileName;
+    iFileName = aFileName.AllocL();
+    }
+
+void CStsPlayerSettings::SetNumberOfRepeats(int aNumberOfRepeats)
+    {
+    iNumberOfRepeats = aNumberOfRepeats;
+    }
+
+void CStsPlayerSettings::SetRepeatDelay(
+        TTimeIntervalMicroSeconds aRepeatDelay)
+    {
+    iRepeatDelay = aRepeatDelay;
+    }
+
+void CStsPlayerSettings::SetVolumePercentage(int aVolumePercentage)
+    {
+    iVolumePercentage = aVolumePercentage;
+    }
+
+void CStsPlayerSettings::SetVolumeRamp(TTimeIntervalMicroSeconds aVolumeRamp)
+    {
+    iVolumeRamp = aVolumeRamp;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/sts/sts/src/stsplayersettings.h	Thu Sep 02 20:58:01 2010 +0300
@@ -0,0 +1,51 @@
+/*
+ * 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:
+ * This file defines the interface for creating, playing,
+ * stopping, and deleting an MMF player for a tone type.
+ */
+#ifndef STSPLAYERSETTINGS_H_
+#define STSPLAYERSETTINGS_H_
+
+#include <e32std.h>
+#include "stssettingsmanager.h"
+
+class CStsPlayerSettings : public CStsSettingsManager::MPlayerSettings
+    {
+public:
+    CStsPlayerSettings();
+    virtual ~CStsPlayerSettings();
+
+    void SetFileName(const TDesC& aFileName);
+    void SetNumberOfRepeats(int aNumberOfRepeats);
+    void SetRepeatDelay(TTimeIntervalMicroSeconds aRepeatDelay);
+    void SetVolumePercentage(int aVolumePercentage);
+    void SetVolumeRamp(TTimeIntervalMicroSeconds aVolumeRamp);
+
+    // inherited from CStsSettingsManager::MPlayerSettings
+    virtual TPtrC GetFileName();
+    virtual int GetNumberOfRepeats();
+    virtual TTimeIntervalMicroSeconds& GetRepeatDelay();
+    virtual int GetVolumePercentage();
+    virtual TTimeIntervalMicroSeconds& GetVolumeRamp();
+
+private:
+    HBufC* iFileName;
+    int iNumberOfRepeats;
+    TTimeIntervalMicroSeconds iRepeatDelay;
+    int iVolumePercentage;
+    TTimeIntervalMicroSeconds iVolumeRamp;
+    };
+
+#endif //STSPLAYERSETTINGS_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/sts/sts/src/stssettingsmanager.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -0,0 +1,323 @@
+/*
+ * 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:
+ * This file provides the implementation of System Tone Service used
+ * by the STS Server.
+ */
+//  Include Files  
+#include "stssettingsmanager.h"
+#include <AudioPreference.h>
+#include <MProEngEngine.h>
+#include <MProEngNotifyHandler.h>
+#include <MProEngProfile.h>
+#include <MProEngTones.h>
+#include <MProEngToneSettings.h>
+#include <ProEngFactory.h>
+#include "stsplayersettings.h"
+_LIT(KDefaultFile,"z:\\data\\sounds\\digital\\clock.aac");
+
+// Data types
+/** The type of system tones that are supported by this API. */
+enum TSettingsType
+    {
+    EDefaultAlarm = 0,
+    EDefaultAlert,
+    EEmailAlert,
+    EIncomingCall,
+    EIncomingCall2,
+    EIncomingDataCall,
+    EMessageAlert,
+    EWarningBeep,
+    EENDMARKER
+    };
+
+/*static*/CStsSettingsManager* CStsSettingsManager::Create()
+    {
+    CStsSettingsManager* self = new CStsSettingsManager();
+
+    if (self != 0)
+        {
+        bool successful = self->Init();
+
+        if (!successful)
+            {
+            delete self;
+            self = 0;
+            }
+        }
+    return self;
+    }
+
+/*static*/void CStsSettingsManager::Delete(
+        CStsSettingsManager* aStsSettingsManager)
+    {
+    delete aStsSettingsManager;
+    }
+
+CStsSettingsManager::CStsSettingsManager() :
+    iEngine(0), iNotifyHandler(0), iPlayerSettings(0)
+    {
+    }
+
+bool CStsSettingsManager::Init()
+    {
+    bool successful = false;
+    TRAPD( err, iEngine = ProEngFactory::NewEngineL() );
+    if (err == KErrNone)
+        {
+        TRAP( err, iNotifyHandler = ProEngFactory::NewNotifyHandlerL() );
+        }
+    if (err == KErrNone)
+        {
+        TRAP( err, iNotifyHandler->RequestProfileActivationNotificationsL(*this) );
+        }
+    if (err == KErrNone)
+        {
+        TRAP( err, iNotifyHandler->RequestActiveProfileNotificationsL(*this) );
+        }
+    if (err == KErrNone)
+        {
+        iPlayerSettings = new CStsPlayerSettings[EENDMARKER];
+        if (iPlayerSettings != 0)
+            {
+            successful = LoadActiveProfileSettings();
+            }
+        }
+    return successful;
+    }
+
+CStsSettingsManager::~CStsSettingsManager()
+    {
+    if (iEngine != 0)
+        {
+        iEngine->Release();
+        }
+    if (iNotifyHandler != 0)
+        {
+        iNotifyHandler->CancelAll();
+        delete iNotifyHandler;
+        }
+    delete[] iPlayerSettings;
+    }
+
+CStsSettingsManager::MPlayerSettings& CStsSettingsManager::GetPlayerSettings(
+        CSystemToneService::TAlarmType aAlarm)
+    {
+    MPlayerSettings* result;
+    switch (aAlarm)
+        {
+        case CSystemToneService::EIncomingCall:
+            {
+            result = &iPlayerSettings[EIncomingCall];
+            break;
+            }
+        case CSystemToneService::EIncomingCallLine2:
+            {
+            result = &iPlayerSettings[EIncomingCall2];
+            break;
+            }
+        case CSystemToneService::EIncomingDataCall:
+            {
+            result = &iPlayerSettings[EIncomingDataCall];
+            break;
+            }
+        default:
+            {
+            result = &iPlayerSettings[EDefaultAlarm];
+            break;
+            }
+        }
+    return *result;
+    }
+
+CStsSettingsManager::MPlayerSettings& CStsSettingsManager::GetPlayerSettings(
+        CSystemToneService::TToneType aTone)
+    {
+    MPlayerSettings* result;
+    switch (aTone)
+        {
+        case CSystemToneService::EEmailAlert:
+            {
+            result = &iPlayerSettings[EEmailAlert];
+            break;
+            }
+        case CSystemToneService::ESmsAlert:
+        case CSystemToneService::EMmsAlert:
+        case CSystemToneService::EChatAlert:
+            {
+            result = &iPlayerSettings[EMessageAlert];
+            break;
+            }
+        case CSystemToneService::EWarningBeep:
+            {
+            result = &iPlayerSettings[EWarningBeep];
+            break;
+            }
+        default:
+            {
+            result = &iPlayerSettings[EDefaultAlert];
+            break;
+            }
+        }
+    return *result;
+    }
+
+void CStsSettingsManager::GetAudioPriorityPref(
+        CSystemToneService::TAlarmType aAlarm, TUint& aPriority,
+        TUint& aPreference)
+    {
+    switch (aAlarm)
+        {
+        case CSystemToneService::EIncomingCall:
+        case CSystemToneService::EIncomingCallLine2:
+            {
+            aPriority = KAudioPriorityRingingTone;
+            aPreference = KAudioPrefIncomingCall;
+            break;
+            }
+        case CSystemToneService::EIncomingDataCall:
+            {
+            aPriority = KAudioPriorityRealOnePlayer;
+            aPreference = KAudioPrefIncomingDataCall;
+            break;
+            }
+        default:
+            {
+            aPriority = KAudioPriorityAlarm;
+            aPreference = KAudioPrefAlarmClock;
+            break;
+            }
+        }
+    }
+
+void CStsSettingsManager::GetAudioPriorityPref(
+        CSystemToneService::TToneType aTone, TUint& aPriority,
+        TUint& aPreference)
+    {
+    switch (aTone)
+        {
+        case CSystemToneService::EEmailAlert:
+        case CSystemToneService::ESmsAlert:
+        case CSystemToneService::EMmsAlert:
+        case CSystemToneService::EChatAlert:
+            {
+            aPriority = KAudioPriorityRecvMsg;
+            aPreference = KAudioPrefNewSMS;
+            break;
+            }
+        case CSystemToneService::EWarningBeep:
+            {
+            aPriority = KAudioPriorityWarningTone;
+            aPreference = KAudioPrefWarning;
+            break;
+            }
+        default:
+            {
+            aPriority = KAudioPriorityWarningTone;
+            aPreference = KAudioPrefDefaultTone;
+            break;
+            }
+        }
+    }
+
+bool CStsSettingsManager::LoadActiveProfileSettings()
+    {
+    bool successful = false;
+    MProEngProfile* profile = 0;
+    TRAPD( err, profile = iEngine->ActiveProfileL() );
+
+    if (err == KErrNone)
+        {
+        MProEngTones& tones = profile->ProfileTones();
+        MProEngToneSettings& settings = profile->ToneSettings();
+        int volume = 50;
+        if (profile->IsSilent())
+            {
+            volume = 0;
+            }
+        int warningVolume = 0;
+        if (settings.WarningAndGameTones())
+            {
+            warningVolume = 50;
+            }
+
+        iPlayerSettings[EDefaultAlarm].SetFileName(KDefaultFile);
+        iPlayerSettings[EDefaultAlert].SetFileName(KDefaultFile);
+        iPlayerSettings[EEmailAlert].SetFileName(tones.EmailAlertTone());
+        iPlayerSettings[EIncomingCall].SetFileName(tones.RingingTone1());
+        iPlayerSettings[EIncomingCall2].SetFileName(tones.RingingTone2());
+        iPlayerSettings[EIncomingDataCall].SetFileName(
+                tones.VideoCallRingingTone());
+        iPlayerSettings[EMessageAlert].SetFileName(tones.MessageAlertTone());
+        iPlayerSettings[EWarningBeep].SetFileName(KDefaultFile);
+
+        iPlayerSettings[EDefaultAlarm].SetNumberOfRepeats(5);
+        iPlayerSettings[EDefaultAlert].SetNumberOfRepeats(0);
+        iPlayerSettings[EEmailAlert].SetNumberOfRepeats(0);
+        iPlayerSettings[EIncomingCall].SetNumberOfRepeats(100);
+        iPlayerSettings[EIncomingCall2].SetNumberOfRepeats(100);
+        iPlayerSettings[EIncomingDataCall].SetNumberOfRepeats(100);
+        iPlayerSettings[EMessageAlert].SetNumberOfRepeats(0);
+        iPlayerSettings[EWarningBeep].SetNumberOfRepeats(0);
+
+        iPlayerSettings[EDefaultAlarm].SetRepeatDelay(1000);
+        iPlayerSettings[EDefaultAlert].SetRepeatDelay(0);
+        iPlayerSettings[EEmailAlert].SetRepeatDelay(0);
+        iPlayerSettings[EIncomingCall].SetRepeatDelay(1000);
+        iPlayerSettings[EIncomingCall2].SetRepeatDelay(1000);
+        iPlayerSettings[EIncomingDataCall].SetRepeatDelay(1000);
+        iPlayerSettings[EMessageAlert].SetRepeatDelay(0);
+        iPlayerSettings[EWarningBeep].SetRepeatDelay(0);
+
+        iPlayerSettings[EDefaultAlarm].SetVolumePercentage(volume);
+        iPlayerSettings[EDefaultAlert].SetVolumePercentage(volume);
+        iPlayerSettings[EEmailAlert].SetVolumePercentage(volume);
+        iPlayerSettings[EIncomingCall].SetVolumePercentage(volume);
+        iPlayerSettings[EIncomingCall2].SetVolumePercentage(volume);
+        iPlayerSettings[EIncomingDataCall].SetVolumePercentage(volume);
+        iPlayerSettings[EMessageAlert].SetVolumePercentage(volume);
+        iPlayerSettings[EWarningBeep].SetVolumePercentage(warningVolume);
+
+        iPlayerSettings[EDefaultAlarm].SetVolumeRamp(1000000);
+        iPlayerSettings[EDefaultAlert].SetVolumeRamp(1000);
+        iPlayerSettings[EEmailAlert].SetVolumeRamp(1000);
+        iPlayerSettings[EIncomingCall].SetVolumeRamp(1000000);
+        iPlayerSettings[EIncomingCall2].SetVolumeRamp(1000000);
+        iPlayerSettings[EIncomingDataCall].SetVolumeRamp(1000000);
+        iPlayerSettings[EMessageAlert].SetVolumeRamp(1000);
+        iPlayerSettings[EWarningBeep].SetVolumeRamp(1000);
+
+        profile->Release();
+        successful = true;
+        }
+    return successful;
+    }
+
+void CStsSettingsManager::HandleActiveProfileModifiedL()
+    {
+    bool successful = LoadActiveProfileSettings();
+    if (!successful)
+        {
+        //TODO: Log error
+        }
+    }
+
+void CStsSettingsManager::HandleProfileActivatedL(TInt /*aProfileId*/)
+    {
+    bool successful = LoadActiveProfileSettings();
+    if (!successful)
+        {
+        //TODO: Log error
+        }
+    }
--- a/mmserv/sts/stsproxy/group/stsproxy.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsproxy/group/stsproxy.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -30,4 +30,5 @@
 
 SOURCEPATH      ../src
 
-SOURCE          stsimplementation.cpp rstssession.cpp
+SOURCE          rstssession.cpp
+SOURCE          stsimplementation.cpp
--- a/mmserv/sts/stsproxy/inc/stsimplementation.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsproxy/inc/stsimplementation.h	Thu Sep 02 20:58:01 2010 +0300
@@ -15,7 +15,6 @@
  * This file defines the interface to the class that provides the
  * implementation logic of the STS API.
  */
-
 #ifndef STSIMPLEMENTATION_H_
 #define STSIMPLEMENTATION_H_
 
@@ -30,13 +29,11 @@
     virtual ~CStsImplementation();
 public:
     void PlayTone(CSystemToneService::TToneType aTone);
-    void
-    PlayAlarm(CSystemToneService::TAlarmType aAlarm,
+    void PlayAlarm(CSystemToneService::TAlarmType aAlarm,
+            unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
+    void PlayAlarm(CSystemToneService::TToneType aTone,
             unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
     void StopAlarm(unsigned int aAlarmContext);
-    void
-    PlayAlarm(CSystemToneService::TToneType aTone,
-            unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
 private:
     CStsImplementation();
     bool Init();
--- a/mmserv/sts/stsproxy/src/rstssession.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsproxy/src/rstssession.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -16,6 +16,7 @@
  * to the STS Server.
  */
 
+//  Include Files  
 #include "rstssession.h"
 #include "stsclientservercommon.h"
 
@@ -96,6 +97,7 @@
 
 void RStsSession::HandleMessage(TStsCallBack& aMessage)
     {
+    bool signalObserver = false;
     TStsCallBackType type = aMessage.callBackType;
     if (type == EStsPlayAlarmComplete)
         {
@@ -104,7 +106,7 @@
         iObserverMutex.Wait();
         if (observer == iObserverMap[context])
             {
-            observer->PlayAlarmComplete(aMessage.alarmContext);
+            signalObserver = true;
             }
         else
             {
@@ -112,6 +114,10 @@
             }
         iObserverMap.erase(context);
         iObserverMutex.Signal();
+        if (signalObserver)
+            {
+            observer->PlayAlarmComplete(aMessage.alarmContext);
+            }
         }
     else if (type == EStsShutdown)
         {
@@ -165,7 +171,6 @@
     {
     TInt result = iThread.Create(KNullDesC, RStsSession::CallBackThreadMain,
             KDefaultStackSize, &User::Heap(), (TAny*) this);
-
     if (result == KErrNone)
         {
         TRequestStatus rendezvousStatus = KRequestPending;
@@ -186,7 +191,6 @@
             iThread.Kill(result);
             }
         }
-
     return result;
     }
 
@@ -208,14 +212,12 @@
                     KStsServerBuild), KNumSlots, EIpcSession_Sharable);
             }
         }
-
     if (result == KErrNone)
         {
         TPckg<TThreadId> idPckg(iServerThreadId);
         result = SendReceive(StsMsg_RegisterMsgQueue, TIpcArgs(iMsgQueue,
                 &idPckg));
         }
-
     return result;
     }
 
@@ -239,7 +241,6 @@
                 }
             }
         }
-
     return result;
     }
 
@@ -267,19 +268,56 @@
 void RStsSession::SendPlayAlarm(CSystemToneService::TAlarmType aAlarm,
         unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
     {
+    bool signalObserver = false;
     TPckg<unsigned int> alarmContextPckg(aAlarmContext);
+    // Need to do the SendReceive and adding the observer to the
+    // observer map in a critical section in case the playback
+    // completes before this method has a chance to update the
+    // observer list.
+    iObserverMutex.Wait();
     TInt err = SendReceive(StsMsg_PlayAlarm, TIpcArgs(aAlarm,
             &alarmContextPckg, &aObserver));
     if (err != KErrNone)
         {
         //TODO: Log a message
-        aObserver.PlayAlarmComplete(aAlarmContext);
+        signalObserver = true;
         }
     else
         {
-        iObserverMutex.Wait();
         iObserverMap[aAlarmContext] = &aObserver;
-        iObserverMutex.Signal();
+        }
+    iObserverMutex.Signal();
+    if (signalObserver)
+        {
+        aObserver.PlayAlarmComplete(aAlarmContext);
+        }
+    }
+
+void RStsSession::SendPlayToneAlarm(CSystemToneService::TToneType aTone,
+        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
+    {
+    bool signalObserver = false;
+    TPckg<unsigned int> alarmContextPckg(aAlarmContext);
+    // Need to do the SendReceive and adding the observer to the
+    // observer map in a critical section in case the playback
+    // completes before this method has a chance to update the
+    // observer list.
+    iObserverMutex.Wait();
+    TInt err = SendReceive(StsMsg_PlayToneAlarm, TIpcArgs(aTone,
+            &alarmContextPckg, &aObserver));
+    if (err != KErrNone)
+        {
+        //TODO: Log a message
+        signalObserver = true;
+        }
+    else
+        {
+        iObserverMap[aAlarmContext] = &aObserver;
+        }
+    iObserverMutex.Signal();
+    if (signalObserver)
+        {
+        aObserver.PlayAlarmComplete(aAlarmContext);
         }
     }
 
@@ -295,26 +333,6 @@
         }
     }
 
-void RStsSession::SendPlayToneForStop(CSystemToneService::TToneType aTone,
-        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
-    {
-    TPckg<unsigned int> alarmContextPckg(aAlarmContext);
-    TInt err = SendReceive(StsMsg_PlayTone, TIpcArgs(aTone,
-            &alarmContextPckg, &aObserver));
-    if (err != KErrNone)
-        {
-        //TODO: Log a message
-        aObserver.PlayAlarmComplete(aAlarmContext);
-        }
-    else
-        {
-        iObserverMutex.Wait();
-        iObserverMap[aAlarmContext] = &aObserver;
-        iObserverMutex.Signal();
-        }
-   }   
-    
-
 void RStsSession::CleanUpObservers()
     {
     iObserverMutex.Wait();
--- a/mmserv/sts/stsproxy/src/rstssession.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsproxy/src/rstssession.h	Thu Sep 02 20:58:01 2010 +0300
@@ -15,7 +15,6 @@
  * This file defines the interface to the client side session of the
  * STS Server.
  */
-
 #ifndef RSTSSESSION_H_
 #define RSTSSESSION_H_
 
@@ -38,10 +37,10 @@
     void SendPlayAlarm(CSystemToneService::TAlarmType aAlarm,
             unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
 
+    void SendPlayToneAlarm(CSystemToneService::TToneType aTone,
+            unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
+
     void SendStopAlarm(unsigned int aAlarmContext);
-    
-    void SendPlayToneForStop(CSystemToneService::TToneType aTone,
-    	      unsigned int& aAlarmContext,  MStsPlayAlarmObserver& aObserver);
 
 private:
 
--- a/mmserv/sts/stsproxy/src/stsimplementation.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsproxy/src/stsimplementation.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -73,14 +73,14 @@
     iSession->SendPlayAlarm(aAlarm, aAlarmContext, aObserver);
     }
 
+void CStsImplementation::PlayAlarm(CSystemToneService::TToneType aTone,
+        unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver)
+    {
+    iSession->SendPlayToneAlarm(aTone, aAlarmContext, aObserver);
+    }
+
 void CStsImplementation::StopAlarm(unsigned int aAlarmContext)
     {
     //TODO: Add logging and error checking
     iSession->SendStopAlarm(aAlarmContext);
     }
-    
-void CStsImplementation::PlayAlarm(CSystemToneService::TToneType aTone,
-	      unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver) 
-	   {  
-	   	iSession->SendPlayToneForStop(aTone, aAlarmContext, aObserver);  
-		 }
--- a/mmserv/sts/stsserver/inc/stsclientservercommon.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsserver/inc/stsclientservercommon.h	Thu Sep 02 20:58:01 2010 +0300
@@ -15,7 +15,6 @@
  * This file defines common types and constants used by the STS server
  * and sessions.
  */
-
 #ifndef STSCLIENTSERVERCOMMON_H_
 #define STSCLIENTSERVERCOMMON_H_
 
@@ -38,7 +37,7 @@
     StsMsg_StopAlarm,
     StsMsg_PlayTone,
     StsMsg_PlayAlarm,
-    StsMsg_PlayToneStop,
+    StsMsg_PlayToneAlarm,
     StsMsg_ENDMARKER
     };
 
@@ -47,8 +46,7 @@
 
 enum TStsCallBackType
     {
-    EStsShutdown,
-    EStsPlayAlarmComplete
+    EStsShutdown, EStsPlayAlarmComplete
     };
 
 struct TStsCallBack
--- a/mmserv/sts/stsserver/src/stsserver.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsserver/src/stsserver.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -18,6 +18,7 @@
  * functionality is handled in the STS class.
  */
 
+//  Include Files  
 #include "stsserver.h"
 #include "stsserversession.h"
 #include "sts.h"
@@ -89,6 +90,7 @@
     switch (aMsg.Function())
         {
         case StsMsg_PlayTone:
+        case StsMsg_PlayToneAlarm:
             {
             CSystemToneService::TToneType tone =
                     (CSystemToneService::TToneType) aMsg.Int0();
@@ -114,7 +116,7 @@
         TSecurityInfo& /*aMissing*/)
     {
     CPolicyServer::TCustomResult result;
-    switch(aAlarm)
+    switch (aAlarm)
         {
         default:
             result = CPolicyServer::EPass;
@@ -127,7 +129,7 @@
         TSecurityInfo& /*aMissing*/)
     {
     CPolicyServer::TCustomResult result;
-    switch(aTone)
+    switch (aTone)
         {
         default:
             result = CPolicyServer::EPass;
--- a/mmserv/sts/stsserver/src/stsserver.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsserver/src/stsserver.h	Thu Sep 02 20:58:01 2010 +0300
@@ -14,7 +14,6 @@
  * Description:
  * This file defines the interface into the STS server.
  */
-
 #ifndef STSSERVER_H_
 #define STSSERVER_H_
 
--- a/mmserv/sts/stsserver/src/stsserverexe.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsserver/src/stsserverexe.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -15,6 +15,7 @@
  * The file containt the main method of the STS Server.
  */
 
+//  Include Files  
 #include <ecom/ecom.h>
 #include "stsserver.h"
 
@@ -26,7 +27,7 @@
     RThread myThread;
     myThread.SetPriority(EPriorityAbsoluteRealTime1);
     myThread.Close();
-    
+
     CTrapCleanup* cleanup = CTrapCleanup::New();
 
     if (cleanup)
--- a/mmserv/sts/stsserver/src/stsserversession.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsserver/src/stsserversession.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -17,6 +17,7 @@
  * in the STS class.
  */
 
+//  Include Files  
 #include "stsserversession.h"
 #include "stsserver.h"
 #include "sts.h"
@@ -55,6 +56,9 @@
         case StsMsg_PlayAlarm:
             DoPlayAlarmL(aMessage);
             break;
+        case StsMsg_PlayToneAlarm:
+            DoPlayToneAlarmL(aMessage);
+            break;
         case StsMsg_StopAlarm:
             DoStopAlarmL(aMessage);
             break;
@@ -106,22 +110,12 @@
         }
     }
 
-void CStsServerSession::DoStopAlarmL(const RMessage2& aMessage)
-    {
-    unsigned int context = aMessage.Int0();
-    aMessage.Complete(KErrNone);
-    iObserverMap.erase(context);
-    iSts.StopAlarm(context);
-    }
-
-void CStsServerSession::DoPlayToneStopL(const RMessage2& aMessage)
+void CStsServerSession::DoPlayToneAlarmL(const RMessage2& aMessage)
     {
     CSystemToneService::TToneType tone =
             (CSystemToneService::TToneType) aMessage.Int0();
     unsigned int context = 0;
-    //SR
-    //iSts.PlayTone(tone, context, *this);
-    iSts.PlayToneStop(tone, context, *this);
+    iSts.PlayAlarm(tone, context, *this);
     iObserverMap[context] = (MStsPlayAlarmObserver*) aMessage.Ptr2();
     TPckg<unsigned int> contextPckg(context);
     TRAPD(err,aMessage.WriteL(1,contextPckg));
@@ -134,6 +128,13 @@
         }
     }
 
+void CStsServerSession::DoStopAlarmL(const RMessage2& aMessage)
+    {
+    unsigned int context = aMessage.Int0();
+    aMessage.Complete(KErrNone);
+    iObserverMap.erase(context);
+    iSts.StopAlarm(context);
+    }
 
 void CStsServerSession::CleanUpObservers()
     {
--- a/mmserv/sts/stsserver/src/stsserversession.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/stsserver/src/stsserversession.h	Thu Sep 02 20:58:01 2010 +0300
@@ -14,7 +14,6 @@
  * Description:
  * This file defines the interface for the STS server side session.
  */
-
 #ifndef STSSERVERSESSION_H_
 #define STSSERVERSESSION_H_
 
@@ -46,11 +45,11 @@
     void DoRegisterMsgQueueL(const RMessage2& aMessage);
     void DoPlayToneL(const RMessage2& aMessage);
     void DoPlayAlarmL(const RMessage2& aMessage);
+    void DoPlayToneAlarmL(const RMessage2& aMessage);
     void DoStopAlarmL(const RMessage2& aMessage);
-    void DoPlayToneStopL(const RMessage2& aMessage);
 
     void CleanUpObservers();
-    
+
     // inherited from MPlayAlarmObserver
     virtual void PlayAlarmComplete(unsigned int aAlarmContext);
 
--- a/mmserv/sts/tsrc/ststester/src/ststester.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/tsrc/ststester/src/ststester.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -49,25 +49,28 @@
                                 },
                             // 0 - 9
                                 {
+                                        STR("Stop Current Alarm"),
+                                        EOperation_StopCurrentAlarm
+                                },
+                                {
                                         STR("Play Default Beep"),
                                         EOperation_PlayDefaultBeep
                                 },
                                 {
-                                        STR("Play Clock Alarm"),
-                                        EOperation_PlayClockAlarm
-                                },
-                                {
-                                        STR("Stop Clock Alarm"),
-                                        EOperation_StopClockAlarm
+                                        STR("Play Default Alarm"),
+                                        EOperation_PlayDefaultAlarm
                                 },
                                 {
-                                STR(""), KOperation_None
+                                        STR("Play Default Beep as Alarm"),
+                                        EOperation_PlayDefaultasAlarm
                                 },
                                 {
-                                STR(""), KOperation_None
+                                        STR("Play Incoming Call Alarm"),
+                                        EOperation_PlayIncomingCallAlarm
                                 },
                                 {
-                                STR(""), KOperation_None
+                                        STR("Play Warning Beep"),
+                                        EOperation_PlayWarningBeep
                                 },
                                 {
                                 STR(""), KOperation_None
@@ -117,9 +120,12 @@
 
 void CStsTester::MainL()
     {
+    _LIT(KStopCurrentAlarm, "Stop Current Alarm");
     _LIT(KPlayDefault, "Play Default Beep");
-    _LIT(KPlayClockAlarm, "Play Clock Alarm");
-    _LIT(KStopClockAlarm, "Stop Clock Alarm");
+    _LIT(KPlayDefaultAlarm, "Play Default Alarm");
+    _LIT(KPlayDefaultAsAlarm, "Play Default Beep as Alarm");
+    _LIT(KPlayIncomingCallAlarm, "Play Incoming Call Alarm");
+    _LIT(KPlayWarningBeep, "Play Warning Beep");
     _LIT(KExit, "Exit");
 
     bool done = false;
@@ -127,9 +133,12 @@
     while (!done)
         {
         RPointerArray<TDesC> operations;
+        operations.Append(&KStopCurrentAlarm);
         operations.Append(&KPlayDefault);
-        operations.Append(&KPlayClockAlarm);
-        operations.Append(&KStopClockAlarm);
+        operations.Append(&KPlayDefaultAlarm);
+        operations.Append(&KPlayDefaultAsAlarm);
+        operations.Append(&KPlayIncomingCallAlarm);
+        operations.Append(&KPlayWarningBeep);
         operations.Append(&KExit);
 
         TInt index = SelectFromListL(TPoint(0, 0), iDisplaySize, _L(
@@ -145,15 +154,24 @@
                 done = true;
                 break;
             case 0:
-                ExecuteOperation(EOperation_PlayDefaultBeep, operationName);
+                ExecuteOperation(EOperation_StopCurrentAlarm, operationName);
                 break;
             case 1:
-                ExecuteOperation(EOperation_PlayClockAlarm, operationName);
+                ExecuteOperation(EOperation_PlayDefaultBeep, operationName);
                 break;
             case 2:
-                ExecuteOperation(EOperation_StopClockAlarm, operationName);
+                ExecuteOperation(EOperation_PlayDefaultAlarm, operationName);
                 break;
             case 3:
+                ExecuteOperation(EOperation_PlayDefaultasAlarm, operationName);
+                break;
+            case 4:
+                ExecuteOperation(EOperation_PlayIncomingCallAlarm, operationName);
+                break;
+            case 5:
+                ExecuteOperation(EOperation_PlayWarningBeep, operationName);
+                break;
+            case 6:
                 done = true;
                 break;
             }
@@ -164,6 +182,15 @@
     {
     switch (aOperation)
         {
+        case EOperation_StopCurrentAlarm:
+            {
+            TAG_TIME_PROFILING_BEGIN;
+            iSts->StopAlarm(iCurrentContext);
+            TAG_TIME_PROFILING_END;
+            PRINT_TO_CONSOLE_TIME_DIFF;
+            iPlayState = EStopped;
+            break;
+            }
         case EOperation_PlayDefaultBeep:
             {
             TAG_TIME_PROFILING_BEGIN;
@@ -172,7 +199,7 @@
             PRINT_TO_CONSOLE_TIME_DIFF;
             break;
             }
-        case EOperation_PlayClockAlarm:
+        case EOperation_PlayDefaultAlarm:
             {
             // Only play if not already playing
             if (iPlayState != EPlaying)
@@ -186,13 +213,41 @@
                 }
             break;
             }
-        case EOperation_StopClockAlarm:
+        case EOperation_PlayDefaultasAlarm:
+            {
+            // Only play if not already playing
+            if (iPlayState != EPlaying)
+                {
+                iPlayState = EPlaying;
+                TAG_TIME_PROFILING_BEGIN;
+                iSts->PlayAlarm(CSystemToneService::EDefaultBeep,
+                        iCurrentContext, *this);
+                TAG_TIME_PROFILING_END;
+                PRINT_TO_CONSOLE_TIME_DIFF;
+                }
+            break;
+            }
+        case EOperation_PlayIncomingCallAlarm:
             {
-            TAG_TIME_PROFILING_BEGIN;
-            iSts->StopAlarm(iCurrentContext);
-            TAG_TIME_PROFILING_END;
-            PRINT_TO_CONSOLE_TIME_DIFF;
-            iPlayState = EStopped;
+            // Only play if not already playing
+            if (iPlayState != EPlaying)
+                {
+                iPlayState = EPlaying;
+                TAG_TIME_PROFILING_BEGIN;
+                iSts->PlayAlarm(CSystemToneService::EIncomingCall,
+                        iCurrentContext, *this);
+                TAG_TIME_PROFILING_END;
+                PRINT_TO_CONSOLE_TIME_DIFF;
+                }
+            break;
+            }
+        case EOperation_PlayWarningBeep:
+            {
+            // Only play if not already playing
+                TAG_TIME_PROFILING_BEGIN;
+                iSts->PlayTone(CSystemToneService::EWarningBeep);
+                TAG_TIME_PROFILING_END;
+                PRINT_TO_CONSOLE_TIME_DIFF;
             break;
             }
         default:
--- a/mmserv/sts/tsrc/ststester/src/ststester.h	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/sts/tsrc/ststester/src/ststester.h	Thu Sep 02 20:58:01 2010 +0300
@@ -23,9 +23,13 @@
 
 enum TOperations
     {
-    EOperation_PlayDefaultBeep = KOperation_FirstCustomIndex,
-    EOperation_PlayClockAlarm,
-    EOperation_StopClockAlarm
+    EOperation_StopCurrentAlarm = KOperation_FirstCustomIndex,
+    EOperation_PlayDefaultBeep,
+    EOperation_PlayDefaultAlarm,
+    EOperation_StopClockAlarm,
+    EOperation_PlayDefaultasAlarm,
+    EOperation_PlayIncomingCallAlarm,
+    EOperation_PlayWarningBeep
     };
 
 class CStsTester : public CTestAppBase, MStsPlayAlarmObserver
--- a/mmserv/thumbnailengine/Group/HXTNEEngine.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/thumbnailengine/Group/HXTNEEngine.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -70,7 +70,7 @@
 LIBRARY			euser.lib efsrv.lib
 LIBRARY			fbscli.lib
 LIBRARY			gdi.lib
-LIBRARY			3GPMP4Lib.lib
+LIBRARY			3gpmp4lib.lib
 LIBRARY			ecom.lib
 LIBRARY			devvideo.lib
 LIBRARY			flogger.lib
--- a/mmserv/thumbnailengine/Group/TNEEngine.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/thumbnailengine/Group/TNEEngine.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -67,7 +67,7 @@
 LIBRARY			euser.lib efsrv.lib
 LIBRARY			fbscli.lib
 LIBRARY			gdi.lib
-LIBRARY			3GPMP4Lib.lib
+LIBRARY			3gpmp4lib.lib
 LIBRARY			ecom.lib
 LIBRARY			devvideo.lib
 
--- a/mmserv/thumbnailengine/TneAPISrc/HXTNEVideoClipInfoImp.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/thumbnailengine/TneAPISrc/HXTNEVideoClipInfoImp.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -421,6 +421,14 @@
     
     if ( !iRgbBuf )
     {
+        //we only support even frame width & height. Ignore and return error
+        if ( (iMetaData.iWidth & 0x01) || (iMetaData.iHeight & 0x01) )
+        {
+             FLOG(_L("CHXTNEVideoClipInfoImp::GenerateThumbNail non-even frame size returning error iMetaData.iWidth=%d iMetaData.iHeight=%d "),iMetaData.iWidth,iMetaData.iHeight);
+             HandleThumbnailError(KErrNotSupported);
+             return;
+        }
+        
         TSize inputFrameResolution(iMetaData.iWidth,iMetaData.iHeight);
                        
         // rgb specs
--- a/mmserv/tms/tmscallserver/group/tmscallserver.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/tms/tmscallserver/group/tmscallserver.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -74,15 +74,15 @@
 LIBRARY         libgstapp.lib
 LIBRARY         libgstdevsoundext.lib
 #else //__USE_GSTREAMER__
-LIBRARY         errorconcealmentintfc.lib
-LIBRARY         g711decoderintfc.lib
-LIBRARY         g711encoderintfc.lib
-LIBRARY         g729decoderintfc.lib
-LIBRARY         g729encoderintfc.lib
-LIBRARY         ilbcdecoderintfc.lib
-LIBRARY         ilbcencoderintfc.lib
-LIBRARY         speechencoderconfig.lib
-LIBRARY         audiooutputrouting.lib
+LIBRARY         ErrorConcealmentIntfc.lib
+LIBRARY         G711DecoderIntfc.lib
+LIBRARY         G711EncoderIntfc.lib
+LIBRARY         G729DecoderIntfc.lib
+LIBRARY         G729EncoderIntfc.lib
+LIBRARY         IlbcDecoderIntfc.lib
+LIBRARY         IlbcEncoderIntfc.lib
+LIBRARY         SpeechEncoderConfig.lib
+LIBRARY         AudioOutputRouting.lib
 #endif //__USE_GSTREAMER__
 LIBRARY         euser.lib
 LIBRARY         estor.lib
@@ -92,8 +92,8 @@
 LIBRARY         mmfdevsound.lib
 LIBRARY         mmfserverbaseclasses.lib
 LIBRARY         mediaclientaudio.lib
-LIBRARY         profileengine.lib
-LIBRARY         telephonyaudiorouting.lib
+LIBRARY         ProfileEngine.lib
+LIBRARY         TelephonyAudioRouting.lib
 LIBRARY         tmsutility.lib
 
 DEFFILE         tmscallserver.def
--- a/mmserv/tms/tmsserver/src/tmsserver.cpp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/tms/tmsserver/src/tmsserver.cpp	Thu Sep 02 20:58:01 2010 +0300
@@ -801,20 +801,27 @@
     TRACE_PRN_FN_ENT;
 
     TInt vol;
-    iCurrentRouting = routingpckg().iOutput;
-    if (iCurrentRouting == TMS_AUDIO_OUTPUT_PUBLIC ||
-            iCurrentRouting == TMS_AUDIO_OUTPUT_LOUDSPEAKER)
+    TInt status(TMS_RESULT_SUCCESS);
+    FindActiveCallType();
+
+    if (iActiveCallType == TMS_CALL_CS)
         {
-        iEffectSettings->GetLoudSpkrVolume(vol);
-        TRACE_PRN_N1(_L("TMSServer::NotifyTarClients loudspkr vol %d"),vol);
+
+        iCurrentRouting = routingpckg().iOutput;
+        if (iCurrentRouting == TMS_AUDIO_OUTPUT_PUBLIC || 
+        	  iCurrentRouting == TMS_AUDIO_OUTPUT_LOUDSPEAKER)
+            {
+            iEffectSettings->GetLoudSpkrVolume(vol);
+            TRACE_PRN_N1(_L("TMSServer::NotifyTarClients loudspkr vol %d"),vol);
+            }
+        else
+            {
+            iEffectSettings->GetEarPieceVolume(vol);
+            TRACE_PRN_N1(_L("TMSServer::NotifyTarClients ear vol %d"),vol);
+            }
+
+        status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_VOL_SET, vol);
         }
-    else
-        {
-        iEffectSettings->GetEarPieceVolume(vol);
-        TRACE_PRN_N1(_L("TMSServer::NotifyTarClients ear vol %d"),vol);
-        }
-
-    TInt status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_VOL_SET, vol);
 
     iSessionIter.SetToFirst();
     TMSServerSession* ss = static_cast<TMSServerSession*> (iSessionIter++);
@@ -825,8 +832,11 @@
             {
             ss->HandleRoutingChange(routingpckg);
             }
-        ss->HandleGlobalEffectChange(TMS_EVENT_EFFECT_VOL_CHANGED, vol, ETrue,
-                iCurrentRouting);
+        if (iActiveCallType == TMS_CALL_CS)
+            {
+            ss->HandleGlobalEffectChange(TMS_EVENT_EFFECT_VOL_CHANGED, vol,
+                    ETrue, iCurrentRouting);
+            }
         ss = static_cast<TMSServerSession*> (iSessionIter++);
         }
 
--- a/mmserv/voipaudioservices/VoIPIntfc/group/VoIPAudioIntfc.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/voipaudioservices/VoIPIntfc/group/VoIPAudioIntfc.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -73,15 +73,15 @@
 LIBRARY         euser.lib
 LIBRARY         mediaclientaudioinputstream.lib
 LIBRARY         mediaclientaudiostream.lib
-LIBRARY         audiooutputrouting.lib
+LIBRARY         AudioOutputRouting.lib
 LIBRARY         mediaclientaudio.lib
-LIBRARY         errorconcealmentintfc.lib
-LIBRARY         g711decoderintfc.lib
-LIBRARY         g711encoderintfc.lib
-LIBRARY         g729decoderintfc.lib
-LIBRARY         g729encoderintfc.lib
-LIBRARY         ilbcdecoderintfc.lib
-LIBRARY         ilbcencoderintfc.lib
+LIBRARY         ErrorConcealmentIntfc.lib
+LIBRARY         G711DecoderIntfc.lib
+LIBRARY         G711EncoderIntfc.lib
+LIBRARY         G729DecoderIntfc.lib
+LIBRARY         G729EncoderIntfc.lib
+LIBRARY         IlbcDecoderIntfc.lib
+LIBRARY         IlbcEncoderIntfc.lib
 
 SMPSAFE
 
--- a/mmserv/voipaudioservices/VoIPServer/group/VoIPAudioServer.mmp	Wed Aug 18 10:17:22 2010 +0300
+++ b/mmserv/voipaudioservices/VoIPServer/group/VoIPAudioServer.mmp	Thu Sep 02 20:58:01 2010 +0300
@@ -54,16 +54,16 @@
 LIBRARY         estor.lib
 LIBRARY         mediaclientaudio.lib
 LIBRARY         mmfdevsound.lib
-LIBRARY         errorconcealmentintfc.lib
-LIBRARY         g711decoderintfc.lib
-LIBRARY         g711encoderintfc.lib
-LIBRARY         g729decoderintfc.lib
-LIBRARY         g729encoderintfc.lib
-LIBRARY         ilbcdecoderintfc.lib
-LIBRARY         ilbcencoderintfc.lib
-LIBRARY         speechencoderconfig.lib
-LIBRARY         audiooutputrouting.lib
-LIBRARY         profileengine.lib
+LIBRARY         ErrorConcealmentIntfc.lib
+LIBRARY         G711DecoderIntfc.lib
+LIBRARY         G711EncoderIntfc.lib
+LIBRARY         G729DecoderIntfc.lib
+LIBRARY         G729EncoderIntfc.lib
+LIBRARY         IlbcDecoderIntfc.lib
+LIBRARY         IlbcEncoderIntfc.lib
+LIBRARY         SpeechEncoderConfig.lib
+LIBRARY         AudioOutputRouting.lib
+LIBRARY         ProfileEngine.lib
 LIBRARY         voipjitterbuffer.lib
 LIBRARY         mmfserverbaseclasses.lib
 
--- a/package_definition.xml	Wed Aug 18 10:17:22 2010 +0300
+++ b/package_definition.xml	Thu Sep 02 20:58:01 2010 +0300
@@ -166,7 +166,7 @@
     <unit bldFile="mmserv/voipaudioservices/group"/>
    </component>
    <component id="lib3gpextparser" filter="s60" name="3GP Extension Metadata Parser Library">
-    <unit bldFile="mmserv/metadatautility/3GPExtParserLib_stub/group"/>
+    <unit bldFile="mmserv/metadatautility/3GPExtParserLib/group"/>
    </component>
   </collection>
   <collection id="mmmw_info" name="Multimedia Middleware Info" level="specific">