RadioSwitchboard.h 689 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <MiLightRadio.h>
  3. #include <MiLightRemoteConfig.h>
  4. #include <MiLightRadioConfig.h>
  5. #include <MiLightRadioFactory.h>
  6. class RadioSwitchboard {
  7. public:
  8. RadioSwitchboard(
  9. std::shared_ptr<MiLightRadioFactory> radioFactory,
  10. GroupStateStore* stateStore,
  11. Settings& settings
  12. );
  13. std::shared_ptr<MiLightRadio> switchRadio(const MiLightRemoteConfig* remote);
  14. std::shared_ptr<MiLightRadio> switchRadio(size_t index);
  15. size_t getNumRadios() const;
  16. bool available();
  17. void write(uint8_t* packet, size_t length);
  18. size_t read(uint8_t* packet);
  19. private:
  20. std::vector<std::shared_ptr<MiLightRadio>> radios;
  21. std::shared_ptr<MiLightRadio> currentRadio;
  22. };