1
0
Fork 0
BangleApps/apps/settings-init.js

99 lines
1.9 KiB
JavaScript

// Report from https://notes.iopush.net/custom-usb-hid-device-descriptor-media-keyboard/
/*Bangle.HID = new Uint8Array([
// Keyboard Controls
0x05, 0x01,
0x09, 0x06,
0xA1, 0x01,
0x85, 0x02,
0x05, 0x07,
0x19, 0xe0,
0x29, 0xe7,
0x15, 0x00,
0x25, 0x01,
0x75, 0x01,
0x95, 0x08,
0x81, 0x02,
0x95, 0x01,
0x75, 0x08,
0x81, 0x01,
0x95, 0x05,
0x75, 0x01,
0x05, 0x08,
0x19, 0x01,
0x29, 0x05,
0x91, 0x02,
0x95, 0x01,
0x75, 0x03,
0x91, 0x01,
0x95, 0x06,
0x75, 0x08,
0x15, 0x00,
0x25, 0x73,
0x05, 0x07,
0x19, 0x00,
0x29, 0x73,
0x81, 0x00,
0x09, 0x05,
0x15, 0x00,
0x26, 0xFF, 0x00,
0x75, 0x08,
0x95, 0x02,
0xB1, 0x02,
0xC0,
// Music Controls
0x05, 0x0C,
0x09, 0x01,
0xA1, 0x01,
0x85, 0x01,
0x15, 0x00,
0x25, 0x01,
0x75, 0x01,
0x95, 0x01,
0x09, 0xB5,
0x81, 0x02,
0x09, 0xB6,
0x81, 0x02,
0x09, 0xB7,
0x81, 0x02,
0x09, 0xB8,
0x81, 0x02,
0x09, 0xCD,
0x81, 0x02,
0x09, 0xE2,
0x81, 0x02,
0x09, 0xE9,
0x81, 0x02,
0x09, 0xEA,
0x81, 0x02,
0xC0
]);*/
// More compact HID representation
Bangle.HID = E.toUint8Array(atob("BQEJBqEBhQIFBxngKecVACUBdQGVCIEClQF1CIEBlQV1AQUIGQEpBZEClQF1A5EBlQZ1CBUAJXMFBxkAKXOBAAkFFQAm/wB1CJUCsQLABQwJAaEBhQEVACUBdQGVAQm1gQIJtoECCbeBAgm4gQIJzYECCeKBAgnpgQIJ6oECwA=="));
(function() {
var s = require('Storage').readJSON('@setting');
if (s.ble) {
if (s.dev)
Bluetooth.setConsole();
else
LoopbackA.setControl(true);
var adv = { uart: true };
if (s.HID) {
adv.hid = Bangle.HID;
} else
delete Bangle.HID;
NRF.setServices({}, adv);
try {
NRF.wake();
} catch (e) {}
} else {
NRF.sleep();
}
if (!s.vibrate) Bangle.buzz=()=>Promise.resolve();
if (!s.beep) Bangle.beep=()=>Promise.resolve();
Bangle.setLCDTimeout(s.timeout);
if (!s.timeout) Bangle.setLCDPower(1);
E.setTimeZone(s.timezone);
})()