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

Commit 21844cd2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "btif_av: Linting pass" into main am: 4c835a93

parents d5ca4ea9 4c835a93
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -308,8 +308,6 @@ bool btif_av_is_source_enabled(void);
bool btif_av_both_enable(void);
bool btif_av_src_sink_coexist_enabled(void);
bool btif_av_is_sink_enabled(void);
bool btif_av_is_connected_addr(const RawAddress& peer_address,
                               const A2dpType local_a2dp_type);
bool btif_av_peer_is_connected_sink(const RawAddress& peer_address);
bool btif_av_peer_is_connected_source(const RawAddress& peer_address);
bool btif_av_peer_is_sink(const RawAddress& peer_address);
+2 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ uint8_t btif_rc_get_connected_peer_handle(const RawAddress& peer_addr);
void btif_rc_check_handle_pending_play(const RawAddress& peer_addr,
                                       bool bSendToApp);
bool btif_rc_is_connected_peer(const RawAddress& peer_addr);
void btif_rc_check_pending_cmd(const RawAddress& peer_addr);
void btif_rc_get_addr_by_handle(uint8_t handle, RawAddress& rc_addr);
void btif_debug_rc_dump(int fd);

#endif  // BTIF_RC_H
+61 −54
Original line number Diff line number Diff line
@@ -71,8 +71,8 @@ using namespace bluetooth;
/*****************************************************************************
 *  Constants & Macros
 *****************************************************************************/
static const std::string kBtifAvSourceServiceName = "Advanced Audio Source";
static const std::string kBtifAvSinkServiceName = "Advanced Audio Sink";
static const char kBtifAvSourceServiceName[] = "Advanced Audio Source";
static const char kBtifAvSinkServiceName[] = "Advanced Audio Sink";
static constexpr int kDefaultMaxConnectedAudioDevices = 1;
static constexpr tBTA_AV_HNDL kBtaHandleUnknown = 0;

