Parcourir la source

Speaker init bug fixed

Joey il y a 1 mois
Parent
commit
f5a2e76b0b
3 fichiers modifiés avec 41 ajouts et 17 suppressions
  1. 3 12
      main/main.c
  2. 36 5
      main/sip/sip.c
  3. 2 0
      main/sip/sip.h

+ 3 - 12
main/main.c

@@ -24,26 +24,17 @@ void app_main(void)
 {
 {
     ESP_LOGI(TAG, "Starting SIP client...");
     ESP_LOGI(TAG, "Starting SIP client...");
 
 
-    esp_err_t ret;
-
-    ret = esp_board_init(16000, 2, 32);
-
-    if(ret != ESP_OK)
-    {
-        ESP_LOGE(TAG,
-                 "Audio board init failed: %s",
-                 esp_err_to_name(ret));
-        return;
+     esp_err_t media_ret = sip_media_init();
+    if (media_ret != ESP_OK) {
+        ESP_LOGE(TAG, "Media init failed: %s", esp_err_to_name(media_ret));
     }
     }
 
 
-
     wifi_init();
     wifi_init();
 
 
     while (!wifi_ready) {
     while (!wifi_ready) {
         vTaskDelay(pdMS_TO_TICKS(500));
         vTaskDelay(pdMS_TO_TICKS(500));
     }
     }
 
 
-
     xTaskCreate(
     xTaskCreate(
         sip_register_task,
         sip_register_task,
         "sip_register",
         "sip_register",

+ 36 - 5
main/sip/sip.c

@@ -20,14 +20,22 @@
 #include "esp_rom_md5.h"
 #include "esp_rom_md5.h"
 
 
 #include "bsp_board.h"
 #include "bsp_board.h"
-
-#define ESP32_IP "192.168.68.122"
+#include "tca9555_driver.h"
+/*
+#include "esp_audio_enc_default.h"
+#include "esp_audio_enc.h"
+#include "esp_audio_dec_default.h"
+#include "esp_audio_dec.h"
+#include "esp_g711_enc.h"
+#include "esp_g711_dec.h"*/
+
+#define ESP32_IP ""
 #define RTP_PORT 4000
 #define RTP_PORT 4000
 
 
-#define WIFI_SSID "TOCHTECH"
-#define WIFI_PASS "Smarturns2017"
+#define WIFI_SSID ""
+#define WIFI_PASS ""
 
 
-#define ASTERISK_IP "192.168.68.121"
+#define ASTERISK_IP ""
 #define SIP_PORT 5060
 #define SIP_PORT 5060
 #define SIP_LOCAL_IP "0.0.0.0"
 #define SIP_LOCAL_IP "0.0.0.0"
 #define SIP_LOCAL_PORT 5062
 #define SIP_LOCAL_PORT 5062
@@ -55,6 +63,7 @@ static struct sockaddr_in s_rtp_peer = {0};
 static uint16_t s_rtp_peer_port = 0;
 static uint16_t s_rtp_peer_port = 0;
 
 
 static volatile bool call_active = false;
 static volatile bool call_active = false;
+static volatile bool s_audio_hw_ready = false;
 
 
 esp_err_t esp_get_feed_data(
 esp_err_t esp_get_feed_data(
     bool is_get_raw_channel,
     bool is_get_raw_channel,
@@ -64,6 +73,7 @@ esp_err_t esp_get_feed_data(
     esp_err_t esp_audio_play(const int16_t *data,
     esp_err_t esp_audio_play(const int16_t *data,
                          int length,
                          int length,
                          uint32_t ticks_to_wait);
                          uint32_t ticks_to_wait);
+esp_err_t sip_media_init(void);
 
 
 static void rtp_tx_task(void *pvParameters);
 static void rtp_tx_task(void *pvParameters);
 static void rtp_rx_task(void *pvParameters);
 static void rtp_rx_task(void *pvParameters);
@@ -1245,3 +1255,24 @@ for(int i = 0; i < 4; i++)
 }
 }
 
 
 
 
+esp_err_t sip_media_init(void)
+{
+    if (s_audio_hw_ready) {
+        return ESP_OK;
+    }
+
+    esp_err_t ret = esp_board_init(16000, 2, 32);
+    if (ret != ESP_OK) {
+        ESP_LOGE(TAG, "esp_board_init failed: %s", esp_err_to_name(ret));
+        return ret;
+    }
+
+    tca9555_driver_init();
+    /*if (!sip_open_audio_media_codecs()) {
+        return ESP_FAIL;
+    }*/
+    s_audio_hw_ready = true;
+    ESP_LOGI(TAG, "Audio board initialized for live RTP media");
+    return ESP_OK;
+}
+

+ 2 - 0
main/sip/sip.h

@@ -2,6 +2,7 @@
 #define SIP_H
 #define SIP_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
+#include "esp_err.h"
 
 
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
@@ -17,6 +18,7 @@ void sip_compute_response(const char *username,
                           const char *nonce,
                           const char *nonce,
                           const char *uri,
                           const char *uri,
                           char *out_response);
                           char *out_response);
+esp_err_t sip_media_init(void);
 void sip_register_task(void *pvParameters);
 void sip_register_task(void *pvParameters);
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus