13
0
Commit Graph

27608 Commits

Author SHA1 Message Date
d28dc9ee08
Shuttle Surface: request_factory and MSVC compatible struct 2019-05-25 16:49:19 +02:00
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
4cd379f89b
UI integration to conceal LV1 plugins 2019-05-25 01:56:54 +02:00
c97884d257
Add preference to hide LADSPA plugin if LV2 exists 2019-05-25 01:56:23 +02:00
a18c54ce94
Optimize Plugin-Manager: minimize status query 2019-05-25 01:23:39 +02:00
02c698ed85
NO-OP: whitespace 2019-05-25 01:20:17 +02:00
a0b5616c85
Speed up Plugin status changes
Postpone menu rebuild when plugin status changes while the PluginManager
Dialog is visible.

Since the dialog is modal, the menus cannot be used while the dialog
is visible, so updating them once when the dialog is hidden is sufficient.
2019-05-25 00:14:56 +02:00
92cfed14cf
Re-use the Mixer's PluginManager (singleton)
Previously there were three plugin-manager instances (two of which
were never destroyed).

There were also 3 sets of context-menus (favorites, by tag, by author..),
all of which were re-built when plugin stati changed.

Since the Plugin-manager is a modal dialog, it can be re-used in
all contexts (route-ui, monitor-section, mixer).
2019-05-25 00:12:55 +02:00
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
1173ca8d34
Prefer dedicated c-pointer bindings (can be const) 2019-05-17 12:09:08 +02:00
344feccc31
Prefer dedicated c-pointer bindings (can be const) 2019-05-17 12:09:07 +02:00
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
3e7e89db8f Fix some actions that moved from Common to Editor. 2019-05-13 09:20:17 -05:00
8ae4fe1aa9
Prefer to receive URI-lists for DnD
This fixes an issue when embedding external files with ISO or some non
ASCII encodings (KDE/dolphin file-manager does not UTF-8 encode
filenames for plain/text DnD). But does so for URIs.

See also #7253 and previous commit
2019-05-13 15:44:11 +02:00
Jean-Marie Favreau
1846476127
Fix a bug for drag and drop from nautilus/dolphin (more spectific format first in the
list of possible inputs)
2019-05-13 15:44:11 +02:00
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
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
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
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
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
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
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
4d0e122976 Remove never-matching assert
Since previous line just asserted that possible_in > 0, it is
necessarily non-null and the test is always true.
2019-05-12 22:32:10 +02:00
e9f02e28d3 Prefer int32_t to int for channel counts
To match the actual type used by ChanCount. Keep the int type in the
structure passed in by the Audio Unit, because we have no control over
it.
2019-05-12 22:32:10 +02:00
Johannes Mueller
12808c7bd2 Fix for #7755: initialize reverb and chorus of fluidsynth object
The reverb and chorus states in the fluidsynth object need to be initialized to
0 (false) in accordance with the initial state of a-fluidsynth's
v_port[...]. Otherwise they are not updated in the first run() and remain to
fluidsynth's default state 1 (true) even though the plugin's state requires 0.
2019-05-12 21:27:37 +02:00
7e56812c55
Fix ALSA MIDI device naming
The backend will replace the information in the last bracket (IO)
of the name with (In/Out) when creating pretty port-names from the
device-name. -- see replace_name_io().

This fixes an issue with device-name number suffixes in brackets.
2019-05-10 13:21:22 +02:00
9ac18a8e0f
Generic-MIDI ctrl: tweak pitch-bend message behavior
Add support for smoothing, ignore message when controllers are
not in sync to avoid discontinuous jumps.

This is mainly useful for Mackie-like devices that use pitch-bend
messages for faders.

see also https://discourse.ardour.org/t/feature-lazy-sliders/100961
2019-05-09 16:06:00 +02:00
48b960fdef
Notify custom UIs when designated LV2 BPM port changes 2019-05-08 22:04:43 +02:00
f08e2b7eb1
Hide designated [lv2] BPM port from GUI 2019-05-08 21:59:22 +02:00
4185ad80a6
Prepare for Ardour/ALSA multiple identical MIDI devices
The engine setup identifies devices by name (device list is a map<>
with the device-name as key). To support multiple devices with the
same name, the name needs to be unique.

So far this is achieved by simply adding a number suffix starting with
the 2nd device (this allows to re-use configurations).

Ideally we'd use UUIDs or unique device IDs to handle this, and also
somehow clarify which device is which...
2019-05-08 19:58:53 +02:00
ba41ac3cec
Fix solo logic, connection/feed-information
Assume the following connections
      Audio -> Bus1 --aux-send--> Bus2
Prior to this commit, Audio -> Bus2 was marked as "direct feed",
even though the connection was only indirect via an aux-send.
This caused issues with implicit solo and could lead to stuck solo.
2019-05-08 19:51:20 +02:00
ef283ed29c
NO-OP: Unclutter -DGraph 2019-05-08 19:49:01 +02:00
83f484a3ce
Engine Dialog: update MIDI devices, merge settings with state 2019-05-06 01:29:18 +02:00
00e226e3c6
Fix ALSA MIDI latency update call (playback/capture direction mismatch) 2019-05-06 00:14:27 +02:00
ae181f5f66
Fix MIDI latency measurement
* Restore active state of devices after measurement
* Don't manually set latencies for measurement (backend handles this)
* remove superfluous call to stop measurement
2019-05-06 00:13:47 +02:00
837678bdcc
Use pretty-port-names in latency measurement dialog 2019-05-05 18:15:18 +02:00
ddd1cda260
Remove outdated comment 2019-05-05 18:07:21 +02:00
c5346f5c15
Fix add/remove ALSA-MIDI ports bug 2019-05-05 18:06:37 +02:00
5bde8f4456
Tweak initial generic-midi sync/smoothing
"last_controllable_value" is using midi value range (0..127).
It is used to compare received midi-value with the actual controllable
for non-motorized surfaces, and this change allows the first
event to already be in_sync.

Previously the first MIDI-event was usually ignored (because
last_controllable_value was out of bounds or didn't match the 0..127
range.
2019-05-05 02:49:53 +02:00
7e7ca24f8f
Fix midnam, duplicate note-names 2019-05-04 20:54:18 +02:00
fe7e92de52
NO-OP: xmllint --format patchfiles 2019-05-04 17:17:59 +02:00
df50385af9
Fix invalid MIDI Name Docs 2019-05-04 17:13:18 +02:00
611aa4696f
Update Midnam DTD URI, use midi.org
This also fixes some dos/unix line-ending issues along the way.
2019-05-04 16:47:26 +02:00
a7b5fbf17e
Add .dtd to validate midnam 2019-05-04 16:28:15 +02:00
0f24316c3c
Ignore MIDNAM NRPN Controls for the time being
This fixes an issue with Novation_BassStationII.midnam
duplicate assignments CC + NRPN.
2019-05-04 00:07:26 +02:00
757c29ae68
NO-OP: fix whitespace 2019-05-03 23:58:09 +02:00