Line data Source code
1 : /*! 2 : * \file 3 : * \brief Class module::Controller_cyclic. 4 : */ 5 : #ifndef CONTROLLER_CYCLIC_HPP_ 6 : #define CONTROLLER_CYCLIC_HPP_ 7 : 8 : #include <cstdint> 9 : 10 : #include "Module/Stateful/Controller/Controller.hpp" 11 : 12 : namespace spu 13 : { 14 : namespace module 15 : { 16 : 17 : class Controller_cyclic : public Controller 18 : { 19 : protected: 20 : size_t n_paths; 21 : 22 : public: 23 : Controller_cyclic(const size_t n_paths, const size_t init_path = 0); 24 98 : virtual ~Controller_cyclic() = default; 25 : virtual Controller_cyclic* clone() const; 26 : 27 : virtual void reset(); 28 : 29 : size_t get_n_paths() const; 30 : void set_n_paths(const size_t n_paths); 31 : void set_path(const size_t path); 32 : 33 : protected: 34 : virtual void _control(int8_t* out, const size_t frame_id); 35 : }; 36 : } 37 : } 38 : 39 : #endif /* CONTROLLER_CYCLIC_HPP_ */