<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(boost::shared_ptr<ARDOUR::Port>)">disconnect_port</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Port">Port</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, ARDOUR::DataType, ARDOUR::PortFlags, std::vector<std::string >&)">get_backend_ports</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR.PortFlags">PortFlags</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::vector<std::string >&)">get_connections</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_inputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_outputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_inputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_outputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Port">Port</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Port> (ARDOUR::PortManager::*)(std::string const&)">get_port_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-invalid">name</dt><dd class="param-descr-index-invalid"> Full or short name of port </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Corresponding Port or 0.</p></div></div></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(ARDOUR::DataType, std::list<boost::shared_ptr<ARDOUR::Port> >&)">get_ports</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR:PortList">PortList&</a>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.</p></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Route::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:Stripable</h4>
<div class="clear"></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">LuaTable</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">build_filename</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">...</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">build_filename</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Creates a filename from a series of elements using the correct separator for filenames.</p><p> No attempt is made to force the resulting filename to be an absolute path. If the first element is a relative path, the result will be a relative path.</p></div></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">float</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="float (*)(boost::shared_ptr<ARDOUR::PluginInsert>, unsigned int, bool&)">get_plugin_insert_param</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:PluginInsert">PluginInsert</a>, <span class="em">unsigned int</span>, <span class="em">bool&</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> get a plugin control parameter value</p><dl><dt class="param-name-index-1">which</dt><dd class="param-descr-index-1"> control port to query (starting at 0, including ports of type input and output) </dd><dt class="param-name-index-2">ok</dt><dd class="param-descr-index-2"> boolean variable contains true or false after call returned. to be checked by caller before using value. </dd><dt class="param-name-index-invalid">proc</dt><dd class="param-descr-index-invalid"> Plugin-Insert </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> value</p></div></div></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">float</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="float (*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, bool&)">get_processor_param</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <span class="em">bool&</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> get a plugin control parameter value</p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Plugin-Processor </dd><dt class="param-name-index-1">which</dt><dd class="param-descr-index-1"> control port to set (starting at 0, including ports of type input and output)) </dd><dt class="param-name-index-2">ok</dt><dd class="param-descr-index-2"> boolean variable contains true or false after call returned. to be checked by caller before using value. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> value</p></div></div></td></tr>
- <tr><td class="def"><span class="em">LuaTable</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">hsla_to_rgba</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">...</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">hsla_to_rgba</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> A convenience function for colorspace HSL to RGB conversion. All ranges are 0..1</p><p> Example: </p><pre> local r, g, b, a = ARDOUR.LuaAPI.hsla_to_rgba (hue, saturation, luminosity, alpha)</pre><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 4 parameters: red, green, blue, alpha (in range 0..1)</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (*)(ARDOUR::Session*, std::string const&)">new_luaproc</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Session">Session</a>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> create a new Lua Processor (Plugin)</p><dl><dt class="param-name-index-0">s</dt><dd class="param-descr-index-0"> Session Handle </dd><dt class="param-name-index-1">p</dt><dd class="param-descr-index-1"> Identifier or Name of the Processor </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Processor object (may be nil)</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInfo">PluginInfo</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::PluginInfo> (*)(std::string const&, ARDOUR::PluginType)">new_plugin_info</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#ARDOUR.PluginType">PluginType</a>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> search a Plugin</p><dl><dt class="param-name-index-0">id</dt><dd class="param-descr-index-0"> Plugin Name, ID or URI </dd><dt class="param-name-index-1">type</dt><dd class="param-descr-index-1"> Plugin Type </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> PluginInfo or nil if not found</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (*)()">nil_proc</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">LuaTable</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">plugin_automation</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">...</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">plugin_automation</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> A convenience function to get a Automation Lists and ParamaterDescriptor for a given plugin control.</p><p> This is equivalent to the following lua code </p><pre> function (processor, param_id)
local plugininsert = processor:to_insert ()
local plugin = plugininsert:plugin(0)
local acl = ac:alist()
return ac:alist(), ac:to_ctrl():list(), t[2]
end</pre><p> Example usage: get the third input parameter of first plugin on the given route (Ardour starts counting at zero). </p><pre> local al, cl, pd = ARDOUR.LuaAPI.plugin_automation (route:nth_plugin (0), 3)</pre><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 3 parameters: AutomationList, ControlList, ParamaterDescriptor</p></div></div></td></tr>
+ <tr><td class="def"><span class="em">...</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">sample_to_timecode</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Generic conversion from audio sample count to timecode. (TimecodeType, sample-rate, sample-pos)</p></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (*)(boost::shared_ptr<ARDOUR::PluginInsert>, unsigned int, float)">set_plugin_insert_param</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:PluginInsert">PluginInsert</a>, <span class="em">unsigned int</span>, <span class="em">float</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> set a plugin control-input parameter value</p><p> This is a wrapper around set_processor_param which looks up the Processor by plugin-insert.</p><dl><dt class="param-name-index-1">which</dt><dd class="param-descr-index-1"> control-input to set (starting at 0) </dd><dt class="param-name-index-invalid">proc</dt><dd class="param-descr-index-invalid"> Plugin-Insert </dd><dt class="param-name-index-invalid">value</dt><dd class="param-descr-index-invalid"> value to set </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true on success, false on error or out-of-bounds value</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, float)">set_processor_param</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <span class="em">float</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> set a plugin control-input parameter value</p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Plugin-Processor </dd><dt class="param-name-index-1">which</dt><dd class="param-descr-index-1"> control-input to set (starting at 0) </dd><dt class="param-name-index-invalid">value</dt><dd class="param-descr-index-invalid"> value to set </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true on success, false on error or out-of-bounds value</p></div></div></td></tr>
+ <tr><td class="def"><span class="em">...</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">timecode_to_sample</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Generic conversion from timecode to audio sample count. (TimecodeType, sample-rate, hh, mm, ss, ff)</p></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(unsigned long)">usleep</abbr></span><span class="functionargs"> (<span class="em">unsigned long</span>)</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:LuaAPI:Vamp" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:LuaAPI:Vamp</h3>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.</p></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Route::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:Stripable</h4>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::PluginInsert::*)() const">natural_output_streams</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanMapping">ChanMapping</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanMapping (ARDOUR::PluginInsert::*)(unsigned int) const">output_map</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Plugin">Plugin</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Plugin> (ARDOUR::PluginInsert::*)(unsigned int) const">plugin</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PluginInsert::*)()">reset_parameters_to_default</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(ARDOUR::PluginInsert)">sameinstance</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:PluginInsert">PluginInsert</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PluginInsert::*)(unsigned int, ARDOUR::ChanMapping)">set_input_map</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanMapping">ChanMapping</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PluginInsert::*)(unsigned int, ARDOUR::ChanMapping)">set_output_map</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanMapping">ChanMapping</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(boost::shared_ptr<ARDOUR::Port>)">disconnect_port</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Port">Port</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, ARDOUR::DataType, ARDOUR::PortFlags, std::vector<std::string >&)">get_backend_ports</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR.PortFlags">PortFlags</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::vector<std::string >&)">get_connections</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_inputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_outputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>, <span>--MISSING (ARDOUR::MidiPortFlags)--</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_inputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&, ARDOUR::MidiPortFlags, ARDOUR::MidiPortFlags)">get_physical_outputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>, <a class="" href="#ARDOUR.MidiPortFlags">MidiPortFlags</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Port">Port</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Port> (ARDOUR::PortManager::*)(std::string const&)">get_port_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-invalid">name</dt><dd class="param-descr-index-invalid"> Full or short name of port </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Corresponding Port or 0.</p></div></div></td></tr>
<tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(ARDOUR::DataType, std::list<boost::shared_ptr<ARDOUR::Port> >&)">get_ports</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR:PortList">PortList&</a>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.</p></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Route::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:Stripable</h4>
<tr><td class="def"><a class="" href="#ARDOUR:AudioEngine">AudioEngine</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::AudioEngine& (ARDOUR::Session::*)()">engine</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">frame_rate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> "actual" sample rate of session, set by current audioengine rate, pullup/down etc. </p></div></td></tr>
- <tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (ARDOUR::Session::*)() const">frames_per_timecode_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname"><abbr title="unsigned int (ARDOUR::Session::*)() const">get_block_size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Session::*)() const">get_play_loop</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)(unsigned int) const">get_remote_nth_route</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)(std::string) const">route_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)(unsigned int) const">route_by_selected_count</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:RouteGroupList">RouteGroupList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<ARDOUR::RouteGroup* > const& (ARDOUR::Session::*)() const">route_groups</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>...</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">sample_to_timecode_lua</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (ARDOUR::Session::*)() const">samples_per_timecode_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Session::*)(std::string, bool, bool, bool)">save_state</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">bool</span>, <span class="em">bool</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> save session </p><dl><dt class="param-name-index-0">snapshot_name</dt><dd class="param-descr-index-0"> name of the session (use an empty string for the current name) </dd><dt class="param-name-index-1">pending</dt><dd class="param-descr-index-1"> save a 'recovery', not full state (default: false) </dd><dt class="param-name-index-2">switch_to_snapshot</dt><dd class="param-descr-index-2"> switch to given snapshot after saving (default: false) </dd><dt class="param-name-index-3">template_only</dt><dd class="param-descr-index-3"> save a session template (default: false) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> zero on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)()">scripts_changed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Source">Source</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Source> (ARDOUR::Session::*)(PBD::ID const&)">source_by_id</abbr></span><span class="functionargs"> (<a class="" href="#PBD:ID">ID</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:TempoMap">TempoMap</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::TempoMap& (ARDOUR::Session::*)()">tempo_map</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Session::*)() const">timecode_drop_frames</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Session::*)() const">timecode_drop_frames</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">timecode_frames_per_hour</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">timecode_frames_per_hour</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (ARDOUR::Session::*)() const">timecode_frames_per_second</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (ARDOUR::Session::*)() const">timecode_frames_per_second</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>...</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">timecode_to_sample_lua</abbr></span><span class="functionargs"> (<span class="em">--lua--</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Track> (ARDOUR::Session::*)(PBD::ID) const">track_by_diskstream_id</abbr></span><span class="functionargs"> (<a class="" href="#PBD:ID">ID</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">transport_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Session::*)() const">transport_rolling</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.</p></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Route::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:Stripable</h4>
<tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">beats</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">ticks</span></td><td class="fill"></td></tr>
</table>
+<h3 id="Timecode:Time" class="cls class"><abbr title="Class">∁</abbr> Timecode:Time</h3>
+<p class="cdecl"><em>C‡</em>: Timecode::Time</p>
+<div class="clear"></div>
+<table class="classmembers">
+ <tr><th colspan="3">Constructor</th></tr>
+ <tr><td class="def">ℂ</td><td class="decl"><span class="functionname">Timecode.Time</span><span class="functionargs"> (<span class="em">double</span>)</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Data Members</th></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname">drop</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Whether this Time uses dropframe Timecode</p></div></td></tr>
+ <tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">frames</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Timecode frames (not audio samples)</p></div></td></tr>
+ <tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">hours</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">minutes</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname">negative</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname">rate</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Frame rate of this Time</p></div></td></tr>
+ <tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">seconds</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname">subframes</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Typically unused</p></div></td></tr>
+ </table>
<h3 id="Vamp:Plugin" class="cls class"><abbr title="Class">∁</abbr> Vamp:Plugin</h3>
<p class="cdecl"><em>C‡</em>: Vamp::Plugin</p>
<p class="classinfo">is-a: <a class="" href="#Vamp:PluginBase">Vamp:PluginBase</a></p>
<li class="const">ARDOUR.AutomationType.RecSafeAutomation</li>
<li class="const">ARDOUR.AutomationType.TrimAutomation</li>
<li class="const">ARDOUR.AutomationType.PhaseAutomation</li>
+<li class="const">ARDOUR.AutomationType.MidiCCAutomation</li>
+<li class="const">ARDOUR.AutomationType.MidiPgmChangeAutomation</li>
+<li class="const">ARDOUR.AutomationType.MidiPitchBenderAutomation</li>
+<li class="const">ARDOUR.AutomationType.MidiChannelPressureAutomation</li>
+<li class="const">ARDOUR.AutomationType.MidiNotePressureAutomation</li>
+<li class="const">ARDOUR.AutomationType.MidiSystemExclusiveAutomation</li>
</ul>
<h3 id="ARDOUR.SrcQuality" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.SrcQuality</h3>
<ul class="enum">
<li class="const">ARDOUR.PortFlags.CanMonitor</li>
<li class="const">ARDOUR.PortFlags.IsTerminal</li>
</ul>
+<h3 id="ARDOUR.MidiPortFlags" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.MidiPortFlags</h3>
+<ul class="enum">
+<li class="const">ARDOUR.MidiPortFlags.MidiPortMusic</li>
+<li class="const">ARDOUR.MidiPortFlags.MidiPortControl</li>
+<li class="const">ARDOUR.MidiPortFlags.MidiPortSelection</li>
+<li class="const">ARDOUR.MidiPortFlags.MidiPortVirtual</li>
+</ul>
<h3 id="ARDOUR.PlaylistDisposition" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.PlaylistDisposition</h3>
<ul class="enum">
<li class="const">ARDOUR.PlaylistDisposition.CopyPlaylist</li>
<li><a class="" href="#PBD:StatefulPtr">PBD:StatefulPtr</a></li>
<li><a class="" href="#PBD:XMLNode">PBD:XMLNode</a></li>
<li><a class="" href="#Timecode:BBT_TIME">Timecode:BBT_TIME</a></li>
+<li><a class="" href="#Timecode:Time">Timecode:Time</a></li>
<li><a class="" href="#Vamp:Plugin">Vamp:Plugin</a></li>
<li><a class="" href="#Vamp:Plugin:Feature">Vamp:Plugin:Feature</a></li>
<li><a class="" href="#Vamp:Plugin:FeatureList">Vamp:Plugin:FeatureList</a></li>
<li><a class="" href="#Vamp:PluginBase:ParameterList">Vamp:PluginBase:ParameterList</a></li>
<li><a class="" href="#Vamp:RealTime">Vamp:RealTime</a></li>
</ul>
-<!-- 469 / 2153 !-->
+<!-- 476 / 2168 !-->
</div>
-<div class="luafooter">Ardour 5.5-27-ga2166a2 - Mon, 05 Dec 2016 23:50:06 +0100</div>
+<div class="luafooter">Ardour 5.5-66-g4992ed1 - Thu, 08 Dec 2016 13:34:35 +0100</div>