Commit graph

114 commits

Author SHA1 Message Date
David Robillard
1559829e24 Factor out SessionController from BasicUI
Towards sharing this code with ARDOUR_UI.
2021-06-17 11:02:08 -04:00
David Robillard
8998efa8c8 Move RecordState to ardour/types.h
This allows it to be used without including session.h.  Using this pointless
cast syntax to make it easy to mechanically convert them all when we can
finally use strong enums.
2021-06-17 11:01:05 -04:00
David Robillard
ab17e1e019 Remove some unnecessary Session dependency in Push2 surface 2021-06-17 10:57:29 -04:00
David Robillard
56fe5b47ae Rename ControlProtocol::session to ControlProtocol::_session
To match ARDOUR_UI, towards finally sharing code here.
2021-06-17 10:57:07 -04:00
David Robillard
927c7328cc Make some calculations const 2021-06-17 10:56:05 -04:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
bbb6851468
Subscribe to pretty-port name changes (surfaces) 2021-01-18 03:18:20 +01:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
Paul Davis
6e419a961e use boost::shared_ptr<> to manage Button/Pad lifetimes in Push2 code 2018-09-02 13:23:57 -04:00
Robin Gareus
9f30d14906 P2: Fix check if ports exist 2018-08-30 22:28:31 +02:00
Paul Davis
b9c6ffac21 fix header order and space alignment 2017-09-24 12:57:27 -04:00
Paul Davis
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis
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
Paul Davis
483ad807ce fix crashing thinko in push2 code 2017-09-08 18:36:26 -04:00
Robin Gareus
2d60a69c2d Consolidate ctrl surface code 2017-08-05 01:28:11 +02:00
Robin Gareus
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
Robin Gareus
fde0e293a3 Remove unused "mark" parameter from stop_touch() API 2017-07-24 01:59:18 +02:00
Robin Gareus
601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02: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
Tim Mayberry
bd3965e278 Use XMLNode::get/set_property in Push2 surface
Fix push2 property names to use hyphen word separator.
2017-04-19 09:36:54 +10:00
Paul Davis
8d30580450 attempt to fix windows failed build by including pthread.h to get DEBUG_THREAD_SELF correctly defined 2016-09-30 12:52:07 -04:00
Paul Davis
7701207123 push2:small logic fix for destructor, mostly to ensure that the track_mix layout is destroyed
Otherwise it is still connected to the ControlProtocol::StripableSelectionChanged signal, even though the
event loop specified in the connection has been destroyed.
2016-09-30 11:07:05 -05:00
Paul Davis
1b830f2604 reorganize push 2 code and logic to better handle device arrival after program startup
Note: we do not handle device departure correctly yet, mostly because the shadow (pad) port has a retained
reference somewhere
2016-09-30 11:23:01 -04:00
Paul Davis
1aab360b7d remove unnecessary method 2016-09-28 17:23:52 -04:00
Paul Davis
67e415e14c make Ben's cool range select hack work with Push 2 2016-09-28 11:28:45 -05:00
Paul Davis
6c4627b1b7 fix for push2 code on Windows (no random()) 2016-09-28 10:51:01 -05:00
Paul Davis
b6e62c6654 move mode/scale/key definitions out of push2 code and into libardour; Aeolian is the same as Minor 2016-09-28 10:47:17 -05:00
Paul Davis
3a7cf72752 push2: tweak layout APIs etc. 2016-09-27 14:59:32 -05:00
Paul Davis
303358973f push2: improve logic of ::set_current_layout() to allow reset of same layout 2016-09-27 14:59:32 -05:00
Paul Davis
0006f28511 push2: don't illuminate a button we do not use 2016-09-27 14:59:32 -05:00
Paul Davis
5e6249b7b1 push2: null handle on failed open 2016-09-27 14:59:32 -05:00
Paul Davis
33015a7173 push2: many improvements to track mix and mix layouts
Including meters and clocks
2016-09-27 14:59:32 -05:00
Paul Davis
7a0e2ceec0 first pass (incomplete) at canvas meters (in push2 context) 2016-09-27 14:59:32 -05:00
Paul Davis
879b09d920 stop crashes from out-of-range values 2016-09-27 14:59:32 -05:00
Paul Davis
7594e7644a vpot above metronome button controls click gain; master gain knob now works correctly 2016-09-27 14:59:32 -05:00
Paul Davis
6d5878a926 leave a comment about port reconnection 2016-09-27 14:59:32 -05:00
Paul Davis
0aaf2d1f34 clear filtered note map when entered drum mode 2016-09-27 14:59:32 -05:00
Paul Davis
ae01ac2384 update pad colors when selected track colors chane 2016-09-27 14:59:32 -05:00
Paul Davis
a9a3b71807 change handling of MIDI sysex incoming to be a little more efficient 2016-09-27 14:59:32 -05:00
Paul Davis
44c0ea2095 fix assignment of palette colors by using white-balance = 126; also use ArdourCanvas color macros 2016-09-27 14:59:32 -05:00
Paul Davis
3aa0676f70 push2: substantial improvements to track mix mode, and a few other details 2016-09-27 14:59:31 -05:00
Paul Davis
f12150a1ed push2: always use a contrasting color when flashing played pads 2016-09-27 14:59:31 -05:00
Paul Davis
cb340bf190 push2: when playing pads, flash all pad LEDs for the same note number for the pressed pad 2016-09-27 14:59:31 -05:00
Paul Davis
0add64d4ab push2: fix color map store/lookup for rgba<=>color index mapping 2016-09-27 14:59:31 -05:00
Paul Davis
9e1c7ccaf8 push2: don't send ScaleChanged unless something did actually change 2016-09-27 14:59:31 -05:00
Paul Davis
33713d6f68 push2: reset pad colors when necessary 2016-09-27 14:59:31 -05:00
Paul Davis
a4cd0d7dae push2: set and use selected track color for root notes on pads 2016-09-27 14:59:31 -05:00
Paul Davis
06683b1bda header file now included in push2.h 2016-09-27 14:59:31 -05:00
Paul Davis
6f2ac5d6ad push2: various changes in support of menus and scale mode 2016-09-27 14:59:31 -05:00