update lua bindings for API changes
authorRobin Gareus <robin@gareus.org>
Tue, 31 May 2016 21:35:00 +0000 (23:35 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 31 May 2016 21:51:22 +0000 (23:51 +0200)
luaBridge implicit inheritance uses a single direct parent
(other parents object need casts). This motivates
 Route -> Stripable -> SessionObject

libs/ardour/ardour/route.h
libs/ardour/luabindings.cc
libs/ardour/route.cc

index ab50403842c0f77ebec7a73a2b83b7c84bdb119f..195421b231729ab605ec4d917af0d8febf0477d7 100644 (file)
@@ -84,8 +84,8 @@ class SoloIsolateControl;
 class PhaseControl;
 class MonitorControl;
 
-class LIBARDOUR_API Route : public GraphNode,
-                            public Stripable,
+class LIBARDOUR_API Route : public Stripable,
+                            public GraphNode,
                             public Soloable,
                             public Muteable,
                             public Monitorable,
index aa944254892f59249a8c7672ef0fa434f1a80b88..3a1c031e9b6a5b71e1bec9ffaea7eab6a64a1871 100644 (file)
@@ -53,6 +53,7 @@
 #include "ardour/session.h"
 #include "ardour/session_object.h"
 #include "ardour/sidechain.h"
+#include "ardour/stripable.h"
 #include "ardour/track.h"
 #include "ardour/tempo.h"
 
@@ -515,7 +516,16 @@ LuaBindings::common (lua_State* L)
                // stub RouteGroup* is needed for new_audio_track()
                .endClass ()
 
-               .deriveWSPtrClass <Route, SessionObject> ("Route")
+               .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
+               .addCast<Route> ("to_route")
+               .addFunction ("is_auditioner", &Stripable::is_auditioner)
+               .addFunction ("is_master", &Stripable::is_master)
+               .addFunction ("is_monitor", &Stripable::is_monitor)
+               .addFunction ("is_hidden", &Stripable::is_hidden)
+               .addFunction ("is_selected", &Stripable::is_selected)
+               .endClass ()
+
+               .deriveWSPtrClass <Route, Stripable> ("Route")
                .addCast<Track> ("to_track")
                .addFunction ("set_name", &Route::set_name)
                .addFunction ("comment", &Route::comment)
@@ -583,10 +593,6 @@ LuaBindings::common (lua_State* L)
                .addCast<MidiTrack> ("to_midi_track")
                .addFunction ("set_name", &Track::set_name)
                .addFunction ("can_record", &Track::can_record)
-               //.addFunction ("record_enabled", &Track::record_enabled)
-               //.addFunction ("record_safe", &Track::record_safe)
-               //.addFunction ("set_record_enabled", &Track::set_record_enabled)
-               //.addFunction ("set_record_safe", &Track::set_record_safe)
                .addFunction ("bounceable", &Track::bounceable)
                .addFunction ("bounce", &Track::bounce)
                .addFunction ("bounce_range", &Track::bounce_range)
@@ -1024,7 +1030,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("actively_recording", &Session::actively_recording)
                .addFunction ("new_audio_track", &Session::new_audio_track)
                .addFunction ("new_audio_route", &Session::new_audio_route)
-               //.addFunction ("new_midi_track", &Session::new_midi_track)
+               .addFunction ("new_midi_track", &Session::new_midi_track)
                .addFunction ("new_midi_route", &Session::new_midi_route)
                .addFunction ("get_routes", &Session::get_routes)
                .addFunction ("get_tracks", &Session::get_tracks)
@@ -1033,7 +1039,9 @@ LuaBindings::common (lua_State* L)
                .addFunction ("record_status", &Session::record_status)
                .addFunction ("route_by_id", &Session::route_by_id)
                .addFunction ("route_by_name", &Session::route_by_name)
-               // STRIPABLE .addFunction ("route_by_remote_id", &Session::route_by_remote_id)
+               .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
+               .addFunction ("get_remote_nth_route", &Session::get_remote_nth_route)
+               .addFunction ("route_by_selected_count", &Session::route_by_selected_count)
                .addFunction ("track_by_diskstream_id", &Session::track_by_diskstream_id)
                .addFunction ("source_by_id", &Session::source_by_id)
                .addFunction ("controllable_by_id", &Session::controllable_by_id)
index 5335d69502c258970b91d1dc012ace0e05c79c0a..5f98fba1fe47cf3a21b294fab37e65f482698c32 100644 (file)
@@ -84,8 +84,8 @@ PBD::Signal3<int,boost::shared_ptr<Route>, boost::shared_ptr<PluginInsert>, Rout
 
 /** Base class for all routable/mixable objects (tracks and busses) */
 Route::Route (Session& sess, string name, PresentationInfo::Flag flag, DataType default_type)
-       : GraphNode (sess._process_graph)
-       , Stripable (sess, name, PresentationInfo (flag))
+       : Stripable (sess, name, PresentationInfo (flag))
+       , GraphNode (sess._process_graph)
        , Muteable (sess, name)
        , Automatable (sess)
        , _active (true)