From 3c97f9ecde9d3670d80f1d35e262830029ef30b9 Mon Sep 17 00:00:00 2001
From: dequis <dx@dxzone.com.ar>
Date: Sun, 18 Jun 2023 21:21:20 +0200
Subject: [PATCH] audio: add violence (audio_codec_i2c_write)

---
 components/badge23/audio.c                 |  4 ++++
 components/badge23/include/badge23/audio.h |  2 ++
 usermodule/mp_audio.c                      | 11 +++++++++++
 3 files changed, 17 insertions(+)

diff --git a/components/badge23/audio.c b/components/badge23/audio.c
index d964cc734b..c0faa76e11 100644
--- a/components/badge23/audio.c
+++ b/components/badge23/audio.c
@@ -100,6 +100,10 @@ static esp_err_t max98091_i2c_write_readback(const uint8_t reg, const uint8_t da
     return ret;
 }
 
+void audio_codec_i2c_write(const uint8_t reg, const uint8_t data) {
+    max98091_i2c_write_readback(reg, data);
+}
+
 void audio_headphones_line_in_set_hardware_thru(bool enable){
     max98091_i2c_write_readback(0x2B, (1<<5) | (1<<4)); // Enable Headphone Mixer
     uint8_t trust_issue = enable ? 1 : 0;
diff --git a/components/badge23/include/badge23/audio.h b/components/badge23/include/badge23/audio.h
index f4182d2cb7..06f52ee282 100644
--- a/components/badge23/include/badge23/audio.h
+++ b/components/badge23/include/badge23/audio.h
@@ -163,6 +163,8 @@ float audio_input_thru_get_volume_dB();
 void audio_input_thru_set_mute(bool mute);
 bool audio_input_thru_get_mute();
 
+/* For when you need to add violence */
+void audio_codec_i2c_write(const uint8_t reg, const uint8_t data);
 
 /*
 HEADPHONE PORT POLICY
diff --git a/usermodule/mp_audio.c b/usermodule/mp_audio.c
index 145216b211..8ecaf0af34 100644
--- a/usermodule/mp_audio.c
+++ b/usermodule/mp_audio.c
@@ -250,6 +250,15 @@ STATIC mp_obj_t mp_input_thru_get_mute() {
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_input_thru_get_mute_obj, mp_input_thru_get_mute);
 
 
+STATIC mp_obj_t mp_codec_i2c_write(mp_obj_t reg_in, mp_obj_t data_in) {
+    uint8_t reg = mp_obj_get_int(reg_in);
+    uint8_t data = mp_obj_get_int(data_in);
+    audio_codec_i2c_write(reg, data);
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(mp_codec_i2c_write_obj, mp_codec_i2c_write);
+
+
 
 STATIC const mp_rom_map_elem_t mp_module_audio_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_audio) },
@@ -306,6 +315,8 @@ STATIC const mp_rom_map_elem_t mp_module_audio_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_input_thru_set_mute), MP_ROM_PTR(&mp_input_thru_set_mute_obj) },
     { MP_ROM_QSTR(MP_QSTR_input_thru_get_mute), MP_ROM_PTR(&mp_input_thru_get_mute_obj) },
 
+    { MP_ROM_QSTR(MP_QSTR_codec_i2c_write), MP_ROM_PTR(&mp_codec_i2c_write_obj) },
+
     { MP_ROM_QSTR(MP_QSTR_INPUT_SOURCE_NONE), MP_ROM_INT(AUDIO_INPUT_SOURCE_NONE) },
     { MP_ROM_QSTR(MP_QSTR_INPUT_SOURCE_LINE_IN), MP_ROM_INT(AUDIO_INPUT_SOURCE_LINE_IN) },
     { MP_ROM_QSTR(MP_QSTR_INPUT_SOURCE_HEADSET_MIC), MP_ROM_INT(AUDIO_INPUT_SOURCE_HEADSET_MIC) },
-- 
GitLab