13
0
Commit Graph

16850 Commits

Author SHA1 Message Date
Artem Alimov
5add650871 Add lua methods to control range locations
Method Session:locations():range_starts_at(pos, slop, incl)
to search range by start point with some inaccuracy delta.
Similar to mark_at(pos, slop)

Method Session:locations():add_range(start, end)
to create new range and get it for later changes.
2021-03-07 00:12:13 +03:00
John Emmas
c294932142 When building 'libs/ardour/luabindings/cc' MSVC now requires me to add '/bigobj' to the compiler options 2021-03-06 11:15:39 +00:00
John Emmas
b625461132 Guard some code which isn't currently buildable with VS2019
For some unknown reason, VC++2019 won't let us take the address of std::list::unique() - although other std::list members seem okay. I've spent weeks tracking this down but there's no fix available AFAICT.

I've flagged it up to the MSVC development team - just don't hold your breath !!
2021-03-06 11:12:02 +00:00
John Emmas
73b3ca30bb Add a missing 'const' qualifier to keep VC2019 happy 2021-03-03 12:25:47 +00:00
7143592e50
Fix MonitoringAutomation parameter-range 2021-03-03 02:15:25 +01:00
cb0b152b35
VST3: Fix MSVC related crashes
Do not simply allocate std::vector<> space but also initialize
elements. The data is later accessed as C-pointer array: &var[0].
With most compilers simply reserving space in the vector is
sufficient in order to later access the elements directly.
However actually placing objects in the vector before referencing
them is more correct.
2021-03-02 19:05:58 +01:00
3722b8a94f
VST3: work around plugins with missing controller state
If a plugin implements Vst::IComponent::set_state() but
does not implement Vst::IEditController::setComponentState()
nor dedicated get/setState interface for the IEditController,
querying the parameters using Vst::IEditController::getParamNormalized()
returns values that do reflect the restored state.

In this case the host needs to save/restore all control-parameters,
and ignore values reported by ::getParamNormalized().

This fixes a state save/restore issue with softube.vst3, however
vstpresets are still broken: the GUI (IComponent) is updated,
however the controller isn't.
2021-03-02 03:22:25 +01:00
650f027a9b
Backport VST3 diagnostic pragma
Fixes excessive warnings when compiling on macOS.

This will be overwritten with the identical upstream fix
https://github.com/steinbergmedia/vst3_pluginterfaces/blob/master/base/falignpush.h
with the next tools/update_vst3.sh run
2021-03-01 22:14:38 +01:00
291de1d277
Fix OSX and non GCC builds 2021-03-01 16:20:38 +01:00
b064b3c136 OSC: fix some compiler warnings 2021-02-28 20:01:06 +01:00
0c3eaf188b OSC: liblo compatibility fix
see also 770fd1519c
2021-02-28 20:00:04 +01:00
7195ca20e0
Update weak_libjack - https://github.com/x42/weakjack/
This fixes an issue with recent MSVC causing a compile-error
due to __attribute__((constructor))
2021-02-28 16:27:22 +01:00
770fd1519c
Liblo compat fix
Upstream liblo changed the opaque type `lo_message` from void*
to a custom struct {}.

2c1ef1c682/
2021-02-28 02:25:02 +01:00
81d833e938
Fix Windows builds, declare class-keys for bindings 2021-02-27 16:51:37 +01:00
ace11bd243
Consistency: replace "x-run" with "xrun" (1/2) 2021-02-26 22:22:08 +01:00
1ae8ebf7c0
Fix OSX/PPC builds
monitor_port.cc:164: error: reference to 'AudioBuffer' is ambiguous
candidates are:
 CoreAudio.framework/Headers/CoreAudioTypes.h:106: typedef struct AudioBuffer AudioBuffer
 ardour/audio_buffer.h:34: error: class ARDOUR::AudioBuffer
