Commit graph

13304 commits

Author SHA1 Message Date
Johannes Mueller
bd4db1e151 Remove the template description XMLNode before saving the template
... to avoid that the new template description is concatenated to the old one.
2017-08-20 21:09:30 +02:00
Johannes Mueller
419b1c1cfd Extract the route template descriptions
... and put them into the template info list.
2017-08-20 21:09:30 +02:00
Johannes Mueller
245154d06a Let user add a route template description on saving route templates 2017-08-20 21:09:30 +02:00
Johannes Mueller
ae51d5fd4e Let the user add a template description on saving session templates 2017-08-20 21:09:30 +02:00
Johannes Mueller
908369ab3e Save template description at toplevel rather than in <Metadata/> 2017-08-20 21:09:30 +02:00
Robin Gareus
c399954148 Don't use references for constant c-types
This fixes various Lua-scripts: There are no explicit bindings to
turn int64_t, uint64_t into a const reference.

Besides it doesn't make sense to use a reference for constant _t that can
be directly loaded in CPU register or on the stack.
2017-08-20 19:02:17 +02:00
Robin Gareus
fb745cc5a8 Lua may call C++ functions with throw. Catch them 2017-08-19 01:06:44 +02:00
Robin Gareus
be6abce398 Add Lua binding to un/assign VCAs 2017-08-18 22:00:24 +02:00
Robin Gareus
08c1300718 Remove old destructive API (non layered is a dynamic mode) 2/2 2017-08-18 21:12:45 +02:00
Robin Gareus
e0a83a758e Redesign Session+Route Template Meta Script API
Remove special-cased script types. Allow Action-Scripts to be re-used
for session-setup or route-templates.
2017-08-18 20:42:55 +02:00
Robin Gareus
e951e68780 Add luaRef is Boolean 2017-08-18 20:42:55 +02:00
Paul Davis
3421c6e814 NO-OP: whitespace 2017-08-18 09:42:04 -04:00
Paul Davis
f84bebbb30 strip <Actions>/ from displayed path when printing bindings to HTML 2017-08-18 09:42:04 -04:00
Robin Gareus
5ed68fd2f8 NO-OP: whitespace 2017-08-18 00:11:55 +02:00
Robin Gareus
38a029c069 Expose Lua bindings to create/delete VCAs 2017-08-18 00:11:55 +02:00
Ben Loftis
6c49d9555a Track Templates: initial lua backend support. 2017-08-17 13:31:45 -05:00
Robin Gareus
5f0279ab06 Catch some exceptions during session loading. 2017-08-17 19:28:14 +02:00
Robin Gareus
22055a07c0 Check major session file format version.
Don't allow to load sessions created with a newer version of Ardour
with an old one (no forward compatibility).
2017-08-17 18:32:49 +02:00
Robin Gareus
a4ee2d3c17 Expose enums used in RCConfig and other missing classes to Lua. 2017-08-17 01:13:39 +02:00
Robin Gareus
76036ae0f3 Fix unit-test data (XML attributes changed) 2017-08-17 01:13:36 +02:00
Robin Gareus
11aa1d60ae Add RCConfiguration Lua Bindings 2017-08-16 00:51:20 +02:00
Robin Gareus
9f87805d95 The Auditioner is not in the Session's RouteList
Remove various checks, add assert() for now (perhaps some old sessions?)
This fixes an off-by one issue when adding tracks (presentation
info order in add_routes_inner)
2017-08-16 00:51:20 +02:00
Robin Gareus
6ec133ebde Separate "add master bus" (and add Lua bindings)
This is in preparation for "advanced session setup" allow a SessionSetup
Lua script to create the master-bus.
2017-08-16 00:51:20 +02:00
Robin Gareus
1d8c7ef37a Clean up BusProfile:
* requested_physical_in/out was unused
 * input/output Autoconnect just overrides Preference/Config
   (can be done by a template script)
 * master_out_channels is kept for compatibility (allow to create
   new empty session)
