#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"
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);
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>);
CLASSKEYS(ARDOUR::AudioEngine);
CLASSKEYS(void);
CLASSKEYS(float);
+CLASSKEYS(unsigned char);
#endif // end windows special case
.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")
.endClass ()
.deriveClass <Location, PBD::StatefulDestructible> ("Location")
+ .addFunction ("name", &Location::name)
.addFunction ("locked", &Location::locked)
.addFunction ("lock", &Location::lock)
.addFunction ("unlock", &Location::unlock)
.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 ()
.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")
.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 ()
.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")
.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")
.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 ()
.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 ()
.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))
.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)
.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)
.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
}
.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")
.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 ()