Commit graph

12944 commits

Author SHA1 Message Date
Tim Mayberry
454b2d4e69 Use PBD string conversion functions in PBD::ID instead of snprintf
Keep ID::print in place for now and replace usage in subsequent commit to
minimize changes
2017-04-19 07:49:58 +10:00
Tim Mayberry
e31f242836 Add missing <iostream> header include
This will be required for subsequent commits that remove inclusion of
<iostream> from some shared headers.
2017-04-19 07:49:58 +10:00
Tim Mayberry
13bfd1527a Make boolean string values 0 and 1 to maintain backwards compatibility
I would prefer "yes" and "no" as it distinguishes boolean values from numeric
but using "yes and "no" results in PBD::Property<T>::from_string failing to
parse the correct values when opening in an older Ardour version as there is no
specialization for bool.

Using 0 and 1 also results in less change to the Session file.
2017-04-19 07:49:57 +10:00
Robin Gareus
362303f793 FP8: Fix sort-order 2017-04-18 16:09:44 +02:00
Paul Davis
a372fcbe51 prevent crash when loading midi port info about ports that no longer exist 2017-04-18 14:22:51 +01:00
Robin Gareus
5dce10500c FP8: handle backend changes + reconnect
When the backend is dropped or changed, on engine-restart
the connection_handler() re-establishes already connected ports.
There's no disconnect when the backend dies or is hard-stopped.
2017-04-18 15:14:00 +02:00
Robin Gareus
3243e17c71 FP8: allow to re-initialize the Strips w/o restart 2017-04-18 15:01:54 +02:00
Robin Gareus
bce08cf4f3 FP8: experiment with selection-mode 2017-04-18 13:39:42 +02:00
Robin Gareus
629b5e0446 clear + re-init faderport at disconnect 2017-04-18 03:20:33 +02:00
Ben Loftis
dbb3c47eee Only check active_state when potentially skipping the route processing.
In the past, we skipped processing if the routes had no inputs or outputs.
But:
  A route with a generator plugin should work even if it has no inputs.
  A route with "sends" should work even if it has no outputs.
2017-04-17 19:36:31 -05:00
Robin Gareus
8e5a972a24 Managed to trigger an assert()
Create new Mixbus session, initially incrementally adding Busses to
the session triggers a series of "assign_stripables()"
2017-04-17 23:50:11 +02:00
Robin Gareus
d6b36a13a1 Flush processor (re-activate) on route active change
(flush reverb tails etc)

