V6ComamndHandler.cpp 849 B

12345678910111213141516171819202122232425262728293031
  1. #include <V6CommandHandler.h>
  2. #include <V6RgbCctCommandHandler.h>
  3. #include <V6RgbwCommandHandler.h>
  4. #include <V6RgbCommandHandler.h>
  5. #include <V6CctCommandHandler.h>
  6. #include <Size.h>
  7. V6CommandHandler* V6CommandHandler::ALL_HANDLERS[] = {
  8. new V6RgbCctCommandHandler(0x0800),
  9. new V6RgbwCommandHandler(0x0700),
  10. new V6RgbCommandHandler(0x0500),
  11. new V6CctCommandHandler(0x0100),
  12. };
  13. const size_t V6CommandHandler::NUM_HANDLERS = size(ALL_HANDLERS);
  14. bool V6CommandDemuxer::handleCommand(MiLightClient* client,
  15. uint16_t deviceId,
  16. uint8_t group,
  17. uint32_t command,
  18. uint32_t commandArg)
  19. {
  20. for (size_t i = 0; i < numHandlers; i++) {
  21. if (((handlers[i]->commandId & command) == handlers[i]->commandId)
  22. && handlers[i]->handleCommand(client, deviceId, group, command, commandArg)) {
  23. return true;
  24. }
  25. }
  26. return false;
  27. }