radioengine/utils/src/cradioaudiorouter.cpp
changeset 57 21be958eb3ce
parent 38 f8c3d4e6102c
--- a/radioengine/utils/src/cradioaudiorouter.cpp	Tue Oct 12 11:25:14 2010 +0300
+++ b/radioengine/utils/src/cradioaudiorouter.cpp	Fri Oct 15 16:26:27 2010 +0300
@@ -23,8 +23,6 @@
 #include "radioengineutils.h"
 
 
-const TInt KVisualRadioInitialRoutableAudioArraySize( 2 );
-
 // ---------------------------------------------------------------------------
 //
 // ---------------------------------------------------------------------------
@@ -56,7 +54,6 @@
 EXPORT_C CRadioAudioRouter::~CRadioAudioRouter()
     {
     LEVEL3( LOG_METHOD_AUTO );
-    iRoutableAudios.Close();
     RadioEngineUtils::Release();
     }
 
@@ -68,7 +65,6 @@
     {
     RadioEngineUtils::InitializeL();
     LEVEL3( LOG_METHOD_AUTO );
-    iRoutableAudios = RArray<CRadioRoutableAudio*>( KVisualRadioInitialRoutableAudioArraySize );
     }
 
 // ---------------------------------------------------------------------------
@@ -78,11 +74,11 @@
 EXPORT_C void CRadioAudioRouter::SetAudioRouteL( RadioEngine::TRadioAudioRoute aAudioRoute )
     {
     LEVEL3( LOG_METHOD_AUTO );
-
-    for ( TInt i = 0; i < iRoutableAudios.Count(); ++i )
+    if ( NULL == iRoutableAudio )
         {
-        iRoutableAudios[i]->SetAudioRouteL( aAudioRoute );
+        User::Leave( KErrNotFound );
         }
+    iRoutableAudio->SetAudioRouteL( aAudioRoute );
     iAudioRoutingObserver.AudioRouteChangedL( aAudioRoute );
     }
 
@@ -93,24 +89,23 @@
 EXPORT_C void CRadioAudioRouter::RegisterRoutableAudio( CRadioRoutableAudio* aRoutableAudio )
     {
     LEVEL3( LOG_METHOD_AUTO );
-    iRoutableAudios.Append( aRoutableAudio );
+    if (iRoutableAudio)
+        {
+        LOG_FORMAT( "Reregistration, only one instance expected! Ptr1 = %p, ptr2 = %p", iRoutableAudio, aRoutableAudio );
+        __ASSERT_DEBUG( iRoutableAudio, User::Panic( _L("FMRadio" ), KErrAbort ) );
+        }
+    iRoutableAudio = aRoutableAudio;
     }
 
 // ---------------------------------------------------------------------------
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void CRadioAudioRouter::UnRegisterRoutableAudio( CRadioRoutableAudio* aRoutableAudio )
+EXPORT_C void CRadioAudioRouter::UnRegisterRoutableAudio( CRadioRoutableAudio* DEBUGVAR( aRoutableAudio ) )
     {
     LEVEL3( LOG_METHOD_AUTO );
-
-    TInt objectIndex = iRoutableAudios.Find( aRoutableAudio );
-
-    __ASSERT_DEBUG( objectIndex != KErrNotFound, User::Panic( _L("VisualRadio" ), KErrAbort ) );
+    __ASSERT_DEBUG( aRoutableAudio == iRoutableAudio, User::Panic( _L("FMRadio" ), KErrAbort ) );
 
-    if ( objectIndex != KErrNotFound )
-        {
-        iRoutableAudios.Remove( objectIndex );
-        }
+    iRoutableAudio = NULL;
     }