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

Commit 7913f5e4 authored by Roshan Pius's avatar Roshan Pius
Browse files

wifi: Stub implementation of WifiRttController methods

Bug: 31991232
Test: Compiles
Change-Id: I90f803ae19746ef844280cd8df96987e350f8a3f
parent a04ba3fc
Loading
Loading
Loading
Loading
+216 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ WifiRttController::WifiRttController(

void WifiRttController::invalidate() {
  legacy_hal_.reset();
  event_callbacks_.clear();
  is_valid_ = false;
}

@@ -48,11 +49,226 @@ Return<void> WifiRttController::getBoundIface(getBoundIface_cb hidl_status_cb) {
                         hidl_status_cb);
}

Return<void> WifiRttController::registerEventCallback(
    const sp<IWifiRttControllerEventCallback>& callback,
    registerEventCallback_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::registerEventCallbackInternal,
                         hidl_status_cb,
                         callback);
}

Return<void> WifiRttController::rangeRequest(
    uint32_t cmd_id,
    const hidl_vec<RttConfig>& rtt_configs,
    rangeRequest_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::rangeRequestInternal,
                         hidl_status_cb,
                         cmd_id,
                         rtt_configs);
}

Return<void> WifiRttController::rangeCancel(
    uint32_t cmd_id,
    const hidl_vec<hidl_array<uint8_t, 6>>& addrs,
    rangeCancel_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::rangeCancelInternal,
                         hidl_status_cb,
                         cmd_id,
                         addrs);
}

Return<void> WifiRttController::setChannelMap(uint32_t cmd_id,
                                              const RttChannelMap& params,
                                              uint32_t num_dw,
                                              setChannelMap_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::setChannelMapInternal,
                         hidl_status_cb,
                         cmd_id,
                         params,
                         num_dw);
}

Return<void> WifiRttController::clearChannelMap(
    uint32_t cmd_id, clearChannelMap_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::clearChannelMapInternal,
                         hidl_status_cb,
                         cmd_id);
}

Return<void> WifiRttController::getCapabilities(
    getCapabilities_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::getCapabilitiesInternal,
                         hidl_status_cb);
}

Return<void> WifiRttController::setDebugCfg(RttDebugType type,
                                            setDebugCfg_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::setDebugCfgInternal,
                         hidl_status_cb,
                         type);
}

Return<void> WifiRttController::getDebugInfo(getDebugInfo_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::getDebugInfoInternal,
                         hidl_status_cb);
}

Return<void> WifiRttController::setLci(uint32_t cmd_id,
                                       const RttLciInformation& lci,
                                       setLci_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::setLciInternal,
                         hidl_status_cb,
                         cmd_id,
                         lci);
}

Return<void> WifiRttController::setLcr(uint32_t cmd_id,
                                       const RttLcrInformation& lcr,
                                       setLcr_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::setLcrInternal,
                         hidl_status_cb,
                         cmd_id,
                         lcr);
}

Return<void> WifiRttController::getResponderInfo(
    getResponderInfo_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::getResponderInfoInternal,
                         hidl_status_cb);
}

Return<void> WifiRttController::enableResponder(
    uint32_t cmd_id,
    const WifiChannelInfo& channel_hint,
    uint32_t maxDurationSeconds,
    const RttResponder& info,
    enableResponder_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::enableResponderInternal,
                         hidl_status_cb,
                         cmd_id,
                         channel_hint,
                         maxDurationSeconds,
                         info);
}

Return<void> WifiRttController::disableResponder(
    uint32_t cmd_id, disableResponder_cb hidl_status_cb) {
  return validateAndCall(this,
                         WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID,
                         &WifiRttController::disableResponderInternal,
                         hidl_status_cb,
                         cmd_id);
}

std::pair<WifiStatus, sp<IWifiIface>>
WifiRttController::getBoundIfaceInternal() {
  return {createWifiStatus(WifiStatusCode::SUCCESS), bound_iface_};
}

