From b720d6d730a0d23425ca4c3ef7c156e1c7760ea1 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Wed, 4 Jul 2018 09:29:52 +0100 Subject: plugin architecture --- gui/src/AudioPlotter.h | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) (limited to 'gui/src/AudioPlotter.h') diff --git a/gui/src/AudioPlotter.h b/gui/src/AudioPlotter.h index 716a1dd..c5774ff 100644 --- a/gui/src/AudioPlotter.h +++ b/gui/src/AudioPlotter.h @@ -6,31 +6,45 @@ class AChaosplugin{ public: AChaosBase* plugin; - vector params; + vector > params; string name; AChaosplugin(AChaosBase* _plugin,string _name,vector _params={0,0,0,0,0,0}){ plugin=_plugin; - params=_params; name=_name; + //plugin.setup(); + load_defaults(); + ofLog()<<"constructor "<iv){ + ofLog()<<"iv: "<().set(ofToString(i),i,0,i*5)); + } } }; class Chaos{ public: - vector plugins; + vector plugins; vector > params; int whichplugin; ofParameter name; Chaos(){ - plugins.push_back(AChaosplugin(new AChaosBaker(),"Baker")); - plugins.push_back(AChaosplugin(new AChaosClifford(),"Clifford")); - plugins.push_back(AChaosplugin(new AChaosCollatz(),"Collatz")); - plugins.push_back(AChaosplugin(new AChaosDuffing(),"Duffing")); - plugins.push_back(AChaosplugin(new AChaosGinger(),"Ginger")); - plugins.push_back(AChaosplugin(new AChaosHenon(),"Henon")); + //can only use those that have 2 output params? + //or just make it 1 dimensional? only affect the x axis? + plugins.push_back(new AChaosplugin(new AChaosBaker(),"Baker")); + plugins.push_back(new AChaosplugin(new AChaosClifford(),"Clifford")); + plugins.push_back(new AChaosplugin(new AChaosCollatz(),"Collatz")); + plugins.push_back(new AChaosplugin(new AChaosDuffing(),"Duffing")); + plugins.push_back(new AChaosplugin(new AChaosGinger(),"Ginger")); + plugins.push_back(new AChaosplugin(new AChaosHenon(),"Henon")); whichplugin=0; update_name(); } + AChaosplugin &get(){ + return *plugins[whichplugin]; + } void next(){ whichplugin=(whichplugin+1)%plugins.size(); update_name(); @@ -43,10 +57,11 @@ class Chaos{ update_name(); } void update_name(){ - name=plugins[whichplugin].name; + name=plugins[whichplugin]->name; + //save old params & load new } std::string &get_name(){ - return plugins[whichplugin].name; + return plugins[whichplugin]->name; } }; -- cgit v1.2.3