13
0
Commit Graph

21967 Commits

Author SHA1 Message Date
5f6cec7c2f Improve placement of Dropdown popups.
When an item in the menu corresponds to the currently displayed choice,
vertically align the item with the button on menu popup.
2016-08-07 17:20:43 +02:00
625240fe30 Use a C++ bool constant 2016-08-07 16:17:39 +02:00
e1da96c472 Improve ArdourDropdown menu position 2016-08-07 16:14:59 +02:00
c803b81a2b Remove a no longer true comment
It should have been removed as part of 539c062ed2
(Make the configuration penalty subtler about inputs).
2016-08-07 10:00:26 +02:00
72964609c9 add a script to multi-split regions 2016-08-06 22:14:24 +02:00
d04ca6d414 a few more Location related lua bindings 2016-08-06 22:12:39 +02:00
43cd3fd760 Use a default configuration instead of bailing out
If the script doesn't provide a dsp_ioconfig() function, or if it does
not return a table of tables, provide an empty table of table as
default, which means a single configuration with default values.
2016-08-06 19:38:09 +02:00
66470b96b7 Remove dsp_has_midi_*() in favor of dsp_ioconfig()
_has_midi_*put members of LuaProc will be set according to the actual
configuration chosen, for configure_io() and run() to use.
2016-08-06 19:38:09 +02:00
82e1ef5fb0 Refuse more configs with unmatched midi in if !imprecise
Since MIDI in should be
2016-08-06 19:38:09 +02:00
79f66a36b4 Take midi into account for penalty computation
Demote configurations if they have mismatched midi in or out with the
same mechanism as for audio, but with lower coefficients so that
mismatched midi has less influence than mismatched audio in selecting
the best configuration.

POLICY CHANGE.
2016-08-06 19:38:09 +02:00
5691abdf03 Remove ad-hoc handling of possible_out == 0
Just refuse configurations without any output at all, and let the
remaining logic take care of selecting configurations with no audio
output if they make sense and there are no better configurations.

POLICY CHANGE: configurations with no output might now be considered
even if they have audio inputs (e.g. a pure pitch detector without audio
passthrough), whereas they were skipped before.
2016-08-06 19:38:09 +02:00
539c062ed2 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.
2016-08-06 19:38:09 +02:00
0f64e5ce84 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 didn't check at
all for audio_in, essentially acting as if possible_in was audio_in.
There is thus a small POLICY CHANGE, but the selected configuration will
stay the same unless a better matching configuration is available.
2016-08-06 19:38:09 +02:00
93aa03ee2a Change column width in macros 2016-08-06 19:38:09 +02:00
8b2c2df840 Set \midi_out when selecting a configuration...
...instead of at the very beginning, so that it can depend on the loop
iteration.
2016-08-06 19:38:09 +02:00
2dc7b5189c Merge pass 2 (imprecise) into pass 1
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.
2016-08-06 19:38:09 +02:00
b90baf2176 Move MIDI filters imprecise handling from 2nd pass to 1st
This doesn't change the policy since configurations are given an
additional 1000 penalty if audio_in != possible_in, and will thus be
trumped by any "precise" configuration (unless the latter has 1000
excess or missing outputs which should be less than likely).
2016-08-06 19:38:09 +02:00
946a99f554 Rearrange condition for pure midi plugins 2016-08-06 19:38:09 +02:00
19b82b8a83 Use FOUNDCFG* instead of setting the configuration by hand 2016-08-06 19:38:09 +02:00
8311607e5c Enable overriding the configuration penalty
This is useful for exact matches that would otherwise need to duplicate
the bookeeping done by FOUNDCFG()
2016-08-06 19:38:09 +02:00
80541de283 Introduce a macro for imprecise configurations
It enables only setting the imprecise audio channel count if the
configuration is indeed selected.
2016-08-06 19:38:09 +02:00
961b9c8be8 Set \imprecise midi channel count in FOUNDCFG
So that it can depend on the actual configuration selected.
2016-08-06 19:38:09 +02:00
08f3ef4ecd Set \imprecise when a configuration is chosen
Instead of setting \imprecise at the end of the loop if a configuration
was found (which clobbered valuable information, see dae2406187), set it
each time a new configuration is chosen.

In the second loop that tries harder, resetting \imprecise also avoids a
previous "imprecise->set(AUDIO, 0)" to last even if another
configuration is chosen later.

