NOOP: spacing and indentation
[ardour.git] / libs / ardour / luabindings.cc
index 1b6c760d4ddeb7b54aeabad6c929a831e3b5d550..6bacc9b7cacd8ec5fa6d83d06c85ee8e988ab9b7 100644 (file)
@@ -36,6 +36,7 @@
 #include "ardour/chan_mapping.h"
 #include "ardour/dB.h"
 #include "ardour/dsp_filter.h"
+#include "ardour/fluid_synth.h"
 #include "ardour/interthread_info.h"
 #include "ardour/lua_api.h"
 #include "ardour/luabindings.h"
@@ -167,8 +168,10 @@ CLASSKEYS(boost::shared_ptr<ARDOUR::AutomationList>);
 CLASSKEYS(boost::shared_ptr<Evoral::ControlList>);
 CLASSKEYS(ARDOUR::LuaOSC::Address);
 CLASSKEYS(ARDOUR::Session);
+CLASSKEYS(ARDOUR::PeakMeter);
 CLASSKEYS(ARDOUR::BufferSet);
 CLASSKEYS(ARDOUR::ChanMapping);
+CLASSKEYS(ARDOUR::FluidSynth);
 CLASSKEYS(ARDOUR::DSP::DspShm);
 CLASSKEYS(ARDOUR::LuaTableRef);
 CLASSKEYS(PBD::Configuration);
@@ -177,10 +180,14 @@ CLASSKEYS(ARDOUR::SessionConfiguration);
 CLASSKEYS(PBD::ID);
 CLASSKEYS(ARDOUR::Location);
 CLASSKEYS(ARDOUR::PluginInfo);
+CLASSKEYS(ARDOUR::MonitorProcessor);
+CLASSKEYS(ARDOUR::Plugin::PresetRecord);
+CLASSKEYS(std::vector<ARDOUR::Plugin::PresetRecord>);
 CLASSKEYS(PBD::PropertyChange);
 CLASSKEYS(std::vector<std::string>);
 CLASSKEYS(std::list<boost::shared_ptr<ARDOUR::Route> >);
 CLASSKEYS(std::list<boost::shared_ptr<ARDOUR::Port> >);
+CLASSKEYS(std::vector<boost::shared_ptr<ARDOUR::Processor> >);
 CLASSKEYS(boost::shared_ptr<ARDOUR::PluginInfo>);
 CLASSKEYS(boost::shared_ptr<ARDOUR::Region>);
 CLASSKEYS(boost::weak_ptr<ARDOUR::Route>);
@@ -192,6 +199,7 @@ CLASSKEYS(ARDOUR::PortManager);
 CLASSKEYS(ARDOUR::AudioEngine);
 CLASSKEYS(void);
 CLASSKEYS(float);
+CLASSKEYS(unsigned char);
 
 #endif // end windows special case
 
@@ -451,6 +459,16 @@ LuaBindings::common (lua_State* L)
 
                .beginWSPtrClass <PluginInfo> ("PluginInfo")
                .addVoidConstructor ()
+               .addData ("name", &PluginInfo::name, false)
+               .addData ("category", &PluginInfo::category, false)
+               .addData ("creator", &PluginInfo::creator, false)
+               .addData ("path", &PluginInfo::path, false)
+               .addData ("n_inputs", &PluginInfo::n_inputs, false)
+               .addData ("n_outputs", &PluginInfo::n_outputs, false)
+               .addData ("type", &PluginInfo::type, false)
+               .addData ("unique_id", &PluginInfo::unique_id, false)
+               .addFunction ("is_instrument", &PluginInfo::is_instrument)
+               .addFunction ("get_presets", &PluginInfo::get_presets)
                .endClass ()
 
                .beginNamespace ("Route")
@@ -510,6 +528,7 @@ LuaBindings::common (lua_State* L)
                .endClass ()
 
                .deriveClass <Location, PBD::StatefulDestructible> ("Location")
+               .addFunction ("name", &Location::name)
                .addFunction ("locked", &Location::locked)
                .addFunction ("lock", &Location::lock)
                .addFunction ("unlock", &Location::unlock)
@@ -539,6 +558,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("first_mark_after", &Locations::first_mark_after)
                .addFunction ("first_mark_before", &Locations::first_mark_before)
                .addFunction ("first_mark_at", &Locations::mark_at)
+               .addFunction ("remove", &Locations::remove)
                .addRefFunction ("marks_either_side", &Locations::marks_either_side)
                .addRefFunction ("find_all_between", &Locations::find_all_between)
                .endClass ()
