bluetoothengine/btsac/btrcc/src/btrccLinker.cpp
branchRCL_3
changeset 21 53b7818cd282
parent 11 a42ed326b458
child 45 b0aebde9b1fb
--- a/bluetoothengine/btsac/btrcc/src/btrccLinker.cpp	Tue May 11 16:23:08 2010 +0300
+++ b/bluetoothengine/btsac/btrcc/src/btrccLinker.cpp	Tue May 25 12:53:11 2010 +0300
@@ -25,6 +25,7 @@
 #include <apacmdln.h>
 #include <apgcli.h>
 #include "btaudioremconpskeys.h"
+#include "btrccLegacyVolumeLevelController.h"
 #include "btrccAbsoluteVolumeLevelController.h"
 #include "btrccLinker.h"
 #include "btrccplayerstarter.h"
@@ -86,6 +87,14 @@
     if (iAccObserver.IsAvrcpVolCTSupported())
         {
         iAbsoluteVolController = CBTRCCAbsoluteVolumeLevelController::NewL(*iInterfaceSelector, *this);
+        TRACE_INFO((_L("CBTRCCLinker::ConstructL, absolute volume controller created.")))
+
+        // If also legacy is configured into use, prepare to use it with legacy devices. 
+        if(iAccObserver.IsAvrcpLegacyVolCTSupported())
+            {
+            iLegacyVolController = CBTRCCLegacyVolumeLevelController::NewL(*iInterfaceSelector, *this);
+            TRACE_INFO((_L("CBTRCCLinker::ConstructL, legacy volume controller created.")))
+        	}
         }
     else 
    		{
@@ -125,6 +134,7 @@
         User::RequestComplete(iClientRequest, KErrAbort);
 	
     delete iAbsoluteVolController;
+    delete iLegacyVolController;
 	delete iPlayerStarter;
 	Cancel();
     iStateArray.ResetAndDestroy();
@@ -432,7 +442,7 @@
     if (iAccObserver.IsAvrcpVolCTSupported())
         {
         // Choose based on SDP result whether to create 
-        // absolute controller or not.
+        // absolute controller or legacy controller.
         if(!iVolController)
             {
             if (iAccObserver.IsAbsoluteVolumeSupported(iRemoteAddr))
@@ -440,10 +450,10 @@
                 iVolController = iAbsoluteVolController;
                 TRACE_INFO(_L("Absolute volume supported, taking it into use."))
                 }
-            else 
-            	{
-                TRACE_INFO(_L("No absolute volume supported, so no volume control."))
-            	}
+           	else 
+                {
+                iVolController = iLegacyVolController; // iLegacyVolController may be NULL, depends on the configuration. 
+                }
             }
         }
     if (iVolController)