Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae63ef4f authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes Ia3c3d854,Ieb227a8a

* changes:
  RootCanal: Log Advertising and Scanning state changes
  Root-Canal: Use kReservedHandle for invalid SCO handles
parents 90e2ddcd 1c22048e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -500,7 +500,7 @@ uint16_t AclConnectionHandler::GetScoHandle(bluetooth::hci::Address addr) const
      return std::get<0>(pair);
    }
  }
  return 0;
  return kReservedHandle;
}

ScoConnectionParameters AclConnectionHandler::GetScoConnectionParameters(
+25 −8
Original line number Diff line number Diff line
@@ -1430,14 +1430,21 @@ void DualModeController::WriteScanEnable(CommandView command) {
  auto command_view = gd_hci::WriteScanEnableView::Create(
      gd_hci::DiscoveryCommandView::Create(command));
  ASSERT(command_view.IsValid());
  link_layer_controller_.SetInquiryScanEnable(
      command_view.GetScanEnable() ==
          gd_hci::ScanEnable::INQUIRY_AND_PAGE_SCAN ||
      command_view.GetScanEnable() == gd_hci::ScanEnable::INQUIRY_SCAN_ONLY);
  link_layer_controller_.SetPageScanEnable(
      command_view.GetScanEnable() ==
          gd_hci::ScanEnable::INQUIRY_AND_PAGE_SCAN ||
      command_view.GetScanEnable() == gd_hci::ScanEnable::PAGE_SCAN_ONLY);

  gd_hci::ScanEnable scan_enable = command_view.GetScanEnable();
  bool inquiry_scan =
      scan_enable == gd_hci::ScanEnable::INQUIRY_AND_PAGE_SCAN ||
      scan_enable == gd_hci::ScanEnable::INQUIRY_SCAN_ONLY;
  bool page_scan =
      scan_enable == gd_hci::ScanEnable::INQUIRY_AND_PAGE_SCAN ||
      scan_enable == gd_hci::ScanEnable::PAGE_SCAN_ONLY;

  LOG_INFO("%s | WriteScanEnable %s",
      properties_.GetAddress().ToString().c_str(),
      gd_hci::ScanEnableText(scan_enable).c_str());

  link_layer_controller_.SetInquiryScanEnable(inquiry_scan);
  link_layer_controller_.SetPageScanEnable(page_scan);
  send_event_(bluetooth::hci::WriteScanEnableCompleteBuilder::Create(
      kNumCommandPackets, ErrorCode::SUCCESS));
}
@@ -1725,6 +1732,11 @@ void DualModeController::LeSetAdvertisingEnable(CommandView command) {
  auto command_view = gd_hci::LeSetAdvertisingEnableView::Create(
      gd_hci::LeAdvertisingCommandView::Create(command));
  ASSERT(command_view.IsValid());

  LOG_INFO("%s | LeSetAdvertisingEnable (%d)",
      properties_.GetAddress().ToString().c_str(),
      command_view.GetAdvertisingEnable() == gd_hci::Enable::ENABLED);

  auto status = link_layer_controller_.SetLeAdvertisingEnable(
      command_view.GetAdvertisingEnable() == gd_hci::Enable::ENABLED);
  send_event_(bluetooth::hci::LeSetAdvertisingEnableCompleteBuilder::Create(
@@ -1750,6 +1762,11 @@ void DualModeController::LeSetScanEnable(CommandView command) {
  auto command_view = gd_hci::LeSetScanEnableView::Create(
      gd_hci::LeScanningCommandView::Create(command));
  ASSERT(command_view.IsValid());

  LOG_INFO("%s | LeSetScanEnable (%d)",
      properties_.GetAddress().ToString().c_str(),
      command_view.GetLeScanEnable() == gd_hci::Enable::ENABLED);

  if (command_view.GetLeScanEnable() == gd_hci::Enable::ENABLED) {
    link_layer_controller_.SetLeScanEnable(gd_hci::OpCode::LE_SET_SCAN_ENABLE);
  } else {
+2 −2
Original line number Diff line number Diff line
@@ -1559,7 +1559,7 @@ void LinkLayerController::IncomingScoDisconnect(
           static_cast<unsigned>(reason),
           incoming.GetSourceAddress().ToString().c_str());

  if (handle != 0) {
  if (handle != kReservedHandle) {
    connections_.Disconnect(handle);
    SendDisconnectionCompleteEvent(handle, reason);
  }
@@ -2771,7 +2771,7 @@ ErrorCode LinkLayerController::Disconnect(uint16_t handle, uint8_t reason) {
             remote.ToString().c_str());

    uint16_t sco_handle = connections_.GetScoHandle(remote.GetAddress());
    if (sco_handle != 0) {
    if (sco_handle != kReservedHandle) {
      SendLinkLayerPacket(model::packets::ScoDisconnectBuilder::Create(
          properties_.GetAddress(), remote.GetAddress(), reason));

+1 −1
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ std::optional<ScoLinkParameters> ScoConnectionParameters::GetLinkParameters() {
      double bandwidth_usage =
        (double)transmission_window / (double)transmission_interval;

      if (bandwidth_usage < best_bandwidth_usage) {
      if (bandwidth_usage <= best_bandwidth_usage) {
        LOG_INFO("Valid combination!");

        uint16_t tx_packet_length =