flipper-zero-tutorials/js/flipboard/scripts/a_runner.js
2024-04-19 18:00:58 -05:00

45 lines
1.4 KiB
JavaScript

let __dirpath = "/ext/apps/Scripts/flipboard";
let loader = load(__dirpath + "/loader_api.js");
// Prompt user for the .fb file to load, this is a FlipBoard script file
let dialog = loader.require("dialog");
let fb = dialog.pickFile(__dirpath, "fb.js");
if (fb === undefined) {
die("No file selected");
}
loader.load("fn", fb);
print("Loaded", loader.fn.title);
// Initialize textbox
let textbox = loader.require("textbox");
textbox.setConfig("end", "text");
textbox.emptyText();
// Initialize access to the Flipboard buttons
let flipboardButton = loader.load("flipboardButton", __dirpath + "/fb_button_api.js");
flipboardButton.init();
// Initialize access to the Flipboard addressable LEDs
let color = loader.load("color", __dirpath + "/color_api.js");
let flipboardLeds = loader.load("flipboardLeds", __dirpath + "/fb_leds_api.js");
flipboardLeds.init(color, [color.green, color.red, color.yellow, color.blue]);
// Initialize the function callback
loader.fn.init(loader);
// Main loop
let buttonNumber = 0;
while (true) {
// Wait for a button press
buttonNumber = flipboardButton.debounceButton(buttonNumber);
// Convert the button press to an array of LEDs to light up
let pressedArray = flipboardButton.buttonNumberToArray(buttonNumber);
// Update the LED brightness.
flipboardLeds.updateLeds(pressedArray);
loader.fn.buttonPressed(buttonNumber, pressedArray);
}