086e48796c
surfaces: first round of conversion to use timeline types
2021-08-13 12:51:29 -06:00
b58dfc7f0f
Resolve microseconds_t ambiguity 1/2
...
This resolves a PBD vs ARDOUR namespace error for some compilers:
```
error: reference to 'microseconds_t' is ambiguous
libs/pbd/pbd/microseconds.h:29:19: error: candidates are: typedef uint64_t PBD::microseconds_t
libs/ardour/ardour/types.h:81:29: error: typedef PBD::microseconds_t ARDOUR::microseconds_t
```
2021-06-27 17:33:05 +02:00
74e21e942e
Remove unused variables (Wunused-variable)
2021-05-30 20:09:35 -04:00
4d815554dd
Various Control Surfaces: Fix one off in calculation of fader position
...
MIDI pitch bend holds 14 bits (16384) which gives values of 0 to 16383.
2021-05-07 18:02:44 -05: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
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
eed07770e1
Fix Faderport1 port-connection (amend bbb68514
)
2021-01-22 18:46:17 +01:00
bbb6851468
Subscribe to pretty-port name changes (surfaces)
2021-01-18 03:18:20 +01:00
bf894d80fb
NO-OP: remove unused #includes
2020-03-21 19:46:38 +01:00
3e77680a57
surfaces transport hotfix: surfaces should query the transport state via BasicUI, when possible
2020-02-23 09:02:25 -06:00
938e65f12a
use MIXBUS approach to User button for Faderport (it's just a button, not a modifier
2020-02-20 12:53:57 -07:00
b5f2aed234
Faderport(1): fix pan_azimuth direction by setting Rotary flag.
2020-02-20 12:25:51 -06:00
06b2eb1c27
Explicitly use OSX
...
Previously this was inherited via PBD.
On MacOS/X, this adds
"-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags
Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")
On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00
d79d2807b1
expand use of new BasicUI API for transport button state to all control surfaces
2019-12-29 18:53:22 -07:00
52aa405ce3
use new Session API to deal with transport state
...
Transition to use BasicUI button state API to come
2019-12-29 18:43:51 -07:00
09acad190b
Faderport: use well-known-controls API
2019-09-25 14:02:45 +02:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
Johannes Mueller
ce47ec411a
Make use of ActionModel::build_custom_action_combo()
2019-04-20 22:36:51 +02:00
Johannes Mueller
73f8b8d982
Use ActionModel::build_action_combo() for Control Surfaces that need it
2019-04-20 15:25:32 +02:00
Johannes Mueller
5b7bcec529
Use ActionModel API in the Control Surfaces that can make use of it
2019-04-20 15:25:32 +02:00
Johannes Mueller
8cbbd3dd00
Fadeport: Fix User button state save and restore
...
Since we (since ddfc37e4
) set the UserDown flag for the User button actions, we
need to set it also when we lookup actions when saving the state.
Furthermore, we need also look for the UserDown flag, when we set the state
of the configuration combos for the User button.
2019-04-20 00:15:20 +02:00
2f91bdfa53
NO-OP: <tab> after <space> fixes in libs
2019-04-13 19:19:29 +02:00
6d335be418
Indicate automation-latch as "touch" on the FP1
...
The FP1 does not have a dedicated "Latch" control, but this does
at least consistently indicate that Touch, rather than show some
arbitrary LED state.
2019-04-01 22:30:16 +02:00
acbd12c885
fix all surfaces' available action menus
...
Note: this replicated code is ridiculous
2019-03-20 14:23:23 -07:00
94d859e30d
ActionManager::get_all_actions() no longer includes <Actions> in the paths it returns, part 2 (surface support)
2019-03-20 11:15:34 -07:00
4667ca962b
Mixer/show-editor is now Common/show-editor
2019-03-19 10:42:05 -05:00
a3986f703d
reorder #include directives
2019-03-18 22:58:24 -07:00
7054b2ffc7
switch remaining use of Common/ToggleMixerList to Mixer/ToggleMixerList
2019-03-18 10:58:02 -07:00
23a98e5f4d
remove references to "Editor_menus" which is an action that no longer exists
2019-02-16 13:12:45 -07:00
56e950b189
rename Main_menu action to Main menu
...
So that if it ever does show up in a list, it looks nice
2019-02-16 13:05:41 -07:00
4b0f0f913b
fix Window->Common move for show-mixer
2018-12-10 18:40:16 -05:00
00df619d21
use ActionManager namespace, rather than ActionMap objects
2018-12-10 08:34:01 -05:00
0f6e67a32f
Faderport(Classic): Add Record-PreRoll and Record-CountIn actions to the footswitch selections. Could make this menu access -any- action, but I think a short useful list of transport items is better in this case.
2018-10-07 10:10:03 -05:00
ccccac7a10
Fix the User button for Mixbus; we use it as a button, not a modifier.
2018-10-04 19:29:14 -05:00
8a18929d57
remove Session::controllable_by_descriptor() and move code into GenericMIDI code (the only user).
...
This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string
parsing every time, but this is not likely to be a notable cost.
2018-06-21 13:05:58 -04:00
224295266f
faderport: make ::invoke() tell us whether or not something was actually invoked for a button event
...
Only put the button into "consumed" if it actually invoked something.
This helps to get reverse-polarity footswitches to work as expected
2018-03-26 18:26:39 -04:00
ddfc37e42a
fix binding to long-press for User button on FaderPort
2018-03-26 13:56:50 -04:00
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
fff9a3cc7f
Allow FaderPort to select VCAs
2017-08-06 22:18:01 +02:00
2d60a69c2d
Consolidate ctrl surface code
2017-08-05 01:28:11 +02:00
b5e0b5b09f
PortManager::unregister_port() must be called with process lock
...
This fixes "Failed to register <surface> port" when re-loading a session.
2017-07-28 20:15:15 +02:00
fde0e293a3
Remove unused "mark" parameter from stop_touch() API
2017-07-24 01:59:18 +02:00
55df5b39bc
Prepare removal of redundant get_user/set_user API.
2017-06-21 18:13:41 +02:00
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
f28bfb2648
Use XMLNode::get/set_property API in FaderPort class
2017-04-19 09:36:54 +10:00
dc98fa6f3f
Fix Faderport Proj button (show-editor action)
2017-03-14 09:27:59 -05:00
6af51b52ff
Use dedicated "show editor/mixer" actions
2017-03-10 17:52:42 +01:00
f21111d7df
Faderport uses the Mix and Proj buttons to summon mixer and editor; there is no longer a Toggle.
2017-03-09 14:29:08 -06:00