WifiStatus WifiRttController::registerEventCallbackInternal(
    const sp<IWifiRttControllerEventCallback>& callback) {
  // TODO(b/31632518): remove the callback when the client is destroyed
  event_callbacks_.emplace_back(callback);
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

WifiStatus WifiRttController::rangeRequestInternal(
    uint32_t /* cmd_id */, const std::vector<RttConfig>& /* rtt_configs */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

WifiStatus WifiRttController::rangeCancelInternal(
    uint32_t /* cmd_id */,
    const std::vector<hidl_array<uint8_t, 6>>& /* addrs */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

WifiStatus WifiRttController::setChannelMapInternal(
    uint32_t /* cmd_id */,
    const RttChannelMap& /* params */,
    uint32_t /* num_dw */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

WifiStatus WifiRttController::clearChannelMapInternal(uint32_t /* cmd_id */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

std::pair<WifiStatus, RttCapabilities>
WifiRttController::getCapabilitiesInternal() {
  // TODO implement
  return {createWifiStatus(WifiStatusCode::SUCCESS), {}};
}

WifiStatus WifiRttController::setDebugCfgInternal(RttDebugType /* type */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

std::pair<WifiStatus, RttDebugInfo> WifiRttController::getDebugInfoInternal() {
  // TODO implement
  return {createWifiStatus(WifiStatusCode::SUCCESS), {}};
}

WifiStatus WifiRttController::setLciInternal(
    uint32_t /* cmd_id */, const RttLciInformation& /* lci */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

WifiStatus WifiRttController::setLcrInternal(
    uint32_t /* cmd_id */, const RttLcrInformation& /* lcr */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

std::pair<WifiStatus, RttResponder>
WifiRttController::getResponderInfoInternal() {
  // TODO implement
  return {createWifiStatus(WifiStatusCode::SUCCESS), {}};
}

WifiStatus WifiRttController::enableResponderInternal(
    uint32_t /* cmd_id */,
    const WifiChannelInfo& /* channel_hint */,
    uint32_t /* maxDurationSeconds */,
    const RttResponder& /* info */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}

WifiStatus WifiRttController::disableResponderInternal(uint32_t /* cmd_id */) {
  // TODO implement
  return createWifiStatus(WifiStatusCode::SUCCESS);
}
}  // namespace implementation
}  // namespace V1_0
}  // namespace wifi
+56 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <android-base/macros.h>
#include <android/hardware/wifi/1.0/IWifiIface.h>
#include <android/hardware/wifi/1.0/IWifiRttController.h>
#include <android/hardware/wifi/1.0/IWifiRttControllerEventCallback.h>

#include "wifi_legacy_hal.h"

@@ -42,13 +43,68 @@ class WifiRttController : public IWifiRttController {

  // HIDL methods exposed.
  Return<void> getBoundIface(getBoundIface_cb hidl_status_cb) override;
  Return<void> registerEventCallback(
      const sp<IWifiRttControllerEventCallback>& callback,
      registerEventCallback_cb hidl_status_cb) override;
  Return<void> rangeRequest(uint32_t cmd_id,
                            const hidl_vec<RttConfig>& rtt_configs,
                            rangeRequest_cb hidl_status_cb) override;
  Return<void> rangeCancel(uint32_t cmd_id,
                           const hidl_vec<hidl_array<uint8_t, 6>>& addrs,
                           rangeCancel_cb hidl_status_cb) override;
  Return<void> setChannelMap(uint32_t cmd_id,
                             const RttChannelMap& params,
                             uint32_t num_dw,
                             setChannelMap_cb hidl_status_cb) override;
  Return<void> clearChannelMap(uint32_t cmd_id,
                               clearChannelMap_cb hidl_status_cb) override;
  Return<void> getCapabilities(getCapabilities_cb hidl_status_cb) override;
  Return<void> setDebugCfg(RttDebugType type,
                           setDebugCfg_cb hidl_status_cb) override;
  Return<void> getDebugInfo(getDebugInfo_cb hidl_status_cb) override;
  Return<void> setLci(uint32_t cmd_id,
                      const RttLciInformation& lci,
                      setLci_cb hidl_status_cb) override;
  Return<void> setLcr(uint32_t cmd_id,
                      const RttLcrInformation& lcr,
                      setLcr_cb hidl_status_cb) override;
  Return<void> getResponderInfo(getResponderInfo_cb hidl_status_cb) override;
  Return<void> enableResponder(uint32_t cmd_id,
                               const WifiChannelInfo& channel_hint,
                               uint32_t maxDurationSeconds,
                               const RttResponder& info,
                               enableResponder_cb hidl_status_cb) override;
  Return<void> disableResponder(uint32_t cmd_id,
                                disableResponder_cb hidl_status_cb) override;

 private:
  // Corresponding worker functions for the HIDL methods.
  std::pair<WifiStatus, sp<IWifiIface>> getBoundIfaceInternal();
  WifiStatus registerEventCallbackInternal(
      const sp<IWifiRttControllerEventCallback>& callback);
  WifiStatus rangeRequestInternal(uint32_t cmd_id,
                                  const std::vector<RttConfig>& rtt_configs);
  WifiStatus rangeCancelInternal(
      uint32_t cmd_id, const std::vector<hidl_array<uint8_t, 6>>& addrs);
  WifiStatus setChannelMapInternal(uint32_t cmd_id,
                                   const RttChannelMap& params,
                                   uint32_t num_dw);
  WifiStatus clearChannelMapInternal(uint32_t cmd_id);
  std::pair<WifiStatus, RttCapabilities> getCapabilitiesInternal();
  WifiStatus setDebugCfgInternal(RttDebugType type);
  std::pair<WifiStatus, RttDebugInfo> getDebugInfoInternal();
  WifiStatus setLciInternal(uint32_t cmd_id, const RttLciInformation& lci);
  WifiStatus setLcrInternal(uint32_t cmd_id, const RttLcrInformation& lcr);
  std::pair<WifiStatus, RttResponder> getResponderInfoInternal();
  WifiStatus enableResponderInternal(uint32_t cmd_id,
                                     const WifiChannelInfo& channel_hint,
                                     uint32_t maxDurationSeconds,
                                     const RttResponder& info);
  WifiStatus disableResponderInternal(uint32_t cmd_id);

  sp<IWifiIface> bound_iface_;
  std::weak_ptr<WifiLegacyHal> legacy_hal_;
  std::vector<sp<IWifiRttControllerEventCallback>> event_callbacks_;
  bool is_valid_;

  DISALLOW_COPY_AND_ASSIGN(WifiRttController);