2017-08-16 00:51:20 +02:00
Ben Loftis
47d86cf54d Change the template pulldown menu into a tree list. Populate the Description view when a template is selected. 2017-08-14 16:14:42 -05:00
Ben Loftis
0a0eec2adc Session Metadata: add a Description field.
* This is a multi-line text field.
* If the session is a template, we might show this in the New Session dialog.
2017-08-14 14:08:17 -05:00
Paul Davis
8402537493 use a lock to set/get AutomationList automation state
It isn't 100% clear that we should use the list's data lock, but it seems quite likely
that this is the correct design, because of the interlock between data being present
and automation state
2017-08-12 14:40:21 -04:00
Robin Gareus
acd73a9bf8 yet another Windows build fix (LV2 preset 89475b2c9) 2017-08-11 17:33:44 +02:00
Robin Gareus
ee839bda3d Fix Windows builds (amend 89475b2c) 2017-08-11 17:19:45 +02:00
Robin Gareus
89475b2c95 Fix LV2 Preset path for window 2017-08-11 16:54:39 +02:00
Robin Gareus
62ce5465ca Prepare for templates w/description 2017-08-11 15:24:05 +02:00
Robin Gareus
e3edbcb806 Add a new script type for meta-templates: SessionSetup 2017-08-11 15:24:05 +02:00
Len Ovens
6ad4379b4d OSC: fix issue #7444 send fader position/gain even when 0. 2017-08-10 08:50:46 -07:00
Robin Gareus
d2d660521e Save sample-rate for sessions created from templates 2017-08-10 02:26:19 +02:00
Robin Gareus
e983e08f1d remove old PBD::SystemExec bindings (Windows classkeys) 2017-08-10 02:26:14 +02:00
Robin Gareus
8eb3b9d34b Add a Lua SetSession signal/hook 2017-08-10 02:25:58 +02:00
Robin Gareus
0191a9c4c2 Centralize Lua sandboxing 2017-08-10 02:25:49 +02:00
Robin Gareus
bbc8c1354e Separate set_toggleaction_state () API
Prepare for a method consistent with access_action():
* separate group + action names
* no action string parsing overhead.
* no fatal, abort () call for invalid actions
2017-08-09 16:29:24 +02:00
Robin Gareus
e1a29c4e46 Fix windows builds (amend 0c4e0503) 2017-08-09 16:22:23 +02:00
Robin Gareus
0c4e0503b4 SystemExec Lua bindings (vfork, fire+forget) 2017-08-08 23:27:47 +02:00
Robin Gareus
26dc287c00 Fix non-buffered PA backend. Wait for backend to become active
This hopefully fixes an issue with port-registration (new session)
being skipped because PortAudioBackend::available() still false
until the first callback.
2017-08-07 23:23:39 +02:00
Robin Gareus
7235d9751b Add debug-msg for port-handle registration 2017-08-07 23:03:08 +02:00
Robin Gareus
fd6377a5af PortAudio: skip process callbacks until ports are established 2017-08-07 19:27:37 +02:00
Robin Gareus
518cf6045c Revert "Work around a Windows crash (for now)"
This reverts commit 4f2dc77f6f.
2017-08-07 19:26:06 +02:00
Robin Gareus
4f2dc77f6f Work around a Windows crash (for now)
The root-cause is likely PortAudio backend specific async
port-registration, re-establish ports after session creation and
after the first callback and it's apparently a race-condition:
crash is not 100% reproducible.


#10 0x00007ffb156df18a in msvcrt!abort () from C:\Windows\System32\msvcrt.dll
#11 0x0000000012597832 in _wassert (_Message=_Message@entry=0x2eaf96f0 L"_port_handle",
    _File=0x2 <error: Cannot access memory at address 0x2>, _File@entry=0x346a1430 L"../libs/ardour/audio_port.cc",
    _Line=80) at ../../mingw-w64-crt/misc/wassert.c:54
#12 0x00000000125978e8 in _assert (_Message=0x1282f7e9 "_port_handle",
    _File=0x1282f7a0 "../libs/ardour/audio_port.cc", _Line=80) at ../../mingw-w64-crt/misc/wassert.c:30
