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

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

Merge "Hearing Aid - codec switching"

parents fcbc05c4 24b336e3
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -653,11 +653,12 @@ class HearingAidImpl : public HearingAid {
    hearingDevice->accepting_audio = true;
    LOG(INFO) << __func__ << ": address=" << address
              << ", hi_sync_id=" << loghex(hearingDevice->hi_sync_id);

    StartSendingAudio(*hearingDevice);

    callbacks->OnDeviceAvailable(hearingDevice->capabilities,
                                 hearingDevice->hi_sync_id, address);
    callbacks->OnConnectionState(ConnectionState::CONNECTED, address);

    StartSendingAudio(*hearingDevice);
  }

  void StartSendingAudio(const HearingDevice& hearingDevice) {
@@ -682,17 +683,14 @@ class HearingAidImpl : public HearingAid {
          controller_get_interface()->supports_ble_2m_phy()) {
        codec_in_use = CODEC_G722_24KHZ;
        codec.sample_rate = 24000;
        codec.bit_rate = 16;
        codec.data_interval_ms = 10;
      } else if (codecs & (1 << CODEC_G722_16KHZ)) {
        codec_in_use = CODEC_G722_16KHZ;
        codec.sample_rate = 16000;
      }

      codec.bit_rate = 16;
      codec.data_interval_ms = 10;
      }

      // TODO: remove once we implement support for other codecs
      codec_in_use = CODEC_G722_16KHZ;
      HearingAidAudioSource::Start(codec, audioReceiver);
    }
  }
+12 −3
Original line number Diff line number Diff line
@@ -28,9 +28,9 @@ using base::FilePath;
extern const char* audio_ha_hw_dump_ctrl_event(tHEARING_AID_CTRL_CMD event);

namespace {
int bit_rate = 16;
int sample_rate = 16000;
int data_interval_ms = 10 /* msec */;
int bit_rate = -1;
int sample_rate = -1;
int data_interval_ms = -1;
int num_channels = 2;
alarm_t* audio_timer = nullptr;

@@ -94,6 +94,10 @@ void hearing_aid_data_cb(tUIPC_CH_ID, tUIPC_EVENT event) {
      UIPC_Ioctl(*uipc_hearing_aid, UIPC_CH_ID_AV_AUDIO, UIPC_SET_READ_POLL_TMO,
                 reinterpret_cast<void*>(0));

      if (data_interval_ms != 10) {
        LOG(FATAL) << " Unsupported data interval: " << data_interval_ms;
      }

      audio_timer = alarm_new_periodic("hearing_aid_data_timer");
      alarm_set_on_mloop(audio_timer, data_interval_ms, send_audio_data,
                         nullptr);
@@ -266,6 +270,11 @@ void HearingAidAudioSource::Start(const CodecConfiguration& codecConfiguration,
                                  HearingAidAudioReceiver* audioReceiver) {
  localAudioReceiver = audioReceiver;
  VLOG(2) << "Hearing Aid UIPC Open";

  bit_rate = codecConfiguration.bit_rate;
  sample_rate = codecConfiguration.sample_rate;
  data_interval_ms = codecConfiguration.data_interval_ms;

  stats.Reset();
}

+0 −1
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <base/callback_forward.h>
#include <hardware/bt_hearing_aid.h>


/** Implementations of HearingAid will also implement this interface */
class HearingAidAudioReceiver {
 public: