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

Commit 7842a987 authored by Jakub Tyszkowski (xWF)'s avatar Jakub Tyszkowski (xWF) Committed by Gerrit Code Review
Browse files

Merge "LeAudio: Fix BidirectionalPair<> template instantiation" into main

parents c8e929c0 7313f5f2
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -51,11 +51,6 @@ using bluetooth::le_audio::types::kLeAudioDirectionSource;

void osi_property_set_bool(const char* key, bool value);

template <typename T>
T& bluetooth::le_audio::types::BidirectionalPair<T>::get(uint8_t direction) {
  return (direction == bluetooth::le_audio::types::kLeAudioDirectionSink) ? sink : source;
}

static const std::vector<AudioSetConfiguration> offload_capabilities_none(0);

const std::vector<AudioSetConfiguration>* offload_capabilities = &offload_capabilities_none;
+0 −34
Original line number Diff line number Diff line
@@ -773,22 +773,6 @@ std::ostream& operator<<(std::ostream& os, const AudioContexts& contexts) {
  return os;
}

template <typename T>
const T& BidirectionalPair<T>::get(uint8_t direction) const {
  log::assert_that(direction < types::kLeAudioDirectionBoth,
                   "Unsupported complex direction. Consider using "
                   "get_bidirectional<>() instead.");
  return (direction == types::kLeAudioDirectionSink) ? sink : source;
}

template <typename T>
T& BidirectionalPair<T>::get(uint8_t direction) {
  log::assert_that(direction < types::kLeAudioDirectionBoth,
                   "Unsupported complex direction. Reference to a single "
                   "complex direction value is not supported.");
  return (direction == types::kLeAudioDirectionSink) ? sink : source;
}

/* Bidirectional getter trait for AudioContexts bidirectional pair */
template <>
AudioContexts get_bidirectional(BidirectionalPair<AudioContexts> p) {
@@ -874,23 +858,5 @@ std::ostream& operator<<(std::ostream& os, const LeAudioMetadata& config) {
  return os;
}

template struct BidirectionalPair<AudioContexts>;
template struct BidirectionalPair<AudioLocations>;
template struct BidirectionalPair<CisType>;
template struct BidirectionalPair<LeAudioConfigurationStrategy>;
template struct BidirectionalPair<ase*>;
template struct BidirectionalPair<std::string>;
template struct BidirectionalPair<std::vector<uint8_t>>;
template struct BidirectionalPair<stream_configuration>;
template struct BidirectionalPair<stream_parameters>;
template struct BidirectionalPair<uint16_t>;
template struct BidirectionalPair<uint8_t>;
template struct BidirectionalPair<bool>;
template struct BidirectionalPair<int>;
template struct BidirectionalPair<std::vector<set_configurations::AseConfiguration>>;
template struct BidirectionalPair<set_configurations::QosConfigSetting>;
template struct BidirectionalPair<
        std::unique_ptr<const bluetooth::le_audio::btle_audio_codec_config_t>>;

}  // namespace types
}  // namespace bluetooth::le_audio
+13 −2
Original line number Diff line number Diff line
@@ -503,8 +503,19 @@ struct BidirectionalPair {
  T sink;
  T source;

  const T& get(uint8_t direction) const;
  T& get(uint8_t direction);
  const T& get(uint8_t direction) const {
    log::assert_that(direction < types::kLeAudioDirectionBoth,
                     "Unsupported complex direction. Consider using "
                     "get_bidirectional<>() instead.");
    return (direction == types::kLeAudioDirectionSink) ? sink : source;
  }

  T& get(uint8_t direction) {
    log::assert_that(direction < types::kLeAudioDirectionBoth,
                     "Unsupported complex direction. Reference to a single "
                     "complex direction value is not supported.");
    return (direction == types::kLeAudioDirectionSink) ? sink : source;
  }
};

template <typename T>