David Robillard
93f5dc7e9e
Add BasicUI::have_rec_enabled_track()
...
Towards removing the direct use of Session by surfaces.
2021-09-17 16:07:47 -04:00
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
3318f4e54c
Replace direct use of Session::transport_sample() in surfaces
2021-09-17 15:15:11 -04:00
David Robillard
7b73f006a6
Replace direct use of Session::request_locate() in surfaces
2021-09-17 15:02:05 -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
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
3dad396627
Factor out duplicated MidiByteArray
2021-09-17 13:53:09 -04: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
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
fbd1221833
move FaderPort8 method "button_varispeed()" into BasicUI for more general use
2021-05-04 16:10:24 -06:00
Robin Gareus
72736289c8
NO-OP: rename API rename
...
CP selection API is now implemented as functions, not signals.
2020-10-18 14:47:05 +02:00
Robin Gareus
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
Ben Loftis
276baee8ad
surfaces transport hotfix: BasicUI: prefer actual_speed() and transport_stopped_or_stopping() for current Transport FSM
2020-02-23 09:02:21 -06:00
Paul Davis
47767738b9
rename DoTheRightThing to RollIfAppropriate
2020-01-18 08:49:18 -07:00
Paul Davis
3c00048b0c
Session::request_locate() takes a tri-valued second argument for "roll-after-locate"
...
This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it
can be cnentralized and is less ambiguous
2020-01-18 08:49:18 -07:00
Paul Davis
a8cc5b1303
provide new methods for BasicUI that wrap the "complexity" of how to show transport state via lit buttons
2019-12-29 18:43:51 -07:00
Paul Davis
7b25a89944
part 1 of replicating semantics of ARDOUR_UI::toggle_roll() in BasicUI::toggle_roll()
...
This can be done better, even without sharing code
2019-11-02 16:32:18 -06:00
Robin Gareus
66ceb2b3c7
NO-OP: whitespace
2019-09-06 20:43:20 +02:00
Robin Gareus
33c251a623
Fix MSVC compilation
...
This resolves a circular dependency:
libardour calls methods from libardour_cp and vice versa.
Since 9bb2f2bb libardour is also calling active() and that method
needs to be forced to use late binding. -- compare to b9bbea7174
2019-09-06 20:35:49 +02:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
Johannes Mueller
89f39d14f2
Add some options for surfaces to jump in the timeline
...
* ::jump_by_beats()
* request transport to keep rolling after jump
2019-05-18 13:27:49 +02: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
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
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
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
Paul Davis
0f4530af0d
add new API to ControlProtocol to allow GUI to specify left-most mixer strip
...
Subject To Change. Mileage May Vary. Offer Not Good In All Territories.
2017-02-01 11:46:42 +01:00
Paul Davis
d7a16786fc
change API for BasicUI::goto_start() to use optional roll-after arg
2016-09-27 14:59:29 -05:00
Paul Davis
ac9b5f872d
add method (taken from GTK GUI) to goto_nth_marker() to BasicUI
2016-09-27 14:59:29 -05:00
Paul Davis
40dd604dbc
add correct implementation for cancel all solo to BasicUI
2016-09-27 14:59:29 -05:00
Paul Davis
2047ee527c
restore/extend/simplify ControlProtocol API to allow tracking of selection
2016-07-06 13:39:10 -04:00
Paul Davis
eed3ea5047
remove a bunch of code that will no longer be used
2016-07-06 13:38:13 -04:00
Paul Davis
291aec468f
use session stripable selection API
...
and remove old ControlProtocol signals to talk to GUI etc.
2016-07-04 12:45:53 -04:00
Paul Davis
3eaa6c0389
remove certain ControlProtocol signals related to stripable selection
...
includes change to Mackie support so that strips listen for PropertyChange
on the stripables they represent, no global selection change used anymore.
2016-06-10 13:57:18 -04:00
Paul Davis
08f01085de
remove now-redundant control protocol route-selection signals
2016-05-31 15:30:43 -04:00
Paul Davis
c438ba2b6e
remove no-longer-used TrackSelectionChanged signal from ControlProtocol
2016-05-31 15:30:43 -04:00
Paul Davis
dd57a83793
add Stripable analogs for Route signals and methods in ControlProtocol
...
These will go away once all surfaces have migrated to Stripables
2016-05-31 15:30:42 -04:00
Paul Davis
e0ff70cf86
first vaguely working version using PresentationInfo
...
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
Ben Loftis
a7141e1fc3
Transport_play should not jump back.
...
Typical use of transport controls is to ffwd and rewind, then "play".
This doesn't work well if the Play command always resets to starting position.
2016-01-19 14:00:51 -06:00
Ben Loftis
5493e20c84
Add all_tracks_rec actions
2016-01-19 14:00:03 -06:00