PS. That comment "from RT audio thread" was wrong.
Route::flush_processors () is called from flush_all_inserts()
from Session::non_realtime_stop() which is not in rt-context.
Besides, the processor-lock regardless of the process_lock.
2017-04-17 21:15:27 +02:00
Robin Gareus
515c0687b4 amend 649b9e92f, backport MB code 2017-04-17 20:34:18 +02:00
Robin Gareus
649b9e92ff Backport some MB specifics (to avoid -Wmisleading-indentation) 2017-04-17 20:23:07 +02:00
Robin Gareus
91e56ee8ca Update well-known controls (Ardour, Mixbus, 32C) 2017-04-17 20:13:46 +02:00
Robin Gareus
84804f7d90 cont'd FP8 tweaks
* include Mixbus PRE plugin on Mixbusses
* Mixbus master-assign on right-most "S" button
* fix parameter-banking and assignment
* fix typo in 029e963fb (fader range constaint)
2017-04-17 20:06:00 +02:00
Tim Mayberry
272e02b6c8 Fix string-convert tests for Windows and hopefully macOS/OS X
Tests requires a locale installed on the host that uses a comma as the decimal
mark/point.
2017-04-17 13:21:02 +10:00
Robin Gareus
c6747c9325 NO-OP: whitespace 2017-04-17 01:50:12 +02:00
Robin Gareus
3d0366d46b Send unmap event when removing a widget
This fixes a crash when hiding an ArdourCanvas Item VCA which
is about to display a tooltip.
2017-04-17 01:46:27 +02:00
Robin Gareus
aff92a019d Stop tooltip timeout when a canvas-widget or item is hidden. 2017-04-17 01:45:25 +02:00
Robin Gareus
976e03c15c Fix crashes with empty route-lists e.g. mute_release w/o routes 2017-04-16 23:48:49 +02:00
Robin Gareus
029e963fb5 FP8: limit fader range
In case of VCA masters or otherwise the value can exceed the max
+6dB and internal_to_interface() returns a value > 1.0 which cannot
be represented on the physical fader (MIDI &0x7f wraps)
2017-04-16 23:48:06 +02:00
Robin Gareus
55cd96df8d Clean up after generic MIDI surface -- #7311
When there are some non-released MIDIControllables, signal are still
delivered to the objects, even if there's no surface thread to handle
the signals anymore.
2017-04-16 19:06:17 +02:00
Robin Gareus
2e1a884d6e Fix Doxygen syntax (amend/revert f1a4767ac)
1st line after /**  brief description.
Doxygen is used for Ardour's online source doc and the Lua class reference.
2017-04-16 17:26:58 +02:00
Robin Gareus
67f2e4b866 FP8: add metronome level reset 2017-04-16 17:18:23 +02:00
John Emmas
f18f7dca43 Accommodate newly introduced source(s) in our MSVC project (libpbd) 2017-04-16 12:53:11 +01:00
Tim Mayberry
c634daef6a Add locale independent and thread safe string conversion API with tests
All conversions are performed as if in the "C" locale but without actually
changing locale.

This is a wrapper around printf/sscanf for int types which aren't affected by
locale and uses glib functions g_ascii_strtod and g_ascii_dtostr for
float/double types.

My first attempt at this used std::stringstream and
ios::imbue(std::locale::classic()) as it should be thread safe, but testing
shows it is not for gcc/mingw-w64 on Windows, and possibly also some versions
of macOS/OS X.

Use "yes" and "no" when converting a boolean in PBD::string_to<bool> as this
seems to be the convention used throughout libardour which will allow using
string_to<bool> in those cases.

Add accepted bool string values from PBD::string_is_affirmative to
PBD::string_to<bool>

Mark strings in pbd/string_convert.cc as not for translation

Add u/int16_t string conversions to pbd/string_convert.h and tests

Add DEBUG_TRACE output on conversion errors

Add int8_t/uint8_t conversions(using int16/uint16 types) to string_convert.h

Add support for converting an infinity expression to/from string

Follows the C99/C11 standard for strtof/strtod where subject sequence is an
optional plus or minus sign then INF or INFINITY, ignoring case.
2017-04-16 14:02:41 +10:00
Tim Mayberry
78b82b7ff2 Add PBD::DEBUG::StringConvert debug bit
This is for debugging errors with string conversion for cases where errors
aren't handled
2017-04-16 14:02:41 +10:00
Tim Mayberry
58726cedf8 Fix indentation in ARDOUR::Amp::set_state 2017-04-16 14:02:28 +10:00
Tim Mayberry
50ccd15d72 Fix indentation in MonitorProcessor::state 2017-04-16 14:02:20 +10:00
Tim Mayberry
31b4fae88b Fix indentation in ardour/enums.cc 2017-04-16 14:02:12 +10:00
Tim Mayberry
f1a4767ac5 Fix indentation and make comment style consistent in PBD::PropertyList header 2017-04-16 14:02:03 +10:00
Robin Gareus
4d9690930a Silence -Wunused-value 2017-04-16 00:15:53 +02:00
Robin Gareus
8a3d9317bd FaderPort8 details:
* make shift buttons equivalent
* 2 x stop: move to session-start
* RTZ: return to zero (not session-start)
* in Pan mode: encoder controls pan-width (w/o shift)
2017-04-15 21:20:51 +02:00
Robin Gareus
18dcd4d7ff FP8: Configuration UI layout & design (add image, separators) 2017-04-15 15:19:58 +02:00
Robin Gareus
60c12df517 Fondle Port 8
* only start touch on parameters in "Touch" mode.
* fix "mute clear" (also affect mute-automation in touch)
2017-04-14 23:03:31 +02:00
Robin Gareus
74c8ba5c9a FP8: assign toggled plugin-parameters to buttons 2017-04-14 23:03:31 +02:00
Robin Gareus
7197231f4c FP8: Allow binding "Select" to a controllable or functor 2017-04-14 23:03:31 +02:00
Robin Gareus
43d9feabd3 cont'd FP8 refinement & details
* Access pan-width via shift, press encoder to reset
* Add "touch-start" to encoder events
* Show plugin-param value-bar
* Sends & well-known ctrls: follow strip-selection
* map "select" to strip-selection in Sends-mode
* Fader group override (via shift)
* Prev/Next button tweaks.
* consistent enum naming ...
2017-04-14 19:56:42 +02:00
John Emmas
0489b5f302 Accommodate newly introduced source(s) in our MSVC project (libardour) 2017-04-14 11:00:58 +01:00
Robin Gareus
181b85c95c Exclude MB EQ/Comp from visible processors de/activate. 2017-04-14 00:52:43 +02:00
Robin Gareus
ddf7ceaaea Don't A/B en/disable invisible processors, nor MB channelstrip 2017-04-14 00:32:51 +02:00
Robin Gareus
ba2e80134b Convert polarity-invert from older session-formats 2017-04-14 00:19:33 +02:00
Robin Gareus
d43a23fe28 Faderport8 control surface support 2017-04-13 21:21:59 +02:00
Robin Gareus
d64ca9be08 Properly expose "well known" comp_redux output. 2017-04-12 21:14:50 +02:00
Robin Gareus
7a489dd553 Add a ReadOnlyControl parameter abstraction
This allows to pass a sperici Controllable alike instance around without
relying on directly exposing the Plugin instance and parameter-id.
2017-04-12 21:14:46 +02:00
Robin Gareus
64f40c09fa Fix setting Plugin-Owner (route) for analysis plugins 2017-04-12 17:37:26 +02:00
Robin Gareus
85c587d702 fix mb32 well-known EQ (4 bands, different ports) 2017-04-12 15:01:13 +02:00
Robin Gareus
efca1ca0d6 add FileSource Lua Bindings 2017-04-11 01:31:31 +02:00
Robin Gareus
6968c9f909 Drain ALSA raw-midi buffers after 64 bytes
Very long sequence of *concurrent* events may otherwise be truncated
because the backend requests a buffer-size of 64 bytes via
snd_rawmidi_params_set_buffer_size().
2017-04-09 05:03:19 +02:00