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

Commit bd82c37b authored by Jakub Tyszkowski's avatar Jakub Tyszkowski
Browse files

LeAudio: Extend GAME configurations

This extends the GAME configurations to support voiceback channel
and a wide range of device configurations (single earbud, TWS style,
banded headphones).

Tag: #feature
Bug: 269394021
Test: atest --host bluetooth_le_audio_client_test bluetooth_le_audio_test --no-bazel-mode
Change-Id: I6d8938465c78e11f28e088f68e48d625c5501909
parent 4993c9b9
Loading
Loading
Loading
Loading
+757 −9

File changed.

Preview size limit exceeded, changes collapsed.

+44 −1
Original line number Diff line number Diff line
@@ -153,11 +153,54 @@
        {
            "name": "Game",
            "configurations": [
                "DualDev_OneChanStereoSnk_OneChanStereoSrc_48_1_Low_Latency",
                "DualDev_OneChanStereoSnk_OneChanStereoSrc_48_2_Low_Latency",
                "DualDev_OneChanStereoSnk_OneChanStereoSrc_32_2_Low_Latency",
                "DualDev_OneChanStereoSnk_OneChanStereoSrc_16_1_Low_Latency",
                "DualDev_OneChanStereoSnk_OneChanStereoSrc_16_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_TwoChanStereoSrc_32_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_TwoChanStereoSrc_16_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_TwoChanStereoSrc_16_1_Low_Latency",
                "SingleDev_TwoChanStereoSnk_OneChanMonoSrc_32_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_OneChanMonoSrc_16_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_OneChanMonoSrc_16_1_Low_Latency",
                "VND_SingleDev_TwoChanStereoSnk_48khz_75octs_TwoChanStereoSrc_16khz_30octs_Balanced_Reliability_1",
                "VND_SingleDev_TwoChanStereoSnk_48khz_75octs_R5_L12_TwoChanStereoSrc_16khz_30octs_R3_L12_1",
                "VND_SingleDev_TwoChanStereoSnk_48khz_75octs_High_Reliability_1",
                "VND_SingleDev_TwoChanStereoSnk_48khz_75octs_R5_L12_1",
                "DualDev_OneChanStereoSnk_48_4_High_Reliability"
                "SingleDev_OneChanStereoSnk_OneChanMonoSrc_32_2_Low_Latency",
                "SingleDev_OneChanStereoSnk_OneChanMonoSrc_16_2_Low_Latency",
                "SingleDev_OneChanStereoSnk_OneChanMonoSrc_16_1_Low_Latency",
                "SingleDev_OneChanMonoSnk_OneChanMonoSrc_32_2_Low_Latency",
                "SingleDev_OneChanMonoSnk_OneChanMonoSrc_16_2_Low_Latency",
                "SingleDev_OneChanMonoSnk_OneChanMonoSrc_16_1_Low_Latency",
                "DualDev_OneChanStereoSnk_48_3_Low_Latency",
                "DualDev_OneChanStereoSnk_48_2_Low_Latency",
                "DualDev_OneChanStereoSnk_48_1_Low_Latency",
                "DualDev_OneChanStereoSnk_32_2_Low_Latency",
                "DualDev_OneChanStereoSnk_32_1_Low_Latency",
                "DualDev_OneChanStereoSnk_24_2_Low_Latency",
                "DualDev_OneChanStereoSnk_24_1_Low_Latency",
                "DualDev_OneChanStereoSnk_16_2_Low_Latency",
                "DualDev_OneChanStereoSnk_16_1_Low_Latency",
                "SingleDev_TwoChanStereoSnk_48_3_Low_Latency",
                "SingleDev_TwoChanStereoSnk_48_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_48_1_Low_Latency",
                "SingleDev_TwoChanStereoSnk_32_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_32_1_Low_Latency",
                "SingleDev_TwoChanStereoSnk_24_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_24_1_Low_Latency",
                "SingleDev_TwoChanStereoSnk_16_2_Low_Latency",
                "SingleDev_TwoChanStereoSnk_16_1_Low_Latency",
                "SingleDev_OneChanStereoSnk_48_3_Low_Latency",
                "SingleDev_OneChanStereoSnk_48_2_Low_Latency",
                "SingleDev_OneChanStereoSnk_48_1_Low_Latency",
                "SingleDev_OneChanStereoSnk_32_2_Low_Latency",
                "SingleDev_OneChanStereoSnk_32_1_Low_Latency",
                "SingleDev_OneChanStereoSnk_24_2_Low_Latency",
                "SingleDev_OneChanStereoSnk_24_1_Low_Latency",
                "SingleDev_OneChanStereoSnk_16_2_Low_Latency",
                "SingleDev_OneChanStereoSnk_16_1_Low_Latency"
            ]
        },
        {
+14 −6
Original line number Diff line number Diff line
@@ -1987,7 +1987,7 @@ class UnicastTestNoInit : public Test {
                      0x10,
                      0x03, /* sample freq */
                      0x01,
                      0x80,
                      0x80, /* 48kHz */
                      0x00,
                      0x02, /* frame duration */
                      0x02,
@@ -2080,20 +2080,20 @@ class UnicastTestNoInit : public Test {
                } else if (handle == pacs->avail_contexts_char + 1) {
                  value = {
                      // Sink Avail Contexts
                      (uint8_t)(supported_snk_context_types_ >> 8),
                      (uint8_t)(supported_snk_context_types_),
                      (uint8_t)(supported_snk_context_types_ >> 8),
                      // Source Avail Contexts
                      (uint8_t)(supported_src_context_types_ >> 8),
                      (uint8_t)(supported_src_context_types_),
                      (uint8_t)(supported_src_context_types_ >> 8),
                  };
                } else if (handle == pacs->supp_contexts_char + 1) {
                  value = {
                      // Sink Avail Contexts
                      (uint8_t)(supported_snk_context_types_ >> 8),
                      (uint8_t)(supported_snk_context_types_),
                      (uint8_t)(supported_snk_context_types_ >> 8),
                      // Source Avail Contexts
                      (uint8_t)(supported_src_context_types_ >> 8),
                      (uint8_t)(supported_src_context_types_),
                      (uint8_t)(supported_src_context_types_ >> 8),
                  };
                }
                cb(conn_id, GATT_SUCCESS, handle, value.size(), value.data(),
@@ -3929,6 +3929,13 @@ TEST_F(UnicastTest, StartNotSupportedContextType) {
  const RawAddress test_address0 = GetTestAddress(0);
  int group_id = bluetooth::groups::kGroupUnknown;

  supported_snk_context_types_ = (types::LeAudioContextType::RINGTONE |
                                  types::LeAudioContextType::CONVERSATIONAL |
                                  types::LeAudioContextType::UNSPECIFIED |
                                  types::LeAudioContextType::MEDIA)
                                     .value();
  supported_src_context_types_ = supported_snk_context_types_;

  SetSampleDatabaseEarbudsValid(
      1, test_address0, codec_spec_conf::kLeAudioLocationStereo,
      codec_spec_conf::kLeAudioLocationStereo, default_channel_cnt,
@@ -3969,7 +3976,8 @@ TEST_F(UnicastTest, StartNotSupportedContextType) {
  LeAudioClient::Get()->SetInCall(false);

  /* Fallback scenario now supports 48Khz just like Media so we will reconfigure
   * Note: Fallback is forced by the frequency on the remote device.
   * Note: Fallback is forced by supported_snk_context_types_ not having GAME on
   * the remote device.
   */
  EXPECT_CALL(mock_state_machine_, StopStream(_)).Times(1);
  UpdateMetadata(AUDIO_USAGE_GAME, AUDIO_CONTENT_TYPE_UNKNOWN, true);