MiLightRemoteConfig.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 <PacketFormatter.h>
  9. #ifndef _MILIGHT_REMOTE_CONFIG_H
  10. #define _MILIGHT_REMOTE_CONFIG_H
  11. class MiLightRemoteConfig {
  12. public:
  13. MiLightRemoteConfig(
  14. PacketFormatter* packetFormatter,
  15. MiLightRadioConfig& radioConfig,
  16. const MiLightRemoteType type,
  17. const String name
  18. ) : packetFormatter(packetFormatter),
  19. radioConfig(radioConfig),
  20. type(type),
  21. name(name)
  22. { }
  23. PacketFormatter* const packetFormatter;
  24. const MiLightRadioConfig& radioConfig;
  25. const MiLightRemoteType type;
  26. const String name;
  27. static const MiLightRemoteConfig* fromType(MiLightRemoteType type);
  28. static const MiLightRemoteConfig* fromType(const String& type);
  29. static const MiLightRemoteConfig* fromReceivedPacket(const MiLightRadioConfig& radioConfig, const uint8_t* packet, const size_t len);
  30. static const size_t NUM_REMOTES = 5;
  31. static const MiLightRemoteConfig* ALL_REMOTES[NUM_REMOTES];
  32. };
  33. static const MiLightRemoteConfig FUT096Config( //rgbw
  34. new RgbwPacketFormatter(),
  35. MiLightRadioConfig::ALL_CONFIGS[0],
  36. REMOTE_TYPE_RGBW,
  37. "rgbw"
  38. );
  39. static const MiLightRemoteConfig FUT091Config( //cct
  40. new CctPacketFormatter(),
  41. MiLightRadioConfig::ALL_CONFIGS[1],
  42. REMOTE_TYPE_CCT,
  43. "cct"
  44. );
  45. static const MiLightRemoteConfig FUT092Config( //rgb+cct
  46. new RgbCctPacketFormatter(),
  47. MiLightRadioConfig::ALL_CONFIGS[2],
  48. REMOTE_TYPE_RGB_CCT,
  49. "rgb_cct"
  50. );
  51. static const MiLightRemoteConfig FUT089Config( //rgb+cct B8 / FUT089
  52. new FUT089PacketFormatter(),
  53. MiLightRadioConfig::ALL_CONFIGS[2],
  54. REMOTE_TYPE_FUT089,
  55. "fut089"
  56. );
  57. static const MiLightRemoteConfig FUT098Config( //rgb
  58. new RgbPacketFormatter(),
  59. MiLightRadioConfig::ALL_CONFIGS[3],
  60. REMOTE_TYPE_RGB,
  61. "rgb"
  62. );
  63. #endif