You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.3 KiB

2 years ago
  1. #pragma once
  2. #include "sdk\components\dwin\dwin_screen.hpp"
  3. namespace iflytop {
  4. namespace dwin {
  5. using namespace std;
  6. #pragma pack(1)
  7. typedef struct {
  8. uint16_t m_VP = 0;
  9. uint16_t m_PosX = 0;
  10. uint16_t m_PosY = 0;
  11. uint16_t m_VMin = 0;
  12. uint16_t m_VMax = 0;
  13. uint16_t m_IconMin = 0;
  14. uint16_t m_IconMax = 0;
  15. uint8_t m_Mode = 0;
  16. uint8_t m_IconLib = 0;
  17. uint8_t m_ICONGamma = 0;
  18. uint8_t m_LayerMode = 0;
  19. uint8_t m_FilterSet = 0;
  20. uint8_t m_PICGamma = 0;
  21. } VarIconDescript_t;
  22. #pragma pack()
  23. class VarIcon {
  24. DwinScreen *m_dwin_screen = nullptr;
  25. uint16_t m_descript_add = 0;
  26. VarIconDescript_t m_descript;
  27. public:
  28. bool init(DwinScreen *dwin_screen, uint16_t descript_add);
  29. void initcfg(uint16_t valpointerAdd, uint16_t initval, uint16_t posx, uint16_t posy, uint16_t iconlib, uint16_t iconmin, uint16_t iconmax);
  30. public:
  31. bool flushcfg();
  32. bool readcfg();
  33. bool setVal(uint16_t val) { return m_dwin_screen->write_varspace16(m_descript.m_VP, val, 100); }
  34. uint16_t getVal() {
  35. uint16_t val = 0xffff;
  36. m_dwin_screen->read_varspace16(m_descript.m_VP, val, 100);
  37. return val;
  38. }
  39. VarIconDescript_t &getDescript() { return m_descript; }
  40. void dumpinfo();
  41. public:
  42. };
  43. } // namespace dwin
  44. } // namespace iflytop