V6ComamndHandler.cpp 778 B

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