A2DP Offload: Fix the default LDAC bitrate

Use LDAC ABR as default option in A2DP Offload mode.

Bug: 77879487
Test: Manual
Change-Id: Iec76691f8a83cd47aa7bf38efc6554139a59bb89
diff --git a/system/stack/a2dp/a2dp_codec_config.cc b/system/stack/a2dp/a2dp_codec_config.cc
index 7ca5a5c..21813cd 100644
--- a/system/stack/a2dp/a2dp_codec_config.cc
+++ b/system/stack/a2dp/a2dp_codec_config.cc
@@ -203,27 +203,29 @@
       p_a2dp_offload->codec_info[4] = (codec_id & 0x000000FF);
       p_a2dp_offload->codec_info[5] = (codec_id & 0x0000FF00) >> 8;
       if (vendor_id == A2DP_LDAC_VENDOR_ID && codec_id == A2DP_LDAC_CODEC_ID) {
-        switch (codec_config_.codec_specific_1) {
-          case 1000:
-            p_a2dp_offload->codec_info[6] =
-                A2DP_LDAC_QUALITY_ABR_OFFLOAD;  // ABR in offload
-            break;
-          case 1001:
-            p_a2dp_offload->codec_info[6] =
-                A2DP_LDAC_QUALITY_MID;  // Mid birate
-            break;
-          case 1002:
-            p_a2dp_offload->codec_info[6] =
-                A2DP_LDAC_QUALITY_LOW;  // Low birate
-            break;
-          case 1003:
-            p_a2dp_offload->codec_info[6] =
-                A2DP_LDAC_QUALITY_HIGH;  // High bitrate
-            break;
-          default:
-            p_a2dp_offload->codec_info[6] =
-                A2DP_LDAC_QUALITY_MID;  // Mid bitrate
-            break;
+        if (codec_config_.codec_specific_1 == 0) {  // default is 0, ABR
+          p_a2dp_offload->codec_info[6] =
+              A2DP_LDAC_QUALITY_ABR_OFFLOAD;  // ABR in offload
+        } else {
+          switch (codec_config_.codec_specific_1 % 10) {
+            case 0:
+              p_a2dp_offload->codec_info[6] =
+                  A2DP_LDAC_QUALITY_HIGH;  // High bitrate
+              break;
+            case 1:
+              p_a2dp_offload->codec_info[6] =
+                  A2DP_LDAC_QUALITY_MID;  // Mid birate
+              break;
+            case 2:
+              p_a2dp_offload->codec_info[6] =
+                  A2DP_LDAC_QUALITY_LOW;  // Low birate
+              break;
+            case 3:  // fall through
+            default:
+              p_a2dp_offload->codec_info[6] =
+                  A2DP_LDAC_QUALITY_ABR_OFFLOAD;  // ABR in offload
+              break;
+          }
         }
       }
       break;
diff --git a/system/stack/a2dp/a2dp_vendor_ldac.cc b/system/stack/a2dp/a2dp_vendor_ldac.cc
index d3aeb3b..5eb0c7d 100644
--- a/system/stack/a2dp/a2dp_vendor_ldac.cc
+++ b/system/stack/a2dp/a2dp_vendor_ldac.cc
@@ -306,28 +306,28 @@
   A2dpCodecConfig* current_codec = bta_av_get_a2dp_current_codec();
   btav_a2dp_codec_config_t codec_config_ = current_codec->getCodecConfig();
   int samplerate = A2DP_GetTrackSampleRate(p_codec_info);
-  switch (codec_config_.codec_specific_1) {
-    case 1001:
-      if (samplerate == 44100 || samplerate == 88200)
-        return 606000;
-      else
-        return 660000;
-    case 1002:
-      if (samplerate == 44100 || samplerate == 88200)
-        return 303000;
-      else
-        return 330000;
-    case 1003:
+  switch (codec_config_.codec_specific_1 % 10) {
+    case 0:
       if (samplerate == 44100 || samplerate == 88200)
         return 909000;
       else
         return 990000;
-    case 1000:
-    default:
+    case 1:
       if (samplerate == 44100 || samplerate == 88200)
         return 606000;
       else
         return 660000;
+    case 2:
+      if (samplerate == 44100 || samplerate == 88200)
+        return 303000;
+      else
+        return 330000;
+    case 3:
+    default:
+      if (samplerate == 44100 || samplerate == 88200)
+        return 909000;
+      else
+        return 990000;
   }
   return 0;
 }