X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdemo.cpp;h=c5456853c55495fc41665b2813af2abfa0bb8f22;hb=e2032cbdb8d2ae52e42d400c5cc90ddad844f665;hp=2072f297bc9ca1e84edeb9a3f5bd81cd17abcbee;hpb=423a982cb00a9ec74fc154d729cbf88518adc6d8;p=libs%2Fdemoscene.git diff --git a/source/demo.cpp b/source/demo.cpp index 2072f29..c545685 100644 --- a/source/demo.cpp +++ b/source/demo.cpp @@ -1,5 +1,6 @@ #include #include "demo.h" +#include "stage.h" using namespace std; using namespace Msp; @@ -7,6 +8,7 @@ using namespace Msp; Demo::Demo(Graphics::Window &window, Graphics::GLContext &gl_ctx, DataFile::Collection &r): resources(r), view(window, gl_ctx), + anim_action(anim_player), music_source(0), streamer(0), music_io(0), @@ -14,6 +16,7 @@ Demo::Demo(Graphics::Window &window, Graphics::GLContext &gl_ctx, DataFile::Coll { things["window"] = static_cast(&view); + sequencer.add_static_action(anim_action); sequencer.signal_finished.connect(signal_finished); } @@ -25,6 +28,12 @@ Demo::~Demo() delete music_source; } +void Demo::add_stage(const std::string &name, Stage &stage) +{ + things[name] = &stage; + stage.add_things(things, name+"."); +} + void Demo::set_fixed_framerate(float fps) { frame_interval = Time::sec/fps; @@ -77,3 +86,13 @@ void Demo::seek(const Time::TimeDelta &pos) { sequencer.seek(pos*sequencer.get_beats_per_minute()/Time::min); } + + +Demo::AnimationAction::AnimationAction(GL::AnimationPlayer &p): + player(p) +{ } + +void Demo::AnimationAction::tick(float, float d) +{ + player.tick(d*Time::sec); +}