OMOTE/Platformio/include/OmoteUI/HardwareAbstractionInterface.h
Matthew Colvin e7da8f63fb Pull out OmoteUI into its own hpp/cpp that
only controls UI/UX
Added HardwareAbstractionInterface to allow UI to be decoupled

Add OmoteUI class/Header to visual studio solution
Bump the compiler to c++17 for std::clamp
2023-07-28 11:34:28 -05:00

23 lines
734 B
C++

#pragma once
#include <string>
#include <lvgl.h>
class HardwareAbstractionInterface
{
public:
typedef void (*display_flush_cb)(struct _lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p);
typedef void (*touch_pad_read)(struct _lv_indev_drv_t *indev_drv, lv_indev_data_t *data);
HardwareAbstractionInterface() = default;
virtual void debugPrint(std::string message) = 0;
virtual void sendIR() = 0;
virtual void MQTTPublish(const char *topic, const char *payload) = 0;
virtual void initLVGL(display_flush_cb aDisplayFlushCb,
touch_pad_read aTouchPadReadCb) = 0;
virtual lv_coord_t getScreenWidth() = 0;
virtual lv_coord_t getScreenHeight() = 0;
};