Commit graph

15135 commits

Author SHA1 Message Date
Robin Gareus
8d98dfe8fc
Remove debug output 2019-07-18 15:52:25 +02:00
Robin Gareus
214a92fcd5
Add Lua bindings to query&reset x-run count 2019-07-18 05:22:17 +02:00
Robin Gareus
45f1220aa5
Fix deadlock when removing routes (initialization issues)
_setup_chain needs to point to the unused graph-chain, and not
_current_chain. Otherwise Graph::clear_other_chain() waits forever.
2019-07-15 00:55:51 +02:00
Robin Gareus
c6740b7cb0
Prevent adding a 2nd MIDI input/output port
Ardour's Tracks/Routes are not capable of handing more than one
MIDI port per per route properly. Most Plugin standards don't support
this either.

However, at this point in time IO::ensure_ports_locked() is not
limited by this restriction!

It is still possible to indirectly add a 2nd MIDI data-buffer
and output-port via plugin pin-management, or simply plugins with
two MIDI output ports when using flexible I/O.
2019-07-11 22:57:34 +02:00
Robin Gareus
b7369f421f
Re-work process-graph to use lock-free queues
This removes the trigger_mutex which was used for exclusive access
of the work-queue for concurrent processing.
2019-07-10 20:39:27 +02:00
Robin Gareus
929ecf622b
Add lock-free multiple producer multiple reader queue 2019-07-10 20:21:06 +02:00
Robin Gareus
57c3eaacf6
Fix process-thread naming 2019-07-10 20:20:44 +02:00
Robin Gareus
e85c10256b
Add Lua binding to set/create track playlists 2019-07-06 18:09:27 +02:00
Robin Gareus
e76e18af96
Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
Robin Gareus
9cfcb0bd92
Mixbus uses K14 (not K20) master meter by default (see also 297ed001d) 2019-07-02 20:18:26 +02:00
Robin Gareus
db2ed6ade5
Remove unused API -- there is no default backend. 2019-07-02 20:16:56 +02:00
Robin Gareus
297ed001d0
Mixbus/master is always using K20 by default
This only affects the meter-bridge, toolbar and editor track-header
(Mixbus' mixer is always using DPM, which is always enabled).
2019-07-02 16:12:06 +02:00
Robin Gareus
3630113414
LV2 support is not optional since 04ccd328dc 2019-06-24 21:52:27 +02:00
Damien Zammit
a3f8449595 Update to upstream ptformat 777686b (remove strndup && cleanup) 2019-06-24 22:54:45 +10:00
Damien Zammit
0a62d70a43 Revert "Huh?? I can't believe that MSVC doesn't support strndup() !!!"
This reverts commit 1a7a23a5ce.
2019-06-24 22:52:46 +10:00
John Emmas
1a7a23a5ce Huh?? I can't believe that MSVC doesn't support strndup() !!! 2019-06-23 15:52:59 +01:00
Damien Zammit
675759c167 Update references to ptfformat -> ptformat && fix api calls 2019-06-22 17:26:05 +10:00
Damien Zammit
f5524ddf37 ptformat: Update lib from legacy parser to new parser 6240b87 2019-06-22 17:26:05 +10:00
Johannes Mueller
9ddc47204a Some more frame -> sample changes (luabindings.cc) 2019-06-16 01:28:38 +02:00
Robin Gareus
43fe5c0487
Update Push2 level-meter display (use new API)
The meter-type is now implicit set by route/meter-processor, common
to all UIs.
2019-06-09 19:56:33 +02:00
Robin Gareus
cd5b0819bf
Consolidate meter-type state and API
In theory different UIs can show different meter-types, so it
can make sense to maintain the type in different places.
MeterType is a bit-set and PeakMeter implementation provides for this.

However, this is not being used, and the current implementation
was rather fragmented, cross-connected signals to keep types in sync,
allowed inconsistent meter-types in GUI and backend.

MeterType is now kept by meter itself, however it is still
saved/restored as part of the Route state.

N.B. This change breaks the API, various methods have been renamed
for consistency.
2019-06-09 19:56:15 +02:00
Paul Davis
fb2e65fd35 do not set MIDI CC values on locate if control/parameter is set to "Off" 2019-06-05 10:02:39 -06:00
Paul Davis
2c88055ef4 NOOP: whitespace/newline tweak 2019-06-05 10:02:39 -06:00
Robin Gareus
34b671911c
Skip name-suffix for first ALSA sub-device
This fixes an issue when a device has more than one
playback sub-device, but only a single capture sub-device (or vice
versa).
2019-06-04 19:20:26 +02:00
Robin Gareus
3e4f2d0f7a
Fix async peak-meter reset 2019-06-04 14:48:47 +02:00
Robin Gareus
dba3ff5236
Assume default plugin bussing is stereo
This changes fan-out to prefer stereo tarcks unless specified otherwise
by a plugin (LV2 port-groups, or AU busses)
2019-06-03 16:28:10 +02:00
Robin Gareus
f777d8389d
List available ALSA sub-devices
Previously Ardour only listed the first audio sub-device in the
for ALSA and JACK backend device selection dialog.
2019-06-01 15:49:46 +02:00
Johannes Mueller
af875e0edc Potential fix for a race.
Do proper bounds checks and force the use of operator[] () const
2019-05-30 17:33:36 +02:00
Johannes Mueller
16d6791566 Make ContourdesignControlProtocol::_button_actions private again ...
... and add proper bounds checks.
2019-05-30 17:09:33 +02:00
Robin Gareus
8cce89664c
Fix a -Wmaybe-uninitialized (disk-reader, no audio) 2019-05-26 12:56:10 +02:00
Robin Gareus
203b249135
Shuttle Surface: fix linking .dll
For .dll, all references need to be defined at compile/link time
(not runtime). ie. `ld -zdefs`
2019-05-26 12:46:37 +02:00
Robin Gareus
d28dc9ee08
Shuttle Surface: request_factory and MSVC compatible struct 2019-05-25 16:49:19 +02:00
Robin Gareus
3546a7291b
Shuttle Surface: Fix C++ style: use accessor/setter methods
This also fixes C++ compat: no forward declaration of friend classes
(OSX compilation) and C++98 compat (enums are not classes e.g. ActiveState)
2019-05-25 16:49:15 +02:00
Robin Gareus
c97884d257
Add preference to hide LADSPA plugin if LV2 exists 2019-05-25 01:56:23 +02:00
Robin Gareus
02c698ed85
NO-OP: whitespace 2019-05-25 01:20:17 +02:00
Robin Gareus
ce8740cf5e
Fix LADSPA author name (remove padding) 2019-05-24 23:58:00 +02:00
Johannes Mueller
e61c4b692b Use ActionModel also in ContourDesign surface 2019-05-19 16:43:48 +02:00
Johannes Mueller
0c3112aed1 Some frame -> sample changes in UCS2400 2019-05-18 16:36:49 +02:00
Johannes Mueller
b8349069f1 Add support for contourdesign ShuttlePRO v2 and ShuttleXpress 2019-05-18 14:04:38 +02:00
Johannes Mueller
89f39d14f2 Add some options for surfaces to jump in the timeline
* ::jump_by_beats()
* request transport to keep rolling after jump
2019-05-18 13:27:49 +02:00
Robin Gareus
344feccc31
Prefer dedicated c-pointer bindings (can be const) 2019-05-17 12:09:07 +02:00
Robin Gareus
bed2eb2e33
Fix std::list<hared_ptr<>> front/back methods
Shared pointer reference accessors can't be const
2019-05-17 12:09:07 +02:00
Ben Loftis
3e7e89db8f Fix some actions that moved from Common to Editor. 2019-05-13 09:20:17 -05:00
Julien "_FrnchFrgg_" RIVAUD
a4474e95a4 Make the configuration penalty subtler about inputs
Instead of uniformly demote configurations with a non-matching audio
input count (using a penalty offset of 1000), also grade the
impreciseness of the configuration so that those with the nearest input
count are preferred. As for outputs, give a slightly higher handicap to
configuration with too many inputs with regard to the actual audio
inputs that can be fed to the plugin.

POLICY CHANGE: when only imprecise configurations are found the actually
selected one can be different (better) than before this commit.
2019-05-12 22:32:10 +02:00
Julien "_FrnchFrgg_" RIVAUD
fe4d0f67e4 Remove ad-hoc handling of possible_in == 0
Just make the code responsible for possible_in > 0 also handle
possible_in == 0 since it nearly does the same thing.

The only difference is that the possible_in == 0 case, by using
FOUNDCFG(), acted as if possible_in was audio_in. The consolidated code
uses FOUNDCFG_IMPRECISE which will add some penalty to the
configurations where desired_in == possible_in != audio_in.

There is thus a small POLICY CHANGE, but the selected configuration will
stay the same unless a better matching configuration is available.
2019-05-12 22:32:10 +02:00
Julien "_FrnchFrgg_" RIVAUD
3bff40b5b3 Enable overriding the configuration penalty
This relieves exact matches of the need to duplicate the bookeeping done
by FOUNDCFG()
2019-05-12 22:32:10 +02:00
Julien "_FrnchFrgg_" RIVAUD
7a6daab642 Merge input-imprecise pass into the main pass
Still no policy change, since when a configuration is chosen that would
have belonged to the second pass, then its penalty will be increased by
1000 and it will be selected only as last recourse.
2019-05-12 22:32:10 +02:00
Julien "_FrnchFrgg_" RIVAUD
b5218fa38b Introduce a macro for imprecise configurations
It enables only setting the imprecise audio channel count if the
configuration is indeed selected.
2019-05-12 22:32:10 +02:00
Julien "_FrnchFrgg_" RIVAUD
0e0c55c6b5 Merge some cases to avoid duplicated logic
Merge the cases in == -1 and in == -2 since those are both wildcards,
almost symmetric in the AU spec, and handled completely symmetrically by
the code here considering it accepts invalid or unspecified demands.

Also merge the cases in > 0 and in < -2 since they are handled exactly
the same as far as outputs are concerned.

No policy change
2019-05-12 22:32:10 +02:00
Julien "_FrnchFrgg_" RIVAUD
baef462cf4 Replace the exact_match logic by a negative penalty
Instead of doing an initial loop for detection of exact matches, then
letting the following loop set \audio_out yet ignore its value, merge
the two loops but give exact matches a negative penalty so that the
\audio_out value they set won't change afterwards.

No policy change.
2019-05-12 22:32:10 +02:00