1757cfb8ef
use rewind/ffwd option to alter behavior of control surface rewind/ffwd buttons
...
This does not affect GUI equivalents (yet)
2021-05-04 20:52:01 -06:00
cd4aaa808e
use button_varispeed() in BasicUI::rewind() and BasicUI::ffwd()
2021-05-04 16:38:28 -06:00
009e971bfb
correct the implementation of BasicUI::button_varispeed() to provide incremental speed shifting (by semitones) in both directions
2021-05-04 16:38:02 -06:00
fbd1221833
move FaderPort8 method "button_varispeed()" into BasicUI for more general use
2021-05-04 16:10:24 -06:00
8e868fc743
remove unnecessary 2nd argument from Session::request_locate() calls (default value is identical) (surfaces edition)
2021-05-03 17:40:41 -06:00
f94aec5a59
fix/improve BasicUI's methods for rewind/ffwd/play (used by various surfaces)
2021-04-19 16:14:09 -06:00
48e5607f7c
use Session::request_roll() instead of request_transport_speed (1.0, ...)
2021-04-19 16:14:08 -06:00
52b7e68102
use new Session transport API calls in GUI
2021-04-19 16:14:08 -06:00
e0a6aba28d
Ignore saved port-name when loading ctrl-surface state
...
In some cases old and/or conflicting port names were saved
with the session (e.g. "Faderport" for FP1,8). Loading old sessions
then merges this state into the config, which could lead to
port-registration failure when the surfaces was enabled.
2021-04-17 02:07:09 +02:00
c212909282
Ctrl-surface: do not name single-channel bundle ports
...
Follow Session::setup_bundles() lead for single channel
MIDI bundles. This cleans-up the port-matrix display and
removes redundant names. The underlying engine port-name
is not of interest to the user.
2021-04-17 00:43:20 +02:00
72db091619
Fix crash at exit with classic Faderport
...
FaderPort::~FaderPort () can be called while
FaderPort::map_gain() is called from FaderPort::periodic()
```
Thread 71 Crashed:
0 libardour_faderport.dylib 0x0000000110539c3a ArdourSurface::FaderPort::map_gain() + 138
1 libardour_faderport.dylib 0x000000011053996d ArdourSurface::FaderPort::periodic() + 109
2 libglibmm-2.4.1.dylib 0x000000010bf21da8 Glib::TimeoutSource::dispatch(sigc::slot_base*) + 56
3 libglibmm-2.4.1.dylib 0x000000010bf20c97 Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) + 39
4 libglib-2.0.0.dylib 0x000000010c012496 g_main_context_dispatch + 326
5 libglib-2.0.0.dylib 0x000000010c01281a g_main_context_iterate + 474
6 libglib-2.0.0.dylib 0x000000010c012b3f g_main_loop_run + 191
7 libpbd.dylib 0x000000010bcee42e BaseUI::main_thread() + 254
8 libglibmm-2.4.1.dylib 0x000000010bf16373 (anonymous namespace)::call_thread_entry_slot(void*) + 35
9 libglib-2.0.0.dylib 0x000000010c03dd0a g_thread_proxy + 90
10 libsystem_pthread.dylib 0x00007fff759e42eb _pthread_body + 126
11 libsystem_pthread.dylib 0x00007fff759e7249 _pthread_start + 66
12 libsystem_pthread.dylib 0x00007fff759e340d thread_start + 13
```
While the GUI thread has already closed the MIDI ports in ~FaderPort
and proceeded to take down the FP GUI.
```
Thread 0:: Dispatch queue: com.apple.main-thread
47 libgtkmm-2.4.1.dylib 0x000000010ca69a56 Gtk::ComboBox::~ComboBox() + 22
48 libardour_faderport.dylib 0x000000011055a6e5 ArdourSurface::FPGUI::~FPGUI() + 149
49 libardour_faderport.dylib 0x000000011055a8b5 ArdourSurface::FPGUI::~FPGUI() + 21
50 libardour_faderport.dylib 0x0000000110551396 ArdourSurface::FaderPort::tear_down_gui() + 70
51 libardour_faderport.dylib 0x0000000110536507 ArdourSurface::FaderPort::~FaderPort() + 535
52 libardour_faderport.dylib 0x0000000110536b9e ArdourSurface::FaderPort::~FaderPort() + 14
53 libardour.dylib 0x000000010ac13f08 ARDOUR::ControlProtocolManager::drop_protocols() + 168
54 libardour.dylib 0x000000010b0ba7e4 ARDOUR::Session::destroy() + 212
55 libardour.dylib 0x000000010b0bbe01 ARDOUR::Session::~Session() + 113
56 libardour.dylib 0x000000010b0bdb5e ARDOUR::Session::~Session() + 14
2021-04-07 02:25:52 +02:00
Daniel Ceregatti
362b9cb4fa
Maschine Mikro MK2 support
2021-04-01 20:07:55 +02:00
c96462f7bb
maschine2: gtk is an indirect dependency of libgtkmm2ext
2021-03-26 18:44:20 +01:00
345726e223
Get NI maschine surface to compile again
2021-03-26 01:16:30 +01:00
b064b3c136
OSC: fix some compiler warnings
2021-02-28 20:01:06 +01:00
0c3eaf188b
OSC: liblo compatibility fix
...
see also 770fd1519c
2021-02-28 20:00:04 +01:00
770fd1519c
Liblo compat fix
...
Upstream liblo changed the opaque type `lo_message` from void*
to a custom struct {}.
2c1ef1c682
/
2021-02-28 02:25:02 +01:00
John Emmas
d2cb383965
MSVC changes to support the new code modules (Tabbable API stuff)
2021-02-24 14:32:23 +00:00
07c16d38a2
control surfaces: make methods used for transport control (BasicUI) do the right thing w.r.t. default speed
2021-02-12 09:36:52 -07:00
acfa04d700
Update Ctrl-surface MIDI port list when ports change
...
This is a better variant of bbb6851468
, directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
cd524f70dc
OSC, strip and select share all main strip functions
...
Allow blocking strip commands for master or monitor
2021-01-23 21:18:32 -08:00
a9f0f771c1
Reuse the same code for strip and select
...
Combine Maser and Monitor to reuse code
Started adding query functionality
Added query functionality to all touchosc fixed commands
2021-01-23 21:17:46 -08:00
eed07770e1
Fix Faderport1 port-connection (amend bbb68514
)
2021-01-22 18:46:17 +01:00
8386874a03
OSC: Allow to specify marker name #8543
...
Patch from atsampson
2021-01-18 23:36:35 +01:00
bbb6851468
Subscribe to pretty-port name changes (surfaces)
2021-01-18 03:18:20 +01:00
1737dc1869
Revert "Fix typo in OSC gain feedback message"
...
This was not a typo after all, but a way to show the gain in the
name-display, as per manual:
> In the case where Gainmode is set to position, the track name
> will show the dB value while values are changing.
This reverts commit 3290d66a43
.
2020-12-17 17:30:24 +01:00
3290d66a43
Fix typo in OSC gain feedback message
2020-12-17 00:58:28 +01:00
ce43161d4e
WebSockets: log hostname and listen-port
2020-11-23 20:12:57 +01:00
7d4cd5c76a
Fix C++11ism
2020-11-20 13:32:20 +01:00
6ca4980e71
FP8: Allow to sort plugin-params by priority
2020-11-20 06:04:32 +01:00
Luciano Iam
9ee828b47b
WS: properly support MIDI strips
2020-11-19 17:03:36 +01:00
ddcf3eb684
Generic Midi encoders fixed
2020-10-24 16:06:04 -07:00
a266a2d5b9
Use session API to set solo
...
This is required so that ::update_route_solo_state() is called
to propagate solo/mute state
2020-10-18 15:28:10 +02:00
72736289c8
NO-OP: rename API rename
...
CP selection API is now implemented as functions, not signals.
2020-10-18 14:47:05 +02:00
84bf97aa49
Update ControlProtocol API, use CoreSelection
...
* replace signal-emission with direct calls to CoreSelecton
using BaseUI's session pointer
* remove unused leftmost strip API
* use CoreSelection for first-selected strip
* Accessing CoreSelection does not modify the session
(allow access from const callbacks)
* replace static calls in P2 surface
This removes indirection and dependency on the GUI for
managing strip selection.
2020-10-18 14:44:38 +02:00
dcea35191c
Consolidate code: use API to print plugin-type 1/2
2020-09-15 16:03:33 +02:00
Luciano Iam
9c08c058a3
WS: crash bugfix related to missing strip panner
...
Surface made Ardour crash when a client connected
and some session track was not a VCA nor had a panner,
like MIDI strips.
2020-09-04 01:59:53 +02:00
63a117bf93
And another boost/C++11 fix
...
This fixes Undefined symbols:
"ArdourSurface::hash_value(ArdourSurface::NodeState const&)", referenced from:
boost::hash<ArdourSurface::NodeState>::operator()(ArdourSurface::NodeState const&) constin client.cc.1.o
boost::hash<ArdourSurface::NodeState>::operator()(ArdourSurface::NodeState const&) constin server.cc.1.o
2020-08-31 08:28:50 +02:00
a9c2350e87
Fix yet another C++11ism
2020-08-31 07:52:48 +02:00
39110463f3
Amend cdd48926d1
use ScopedConnectionList directly
2020-08-31 07:41:11 +02:00
cdd48926d1
Remove more libwebsocket C++11isms
...
* amend previous commit, fix runtime_error implementation
* Do not copy-construct classes that have a PBD::scoped connection list.
Replace std::map::emplace[C+11], an store shared pointers the std::map.
* Update ArdourMixerStrip is-a ScopedConnectionList (not has-a)
2020-08-30 22:57:43 +02:00
8eb4dcb675
Fix websocket C++11ism
2020-08-30 21:15:33 +02:00
af79240c81
Namespace libwebsocket surface classes
...
Using the global names-pace for classes named "Json", "TypedValue",
"ArdourTransport", "ArdourMixerPlugin" etc is not acceptable.
2020-08-30 21:15:07 +02:00
Luciano Iam
665e0686e5
WS: noop use a namespace for JSON utilities
...
Instead of a class with static methods
Also correct some whitespace to prevent triggering of OCD cycles
2020-08-30 19:29:28 +02:00
Luciano Iam
aa38491b7d
WS: move VCA detection to mixer strip interface
...
Expose the wrapped Stripable the least as possible
2020-08-30 19:29:28 +02:00
Luciano Iam
e510c0cb75
WS: consistent naming of strip/plugin/param identifiers
...
Rename all {object}_n variables and arguments to {object}_id
Parts of code were using the former convention, now use the latter everywhere
Another step towards supporting visual position agnostic identifiers in the future
2020-08-30 19:29:28 +02:00
Luciano Iam
c32a5917f3
WS: handle strips and plugins removal
2020-08-30 19:29:27 +02:00
Luciano Iam
a8f917e7e2
WS: prepare for handling object disconnections
...
Use maps instead of vectors for holding strips and plugins
This allows to deal with "holes" after objects are removed
Also paves the way for a future improved way of identifying
individual strips and plugins
2020-08-30 19:29:27 +02:00
Luciano Iam
7521d8ab6f
WS: add some meaningful error messages
2020-08-30 19:29:27 +02:00
Luciano Iam
3509fe1589
WS: use an object-oriented internal API for the mixer
...
- This allows to better handle strips & plugins connection lifecycles
- Coherent with the JS client design
2020-08-30 19:29:27 +02:00