Browse Source

fix:luatos set bus时如果没有选es8311可能无法使用

alienwalker 1 year ago
parent
commit
89a6c95590

+ 9 - 1
components/multimedia/luat_audio_tm8211.c

@@ -60,7 +60,15 @@ const luat_audio_codec_opts_t codec_opts_tm8211 = {
 	.no_control = 1,
 };
 
-
+const luat_audio_codec_opts_t codec_opts_common = {
+    .name = "common",
+    .init = NULL,
+    .deinit = NULL,
+    .control = NULL,
+    .start = NULL,
+    .stop = NULL,
+	.no_control = 1,
+};
 
 
 

+ 1 - 0
components/multimedia/luat_lib_multimedia_audio.c

@@ -377,6 +377,7 @@ static int l_audio_set_output_bus(lua_State *L) {
     if (audio_conf!=NULL && lua_istable(L,3) && tp==LUAT_AUDIO_BUS_I2S){
         audio_conf->codec_conf.multimedia_id = id;
         audio_conf->bus_type = LUAT_AUDIO_BUS_I2S;
+        audio_conf->codec_conf.codec_opts = &codec_opts_common;
 		lua_pushstring(L, "chip");
 		if (LUA_TSTRING == lua_gettable(L, 3)) {
             const char *chip = luaL_checklstring(L, -1,&len);

+ 1 - 0
luat/include/luat_audio_codec.h

@@ -57,4 +57,5 @@ typedef struct luat_audio_codec_opts{
 
 extern const luat_audio_codec_opts_t codec_opts_es8311;
 extern const luat_audio_codec_opts_t codec_opts_tm8211;
+extern const luat_audio_codec_opts_t codec_opts_common;
 #endif