MiLightRemoteConfig.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <MiLightRadioConfig.h>
  2. #include <PacketFormatter.h>
  3. #include <RgbwPacketFormatter.h>
  4. #include <RgbPacketFormatter.h>
  5. #include <RgbCctPacketFormatter.h>
  6. #include <CctPacketFormatter.h>
  7. #include <FUT089PacketFormatter.h>
  8. #include <FUT091PacketFormatter.h>
  9. #include <FUT020PacketFormatter.h>
  10. #include <PacketFormatter.h>
  11. #ifndef _MILIGHT_REMOTE_CONFIG_H
  12. #define _MILIGHT_REMOTE_CONFIG_H
  13. class MiLightRemoteConfig {
  14. public:
  15. MiLightRemoteConfig(
  16. PacketFormatter* packetFormatter,
  17. MiLightRadioConfig& radioConfig,
  18. const MiLightRemoteType type,
  19. const String name,
  20. const size_t numGroups
  21. ) : packetFormatter(packetFormatter),
  22. radioConfig(radioConfig),
  23. type(type),
  24. name(name),
  25. numGroups(numGroups)
  26. { }
  27. PacketFormatter* const packetFormatter;
  28. const MiLightRadioConfig& radioConfig;
  29. const MiLightRemoteType type;
  30. const String name;
  31. const size_t numGroups;
  32. static const MiLightRemoteConfig* fromType(MiLightRemoteType type);
  33. static const MiLightRemoteConfig* fromType(const String& type);
  34. static const MiLightRemoteConfig* fromReceivedPacket(const MiLightRadioConfig& radioConfig, const uint8_t* packet, const size_t len);
  35. static const size_t NUM_REMOTES;
  36. static const MiLightRemoteConfig* ALL_REMOTES[];
  37. };
  38. extern const MiLightRemoteConfig FUT096Config; //rgbw
  39. extern const MiLightRemoteConfig FUT007Config; //cct
  40. extern const MiLightRemoteConfig FUT092Config; //rgb+cct
  41. extern const MiLightRemoteConfig FUT089Config; //rgb+cct B8 / FUT089
  42. extern const MiLightRemoteConfig FUT098Config; //rgb
  43. extern const MiLightRemoteConfig FUT091Config; //v2 cct
  44. extern const MiLightRemoteConfig FUT020Config;
  45. #endif