Shadowtrance 5c78d55b04
Bluetooth (#518)
* Bluetooth LE addition

* fixes

* use the psram!

helps a little on S3 (t-deck)

* custom device name

* Update symbols.c

* Feedback + fixes

Fixes external app start/stop server (child devices)
Fixes BtManage causing a full system hang upon disabling bt when a device is connected to the host.

* updoot

* more updoot

* move back!

* Revert "move back!"

This reverts commit d3694365c634acc5db62ac59771c496cb971a727.

* fix some of the things

* Addressing feedback? hmm

* Fixes

Bug 1 — Reconnect loop / Reconnect not working fixed
Bug 2 — Name-only advertising overwrites HID advertising
Bug 3 — BleHidDeviceCtx leak on re-enable
Enhancement — HID device auto-start on radio re-enable

* stuff...

* update for consistency with others

* fix crashes

and some bonus symbols

* a few symbols, i2c speed, cdn message

100kHz i2c speed seems to be more compatible with m5stack modules...and probably in general.
cdn message no longer applies

* Hide BT Settings when bt not enabled

* Addressing things and device fixes

* Missed one!

* stuff
2026-05-22 22:49:37 +02:00

39 lines
1.1 KiB
C

#pragma once
#ifdef ESP_PLATFORM
#include <sdkconfig.h>
#endif
#if defined(CONFIG_BT_NIMBLE_ENABLED)
#include <tactility/drivers/bluetooth_midi.h>
#include <tactility/error.h>
#include <esp_timer.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
struct Device;
bool ble_midi_get_active(struct Device* device);
void ble_midi_set_active(struct Device* device, bool v);
uint16_t ble_midi_get_conn_handle(struct Device* device);
void ble_midi_set_conn_handle(struct Device* device, uint16_t h);
bool ble_midi_get_use_indicate(struct Device* device);
void ble_midi_set_use_indicate(struct Device* device, bool v);
// MIDI keepalive timer helpers — timer handle lives in BleCtx.
// ble_midi_ensure_keepalive creates the timer if needed and starts it periodically.
// ble_midi_stop_keepalive stops (but does not delete) the timer.
error_t ble_midi_ensure_keepalive(struct Device* device, esp_timer_cb_t cb, uint64_t period_us);
void ble_midi_stop_keepalive(struct Device* device);
#ifdef __cplusplus
}
#endif
#endif // CONFIG_BT_NIMBLE_ENABLED