#include <cmath>
#include <msp/core/algorithm.h>
#include <msp/core/maputils.h>
+#include "animate.h"
#include "fadeoverlay.h"
#include "sequencer.h"
#include "stage.h"
{
set_beats_per_minute(bpm);
+ register_action_type<Animate>("animate");
register_action_type<FadeOverlay::Fade>("fade");
register_action_type<Stage::UseInView>("use_stage");
+ register_action_type<Stage::SetCamera>("set_camera");
}
void Sequencer::set_beats_per_minute(float bpm)
if(sb<0 || sb>eb)
throw invalid_argument("Sequencer::add_action");
- Segment seq_act;
- seq_act.action = &act;
- seq_act.start_beat = sb;
- seq_act.end_beat = eb;
+ Segment seg;
+ seg.action = &act;
+ seg.start_beat = sb;
+ seg.end_beat = eb;
auto i = find_if(segments, [=](const Segment &s){ return s.start_beat>sb; });
- segments.insert(i, seq_act);
+ segments.insert(i, seg);
}
void Sequencer::start()
void Sequencer::Loader::segment(float start, float end)
{
- SegmentLoader ldr(obj, start, end);
+ SegmentLoader ldr(obj, start, end, demo);
load_sub_with(ldr);
}
demo(d)
{
for(const auto &t: obj.action_types)
- add(t.first, t.second->get_loader_func());
+ add(t.first, t.second->get_def_loader_func());
}
void Sequencer::ActionDefLoader::finished()
}
-Sequencer::SegmentLoader::SegmentLoader(Sequencer &s, float b, float e):
+Sequencer::SegmentLoader::SegmentLoader(Sequencer &s, float b, float e, Demo &d):
ObjectLoader<Sequencer>(s),
start_beat(b),
- end_beat(e)
+ end_beat(e),
+ demo(d)
{
add("apply", &SegmentLoader::apply);
+ for(const auto &t: obj.action_types)
+ add(t.first, t.second->get_loader_func());
}
void Sequencer::SegmentLoader::apply(const string &n)