#13 0x00000000120d1a51 in ARDOUR::AudioPort::get_audio_buffer (this=0x34a95a70, nframes=256)
    at ../libs/ardour/audio_port.cc:80
#14 0x00000000126724f9 in ARDOUR::AudioPort::get_buffer (this=<optimized out>, nframes=<optimized out>)
    at ../libs/ardour/ardour/audio_port.h:43
#15 0x0000000012435421 in ARDOUR::Session::ltc_tx_send_time_code_for_cycle (this=this@entry=0x37666310,
    start_frame=0, end_frame=end_frame@entry=256, target_speed=0, current_speed=0, nframes=nframes@entry=256)
    at ../libs/ardour/session_ltc.cc:180
#16 0x000000001245209f in ARDOUR::Session::no_roll (this=this@entry=0x37666310, nframes=256)
    at ../libs/ardour/session_process.cc:145
#17 0x0000000012453051 in ARDOUR::Session::fail_roll (this=this@entry=0x37666310, nframes=<optimized out>)
    at ../libs/ardour/session_process.cc:128
#18 0x0000000012459ebd in ARDOUR::Session::process_without_events (this=this@entry=0x37666310,
    nframes=nframes@entry=256) at ../libs/ardour/session_process.cc:897
#19 0x000000001245a462 in ARDOUR::Session::process_with_events (this=0x37666310, nframes=256)
    at ../libs/ardour/session_process.cc:425
#20 0x0000000012451bc5 in ARDOUR::Session::process (this=0x37666310, nframes=nframes@entry=256)
    at ../libs/ardour/session_process.cc:78
#21 0x00000000120e79fd in ARDOUR::AudioEngine::process_callback (this=0x23316e30, nframes=256)
    at ../libs/ardour/audioengine.cc:376
#22 0x00000000285390fe in ARDOUR::PortAudioBackend::blocking_process_main (this=this@entry=0x29e67750,
    interleaved_input_data=interleaved_input_data@entry=0x115e8790,
    interleaved_output_data=interleaved_output_data@entry=0x115e0050)
    at ../libs/backends/portaudio/portaudio_backend.cc:1962
#23 0x0000000028539b75 in ARDOUR::PortAudioBackend::process_callback (this=this@entry=0x29e67750, input=0x115e8790,
    output=0x115e0050, frame_count=<optimized out>, timeInfo=0x3d17fd70, statusFlags=statusFlags@entry=0)
    at ../libs/backends/portaudio/portaudio_backend.cc:775
#24 0x0000000028539c16 in ARDOUR::PortAudioBackend::portaudio_callback (input=<optimized out>,
    output=<optimized out>, frame_count=<optimized out>, time_info=<optimized out>, status_flags=0,
    user_data=0x29e67750) at ../libs/backends/portaudio/portaudio_backend.cc:721
#25 0x00000000632c528f in NonAdaptingProcess () from C:\Program Files\Mixbus32C-4\bin\libportaudio-2.dll
#26 0x00000000632c73b2 in PaUtil_EndBufferProcessing () from C:\Program Files\Mixbus32C-4\bin\libportaudio-2.dll
#27 0x00000000632d129c in ProcessingThreadProc () from C:\Program Files\Mixbus32C-4\bin\libportaudio-2.dll
2017-08-07 17:39:28 +02:00
Robin Gareus
ffcb0af8bc Fix Windows builds (amend 7009ff03) 2017-08-07 13:58:56 +02:00
Robin Gareus
7e3a286627 fix a -Wattributes 2017-08-07 13:58:05 +02:00
Robin Gareus
4994bc4fb1 Explicitly initialize parent in the copy constructor 2017-08-07 13:57:49 +02:00
Robin Gareus
29cc1f06b6 space matters 2017-08-07 05:07:19 +02:00
Robin Gareus
e3690cf653 Add Lua Bindings to clone/copy regions 2017-08-07 03:08:36 +02:00