@@ -161,7 +161,7 @@ class BtifAvStateMachine : public bluetooth::common::StateMachine {

  class StateIdle : public State {
   public:
    StateIdle(BtifAvStateMachine& sm)
    explicit StateIdle(BtifAvStateMachine& sm)
        : State(sm, kStateIdle), peer_(sm.Peer()) {}
    void OnEnter() override;
    void OnExit() override;
@@ -173,7 +173,7 @@ class BtifAvStateMachine : public bluetooth::common::StateMachine {

  class StateOpening : public State {
   public:
    StateOpening(BtifAvStateMachine& sm)
    explicit StateOpening(BtifAvStateMachine& sm)
        : State(sm, kStateOpening), peer_(sm.Peer()) {}
    void OnEnter() override;
    void OnExit() override;
@@ -185,7 +185,7 @@ class BtifAvStateMachine : public bluetooth::common::StateMachine {

  class StateOpened : public State {
   public:
    StateOpened(BtifAvStateMachine& sm)
    explicit StateOpened(BtifAvStateMachine& sm)
        : State(sm, kStateOpened), peer_(sm.Peer()) {}
    void OnEnter() override;
    void OnExit() override;
@@ -197,7 +197,7 @@ class BtifAvStateMachine : public bluetooth::common::StateMachine {

  class StateStarted : public State {
   public:
    StateStarted(BtifAvStateMachine& sm)
    explicit StateStarted(BtifAvStateMachine& sm)
        : State(sm, kStateStarted), peer_(sm.Peer()) {}
    void OnEnter() override;
    void OnExit() override;
@@ -209,7 +209,7 @@ class BtifAvStateMachine : public bluetooth::common::StateMachine {

  class StateClosing : public State {
   public:
    StateClosing(BtifAvStateMachine& sm)
    explicit StateClosing(BtifAvStateMachine& sm)
        : State(sm, kStateClosing), peer_(sm.Peer()) {}
    void OnEnter() override;
    void OnExit() override;
@@ -219,7 +219,7 @@ class BtifAvStateMachine : public bluetooth::common::StateMachine {
    BtifAvPeer& peer_;
  };

  BtifAvStateMachine(BtifAvPeer& btif_av_peer) : peer_(btif_av_peer) {
  explicit BtifAvStateMachine(BtifAvPeer& btif_av_peer) : peer_(btif_av_peer) {
    state_idle_ = new StateIdle(*this);
    state_opening_ = new StateOpening(*this);
    state_opened_ = new StateOpened(*this);
@@ -407,7 +407,7 @@ class BtifAvSource {
  btav_source_callbacks_t* Callbacks() { return callbacks_; }
  bool Enabled() const { return enabled_; }
  bool A2dpOffloadEnabled() const { return a2dp_offload_enabled_; }
  // TODO: b/321806163: Remove this method as part of flag cleanup
  // TODO(b/321806163): Remove this method as part of flag cleanup
  void SetInvalidPeerCheck(bool invalid_peer_check) {
    invalid_peer_check_ = invalid_peer_check;
  }
@@ -651,7 +651,7 @@ class BtifAvSink {
  btav_sink_callbacks_t* Callbacks() { return callbacks_; }
  bool Enabled() const { return enabled_; }

  // TODO: b/321806163: Remove this method as part of flag cleanup
  // TODO(b/321806163): Remove this method as part of flag cleanup
  void SetInvalidPeerCheck(bool invalid_peer_check) {
    invalid_peer_check_ = invalid_peer_check;
  }
@@ -839,19 +839,15 @@ static void btif_av_sink_initiate_av_open_timer_timeout(void* data);
static void bta_av_sink_media_callback(const RawAddress& peer_address,
                                       tBTA_AV_EVT event,
                                       tBTA_AV_MEDIA* p_data);
extern bool btif_av_both_enable(void);
extern bool btif_av_is_connected_addr(const RawAddress& peer_address,
                                      const A2dpType local_a2dp_type);
extern bool btif_av_peer_is_sink(const RawAddress& peer_address);
extern void btif_rc_check_pending_cmd(const RawAddress& peer_address);
extern void btif_rc_get_addr_by_handle(uint8_t handle, RawAddress& rc_addr);

static BtifAvPeer* btif_av_source_find_peer(const RawAddress& peer_address) {
  return btif_av_source.FindPeer(peer_address);
}

static BtifAvPeer* btif_av_sink_find_peer(const RawAddress& peer_address) {
  return btif_av_sink.FindPeer(peer_address);
}

static BtifAvPeer* btif_av_find_peer(const RawAddress& peer_address,
                                     const A2dpType local_a2dp_type) {
  if (com::android::bluetooth::flags::a2dp_concurrent_source_sink()) {
@@ -894,6 +890,7 @@ static BtifAvPeer* btif_av_find_peer(const RawAddress& peer_address,
  if (btif_av_sink.Enabled()) return btif_av_sink_find_peer(peer_address);
  return nullptr;
}

static BtifAvPeer* btif_av_find_active_peer(const A2dpType local_a2dp_type) {
  if (com::android::bluetooth::flags::a2dp_concurrent_source_sink()) {
    if (btif_av_source.Enabled() && local_a2dp_type == A2dpType::kSource)
@@ -943,7 +940,7 @@ const RawAddress& btif_av_find_by_handle(tBTA_AV_HNDL bta_handle) {
 *****************************************************************************/

const char* dump_av_sm_event_name(btif_av_sm_event_t event) {
  switch ((int)event) {
  switch (static_cast<int>(event)) {
    CASE_RETURN_STR(BTA_AV_ENABLE_EVT)
    CASE_RETURN_STR(BTA_AV_REGISTER_EVT)
    CASE_RETURN_STR(BTA_AV_OPEN_EVT)
@@ -1034,15 +1031,17 @@ void BtifAvEvent::DeepCopy(uint32_t event, const void* p_data,
      log::assert_that(data_length >= sizeof(tBTA_AV),
                       "assert failed: data_length >= sizeof(tBTA_AV)");
      const tBTA_AV* av_src = (const tBTA_AV*)p_data;
      tBTA_AV* av_dest = (tBTA_AV*)data_;
      tBTA_AV* av_dest = reinterpret_cast<tBTA_AV*>(data_);
      if (av_src->meta_msg.p_data && av_src->meta_msg.len) {
        av_dest->meta_msg.p_data = (uint8_t*)osi_calloc(av_src->meta_msg.len);
        av_dest->meta_msg.p_data =
            reinterpret_cast<uint8_t*>(osi_calloc(av_src->meta_msg.len));
        memcpy(av_dest->meta_msg.p_data, av_src->meta_msg.p_data,
               av_src->meta_msg.len);
      }

      if (av_src->meta_msg.p_msg) {
        av_dest->meta_msg.p_msg = (tAVRC_MSG*)osi_calloc(sizeof(tAVRC_MSG));
        av_dest->meta_msg.p_msg =
            reinterpret_cast<tAVRC_MSG*>(osi_calloc(sizeof(tAVRC_MSG)));
        memcpy(av_dest->meta_msg.p_msg, av_src->meta_msg.p_msg,
               sizeof(tAVRC_MSG));

@@ -1051,15 +1050,15 @@ void BtifAvEvent::DeepCopy(uint32_t event, const void* p_data,

        if ((p_msg_src->hdr.opcode == AVRC_OP_VENDOR) &&
            (p_msg_src->vendor.p_vendor_data && p_msg_src->vendor.vendor_len)) {
          p_msg_dest->vendor.p_vendor_data =
              (uint8_t*)osi_calloc(p_msg_src->vendor.vendor_len);
          p_msg_dest->vendor.p_vendor_data = reinterpret_cast<uint8_t*>(
              osi_calloc(p_msg_src->vendor.vendor_len));
          memcpy(p_msg_dest->vendor.p_vendor_data,
                 p_msg_src->vendor.p_vendor_data, p_msg_src->vendor.vendor_len);
        }
        if ((p_msg_src->hdr.opcode == AVRC_OP_BROWSE) &&
            p_msg_src->browse.p_browse_data && p_msg_src->browse.browse_len) {
          p_msg_dest->browse.p_browse_data =
              (uint8_t*)osi_calloc(p_msg_src->browse.browse_len);
          p_msg_dest->browse.p_browse_data = reinterpret_cast<uint8_t*>(
              osi_calloc(p_msg_src->browse.browse_len));
          memcpy(p_msg_dest->browse.p_browse_data,
                 p_msg_src->browse.p_browse_data, p_msg_src->browse.browse_len);
        }
@@ -1074,8 +1073,9 @@ void BtifAvEvent::DeepCopy(uint32_t event, const void* p_data,
void BtifAvEvent::DeepFree() {
  switch (event_) {
    case BTA_AV_META_MSG_EVT: {
      tBTA_AV* av = (tBTA_AV*)data_;
      osi_free_and_reset((void**)&av->meta_msg.p_data);
      tBTA_AV* av = reinterpret_cast<tBTA_AV*>(data_);
      osi_free(av->meta_msg.p_data);
      av->meta_msg.p_data = nullptr;

      if (av->meta_msg.p_msg) {
        if (av->meta_msg.p_msg->hdr.opcode == AVRC_OP_VENDOR) {
@@ -1084,7 +1084,8 @@ void BtifAvEvent::DeepFree() {
        if (av->meta_msg.p_msg->hdr.opcode == AVRC_OP_BROWSE) {
          osi_free(av->meta_msg.p_msg->browse.p_browse_data);
        }
        osi_free_and_reset((void**)&av->meta_msg.p_msg);
        osi_free(av->meta_msg.p_msg);
        av->meta_msg.p_msg = nullptr;
      }
    } break;

@@ -1092,7 +1093,8 @@ void BtifAvEvent::DeepFree() {
      break;
  }

  osi_free_and_reset((void**)&data_);
  osi_free(data_);
  data_ = nullptr;
  data_length_ = 0;
}

@@ -1396,7 +1398,7 @@ void BtifAvSource::DispatchSuspendStreamEvent(btif_av_sm_event_t event) {
  if (event != BTIF_AV_SUSPEND_STREAM_REQ_EVT &&
      event != BTIF_AV_STOP_STREAM_REQ_EVT) {
    log::error("Invalid event: {} id: {}", dump_av_sm_event_name(event),
               (int)event);
               static_cast<int>(event));
    return;
  }
  bool av_stream_idle = true;
@@ -1442,7 +1444,7 @@ void BtifAvSource::CleanupAllPeers() {

void BtifAvSource::RegisterAllBtaHandles() {
  for (int peer_id = kPeerIdMin; peer_id < kPeerIdMax; peer_id++) {
    BTA_AvRegister(BTA_AV_CHNL_AUDIO, kBtifAvSourceServiceName.c_str(), peer_id,
    BTA_AvRegister(BTA_AV_CHNL_AUDIO, kBtifAvSourceServiceName, peer_id,
                   nullptr, UUID_SERVCLASS_AUDIO_SOURCE);
  }
}
@@ -1718,7 +1720,7 @@ void BtifAvSink::CleanupAllPeers() {

void BtifAvSink::RegisterAllBtaHandles() {
  for (int peer_id = kPeerIdMin; peer_id < kPeerIdMax; peer_id++) {
    BTA_AvRegister(BTA_AV_CHNL_AUDIO, kBtifAvSinkServiceName.c_str(), peer_id,
    BTA_AvRegister(BTA_AV_CHNL_AUDIO, kBtifAvSinkServiceName, peer_id,
                   bta_av_sink_media_callback, UUID_SERVCLASS_AUDIO_SINK);
  }
}
@@ -1894,7 +1896,8 @@ bool BtifAvStateMachine::StateIdle::ProcessEvent(uint32_t event, void* p_data) {
          log::error("Source profile doesn't allow connection to peer:{}",
                     peer_.PeerAddress());
          if (btif_av_src_sink_coexist_enabled())
            BTA_AvCloseRc(((tBTA_AV*)p_data)->rc_open.rc_handle);
            BTA_AvCloseRc(
                (reinterpret_cast<tBTA_AV*>(p_data))->rc_open.rc_handle);
          else
            btif_av_source_disconnect(peer_.PeerAddress());
        }
@@ -1904,7 +1907,8 @@ bool BtifAvStateMachine::StateIdle::ProcessEvent(uint32_t event, void* p_data) {
          log::error("Sink profile doesn't allow connection to peer:{}",
                     peer_.PeerAddress());
          if (btif_av_src_sink_coexist_enabled())
            BTA_AvCloseRc(((tBTA_AV*)p_data)->rc_open.rc_handle);
            BTA_AvCloseRc(
                (reinterpret_cast<tBTA_AV*>(p_data))->rc_open.rc_handle);
          else
            btif_av_sink_disconnect(peer_.PeerAddress());
        }
@@ -1937,12 +1941,12 @@ bool BtifAvStateMachine::StateIdle::ProcessEvent(uint32_t event, void* p_data) {
        }
      }
      if (event == BTA_AV_RC_OPEN_EVT) {
        btif_rc_handler(event, (tBTA_AV*)p_data);
        btif_rc_handler(event, reinterpret_cast<tBTA_AV*>(p_data));
      }
    } break;

    case BTA_AV_RC_BROWSE_OPEN_EVT:
      btif_rc_handler(event, (tBTA_AV*)p_data);
      btif_rc_handler(event, reinterpret_cast<tBTA_AV*>(p_data));
      break;

    // In case Signalling channel is not down and remote started Streaming
@@ -1957,7 +1961,7 @@ bool BtifAvStateMachine::StateIdle::ProcessEvent(uint32_t event, void* p_data) {
    } break;

    case BTA_AV_OPEN_EVT: {
      tBTA_AV* p_bta_data = (tBTA_AV*)p_data;
      tBTA_AV* p_bta_data = reinterpret_cast<tBTA_AV*>(p_data);
      tBTA_AV_STATUS status = p_bta_data->open.status;
      bool can_connect = true;

@@ -2070,7 +2074,7 @@ bool BtifAvStateMachine::StateIdle::ProcessEvent(uint32_t event, void* p_data) {
    case BTA_AV_RC_FEAT_EVT:
    case BTA_AV_RC_PSM_EVT:
    case BTA_AV_REMOTE_RSP_EVT:
      btif_rc_handler(event, (tBTA_AV*)p_data);
      btif_rc_handler(event, reinterpret_cast<tBTA_AV*>(p_data));
      break;

    case BTIF_AV_AVRCP_CLOSE_EVT:
@@ -2080,7 +2084,7 @@ bool BtifAvStateMachine::StateIdle::ProcessEvent(uint32_t event, void* p_data) {
      alarm_cancel(peer_.AvOpenOnRcTimer());

      if (event == BTA_AV_RC_CLOSE_EVT) {
        btif_rc_handler(event, (tBTA_AV*)p_data);
        btif_rc_handler(event, reinterpret_cast<tBTA_AV*>(p_data));
      }
    } break;

@@ -2164,7 +2168,7 @@ bool BtifAvStateMachine::StateOpening::ProcessEvent(uint32_t event,
      break;

    case BTA_AV_OPEN_EVT: {
      tBTA_AV* p_bta_data = (tBTA_AV*)p_data;
      tBTA_AV* p_bta_data = reinterpret_cast<tBTA_AV*>(p_data);
      int av_state;
      tBTA_AV_STATUS status = p_bta_data->open.status;

@@ -2372,7 +2376,7 @@ bool BtifAvStateMachine::StateOpening::ProcessEvent(uint32_t event,
      }
      break;

      CHECK_RC_EVENT(event, (tBTA_AV*)p_data);
      CHECK_RC_EVENT(event, reinterpret_cast<tBTA_AV*>(p_data));

    default:
      log_counter_metrics_btif(android::bluetooth::CodePathCounterKeyEnum::
@@ -2414,7 +2418,7 @@ void BtifAvStateMachine::StateOpened::OnExit() {

bool BtifAvStateMachine::StateOpened::ProcessEvent(uint32_t event,
                                                   void* p_data) {
  tBTA_AV* p_av = (tBTA_AV*)p_data;
  tBTA_AV* p_av = reinterpret_cast<tBTA_AV*>(p_data);

  log::info("state=Opened peer={} event={} flags={} active_peer={}",
            peer_.PeerAddress(), BtifAvEvent::EventName(event),
@@ -2507,8 +2511,8 @@ bool BtifAvStateMachine::StateOpened::ProcessEvent(uint32_t event,
                                         BTIF_AV_SUSPEND_STREAM_REQ_EVT);
      }
      peer_.StateMachine().TransitionTo(BtifAvStateMachine::kStateStarted);

    } break;
      break;
    }

    case BTIF_AV_DISCONNECT_REQ_EVT:
      BTA_AvClose(peer_.BtaHandle());
@@ -2612,7 +2616,7 @@ bool BtifAvStateMachine::StateOpened::ProcessEvent(uint32_t event,
      }
      break;

      CHECK_RC_EVENT(event, (tBTA_AV*)p_data);
      CHECK_RC_EVENT(event, reinterpret_cast<tBTA_AV*>(p_data));

    case BTIF_AV_SET_LATENCY_REQ_EVT: {
      const btif_av_set_latency_req_t* p_set_latency_req =
@@ -2653,7 +2657,7 @@ void BtifAvStateMachine::StateStarted::OnExit() {

bool BtifAvStateMachine::StateStarted::ProcessEvent(uint32_t event,
                                                    void* p_data) {
  tBTA_AV* p_av = (tBTA_AV*)p_data;
  tBTA_AV* p_av = reinterpret_cast<tBTA_AV*>(p_data);

  log::info("state=Started peer={} event={} flags={} active_peer={}",
            peer_.PeerAddress(), BtifAvEvent::EventName(event),
@@ -2856,7 +2860,7 @@ bool BtifAvStateMachine::StateStarted::ProcessEvent(uint32_t event,
      BTA_AvSetLatency(peer_.BtaHandle(), p_set_latency_req->is_low_latency);
    } break;

      CHECK_RC_EVENT(event, (tBTA_AV*)p_data);
      CHECK_RC_EVENT(event, reinterpret_cast<tBTA_AV*>(p_data));

    default:
      log::warn("Peer {} : Unhandled event={}", peer_.PeerAddress(),
@@ -2916,12 +2920,12 @@ bool BtifAvStateMachine::StateClosing::ProcessEvent(uint32_t event,

    // Handle the RC_CLOSE event for the cleanup
    case BTA_AV_RC_CLOSE_EVT:
      btif_rc_handler(event, (tBTA_AV*)p_data);
      btif_rc_handler(event, reinterpret_cast<tBTA_AV*>(p_data));
      break;

    // Handle the RC_BROWSE_CLOSE event for testing
    case BTA_AV_RC_BROWSE_CLOSE_EVT:
      btif_rc_handler(event, (tBTA_AV*)p_data);
      btif_rc_handler(event, reinterpret_cast<tBTA_AV*>(p_data));
      break;

    case BTIF_AV_OFFLOAD_START_REQ_EVT:
@@ -2951,7 +2955,7 @@ bool BtifAvStateMachine::StateClosing::ProcessEvent(uint32_t event,
 * interoperate with headsets that do establish AV after AVRCP connection.
 */
static void btif_av_source_initiate_av_open_timer_timeout(void* data) {
  BtifAvPeer* peer = (BtifAvPeer*)data;
  BtifAvPeer* peer = reinterpret_cast<BtifAvPeer*>(data);
  bool device_connected = false;

  if (com::android::bluetooth::flags::avrcp_connect_a2dp_delayed() &&
@@ -2988,7 +2992,7 @@ static void btif_av_source_initiate_av_open_timer_timeout(void* data) {
 * establishes AVRCP connection without AV connection.
 */
static void btif_av_sink_initiate_av_open_timer_timeout(void* data) {
  BtifAvPeer* peer = (BtifAvPeer*)data;
  BtifAvPeer* peer = reinterpret_cast<BtifAvPeer*>(data);

  log::verbose("Peer {}", peer->PeerAddress());

@@ -3304,7 +3308,7 @@ static void btif_av_handle_bta_av_event(uint8_t peer_sep,
  RawAddress peer_address = RawAddress::kEmpty;
  tBTA_AV_HNDL bta_handle = kBtaHandleUnknown;
  tBTA_AV_EVT event = btif_av_event.Event();
  tBTA_AV* p_data = (tBTA_AV*)btif_av_event.Data();
  tBTA_AV* p_data = reinterpret_cast<tBTA_AV*>(btif_av_event.Data());
  std::string msg;

  log::verbose("peer_sep={} event={}", peer_stream_endpoint_text(peer_sep),
@@ -3414,9 +3418,10 @@ static void btif_av_handle_bta_av_event(uint8_t peer_sep,
          peer_address = btif_av_sink.ActivePeer();
        }
        break;
      } else
      } else {
        FALLTHROUGH_INTENDED;
      }
    }
    case BTA_AV_OFFLOAD_START_RSP_EVT: {
      // TODO: Might be wrong - this code will be removed once those
      // events are received from the AVRCP module.
@@ -3538,7 +3543,8 @@ static void bta_av_sink_media_callback(const RawAddress& peer_address,
        int state = peer->StateMachine().StateId();
        if ((state == BtifAvStateMachine::kStateStarted) ||
            (state == BtifAvStateMachine::kStateOpened)) {
          uint8_t queue_len = btif_a2dp_sink_enqueue_buf((BT_HDR*)p_data);
          uint8_t queue_len =
              btif_a2dp_sink_enqueue_buf(reinterpret_cast<BT_HDR*>(p_data));
          log::verbose("Packets in Sink queue {}", queue_len);
        }
      }
@@ -3550,7 +3556,8 @@ static void bta_av_sink_media_callback(const RawAddress& peer_address,
      log::verbose("address={}", p_data->avk_config.bd_addr);

      // Update the codec info of the A2DP Sink decoder
      btif_a2dp_sink_update_decoder((uint8_t*)(p_data->avk_config.codec_info));
      btif_a2dp_sink_update_decoder(
          reinterpret_cast<uint8_t*>(p_data->avk_config.codec_info));

      config_req.sample_rate =
          A2DP_GetTrackSampleRate(p_data->avk_config.codec_info);
+1 −1
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@

#include <memory>

#include "include/hardware/bluetooth.h"
#include "btif/include/btif_av.h"
#include "include/hardware/bluetooth.h"
#include "rust/cxx.h"
#include "src/profiles/a2dp.rs.h"
#include "types/raw_address.h"