@@ -687,6 +707,8 @@ LuaBindings::common (lua_State* L)
                .addFunction ("soloed", &Route::soloed)
                .addFunction ("amp", &Route::amp)
                .addFunction ("trim", &Route::trim)
+               .addFunction ("peak_meter", (boost::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
+               .addFunction ("set_meter_point", &Route::set_meter_point)
                .endClass ()
 
                .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
@@ -806,6 +828,8 @@ LuaBindings::common (lua_State* L)
                .addData ("valid", &Plugin::PresetRecord::valid, false)
                .endClass ()
 
+               .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
+
                .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
                .addFunction ("automation_control", (boost::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
                .endClass ()
@@ -817,6 +841,8 @@ LuaBindings::common (lua_State* L)
                .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
                .endClass ()
 
+               .beginStdVector <boost::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
+
                .deriveWSPtrClass <Processor, SessionObject> ("Processor")
                .addCast<Automatable> ("to_automatable")
                .addCast<PluginInsert> ("to_insert")
@@ -824,8 +850,9 @@ LuaBindings::common (lua_State* L)
                .addCast<IOProcessor> ("to_ioprocessor")
                .addCast<UnknownProcessor> ("to_unknownprocessor")
                .addCast<Amp> ("to_amp")
-#if 0 // those objects are not yet bound
+               .addCast<PeakMeter> ("to_peakmeter")
                .addCast<MonitorProcessor> ("to_monitorprocessor")
+#if 0 // those objects are not yet bound
                .addCast<CapturingProcessor> ("to_capturingprocessor")
                .addCast<DelayLine> ("to_delayline")
                .addCast<PeakMeter> ("to_meter")
@@ -860,6 +887,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("load_preset", &Plugin::load_preset)
                .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
                .addFunction ("get_docs", &Plugin::get_docs)
+               .addFunction ("get_info", &Plugin::get_info)
                .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
                .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
                .endClass ()
@@ -933,6 +961,41 @@ LuaBindings::common (lua_State* L)
                .addFunction ("gain_control", (boost::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
                .endClass ()
 
+               .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
+               .addFunction ("meter_level", &PeakMeter::meter_level)
+               .addFunction ("set_type", &PeakMeter::set_type)
+               .addFunction ("reset_max", &PeakMeter::reset_max)
+               .endClass ()
+
+               .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
+               .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
+               .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
+               .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
+               .addFunction ("set_cut", &MonitorProcessor::set_cut)
+               .addFunction ("set_dim", &MonitorProcessor::set_dim)
+               .addFunction ("set_solo", &MonitorProcessor::set_solo)
+               .addFunction ("set_mono", &MonitorProcessor::set_mono)
+               .addFunction ("dim_level", &MonitorProcessor::dim_level)
+               .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
+               .addFunction ("dimmed", &MonitorProcessor::dimmed)
+               .addFunction ("soloed", &MonitorProcessor::soloed)
+               .addFunction ("inverted", &MonitorProcessor::inverted)
+               .addFunction ("cut", &MonitorProcessor::cut)
+               .addFunction ("cut_all", &MonitorProcessor::cut_all)
+               .addFunction ("dim_all", &MonitorProcessor::dim_all)
+               .addFunction ("mono", &MonitorProcessor::mono)
+               .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
+               .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
+               .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
+               .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
+               .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
+               .addFunction ("dim_control", &MonitorProcessor::dim_control)
+               .addFunction ("cut_control", &MonitorProcessor::cut_control)
+               .addFunction ("mono_control", &MonitorProcessor::mono_control)
+               .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
+               .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
+               .endClass ()
+
                .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
                .endClass ()
 
@@ -1111,6 +1174,31 @@ LuaBindings::common (lua_State* L)
                .addConst ("SrcBest", ARDOUR::SrcQuality(SrcBest))
                .endNamespace ()
 
+               .beginNamespace ("MeterType")
+               .addConst ("MeterMaxSignal", ARDOUR::MeterType(MeterMaxSignal))
+               .addConst ("MeterMaxPeak", ARDOUR::MeterType(MeterMaxPeak))
+               .addConst ("MeterPeak", ARDOUR::MeterType(MeterPeak))
+               .addConst ("MeterKrms", ARDOUR::MeterType(MeterKrms))
+               .addConst ("MeterK20", ARDOUR::MeterType(MeterK20))
+               .addConst ("MeterK14", ARDOUR::MeterType(MeterK14))
+               .addConst ("MeterIEC1DIN", ARDOUR::MeterType(MeterIEC1DIN))
+               .addConst ("MeterIEC1NOR", ARDOUR::MeterType(MeterIEC1NOR))
+               .addConst ("MeterIEC2BBC", ARDOUR::MeterType(MeterIEC2BBC))
+               .addConst ("MeterIEC2EBU", ARDOUR::MeterType(MeterIEC2EBU))
+               .addConst ("MeterVU", ARDOUR::MeterType(MeterVU))
+               .addConst ("MeterK12", ARDOUR::MeterType(MeterK12))
+               .addConst ("MeterPeak0dB", ARDOUR::MeterType(MeterPeak0dB))
+               .addConst ("MeterMCP", ARDOUR::MeterType(MeterMCP))
+               .endNamespace ()
+
+               .beginNamespace ("MeterPoint")
+               .addConst ("MeterInput", ARDOUR::MeterPoint(MeterInput))
+               .addConst ("MeterPreFader", ARDOUR::MeterPoint(MeterPreFader))
+               .addConst ("MeterPostFader", ARDOUR::MeterPoint(MeterPostFader))
+               .addConst ("MeterOutput", ARDOUR::MeterPoint(MeterOutput))
+               .addConst ("MeterCustom", ARDOUR::MeterPoint(MeterCustom))
+               .endNamespace ()
+
                .beginNamespace ("PortFlags")
                .addConst ("IsInput", ARDOUR::PortFlags(IsInput))
                .addConst ("IsOutput", ARDOUR::PortFlags(IsOutput))
@@ -1296,6 +1384,8 @@ LuaBindings::common (lua_State* L)
                .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
                .addFunction ("request_locate", &Session::request_locate)
                .addFunction ("request_stop", &Session::request_stop)
+               .addFunction ("request_play_loop", &Session::request_play_loop)
+               .addFunction ("get_play_loop", &Session::get_play_loop)
                .addFunction ("last_transport_start", &Session::last_transport_start)
                .addFunction ("goto_start", &Session::goto_start)
                .addFunction ("goto_end", &Session::goto_end)
@@ -1311,6 +1401,8 @@ LuaBindings::common (lua_State* L)
                .addFunction ("name", &Session::name)
                .addFunction ("path", &Session::path)
                .addFunction ("record_status", &Session::record_status)
+               .addFunction ("maybe_enable_record", &Session::maybe_enable_record)
+               .addFunction ("disable_record", &Session::disable_record)
                .addFunction ("route_by_id", &Session::route_by_id)
                .addFunction ("route_by_name", &Session::route_by_name)
                .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
@@ -1377,6 +1469,7 @@ LuaBindings::common (lua_State* L)
                .addCFunction ("plugin_automation", ARDOUR::LuaAPI::plugin_automation)
                .addCFunction ("hsla_to_rgba", ARDOUR::LuaAPI::hsla_to_rgba)
                .addFunction ("usleep", Glib::usleep)
+               .addCFunction ("build_filename", ARDOUR::LuaAPI::build_filename)
                .endNamespace () // end LuaAPI
                .endNamespace ();// end ARDOUR
 }
@@ -1449,6 +1542,20 @@ LuaBindings::dsp (lua_State* L)
                .endClass ()
                .endNamespace ();
 
+       luabridge::getGlobalNamespace (L)
+               .beginNamespace ("ARDOUR")
+               .beginClass <FluidSynth> ("FluidSynth")
+               .addConstructor <void (*) (float, int)> ()
+               .addFunction ("load_sf2", &FluidSynth::load_sf2)
+               .addFunction ("synth", &FluidSynth::synth)
+               .addFunction ("midi_event", &FluidSynth::midi_event)
+               .addFunction ("panic", &FluidSynth::panic)
+               .addFunction ("select_program", &FluidSynth::select_program)
+               .addFunction ("program_count", &FluidSynth::program_count)
+               .addFunction ("program_name", &FluidSynth::program_name)
+               .endClass ()
+               .endNamespace ();
+
        luabridge::getGlobalNamespace (L)
                .beginNamespace ("ARDOUR")
                .beginNamespace ("DSP")
@@ -1535,7 +1642,7 @@ LuaBindings::session (lua_State* L)
                .addFunction ("set_dirty", &Session::set_dirty)
                .addFunction ("unknown_processors", &Session::unknown_processors)
 
-               .addFunction<RouteList (Session::*)(uint32_t, const std::string&, const std::string&, PlaylistDisposition)> ("new_route_from_template", &Session::new_route_from_template)
+               .addFunction<RouteList (Session::*)(uint32_t, PresentationInfo::order_t, const std::string&, const std::string&, PlaylistDisposition)> ("new_route_from_template", &Session::new_route_from_template)
                // TODO  session_add_audio_track  session_add_midi_track  session_add_mixed_track
                //.addFunction ("new_midi_track", &Session::new_midi_track)
                .endClass ()