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

Commit 4e21a931 authored by Jakub Pawłowski's avatar Jakub Pawłowski Committed by Automerger Merge Worker
Browse files

Merge "le_audio: Add dumpsys to config provider" am: 59f8247a am: 156d7645

parents 765feabd 156d7645
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@
#include "embdrv/lc3/include/lc3.h"
#include "gatt/bta_gattc_int.h"
#include "gd/common/strings.h"
#include "le_audio_set_configuration_provider.h"
#include "le_audio_types.h"
#include "osi/include/log.h"
#include "osi/include/osi.h"
@@ -3628,6 +3629,7 @@ void LeAudioClient::DebugDump(int fd) {

  LeAudioClientAudioSource::DebugDump(fd);
  LeAudioClientAudioSink::DebugDump(fd);
  le_audio::AudioSetConfigurationProvider::Get()->DebugDump(fd);
  dprintf(fd, "\n");
}

+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ class AudioSetConfigurationProvider {
  virtual ~AudioSetConfigurationProvider() = default;
  static AudioSetConfigurationProvider* Get();
  static void Initialize();
  static void DebugDump(int fd);
  static void Cleanup();
  virtual const set_configurations::AudioSetConfigurations* GetConfigurations(
      ::le_audio::types::LeAudioContextType content_type) const;
+45 −0
Original line number Diff line number Diff line
@@ -461,6 +461,36 @@ struct AudioSetConfigurationProvider::impl {

  bool IsRunning() { return config_provider_impl_ ? true : false; }

  void Dump(int fd) {
    std::stringstream stream;

    for (LeAudioContextType context : types::kLeAudioContextAllTypesArray) {
      auto confs = Get()->GetConfigurations(context);
      stream << "  === Configurations for context type: " << (int)context
             << ", num: " << (confs == nullptr ? 0 : confs->size()) << " \n";
      if (confs->size() > 0) {
        for (const auto& conf : *confs) {
          stream << "  name: " << conf->name << " \n";
          for (const auto& ent : conf->confs) {
            stream << "    direction: "
                   << (ent.direction == types::kLeAudioDirectionSink
                           ? "Sink (speaker)\n"
                           : "Source (mic)\n")
                   << "     number of devices: " << +ent.device_cnt << " \n"
                   << "     number of ASEs: " << +ent.ase_cnt << " \n"
                   << "     target latency: " << +ent.target_latency << " \n"
                   << "     strategy: " << (int)(ent.strategy) << " \n"
                   << "     qos->retransmission_number: "
                   << +ent.qos.retransmission_number << " \n"
                   << "     qos->max_transport_latency: "
                   << +ent.qos.max_transport_latency << " \n";
          }
        }
      }
    }
    dprintf(fd, "%s", stream.str().c_str());
  }

  const AudioSetConfigurationProvider& config_provider_;
  std::unique_ptr<AudioSetConfigurationProviderJson> config_provider_impl_;
};
@@ -478,6 +508,21 @@ void AudioSetConfigurationProvider::Initialize() {
    config_provider->pimpl_->Initialize();
}

void AudioSetConfigurationProvider::DebugDump(int fd) {
  if (!config_provider || !config_provider->pimpl_->IsRunning()) {
    dprintf(
        fd,
        "\n AudioSetConfigurationProvider not initialized: config provider: "
        "%d, pimpl: %d \n",
        config_provider != nullptr,
        (config_provider == nullptr ? 0
                                    : config_provider->pimpl_->IsRunning()));
    return;
  }
  dprintf(fd, "\n AudioSetConfigurationProvider: \n");
  config_provider->pimpl_->Dump(fd);
}

void AudioSetConfigurationProvider::Cleanup() {
  if (!config_provider) return;
  if (config_provider->pimpl_->IsRunning()) config_provider->pimpl_->Cleanup();