aboutsummaryrefslogtreecommitdiff
path: root/src/bluetooth/ble_mouse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/ble_mouse.cpp')
-rw-r--r--src/bluetooth/ble_mouse.cpp109
1 files changed, 54 insertions, 55 deletions
diff --git a/src/bluetooth/ble_mouse.cpp b/src/bluetooth/ble_mouse.cpp
index 423ea8c..c757eb3 100644
--- a/src/bluetooth/ble_mouse.cpp
+++ b/src/bluetooth/ble_mouse.cpp
@@ -1,7 +1,7 @@
+#include "../config.h"
+#include "../hid/badusb.h"
#include <Arduino.h>
#include <BleMouse.h>
-#include "../hid/badusb.h"
-#include "../config.h"
#include "../utils/buttons.h"
#include "ui/display.h"
@@ -11,64 +11,63 @@
extern BleMouse bleMouse;
// ===== MAIN =====
-void ble_mouse_run()
-{
+void ble_mouse_run() {
+ u8g2.clearBuffer();
+ u8g2.setFont(u8g2_font_6x10_tr);
+ u8g2.drawStr(10, 25, "BLE Mouse");
+ u8g2.drawStr(10, 45, "Connecting...");
+ u8g2.sendBuffer();
+
+ delay(800);
+
+ while (1) {
+ // 🔥 EXIT FIRST (clean)
+ if (btnBack())
+ break;
+
+ bool connected = bleMouse.isConnected();
+
+ int dx = 0;
+ int dy = 0;
+
+ if (connected) {
+ if (!digitalRead(BTN_UP))
+ dy = -6;
+ if (!digitalRead(BTN_DOWN))
+ dy = 6;
+ if (!digitalRead(BTN_LEFT))
+ dx = -6;
+ if (!digitalRead(BTN_RIGHT))
+ dx = 6;
+
+ if (dx || dy)
+ bleMouse.move(dx, dy);
+
+ // ✅ single click (not spam)
+ static bool lastSelect = false;
+ bool currentSelect = !digitalRead(BTN_SELECT);
+
+ if (currentSelect && !lastSelect)
+ bleMouse.click(MOUSE_LEFT);
+
+ lastSelect = currentSelect;
+ }
+
+ // ===== UI =====
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_6x10_tr);
- u8g2.drawStr(10, 25, "BLE Mouse");
- u8g2.drawStr(10, 45, "Connecting...");
- u8g2.sendBuffer();
-
- delay(800);
-
- while (1)
- {
- // 🔥 EXIT FIRST (clean)
- if (btnBack()) break;
-
- bool connected = bleMouse.isConnected();
-
- int dx = 0;
- int dy = 0;
- if (connected)
- {
- if (!digitalRead(BTN_UP)) dy = -6;
- if (!digitalRead(BTN_DOWN)) dy = 6;
- if (!digitalRead(BTN_LEFT)) dx = -6;
- if (!digitalRead(BTN_RIGHT)) dx = 6;
+ u8g2.drawStr(10, 20, "BLE Mouse");
- if (dx || dy)
- bleMouse.move(dx, dy);
+ if (connected)
+ u8g2.drawStr(10, 35, "Connected");
+ else
+ u8g2.drawStr(10, 35, "Waiting");
- // ✅ single click (not spam)
- static bool lastSelect = false;
- bool currentSelect = !digitalRead(BTN_SELECT);
+ u8g2.drawStr(10, 55, "BACK = Exit");
- if (currentSelect && !lastSelect)
- bleMouse.click(MOUSE_LEFT);
-
- lastSelect = currentSelect;
- }
-
- // ===== UI =====
- u8g2.clearBuffer();
- u8g2.setFont(u8g2_font_6x10_tr);
-
- u8g2.drawStr(10, 20, "BLE Mouse");
-
- if (connected)
- u8g2.drawStr(10, 35, "Connected");
- else
- u8g2.drawStr(10, 35, "Waiting");
-
- u8g2.drawStr(10, 55, "BACK = Exit");
-
- u8g2.sendBuffer();
+ u8g2.sendBuffer();
- delay(10); // important for BLE stability
- }
+ delay(10); // important for BLE stability
+ }
}
-
-
-