Commit graph

24594 commits

Author SHA1 Message Date
Paul Davis
4febf7f818 initial code steps for websocket OSC 2017-05-20 02:03:25 +02:00
Paul Davis
76e23d1675 add configure-time test for libwebsockets and command line option (--ws-osc) 2017-05-19 22:31:35 +02:00
Len Ovens
84e1a216bc OSC: Add fake timeout based touch 2017-05-18 15:32:12 -07:00
Ben Loftis
d3738b087e MCP: Fix issue with strip "select" buttons that stayed stuck on.
* Depending on individual strips to watch the selection property is prone to failure.
  * Stripable_selection_changed() is called when a selection operation is completed.
2017-05-17 15:55:43 -05:00
Ben Loftis
60cc2823f3 MCP: map the well-known EQ knobs more explicitly, not heuristically. 2017-05-17 15:53:14 -05:00
Len Ovens
f2aac0bcae OSC: Add /strip/fader/touch 2017-05-15 19:38:41 -07:00
Len Ovens
f3f1816899 remove unused variable 2017-05-15 19:38:41 -07:00
Robin Gareus
f4beb4611f Set Display Name for OSX/macOS 2017-05-15 22:49:37 +02:00
Len Ovens
7e791981f0 OSC: added automation name feedback 2017-05-15 07:43:59 -07:00
Len Ovens
fee4b7b3ea OSC: combine two identical if() statements 2017-05-15 07:43:59 -07:00
John Emmas
b9bbea7174 It might not be obvious why... but 'ARDOUR::ControlProtocol::name()' needs to be a virtual function
Basically, libardour is calling functions from libardour_cp and vice versa. For example, libardour needs 'ARDOUR::ControlProtocol::name()' whereas ardour_cp needs 'ARDOUR::Route::soloed()' and various others. Ordinarily, this would require each library to get built before the other one! :-(

To get around this (in MSVC at least) one of the libraries must be forced to use late binding (e.g. by declaring its functions as 'virtual'). It looks like this is already being done for most of the other functions from 'ARDOUR::ControlProtocol', so let's do it for this function too...
2017-05-15 14:46:34 +01:00
Robin Gareus
0e4ddcf506 Fix out-of-bounds waveform image rendering.
With large sample-rates and high-zoom-level the minimal request-size
or at least 1/10sed can exceed the max image size supported by cairo.
e.g. @192kSPS;  100ms = 19200 samples.
 * 1 sample/pixel, * 2 (left/right) = 38400px > 2^15px.
2017-05-14 20:37:58 +02:00
Nil Geisweiller
8242f4f636 Support note name editing in midi list editor 2017-05-14 18:16:24 +02:00
André Nusser
77a2632e34 Fix compiler warning of unused variable. 2017-05-14 18:15:10 +02:00
Nil Geisweiller
40f3efa3aa Add note name parser to convert to midi note number
Supports i18n, is case and whitespace insensitive for more resilent parsing.
2017-05-14 18:13:07 +02:00
Edgar Aichinger
c55c814177 one more update to german translation 2017-05-14 16:09:53 +02:00
Edgar Aichinger
278d5bdab2 update german translation 2017-05-14 15:29:27 +02:00
Robin Gareus
2fe3bac92f yet another stupid typo 2017-05-14 15:15:10 +02:00
André Nusser
092ce6dc01 Fix double "Tape" in Record Mode drop down when adding new track.
This bug probably also lead to "Tape" being shown in mixbus even
though it should not.
2017-05-14 14:28:29 +02:00
Robin Gareus
3aa3413944 Fix use-after free (signal after deleting group) 2017-05-14 12:00:19 +02:00
Robin Gareus
3d26a29e8a Sanitize "well-known" ctrl API 2017-05-14 00:17:11 +02:00
Len Ovens
3e2004aa73 OSC: make /*/automation more generic so other controls can be easily added 2017-05-13 14:18:29 -07:00
Robin Gareus
f806799c1c Fix typos (thanks edogawa) 2017-05-13 20:33:04 +02:00
Len Ovens
82e6de3a3f The #end should be #endif 2017-05-13 08:43:33 -07:00
Ben Loftis
6a28e02799 More tweaks to FP8 layout for 32C 2017-05-13 07:54:08 -05:00
Ben Loftis
b92f75481e Fix copy+paste error for mb32c filter freq. 2017-05-13 07:27:08 -05:00
Robin Gareus
3efe5bde5f Update FP8: new controllables, clarify 32C bell-shape labels 2017-05-13 02:02:54 +02:00
Robin Gareus
257cc06cfc amend efc2660f, well-known stripable controls:
* consistent hpf/lpf controllables (actually hi/lo bell in 32C)
* HPT, LPF frequencies are exposed as EQ band
* don't expose filter ctrl for mixbuses/master
2017-05-13 02:02:54 +02:00
Tim Mayberry
def9e110b7 Update Session::writable() during Session::save_as() when switching to copy
Loading a read only Session then making a copy with Save As and switch was
not allowing new Session to be saved as writable state was not updated.

Resolves: #7352
2017-05-13 09:02:02 +10:00
Len Ovens
b89a851bc8 Midi map for Alesis QX25 2017-05-12 15:28:32 -07:00
Paul Davis
b23d7d9170 change ControlProtocolManager protocol mutex into a RW lock.
Probably not gaining much in terms of contention, but there's really no reason to be using a mutex
2017-05-12 20:09:40 +01:00
Paul Davis
7021d02782 don't actually use a method from libardourcp inside libardour; use a PBD::Signal to avoid linker issues 2017-05-12 17:49:09 +01:00
Robin Gareus
38285d0e54 Remove cfgtool, it's not useful anymore
cfgtool was used to dump the current config defaults into ./system_config
on the system it runs. It was manually invoked (usually on Linux) and
hence produced incorrect settings for Windows and OSX variants.

Since ea4bbcf5 Ardour binaries bundle a minimal empty system_config,
and the built-in defaults are used (correct for every platform).
2017-05-12 16:35:08 +02:00
Len Ovens
32c3db5c59 OSC: GUI label change 2017-05-12 07:29:29 -07:00
Len Ovens
774ebc42e3 OSC: Create new surface struct for ALL incoming messages 2017-05-12 07:29:29 -07:00
Paul Davis
eb3f50e15c change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
Ben Loftis
efc2660fec MCP: Mixbus32C: Restore missing filter controls to the Dyn page. 2017-05-12 15:44:01 +02:00
Ben Loftis
8ba868e933 MCU: F-keys are reserved only for user-defined actions; no need for explicit handling. 2017-05-12 15:43:55 +02:00
Ben Loftis
e6e2b6800e MCP: Momentarily light buttons when they are used to trigger a defined action.
*This is mainly for F-keys
*If a button is not assigned an action, it will not light,
   hopefully indicating to the user that it is unmapped.
2017-05-12 15:43:52 +02:00
Ben Loftis
47291389bc Mackie MCP: Assign some F-keys for default user profile. 2017-05-12 15:43:50 +02:00
Ben Loftis
6f298b1a83 Mackie control panel: display the profile name when any button action is changed. 2017-05-12 15:43:44 +02:00
Len Ovens
471ed5af4e OSC: also init unsaved params on session load. 2017-05-11 13:58:25 -07:00
Len Ovens
a51e82a29e OSC: Initialize all surface struct values on creation 2017-05-11 10:52:38 -07:00
Paul Davis
feab5ef91e re-order per-object and global selection change signals 2017-05-11 18:29:03 +01:00
Len Ovens
d42da9046e OSC: Actually set feedback on first /strip/command 2017-05-11 08:21:40 -07:00
Robin Gareus
24d5f1a624 Tweak/fix splash screen event-loop
Prevent possible endless loop in Splash::display() and handle
some related edge-cases and race conditions WRT expose_done
and is_visible().
2017-05-11 14:20:56 +02:00
Robin Gareus
26593d08ed NO-OP: whitespace 2017-05-11 14:20:56 +02:00
Paul Davis
b4346862e1 context click on marker > loop range should set loop range 2017-05-11 13:16:07 +01:00
Paul Davis
5830ddfec2 emit per-Stateful PropertyChanged signal when Stripables become selected 2017-05-11 10:04:28 +01:00
Len Ovens
0124c2e99d OSC: fix manual port setting to take effect on first incoming message 2017-05-10 14:14:27 -07:00