Commit graph

2235 commits

Author SHA1 Message Date
David Robillard
0dc7cbba14 Add BasicUI::master_out() and BasicUI::monitor_out()
Towards removing the direct use of Session by surfaces.
2021-09-17 16:07:26 -04:00
David Robillard
b35f9ca1a0 Add BasicUI::cancel_all_mute()
Towards removing the direct use of Session by surfaces.
2021-09-17 16:01:36 -04:00
David Robillard
799008e4d7 Add BasicUI::record_status()
Towards removing the direct use of Session by surfaces.
2021-09-17 16:00:24 -04:00
David Robillard
1f17d0834c Add BasicUI::config()
Towards removing the direct use of Session by surfaces.
2021-09-17 15:59:13 -04:00
David Robillard
850bd44702 Add BasicUI::engine_sample_time()
Towards removing the direct use of Session by surfaces.
2021-09-17 15:58:53 -04:00
David Robillard
36789f080c Add BasicUI::make_port_name_non_relative()
Towards removing the direct use of Session by surfaces.
2021-09-17 15:51:55 -04:00
David Robillard
ece7d18baf Replace direct use of Session::midi_panic() in surfaces 2021-09-17 15:15:52 -04:00
David Robillard
78ee9b8917 Replace direct use of Session::get_transport_speed() in surfaces 2021-09-17 15:15:32 -04:00
David Robillard
3318f4e54c Replace direct use of Session::transport_sample() in surfaces 2021-09-17 15:15:11 -04:00
David Robillard
e7a769d608 Replace direct use of Session::request_transport_speed() in surfaces 2021-09-17 15:03:07 -04:00
David Robillard
badb360d1d Replace direct use of Session::goto_end() in surfaces 2021-09-17 15:02:47 -04:00
David Robillard
585e8173f9 Replace direct use of Session::goto_start() in surfaces 2021-09-17 15:02:27 -04:00
David Robillard
7b73f006a6 Replace direct use of Session::request_locate() in surfaces 2021-09-17 15:02:05 -04:00
David Robillard
666b3ba920 Move RecordState to ardour/types.h
This allows it to be used without including session.h.
2021-09-17 14:49:44 -04:00
David Robillard
de345dd790 Put BasicUI in namespace ARDOUR 2021-09-17 14:49:23 -04:00
David Robillard
1a5ffc4c8b Factor out ControlProtocol::get_session() 2021-09-17 14:31:34 -04:00
David Robillard
e17d20054a Remove some unnecessary Session dependency 2021-09-17 14:22:50 -04:00
David Robillard
b58c22c1be Remove BasicUI default constructor
Towards stronger lifetime guarantees, in particular the validity of _session.

