1 #ifndef MSP_DEMOSCENE_SEQUENCER_H_
2 #define MSP_DEMOSCENE_SEQUENCER_H_
5 #include <sigc++/signal.h>
6 #include <msp/time/timedelta.h>
7 #include <msp/time/timestamp.h>
22 sigc::signal<void> signal_finished;
25 Msp::Time::TimeDelta secs_per_beat;
26 std::vector<Action *> static_actions;
27 std::vector<Segment> segments;
28 std::vector<Segment>::const_iterator begin;
29 std::vector<Segment>::const_iterator end;
35 Sequencer(float = 120.0f);
37 void set_beats_per_minute(float);
38 float get_beats_per_minute() const { return Msp::Time::min/secs_per_beat; }
39 void add_static_action(Action &);
40 void add_action(Action &, float, float);
44 void tick(const Msp::Time::TimeDelta &);
46 void advance_to(float);
47 void update_next_event();
49 float get_current_beat() const { return beat; }