1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
108 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetDeviceClass); |
109 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetDeviceClass); |
109 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetAFHHostChannelClassification); |
110 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetAFHHostChannelClassification); |
110 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetAFHChannelAssessmentMode); |
111 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetAFHChannelAssessmentMode); |
111 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetDeviceName); |
112 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetDeviceName); |
112 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetAcceptPairedOnlyMode); |
113 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetAcceptPairedOnlyMode); |
|
114 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetPageScanParameters); |
113 |
115 |
114 // Delete standard P&S values (possibly trying to delete already deleted shared set+get values) |
116 // Delete standard P&S values (possibly trying to delete already deleted shared set+get values) |
115 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetLocalDeviceAddress); |
117 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetLocalDeviceAddress); |
116 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetPHYCount); |
118 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetPHYCount); |
117 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetConnectingStatus); |
119 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetConnectingStatus); |
120 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetDeviceClass); |
122 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetDeviceClass); |
121 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetDeviceName); |
123 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetDeviceName); |
122 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetAcceptPairedOnlyMode); |
124 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetAcceptPairedOnlyMode); |
123 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothHostResolverActive); |
125 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothHostResolverActive); |
124 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetSimplePairingDebugMode); |
126 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothSetSimplePairingDebugMode); |
|
127 iProperty.Delete(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetPageScanParameters); |
|
128 |
125 |
129 |
126 delete iPhysicalLinksMgr; |
130 delete iPhysicalLinksMgr; |
127 delete iInquiryMgr; |
131 delete iInquiryMgr; |
128 delete iEirManServer; |
132 delete iEirManServer; |
129 delete iACLStateFactory; |
133 delete iACLStateFactory; |
188 // getter and setter methods were 'ClassOfDevice', but even that wouldn't help |
192 // getter and setter methods were 'ClassOfDevice', but even that wouldn't help |
189 // much... |
193 // much... |
190 // |
194 // |
191 iLocalDeviceSettings.SetDeviceClass(iLocalDeviceSettings.DeviceClass() & KDeviceClassBitMask); |
195 iLocalDeviceSettings.SetDeviceClass(iLocalDeviceSettings.DeviceClass() & KDeviceClassBitMask); |
192 |
196 |
193 |
|
194 //NB - no (ELeave) here - in OOM we'd rather continue and not update the registry |
197 //NB - no (ELeave) here - in OOM we'd rather continue and not update the registry |
195 //than Leave. All calls to methods are guarded by "if (iRegistryUpdater)" |
198 //than Leave. All calls to methods are guarded by "if (iRegistryUpdater)" |
196 iRegistryUpdater = new CRegistryUpdater(iLocalDevice, iLocalDeviceSettings); |
199 iRegistryUpdater = new CRegistryUpdater(iLocalDevice, iLocalDeviceSettings); |
197 } |
200 } |
198 |
201 |
281 CleanupStack::PushL(subscriber); |
284 CleanupStack::PushL(subscriber); |
282 User::LeaveIfError(iSubscribers.Append(subscriber)); |
285 User::LeaveIfError(iSubscribers.Append(subscriber)); |
283 CleanupStack::Pop(subscriber); |
286 CleanupStack::Pop(subscriber); |
284 } |
287 } |
285 |
288 |
|
289 subscriber = CPageScanParametersSubscriber::NewL(*this); |
|
290 CleanupStack::PushL(subscriber); |
|
291 User::LeaveIfError(iSubscribers.Append(subscriber)); |
|
292 CleanupStack::Pop(subscriber); |
|
293 |
286 // set CoD - leave if goes wrong, user's device will be "unknown" otherwise |
294 // set CoD - leave if goes wrong, user's device will be "unknown" otherwise |
287 // NB - In future we should tie this to the SDP Server...(or someother higher API...) |
295 // NB - In future we should tie this to the SDP Server...(or someother higher API...) |
288 |
296 |
289 if (iLocalDeviceSettings.DeviceClass() && iLocalDeviceSettings.IsValidDeviceClass()) |
297 if (iLocalDeviceSettings.DeviceClass() && iLocalDeviceSettings.IsValidDeviceClass()) |
290 // Some phones never set their CoD in s/w, we don't want to blat |
298 // Some phones never set their CoD in s/w, we don't want to blat |
304 //Attempt to make sure that controller has the same value as the registry |
312 //Attempt to make sure that controller has the same value as the registry |
305 //and that the P&S key 'KPropertyKeyBluetoothGetLimitedDiscoverableStatus' |
313 //and that the P&S key 'KPropertyKeyBluetoothGetLimitedDiscoverableStatus' |
306 //is, as a consequence, 'Set' appropriately (when the associated controller |
314 //is, as a consequence, 'Set' appropriately (when the associated controller |
307 //event arrives). |
315 //event arrives). |
308 DoSetLimitedDiscoverableL(iLocalDeviceSettings.LimitedDiscoverable()); |
316 DoSetLimitedDiscoverableL(iLocalDeviceSettings.LimitedDiscoverable()); |
|
317 |
|
318 LOG(_L("LinkMgr : Initialising BR/EDR Controller Configuration")); |
|
319 iBrEdrControllerConfiguration = CBrEdrControllerConfiguration::NewL(iHCIFacade->CommandQController(), *this); |
309 |
320 |
310 LOG(_L("LinkMgr : Initialising complete")); |
321 LOG(_L("LinkMgr : Initialising complete")); |
311 } |
322 } |
312 |
323 |
313 void CLinkMgrProtocol::DefinePublications(THCIScanEnable aHCIScanEnable) |
324 void CLinkMgrProtocol::DefinePublications(THCIScanEnable aHCIScanEnable) |
379 KPropertyKeyBluetoothSetSimplePairingDebugMode, |
390 KPropertyKeyBluetoothSetSimplePairingDebugMode, |
380 RProperty::EInt, |
391 RProperty::EInt, |
381 KLOCAL_SERVICES, |
392 KLOCAL_SERVICES, |
382 KCOMMDD |
393 KCOMMDD |
383 )); |
394 )); |
|
395 |
|
396 (void)(iProperty.Define(KPropertyUidBluetoothCategory, |
|
397 KPropertyKeyBluetoothSetPageScanParameters, |
|
398 RProperty::EInt, |
|
399 KLOCAL_SERVICES_AND_NETWORK_CONTROL, |
|
400 KLOCAL_SERVICES_AND_NETWORK_CONTROL |
|
401 )); |
|
402 |
|
403 (void) RProperty::Set(KPropertyUidBluetoothCategory, |
|
404 KPropertyKeyBluetoothSetPageScanParameters, |
|
405 EStandardPageScanParameters); |
384 |
406 |
385 |
407 |
386 // Original Get P&S value definitions. |
408 // Original Get P&S value definitions. |
387 |
409 |
388 (void)(iProperty.Define(KPropertyUidBluetoothCategory, |
410 (void)(iProperty.Define(KPropertyUidBluetoothCategory, |
452 KPropertyKeyBluetoothGetSimplePairingDebugMode, |
474 KPropertyKeyBluetoothGetSimplePairingDebugMode, |
453 RProperty::EInt, |
475 RProperty::EInt, |
454 KLOCAL_SERVICES, |
476 KLOCAL_SERVICES, |
455 KLOCAL_SERVICES_AND_NETWORK_CONTROL |
477 KLOCAL_SERVICES_AND_NETWORK_CONTROL |
456 )); |
478 )); |
|
479 |
|
480 (void)(iProperty.Define(KPropertyUidBluetoothCategory, |
|
481 KPropertyKeyBluetoothGetPageScanParameters, |
|
482 RProperty::EInt, |
|
483 KLOCAL_SERVICES_AND_NETWORK_CONTROL, |
|
484 KLOCAL_SERVICES_AND_NETWORK_CONTROL |
|
485 )); |
|
486 |
|
487 (void) RProperty::Set(KPropertyUidBluetoothCategory, |
|
488 KPropertyKeyBluetoothGetPageScanParameters, |
|
489 EStandardPageScanParameters); |
457 } |
490 } |
458 |
491 |
459 void CLinkMgrProtocol::DeletePublications() |
492 void CLinkMgrProtocol::DeletePublications() |
460 { |
493 { |
461 LOG_FUNC |
494 LOG_FUNC |
946 { |
979 { |
947 LOG_FUNC |
980 LOG_FUNC |
948 // Only write the CoD bits if they have changed from the existing setting |
981 // Only write the CoD bits if they have changed from the existing setting |
949 if (iPendingLocalDeviceSettings.DeviceClass() != aCoD) |
982 if (iPendingLocalDeviceSettings.DeviceClass() != aCoD) |
950 { |
983 { |
951 iPendingLocalDeviceSettings.SetDeviceClass(aCoD); |
984 TRAPD(err, iHCIFacade->WriteDeviceClassL(aCoD)); |
952 iHCIFacade->WriteDeviceClassL(aCoD); |
985 if (err == KErrNone) |
|
986 { |
|
987 iPendingLocalDeviceSettings.SetDeviceClass(aCoD); |
|
988 } |
|
989 else |
|
990 { |
|
991 /* If the function errors, it is probably becuase the power is off, so we'll save the setting for power on |
|
992 If the error is for a different reason, setting this doesn't do any harm anyway - it will get picked |
|
993 up the next time the power is turned on */ |
|
994 iDesiredLocalDeviceSettings.SetDeviceClass(aCoD); |
|
995 User::Leave(err); |
|
996 } |
953 } |
997 } |
954 } |
998 } |
955 |
999 |
956 TInt CLinkMgrProtocol::SetLocalDeviceName(const TDesC8& aName) |
1000 TInt CLinkMgrProtocol::SetLocalDeviceName(const TDesC8& aName) |
957 { |
1001 { |
961 TRAPD(err, iHCIFacade->WriteLocalNameL(aName)); |
1005 TRAPD(err, iHCIFacade->WriteLocalNameL(aName)); |
962 if (err == KErrNone) |
1006 if (err == KErrNone) |
963 { |
1007 { |
964 iPendingLocalDeviceSettings.SetDeviceName(aName); |
1008 iPendingLocalDeviceSettings.SetDeviceName(aName); |
965 } |
1009 } |
|
1010 else |
|
1011 { |
|
1012 /* If the function leaves, it is probably becuase the power is off, so we'll save the setting for power on |
|
1013 If the leave is for a different reason, setting this doesn't do any harm anyway - it will get picked |
|
1014 up the next time the power is turned on */ |
|
1015 iDesiredLocalDeviceSettings.SetDeviceName(aName); |
|
1016 } |
966 return err; |
1017 return err; |
967 } |
1018 } |
968 |
1019 |
969 void CLinkMgrProtocol::SetAFHHostChannelClassificationL(const TBTAFHHostChannelClassification& aChannelClassification) |
1020 void CLinkMgrProtocol::SetAFHHostChannelClassificationL(const TBTAFHHostChannelClassification& aChannelClassification) |
970 { |
1021 { |
973 } |
1024 } |
974 |
1025 |
975 void CLinkMgrProtocol::SetAFHChannelAssessmentModeL(TBool aMode) |
1026 void CLinkMgrProtocol::SetAFHChannelAssessmentModeL(TBool aMode) |
976 { |
1027 { |
977 LOG_FUNC |
1028 LOG_FUNC |
978 iPendingLocalDeviceSettings.SetAFHChannelAssessmentMode(aMode); |
1029 TRAPD(err, iHCIFacade->WriteAFHChannelAssessmentModeL(aMode)); |
979 iHCIFacade->WriteAFHChannelAssessmentModeL(aMode); |
1030 if (err == KErrNone) |
|
1031 { |
|
1032 iPendingLocalDeviceSettings.SetAFHChannelAssessmentMode(aMode); |
|
1033 } |
|
1034 else |
|
1035 { |
|
1036 /* If the function leaves, it is probably becuase the power is off, so we'll save the setting for power on |
|
1037 If the leave is for a different reason, setting this doesn't do any harm anyway - it will get picked |
|
1038 up the next time the power is turned on */ |
|
1039 iDesiredLocalDeviceSettings.SetAFHChannelAssessmentMode(aMode); |
|
1040 User::Leave(err); |
|
1041 } |
980 } |
1042 } |
981 |
1043 |
982 void CLinkMgrProtocol::SetLimitedDiscoverableIfChangedL(TBool aOn) |
1044 void CLinkMgrProtocol::SetLimitedDiscoverableIfChangedL(TBool aOn) |
983 { |
1045 { |
984 LOG_FUNC |
1046 LOG_FUNC |
1002 TUint iacs[2]; |
1064 TUint iacs[2]; |
1003 |
1065 |
1004 if (aOn) |
1066 if (aOn) |
1005 { |
1067 { |
1006 // turn on LIAC |
1068 // turn on LIAC |
1007 iPendingLocalDeviceSettings.SetLimitedDiscoverable(ETrue); |
1069 TRAPD(err, WriteClassOfDeviceL(iPendingLocalDeviceSettings.DeviceClass() | (EMajorServiceLimitedDiscoverableMode << |
1008 WriteClassOfDeviceL(iPendingLocalDeviceSettings.DeviceClass() | (EMajorServiceLimitedDiscoverableMode << |
1070 (KLengthOfDeviceClass+KStartingOffsetOfDeviceClass)))); |
1009 (KLengthOfDeviceClass+KStartingOffsetOfDeviceClass))); |
1071 if (err == KErrNone) |
|
1072 { |
|
1073 iPendingLocalDeviceSettings.SetLimitedDiscoverable(ETrue); |
|
1074 } |
|
1075 else |
|
1076 { |
|
1077 /* If the function leaves, it is probably becuase the power is off, so we'll save the setting for power on |
|
1078 If the leave is for a different reason, setting this doesn't do any harm anyway - it will get picked |
|
1079 up the next time the power is turned on */ |
|
1080 iDesiredLocalDeviceSettings.SetLimitedDiscoverable(ETrue); |
|
1081 User::Leave(err); |
|
1082 } |
1010 numIACs = 2; |
1083 numIACs = 2; |
1011 iacs[0] = KLIAC; |
1084 iacs[0] = KLIAC; |
1012 iacs[1] = KGIAC; |
1085 iacs[1] = KGIAC; |
1013 } |
1086 } |
1014 else |
1087 else |
1015 { |
1088 { |
1016 // turn off LIAC - could do the 1 minute GAP timer? |
1089 // turn off LIAC - could do the 1 minute GAP timer? |
1017 iPendingLocalDeviceSettings.SetLimitedDiscoverable(EFalse); |
1090 TRAPD(err, WriteClassOfDeviceL(iPendingLocalDeviceSettings.DeviceClass() & ~(EMajorServiceLimitedDiscoverableMode << |
1018 WriteClassOfDeviceL(iPendingLocalDeviceSettings.DeviceClass() & ~(EMajorServiceLimitedDiscoverableMode << |
1091 (KLengthOfDeviceClass+KStartingOffsetOfDeviceClass)))); |
1019 (KLengthOfDeviceClass+KStartingOffsetOfDeviceClass))); |
1092 if (err == KErrNone) |
|
1093 { |
|
1094 iPendingLocalDeviceSettings.SetLimitedDiscoverable(EFalse); |
|
1095 } |
|
1096 else |
|
1097 { |
|
1098 /* If the function leaves, it is probably becuase the power is off, so we'll save the setting for power on |
|
1099 If the leave is for a different reason, setting this doesn't do any harm anyway - it will get picked |
|
1100 up the next time the power is turned on */ |
|
1101 iDesiredLocalDeviceSettings.SetLimitedDiscoverable(EFalse); |
|
1102 User::Leave(err); |
|
1103 } |
1020 numIACs = 1; |
1104 numIACs = 1; |
1021 iacs[0] = KGIAC; |
1105 iacs[0] = KGIAC; |
1022 } |
1106 } |
1023 |
1107 |
1024 iHCIFacade->WriteIACLAPL(numIACs, iacs); |
1108 iHCIFacade->WriteIACLAPL(numIACs, iacs); |
1220 |
1304 |
1221 void CLinkMgrProtocol::SetLocalBTAddress(const TBTDevAddr& aAddr) |
1305 void CLinkMgrProtocol::SetLocalBTAddress(const TBTDevAddr& aAddr) |
1222 { |
1306 { |
1223 LOG_FUNC |
1307 LOG_FUNC |
1224 iLocalDeviceAddress = aAddr; |
1308 iLocalDeviceAddress = aAddr; |
|
1309 |
|
1310 // Also update registry with local device address |
|
1311 iLocalDeviceSettings.SetAddress(iLocalDeviceAddress); |
|
1312 UpdateSettings(); |
1225 |
1313 |
1226 // publish this number - might be useful |
1314 // publish this number - might be useful |
1227 const TDesC8& des = aAddr.Des(); |
1315 const TDesC8& des = aAddr.Des(); |
1228 (void)iProperty.Set(KPropertyUidBluetoothCategory, |
1316 (void)iProperty.Set(KPropertyUidBluetoothCategory, |
1229 KPropertyKeyBluetoothGetLocalDeviceAddress, |
1317 KPropertyKeyBluetoothGetLocalDeviceAddress, |
1447 |
1539 |
1448 //class TBTTrackedLocalDevice |
1540 //class TBTTrackedLocalDevice |
1449 void TBTTrackedLocalDevice::SetAddress(const TBTDevAddr& aAddr) |
1541 void TBTTrackedLocalDevice::SetAddress(const TBTDevAddr& aAddr) |
1450 { |
1542 { |
1451 LOG_FUNC |
1543 LOG_FUNC |
1452 TBTLocalDevice::SetAddress(aAddr); |
1544 if (aAddr != Address()) |
1453 StoreChange(EAddress); |
1545 { |
|
1546 TBTLocalDevice::SetAddress(aAddr); |
|
1547 StoreChange(EAddress); |
|
1548 } |
1454 } |
1549 } |
1455 |
1550 |
1456 void TBTTrackedLocalDevice::SetDeviceClass(TUint32 aCod) |
1551 void TBTTrackedLocalDevice::SetDeviceClass(TUint32 aCod) |
1457 { |
1552 { |
1458 LOG_FUNC |
1553 LOG_FUNC |
1459 TBTLocalDevice::SetDeviceClass(aCod); |
1554 if (aCod != DeviceClass()) |
1460 StoreChange(ECoD); |
1555 { |
|
1556 TBTLocalDevice::SetDeviceClass(aCod); |
|
1557 StoreChange(ECoD); |
|
1558 } |
1461 } |
1559 } |
1462 |
1560 |
1463 void TBTTrackedLocalDevice::SetDeviceName(const TDesC8& aName) |
1561 void TBTTrackedLocalDevice::SetDeviceName(const TDesC8& aName) |
1464 { |
1562 { |
1465 LOG_FUNC |
1563 LOG_FUNC |
1466 TBTLocalDevice::SetDeviceName(aName); |
1564 if (aName != DeviceName()) |
1467 StoreChange(EDeviceName); |
1565 { |
|
1566 TBTLocalDevice::SetDeviceName(aName); |
|
1567 StoreChange(EDeviceName); |
|
1568 } |
1468 } |
1569 } |
1469 |
1570 |
1470 void TBTTrackedLocalDevice::SetScanEnable(THCIScanEnable aEnable) |
1571 void TBTTrackedLocalDevice::SetScanEnable(THCIScanEnable aEnable) |
1471 { |
1572 { |
1472 LOG_FUNC |
1573 LOG_FUNC |
1473 TBTLocalDevice::SetScanEnable(aEnable); |
1574 if (aEnable != ScanEnable()) |
1474 StoreChange(EScanEnable); |
1575 { |
|
1576 TBTLocalDevice::SetScanEnable(aEnable); |
|
1577 StoreChange(EScanEnable); |
|
1578 } |
1475 } |
1579 } |
1476 |
1580 |
1477 void TBTTrackedLocalDevice::SetLimitedDiscoverable(TBool aOn) |
1581 void TBTTrackedLocalDevice::SetLimitedDiscoverable(TBool aOn) |
1478 { |
1582 { |
1479 LOG_FUNC |
1583 LOG_FUNC |
1480 TBTLocalDevice::SetLimitedDiscoverable(aOn); |
1584 if (aOn != LimitedDiscoverable()) |
1481 StoreChange(ELimitedDiscoverable); |
1585 { |
|
1586 TBTLocalDevice::SetLimitedDiscoverable(aOn); |
|
1587 StoreChange(ELimitedDiscoverable); |
|
1588 } |
1482 } |
1589 } |
1483 |
1590 |
1484 void TBTTrackedLocalDevice::SetPowerSetting(TUint8 aPowerSetting) |
1591 void TBTTrackedLocalDevice::SetPowerSetting(TUint8 aPowerSetting) |
1485 { |
1592 { |
1486 LOG_FUNC |
1593 LOG_FUNC |
1487 TBTLocalDevice::SetPowerSetting(aPowerSetting); |
1594 if (aPowerSetting != PowerSetting()) |
1488 StoreChange(EPowerSetting); |
1595 { |
|
1596 TBTLocalDevice::SetPowerSetting(aPowerSetting); |
|
1597 StoreChange(EPowerSetting); |
|
1598 } |
1489 } |
1599 } |
1490 |
1600 |
1491 void TBTTrackedLocalDevice::SetAFHChannelAssessmentMode(TBool aOn) |
1601 void TBTTrackedLocalDevice::SetAFHChannelAssessmentMode(TBool aOn) |
1492 { |
1602 { |
1493 LOG_FUNC |
1603 LOG_FUNC |
1494 TBTLocalDevice::SetAFHChannelAssessmentMode(aOn); |
1604 if (aOn != AFHChannelAssessmentMode()) |
1495 StoreChange(EAFHChannelAssessmentMode); |
1605 { |
|
1606 TBTLocalDevice::SetAFHChannelAssessmentMode(aOn); |
|
1607 StoreChange(EAFHChannelAssessmentMode); |
|
1608 } |
1496 } |
1609 } |
1497 |
1610 |
1498 void TBTTrackedLocalDevice::SetAcceptPairedOnlyMode(TBool aOn) |
1611 void TBTTrackedLocalDevice::SetAcceptPairedOnlyMode(TBool aOn) |
1499 { |
1612 { |
1500 LOG_FUNC |
1613 LOG_FUNC |
1501 TBTLocalDevice::SetAcceptPairedOnlyMode(aOn); |
1614 if (aOn != AcceptPairedOnlyMode()) |
1502 StoreChange(EAcceptPairedOnlyMode); |
1615 { |
|
1616 TBTLocalDevice::SetAcceptPairedOnlyMode(aOn); |
|
1617 StoreChange(EAcceptPairedOnlyMode); |
|
1618 } |
1503 } |
1619 } |
1504 |
1620 |
1505 void TBTTrackedLocalDevice::StoreChange(TUint8 aChange) |
1621 void TBTTrackedLocalDevice::StoreChange(TUint8 aChange) |
1506 { |
1622 { |
1507 LOG_FUNC |
1623 LOG_FUNC |