Use XMLNode::get/set_property API in Tempo/Time related classes
[ardour.git] / libs / ardour / ardour / luaproc.h
index e5c6d157353d2e200f1301047352baea5ba81b8c..2c4f7989455db1c76c4659f65bbf71673c804204 100644 (file)
     675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+/* print runtime and garbage-collection timing statistics */
 //#define WITH_LUAPROC_STATS
-//#define USE_TLSF
+
+/* memory allocation system, default: ReallocPool */
+//#define USE_TLSF // use TLSF instead of ReallocPool
+//#define USE_MALLOC // or plain OS provided realloc (no mlock) -- if USE_TLSF isn't defined
 
 #ifndef __ardour_luaproc_h__
 #define __ardour_luaproc_h__
@@ -121,12 +125,20 @@ public:
        bool has_inline_display () { return _lua_has_inline_display; }
        void setup_lua_inline_gui (LuaState *lua_gui);
 
+       DSP::DspShm* instance_shm () { return &lshm; }
+       LuaTableRef* instance_ref () { return &lref; }
+
 private:
        void find_presets ();
 
        /* END Plugin interface */
+
+public:
+       void set_origin (std::string& path) { _origin = path; }
+
 protected:
        const std::string& script() const { return _script; }
+       const std::string& origin() const { return _origin; }
 
 private:
 #ifdef USE_TLSF
@@ -137,17 +149,18 @@ private:
        LuaState lua;
        luabridge::LuaRef * _lua_dsp;
        std::string _script;
+       std::string _origin;
        std::string _docs;
        bool _lua_does_channelmapping;
        bool _lua_has_inline_display;
 
        void queue_draw () { QueueDraw(); /* EMIT SIGNAL */ }
-       DSP::DspShm* instance_shm () { return &lshm; }
        DSP::DspShm lshm;
 
-       LuaTableRef* instance_ref () { return &lref; }
        LuaTableRef lref;
 
+       boost::weak_ptr<Route> route () const;
+
        void init ();
        bool load_script ();
        void lua_print (std::string s);
@@ -169,6 +182,8 @@ private:
        ChanCount _configured_in;
        ChanCount _configured_out;
 
+       bool      _configured;
+
        ChanCount _selected_in;
        ChanCount _selected_out;