Last but not least, it will enable correctly setting the midi input
count hoped for by the configuration.
2016-08-06 19:38:09 +02:00
865ab375d6 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.
2016-08-06 19:38:09 +02:00
f7c3156960 Remove code with no actual effect
That code modifies \imprecise if it is not NULL, but
 - if a configuration is found, \imprecise will be set to in, clobbering
   the tentative changes done here;
 - if a configuration is not found, a last-resort loop will be run that
   will set the same member of \imprecise, also clobbering our changes.

Remove it since it does nothing that is looked at before being
forgotten. A way to get the intended outcome will be introduced later.
2016-08-06 19:38:09 +02:00
0f00d51471 Move a MIDI test in the table handling loop...
...to later enable that condition truthiness to depend on the
loop iteration. The goal here is to prepare for the upcoming rewrite,
without introducing any policy change for now.

There is no behavior change because if all loop iterations are skipped,
then \found will be false, and with \imprecise being null the last
attempt will be skipped and we will return false.
2016-08-06 19:38:09 +02:00
4c7242545b 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.
2016-08-06 19:38:09 +02:00
dde13d288e Remove wrong asserts 2016-08-06 19:38:09 +02:00
b6c3e55372 LuaProc::can_support_io_configuration: don't mix int and int32_t 2016-08-06 19:38:09 +02:00
a992ac0b75 OSC: make sure this is c++98 compatible. 2016-08-06 09:25:57 -07:00
Edgar Aichinger
595684ddf7 update german translation 2016-08-06 16:49:41 +02:00
8da9000cbc C++98 compat for 032139ac3 2016-08-06 14:40:18 +02:00
f0a54d0f9c mark session dirty when changing plugin presets 2016-08-06 14:28:45 +02:00
032139ac30 osc: provide human readable reading for gain. 2016-08-05 19:08:43 -07:00
e78a177dbb OSC: provide human readable level for sends. 2016-08-05 17:24:09 -07:00
Maurizio Berti
384a2fb805 Improve midnam for Waldorf Blofeld 2016-08-05 22:03:11 +02:00
836f48457d add a "Pin Management" button to the plugin UI-header 2016-08-05 02:35:51 +02:00
Nils Philippsen
65c2e089ab workaround changes in glibmm 2.49.x
Glib::RefPtr defines the operator bool() as explicit which breaks
comparisons like "some_ref_ptr == 0" or "... != 0".

https://bugzilla.gnome.org/show_bug.cgi?id=769502
2016-08-04 09:52:22 +02:00
d6fd0486ae add support for VST default values (instantiation time value) 2016-08-03 20:53:49 +02:00
fcf9836da0 add a wrapper to launch the vst-scanner manually 2016-08-03 19:56:22 +02:00
388a8fc9be if we can't determine the gcc4/5 prefer the new gcc5 ABI 2016-08-02 15:51:54 +02:00
34290320f6 include XT* plugins with Ardour bundles and x42 on OSX/Win 2016-08-02 15:51:54 +02:00
3cda7bcbfb ptformat: Decrypt ptf files exported from ptx sessions 2016-08-02 22:25:20 +10:00
480e0b2a5f make Session::get_remote_nth_stripable() ignore hidden stripables unless asked.
this more closely matches the semantics of ye olde get_*_by_rid() from ardour 4.x and earlier
2016-08-01 12:02:30 -04:00
e168664167 Be more tolerant to missing values or errors in io_config() 2016-08-01 09:46:20 +02:00
91414f52e2 Remove redundant condition
Since can_replicate is true at loop start, and in the loop body there is
a break; after every can_replicate=false, there's no point to test its
value in the loop condition.
2016-08-01 09:46:20 +02:00
eb7a364628 Remove duplicate setters that don't affect the outcome
There is no code that read the set value in between the removed line and
its exact counterpart below. There is no similar duplicate in the
AudioUnit code due to the way AudioUnit handles midi.
2016-08-01 09:46:20 +02:00
ae599f0a79 Fix state features array 2016-07-31 22:48:15 -04:00
7c23026515 Support thread-safe LV2 state restoration
The original LV2 state extension required that run() is suspended during
restore().  Ardour violates this rule, which can lead to crashes and
other issues.

The state extension has been updated to allow restoring state in a
thread-safe way by using the worker to enqueue state changes.  This
commit supports that new specification, i.e. supports dropout-free state
restoration properly.

However, the bug with old plugins that do not use this facility is still
not fixed.
2016-07-31 21:59:21 -04:00
ae71e57e24 Support LV2 log trace messages 2016-07-31 20:58:47 -04:00