V6CctCommandHandler.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include <V6CctCommandHandler.h>
  2. bool V6CctCommandHandler::handlePreset(
  3. MiLightClient* client,
  4. uint8_t commandLsb,
  5. uint32_t commandArg)
  6. {
  7. return false;
  8. }
  9. bool V6CctCommandHandler::handleCommand(
  10. MiLightClient* client,
  11. uint32_t command,
  12. uint32_t commandArg)
  13. {
  14. const uint8_t cmd = command & 0x7F;
  15. const uint8_t arg = commandArg >> 24;
  16. client->setHeld((command & 0x80) == 0x80);
  17. if (cmd == V2_CCT_COMMAND_PREFIX) {
  18. switch (arg) {
  19. case V2_CCT_ON:
  20. client->updateStatus(ON);
  21. break;
  22. case V2_CCT_OFF:
  23. client->updateStatus(OFF);
  24. break;
  25. case V2_CCT_BRIGHTNESS_DOWN:
  26. client->decreaseBrightness();
  27. break;
  28. case V2_CCT_BRIGHTNESS_UP:
  29. client->increaseBrightness();
  30. break;
  31. case V2_CCT_TEMPERATURE_DOWN:
  32. client->decreaseTemperature();
  33. break;
  34. case V2_CCT_TEMPERATURE_UP:
  35. client->increaseTemperature();
  36. break;
  37. case V2_CCT_NIGHT_LIGHT:
  38. client->enableNightMode();
  39. break;
  40. default:
  41. return false;
  42. }
  43. return true;
  44. }
  45. return false;
  46. }