summary refs log tree commit diff stats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--firmware/include/inputs/button.h16
-rw-r--r--firmware/include/inputs/input.h23
-rw-r--r--firmware/src/main.cpp22
3 files changed, 60 insertions, 1 deletions
diff --git a/firmware/include/inputs/button.h b/firmware/include/inputs/button.h
new file mode 100644
index 0000000..c3530ae
--- /dev/null
+++ b/firmware/include/inputs/button.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include <cstdint>
+
+namespace inputs {
+
+class Button {
+public:
+    Button(uint8_t pin);
+
+    bool is_pressed();
+
+private:
+};
+
+}
diff --git a/firmware/include/inputs/input.h b/firmware/include/inputs/input.h
new file mode 100644
index 0000000..7899ce7
--- /dev/null
+++ b/firmware/include/inputs/input.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "inputs/button.h"
+
+namespace inputs {
+
+class Input {
+public:
+    Input(/* pins */);
+
+    void init();
+
+    bool down_pressed();
+    bool up_pressed();
+    bool right_pressed();
+    bool left_pressed();
+    bool a_pressed();
+    bool b_pressed();
+
+private:
+};
+
+}
diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp
index a669a09..c512327 100644
--- a/firmware/src/main.cpp
+++ b/firmware/src/main.cpp
@@ -1,11 +1,31 @@
 #include <Arduino.h>
 
+#include "inputs/input.h"
+
+game::GameState state {};
+ui::UI ui { /* pins */ };
+inputs::Input input { /* pins */ };
+
 void setup()
 {
-
+    state.init();
+    input.init();
+    ui.init();
 }
 
 void loop()
 {
+    delay(1);
+
+    if (input.down_pressed()) {
+        // TODO
+    }
+
+    // update game state
+    // render game state
 
+    // every second
+    // automatically move down
+    // update game state
+    // render game state
 }