pinebuds/apps/main/lhdc.cpp
2023-02-05 18:27:13 +11:00

41 lines
1.3 KiB
C++

// LHDC needs a licence key
// We dont have one; so probably cant ever officially use this. But its here for
// preservation at the least
#if defined(A2DP_LHDC_ON)
extern "C" {
typedef struct bes_bt_local_info_t {
uint8_t bt_addr[BTIF_BD_ADDR_SIZE];
const char *bt_name;
uint8_t bt_len;
uint8_t ble_addr[BTIF_BD_ADDR_SIZE];
const char *ble_name;
uint8_t ble_len;
} bes_bt_local_info;
typedef int (*LHDC_GET_BT_INFO)(bes_bt_local_info *bt_info);
extern bool lhdcSetLicenseKeyTable(uint8_t *licTable, LHDC_GET_BT_INFO pFunc);
}
extern int bes_bt_local_info_get(bes_bt_local_info *local_info);
void lhdc_license_check() {
uint8_t lhdc_license_key = 0;
uint8_t *lhdc_license_data = (uint8_t *)__lhdc_license_start + 0x98;
TRACE(5, "lhdc_license_data:%p, lhdc license %02x %02x %02x %02x",
lhdc_license_data, lhdc_license_data[0], lhdc_license_data[1],
lhdc_license_data[2], lhdc_license_data[3]);
app_overlay_select(APP_OVERLAY_A2DP_LHDC);
TRACE(1, "current_overlay = %d", app_get_current_overlay());
lhdc_license_key =
lhdcSetLicenseKeyTable(lhdc_license_data, bes_bt_local_info_get);
TRACE(0, "lhdc_license_key:%d", lhdc_license_key);
if (lhdc_license_key) {
TRACE(0, "LHDC OK");
} else {
TRACE(0, "LHDC ERROR");
}
}
#endif