bluetoothengine/btsac/btrcc/src/btrccLinker.cpp
branchRCL_3
changeset 21 53b7818cd282
parent 11 a42ed326b458
child 45 b0aebde9b1fb
equal deleted inserted replaced
20:2f88a7d66f50 21:53b7818cd282
    23 #include <remconaddress.h> 
    23 #include <remconaddress.h> 
    24 #include <remconcoreapitarget.h>
    24 #include <remconcoreapitarget.h>
    25 #include <apacmdln.h>
    25 #include <apacmdln.h>
    26 #include <apgcli.h>
    26 #include <apgcli.h>
    27 #include "btaudioremconpskeys.h"
    27 #include "btaudioremconpskeys.h"
       
    28 #include "btrccLegacyVolumeLevelController.h"
    28 #include "btrccAbsoluteVolumeLevelController.h"
    29 #include "btrccAbsoluteVolumeLevelController.h"
    29 #include "btrccLinker.h"
    30 #include "btrccLinker.h"
    30 #include "btrccplayerstarter.h"
    31 #include "btrccplayerstarter.h"
    31 #include "btrccBrowsingAdapter.h"
    32 #include "btrccBrowsingAdapter.h"
    32 #include "debug.h"
    33 #include "debug.h"
    84     iVolController = NULL;
    85     iVolController = NULL;
    85     iRegisterVolumeChangeNotificationCounter = 0;
    86     iRegisterVolumeChangeNotificationCounter = 0;
    86     if (iAccObserver.IsAvrcpVolCTSupported())
    87     if (iAccObserver.IsAvrcpVolCTSupported())
    87         {
    88         {
    88         iAbsoluteVolController = CBTRCCAbsoluteVolumeLevelController::NewL(*iInterfaceSelector, *this);
    89         iAbsoluteVolController = CBTRCCAbsoluteVolumeLevelController::NewL(*iInterfaceSelector, *this);
       
    90         TRACE_INFO((_L("CBTRCCLinker::ConstructL, absolute volume controller created.")))
       
    91 
       
    92         // If also legacy is configured into use, prepare to use it with legacy devices. 
       
    93         if(iAccObserver.IsAvrcpLegacyVolCTSupported())
       
    94             {
       
    95             iLegacyVolController = CBTRCCLegacyVolumeLevelController::NewL(*iInterfaceSelector, *this);
       
    96             TRACE_INFO((_L("CBTRCCLinker::ConstructL, legacy volume controller created.")))
       
    97         	}
    89         }
    98         }
    90     else 
    99     else 
    91    		{
   100    		{
    92         // If volume control is not supported, we'll need another interface selector session for disconnecting. 
   101         // If volume control is not supported, we'll need another interface selector session for disconnecting. 
    93         iInterfaceSelectorForDisconnectingTargetSession = CRemConInterfaceSelector::NewL(); 
   102         iInterfaceSelectorForDisconnectingTargetSession = CRemConInterfaceSelector::NewL(); 
   123 	TRACE_FUNC_ENTRY
   132 	TRACE_FUNC_ENTRY
   124     if (iClientRequest)
   133     if (iClientRequest)
   125         User::RequestComplete(iClientRequest, KErrAbort);
   134         User::RequestComplete(iClientRequest, KErrAbort);
   126 	
   135 	
   127     delete iAbsoluteVolController;
   136     delete iAbsoluteVolController;
       
   137     delete iLegacyVolController;
   128 	delete iPlayerStarter;
   138 	delete iPlayerStarter;
   129 	Cancel();
   139 	Cancel();
   130     iStateArray.ResetAndDestroy();
   140     iStateArray.ResetAndDestroy();
   131     iStateArray.Close();
   141     iStateArray.Close();
   132 	delete iInterfaceSelector;
   142 	delete iInterfaceSelector;
   430     {
   440     {
   431     TRACE_FUNC
   441     TRACE_FUNC
   432     if (iAccObserver.IsAvrcpVolCTSupported())
   442     if (iAccObserver.IsAvrcpVolCTSupported())
   433         {
   443         {
   434         // Choose based on SDP result whether to create 
   444         // Choose based on SDP result whether to create 
   435         // absolute controller or not.
   445         // absolute controller or legacy controller.
   436         if(!iVolController)
   446         if(!iVolController)
   437             {
   447             {
   438             if (iAccObserver.IsAbsoluteVolumeSupported(iRemoteAddr))
   448             if (iAccObserver.IsAbsoluteVolumeSupported(iRemoteAddr))
   439                 {
   449                 {
   440                 iVolController = iAbsoluteVolController;
   450                 iVolController = iAbsoluteVolController;
   441                 TRACE_INFO(_L("Absolute volume supported, taking it into use."))
   451                 TRACE_INFO(_L("Absolute volume supported, taking it into use."))
   442                 }
   452                 }
   443             else 
   453            	else 
   444             	{
   454                 {
   445                 TRACE_INFO(_L("No absolute volume supported, so no volume control."))
   455                 iVolController = iLegacyVolController; // iLegacyVolController may be NULL, depends on the configuration. 
   446             	}
   456                 }
   447             }
   457             }
   448         }
   458         }
   449     if (iVolController)
   459     if (iVolController)
   450         {
   460         {
   451         iVolController->Start();
   461         iVolController->Start();