refactor: unified controller state by state_mgr
This commit is contained in:
+11
-2
@@ -12,6 +12,7 @@
|
||||
#include "hardware/vreg.h"
|
||||
#include "hardware/watchdog.h"
|
||||
#include "pico/cyw43_arch.h"
|
||||
#include "state_mgr.h"
|
||||
#if ENABLE_SERIAL
|
||||
#include "pico/stdio_usb.h"
|
||||
#endif
|
||||
@@ -26,6 +27,7 @@
|
||||
|
||||
int reportSeqCounter = 0;
|
||||
uint8_t packetCounter = 0;
|
||||
bool spk_active = false;
|
||||
|
||||
uint8_t interrupt_in_data[63] = {
|
||||
0x7f, 0x7d, 0x7f, 0x7e, 0x00, 0x00, 0xa7,
|
||||
@@ -140,6 +142,7 @@ bool tud_audio_set_itf_cb(uint8_t rhport, tusb_control_request_t const *p_reques
|
||||
|
||||
if (itf == 1) {
|
||||
printf("[AUDIO] Set interface Speaker to alternate setting %d\n", alt);
|
||||
spk_active = alt;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -165,14 +168,19 @@ void tud_hid_set_report_cb(uint8_t itf, uint8_t report_id, hid_report_type_t rep
|
||||
if (report_id == 0) {
|
||||
switch (buffer[0]) {
|
||||
case 0x02: {
|
||||
uint8_t outputData[78];
|
||||
state_update(buffer + 1, bufsize - 1);
|
||||
if (spk_active) {
|
||||
break;
|
||||
}
|
||||
uint8_t outputData[78]{};
|
||||
outputData[0] = 0x31;
|
||||
outputData[1] = reportSeqCounter << 4;
|
||||
if (++reportSeqCounter == 256) {
|
||||
reportSeqCounter = 0;
|
||||
}
|
||||
outputData[2] = 0x10;
|
||||
memcpy(outputData + 3, buffer + 1, bufsize - 1);
|
||||
// memcpy(outputData + 3, buffer + 1, bufsize - 1);
|
||||
state_set(outputData + 3,sizeof(SetStateData));
|
||||
bt_write(outputData, sizeof(outputData));
|
||||
break;
|
||||
}
|
||||
@@ -243,6 +251,7 @@ int main() {
|
||||
bt_register_data_callback(on_bt_data);
|
||||
|
||||
audio_init();
|
||||
state_init();
|
||||
|
||||
#if !ENABLE_SERIAL
|
||||
watchdog_enable(1000, true);
|
||||
|
||||
Reference in New Issue
Block a user