Move SimpleExport to libardour, add Lua bindings

This allows to export a session from the commandline tool

```Lua
AudioEngine:set_backend("None (Dummy)", "", "")
s = load_session ("/path/to/session", "snapshot")
assert (s);
e = s:simple_export()
assert (e:check_outputs ())
e:run_export ()
e = nil
```
This commit is contained in:
Robin Gareus 2022-10-21 19:50:26 +02:00
parent 0852f898a3
commit 2e860cd10d
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
6 changed files with 312 additions and 0 deletions

View file

@ -37,6 +37,7 @@
#include "ardour/plugin_manager.h"
#include "ardour/readable.h"
#include "ardour/region_factory.h"
#include "ardour/simple_export.h"
#include "ardour/source_factory.h"
#include "LuaBridge/LuaBridge.h"
@ -534,6 +535,16 @@ ARDOUR::LuaAPI::wait_for_process_callback (size_t n_cycles, int64_t timeout_ms)
return true;
}
int
ARDOUR::LuaAPI::simple_export (lua_State* L)
{
Session* const s = luabridge::Userdata::get <Session> (L, 1, false);
void* ptr = luabridge::UserdataValue<SimpleExport>::place (L);
SimpleExport* se = new (ptr) SimpleExport ();
se->set_session (s);
return 1;
}
void
ARDOUR::LuaAPI::segfault ()
{