I was expecting this to be a whole ordeal, but... compiler says no.
2021-09-17 14:19:15 -04:00
David Robillard
6dfb04c4da Rename ControlProtocol::session to ControlProtocol::_session
To match ARDOUR_UI, which this is something of a long lost base class of (and
hopefully in the future a literal base class of).
2021-09-17 14:18:46 -04:00
David Robillard
52139d8291 Remove dead code 2021-09-17 13:56:13 -04:00
David Robillard
13746a7fac Clean up control_protocol includes
This order (most local first) is better because it's more likely to catch
missing includes.
2021-09-17 13:55:52 -04:00
David Robillard
05a389bf36 Clean up whitespace 2021-09-17 13:53:31 -04:00
David Robillard
3dad396627 Factor out duplicated MidiByteArray 2021-09-17 13:53:09 -04:00
Robin Gareus
b3fff25d5c
Fix --maschine builds (pure virtual) 2021-08-13 21:53:18 +02:00
Paul Davis
c0425ba70f canvas: items should not add child bboxes in their ::compute_bounding_box() method, Item::bounding_box() does that 2021-08-13 12:51:37 -06:00
Paul Davis
8bada4b5e1 remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion
libtemporal still needs ::bbt_at (superclock_t) fairly often so retain it as a private method, but public
interfaces take either Beats or timepos_t
2021-08-13 12:51:35 -06:00
Paul Davis
3702da5488 fix up osc support after rebase/merge conflicts 2021-08-13 12:51:33 -06:00
Paul Davis
364fffd458 temporal: TempoMap::Changed is now a static member named TempoMap::MapChanged 2021-08-13 12:51:32 -06:00
Paul Davis
c64db47b37 use new libtemporal sample rate mechanism (libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis
bed76798f3 manual fixups after rebase against master (general libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis
11af6253f5 mackie: NOOP: fix whitespace 2021-08-13 12:51:31 -06:00
Paul Davis
b866335d8f add glib event loop callback to Generic MIDI surface support 2021-08-13 12:51:30 -06:00
Paul Davis
ce7ea4ec36 Use glib event callback in Mackie Control support to set thread-local variables 2021-08-13 12:51:30 -06:00
Paul Davis
79763893b3 remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr) 2021-08-13 12:51:30 -06:00
Paul Davis
f67029bd02 random commit to facilitate trivial move of work from laptop back to main system 2021-08-13 12:51:29 -06:00
Paul Davis
086e48796c surfaces: first round of conversion to use timeline types 2021-08-13 12:51:29 -06:00
Paul Davis
f4490f54c5 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
Paul Davis
60f3985957 replace push2 call to Canvas::Box::pack_start() with Canvas::Box::add() which is equivalent
::pack_start() was removed
2021-08-13 12:51:26 -06:00
Paul Davis
210702481b add required virtual method to Push2Canvas 2021-08-13 12:51:26 -06:00
Paul Davis
9e5354a65e tweak a minor issue with canvas API 2021-08-13 12:51:26 -06:00
Todd Naugle
bd008fb87c Mackie Control: Fix logic in timecode display update
Old and new strings are compared before sending to keep traffic down. To
ensure that we send all the required characters be sure to init the last
value to characters that are never going to appear in a real string.

Space is a bad choice since it is a valid character. Use NUL instead.
2021-08-10 16:20:36 -05:00
Todd Naugle
4001fc2cff Mackie Control: Use space as replacement for invaild characters on TC disp 2021-08-10 16:17:11 -05:00
Todd Naugle
563309f6d1 Mackie Control: Fix one off error in timecode display that broke spaces
Ignored spaces and allowed character 0x60 which is not valid on the display
2021-08-10 16:16:08 -05:00
Todd Naugle
8cf7204917 Mackie Control: Use selected device's info when building the Keys dialog
The device info file allows key names and values to be configured in each
device file. Use that information when building the Functions Keys tab in
the Mackie protocol setup dialog.
2021-08-06 12:18:24 -05:00
Todd Naugle
c1dddb1b25 Mackie Control: Be consistent and take the surfaces lock when iterating.
Some places in the code take the lock, others don't. This makes everyone
take the lock.
2021-08-03 16:26:26 -05:00
Todd Naugle
a84543bcc7 Mackie Control: Don't crash when the master is on the right
While surfaces are being created it is possible to have surfaces, but
not have a master surface yet. This happens when the config calls
for extenders to the left of the master section.  Don't assume that
if we have surfaces, the master surface is available.
2021-08-03 16:26:26 -05:00
Todd Naugle
454b330950 Mackie Control: Hold the surfaces lock while resetting the master_surface 2021-08-03 16:26:26 -05:00
Ben Loftis
193cebc912 US2400: build-fix: need some IFDEFs for Mixbus. 2021-08-03 10:58:30 -05:00
Ben Loftis
521117054e US2400: Fix order of mixbuses in Flip mode (Mixbus only) 2021-08-03 10:38:19 -05:00
Ben Loftis
398a1efbd5 US2400: Fix send levels from joystick ("surround pan" on mixbuses 11,12) (Mixbus32C only) 2021-08-03 10:38:18 -05:00