Просмотр исходного кода

fix hfp_ag demo audio not sine_v4.1

jincheng 4 лет назад
Родитель
Сommit
c0fc6500cf
1 измененных файлов с 9 добавлено и 9 удалено
  1. 9 9
      examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.c

+ 9 - 9
examples/bluetooth/bluedroid/classic_bt/hfp_ag/main/bt_app_hf.c

@@ -116,17 +116,17 @@ static const int16_t sine_int16[] = {
 -19260,  -17557,  -15786,  -13952,  -12062,  -10126,   -8149,   -6140,   -4107,   -2057,
 };
 
-#define TABLE_SIZE_CVSD   100
+#define TABLE_SIZE_CVSD         100
+#define TABLE_SIZE_CVSD_BYTE    200
 static uint32_t bt_app_hf_outgoing_cb(uint8_t *p_buf, uint32_t sz)
 {
-    static int sine_phase = 0;
-
-    for (int i = 0; i * 2 + 1 < sz; i++) {
-        p_buf[i * 2]     = sine_int16[sine_phase];
-        p_buf[i * 2 + 1] = sine_int16[sine_phase];
-        ++sine_phase;
-        if (sine_phase >= TABLE_SIZE_CVSD) {
-            sine_phase -= TABLE_SIZE_CVSD;
+    static int index = 0;
+    uint8_t *data = (uint8_t *)sine_int16;
+
+    for (uint32_t i = 0; i < sz; i++) {
+        p_buf[i] = data[index++];
+        if (index >= TABLE_SIZE_CVSD_BYTE) {
+            index -= TABLE_SIZE_CVSD_BYTE;
         }
     }
     return sz;