2021-02-26 13:38:29 +01:00
d2d268263c
Add Lua Bindings to access Bundles 2021-02-26 13:34:24 +01:00
611fff21ae
NO-OP: remove unused variables 2021-02-25 23:57:33 +01:00
4ccad6eae4
Fix pasting processors pre-fader #7416
Previously when using index == 0, a hidden processor
(Recorder or Delayline) would be returned instead of the first
actual processor.
2021-02-25 19:54:12 +01:00
a9192266d0
Only save engine-hints when ardour started the engine 2021-02-25 17:53:45 +01:00
John Emmas
d2cb383965 MSVC changes to support the new code modules (Tabbable API stuff) 2021-02-24 14:32:23 +00:00
dfffec9b58
Allow forcing cue-monitoring 2021-02-24 00:20:21 +01:00
0b00eabb19
Store recently used backend with session
This is in preparation to warn a user in case the session
is loaded with a different device and connections may be lost.
2021-02-23 19:22:22 +01:00
02ba5a7cd1
Remove unused Tabbable tab_title (3/3) 2021-02-23 17:30:26 +01:00
d264cbb21b
Prepare for Tabbable API change (1/3) 2021-02-23 17:22:22 +01:00
6f28d71729
ArdourButton: add flags to force boxy/flat style
Add flags ForceBoxy, ForceFlat for the rectab track header grid
2021-02-22 01:00:06 +01:00
6939470f81
Add input-meter layout preference enum 2021-02-22 01:00:06 +01:00
f7af89aeff
Run input meters, concurrently with cycle-start 2021-02-22 01:00:05 +01:00
2efb7244fa
Remove old (v4.x, v5.0) plugin cache code 2021-02-22 01:00:05 +01:00
ee7a5961b0
Unset plugin-cache-version when cleaning any cache 2021-02-22 01:00:04 +01:00
00d1391ed9
Remember version that was used to scan VST plugins 2021-02-22 01:00:03 +01:00
8497298d73
Custom themable frame container
As opposed to Gtk::Frame, this allows the background color of
the content, inside the frame to be set and follows Ardour theme
options.
2021-02-22 01:00:03 +01:00
f91cb13cce
Facilitate callbacks when Tab is detached/attached 2021-02-22 01:00:01 +01:00
d5a105e777
Keep track of capture duration 2021-02-22 01:00:01 +01:00
78c5537639
Use MonitorReturn for Monitor Bus 2021-02-22 01:00:00 +01:00
114d5f20e6
Add Monitor Return
This is a special case of an Internal Return processor
dedicated to the monitor-section. The main use-case will
be to collect signals from physical ports in a realtime-safe
manner (no connections or Port creation)
2021-02-22 00:59:59 +01:00
b48ce43ade
Implement Input Monitoring 2021-02-22 00:59:59 +01:00
2556f47c2b
Move method exclusive/momentary-solo setup to libardour
This allows to re-use the method in various places, outside of
RouteUI (e.g. control surfaces, recorder page)
2021-02-22 00:59:58 +01:00
f2d2ea4baa
Refactor Solo/Mute release
This is in preparation to move RoueUI::SoloMuteRelease
to libardour to reuse the implementation in various places.
This also prepares the solo logic for exclusive port-monitoring.
2021-02-22 00:59:58 +01:00
ecdaf7136d
Add dedicated Monitor Port
This allows for rt-safe monitoring, collecting data
directly from input-ports without requiring a dedicated connection
or dynamic ARDOUR::AudioPort creation.
2021-02-22 00:59:57 +01:00
1610b0baae
MonitorSection: fade input in/out for AFL/PFL
This slowly un/mutes the direct monitor signal when listen state
changes.

Listen sends already fade in as well. However un-soloing still
hard-removes the listen send path.
2021-02-22 00:59:57 +01:00
18882ef17c
Lua: allow cast of ControlList to AL (for undo)
see also https://discourse.ardour.org/t/write-cc-automation-to-midi-region-via-lua/105512
2021-02-21 19:11:20 +01:00
4a5b355d3d
Handle JACK latency callbacks in sync with process thread #8304
see also b5e479dfc3
2021-02-20 00:46:47 +01:00
3f4e2fa348
ALSA: retain port-connections of slave devices
When the engine is re-started, ports should only be reconnected
when all slave devices are running. Previously those connections
were lost.
2021-02-19 14:03:37 +01:00
8089998eaa
Consistent DiskIO Processor naming
Use a name-prefix when creating the processor just like later
DiskReader::set_name() DiskWriter::set_name() do.
2021-02-19 14:03:32 +01:00
e6bbcd415d
Remove unused methods (to query public latency) 2021-02-19 14:03:27 +01:00
ae1eb0bbad
Backport VST3/musl support -- GH #596
This will be overwritten with the identical upstream fix
https://github.com/steinbergmedia/vst3_pluginterfaces/blob/master/base/fplatform.h#L98
with the next tools/update_vst3.sh run
2021-02-17 20:38:26 +01:00
d05572e14a
Fix round-corner backround of insensitive ArdourWidgets
ArdourButton draws a custom insensitive background, using
the color "gtk_background". This can conflict with gtk's
insensitive background color when using round-corners.
2021-02-14 22:53:18 +01:00
acae86781b
Fix race condition when deleting tracks
In rare cases it can happen that the GUI thread results in
a call to DropReferences(), while the backend (RCU) still has a
reference to the track and processes the track.

However the call to DropReferences, DiskIO processor will
have cleared the pointer to _track, leading to segfaults when
the processor runs.

Since the DIO processor is owned by the track, one cannot directly
pass a shared_ptr<Track>. That would keep the Track around forever.

However the DIO processor cannot exist without a track passing
a reference is acceptable.
2021-02-14 21:43:36 +01:00
dc56272753
Don't create timeline x-run markers by default 2021-02-14 19:44:39 +01:00