David Robillard
01476e352e
Prefer SessionController::ffwd() and rewind() in surfaces
...
I find button_varispeed() confusing, it might be a good idea to split it up
entirely.
2021-06-17 11:22:07 -04:00
David Robillard
ae8f00be50
Use SessionController::locate() in surfaces
2021-06-17 11:22:06 -04:00
David Robillard
d6106ad6d4
Use SessionController::set_transport_speed() in surfaces
2021-06-17 11:22:05 -04:00
David Robillard
eb0d3fa16a
Use SessionController::midi_panic() in surfaces
2021-06-17 11:22:04 -04:00
David Robillard
30f5e50f85
Sync SessionController::toggle_roll() with ARDOUR_UI
2021-06-17 11:05:54 -04:00
David Robillard
83626ae637
Move SessionController to libardour
2021-06-17 11:03:11 -04:00
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
43ea100381
Put BasicUI in namespace ARDOUR
2021-06-17 10:59:32 -04:00
David Robillard
e4163b47e0
Factor out ControlProtocol::get_session()
2021-06-17 10:58:30 -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
David Robillard
181ec1e207
Remove null session checks from OSC surface
...
Control surface lifetime is managed to be shorter than the session lifetime, if
the session does not exist, then the control surface does not exist either.
2021-06-17 10:55:43 -04:00
David Robillard
e70a2dc461
Remove tranzport surface
...
This has not been possible to build for some time, so if anyone was going to
miss it, they would have already.
2021-06-17 10:51:45 -04:00
David Robillard
3a14559a9a
Remove dead code in ContourDesignControlProtocol
...
These were identical to SessionController::prev_marker() and
SessionController::next_marker(), but weren't actually used.
2021-06-17 09:56:50 -04:00
David Robillard
73ad115486
Remove dead code in BasicUI and ControlProtocol
2021-06-17 09:56:49 -04:00
David Robillard
8adc08adc0
Clean up control_protocol includes
...
This order (most local first) is better because it's more likely to catch
missing includes.
2021-06-17 09:56:48 -04:00
David Robillard
0fae0055e9
Clean up whitespace
2021-06-17 09:56:47 -04:00
David Robillard
c6bdf8f2ff
Factor out duplicated MidiByteArray
2021-06-17 09:56:46 -04:00
Robin Gareus
cc6b58ef00
Fix Windows builds (pthread handle abstraction)
2021-06-17 13:32:10 +02:00
Robin Gareus
f85bbaa97d
Fix C++11ism
2021-06-16 03:03:26 +02:00
Luciano Iam
04104b68a6
WebSockets: fix surface build for older systems
2021-06-14 14:50:48 +02:00
Luciano Iam
5fffe985bb
WebSockets: update some source headers
2021-06-14 14:45:51 +02:00
Luciano Iam
6cc59ad8e6
WebSockets: update some comments in source
...
Based on feedback from libwebsockets author
https://github.com/warmcat/libwebsockets/issues/2322#issuecomment-860572124
2021-06-14 12:25:29 +02:00
Luciano Iam
f1d7e1759a
WebSockets: repeat 8baf275 for JS files
...
Like ec131fc does
2021-06-14 10:25:45 +02:00
Luciano Iam
ebee3a8010
WebSockets: remove unnecessary code
...
Leftovers from copy and pasting from test_ui.cc
2021-06-14 10:02:25 +02:00
Luciano Iam
cb73eb350d
WebSockets: less invasive version of 5407232
...
There is no need to connect signals twice, can connect them directly to the
helper UI loop and skip the surface loop. Then let the server decide if it is
necessary to call lws_cancel_service() or not.
Also rename WebsocketsServer::should_request_write() to read_blocks_event_loop()
it makes more sense for the caller now on-demand write logic is completely
implemented by the server class.
2021-06-14 10:02:25 +02:00
Luciano Iam
e3569b6469
WebSockets: notify server there are pending client updates
...
This is an update to the surface ArdourFeedback class that is needed to support
the new event loop integration method.
The various session event callbacks cannot be queued in the surface event loop
because that would create a delay between the time such events are fired and
the time for writing to clients arrive, due to lws_service() blocking while
it waits to read. To solve this issue a helper AbstractUI is created for
catching events as soon as possible and issuing a call to lws_cancel_service().
See WebsocketsServer::glib_idle_callback()
2021-06-13 22:00:29 +02:00
Luciano Iam
b3661af92a
WebSockets: additional method for event loop integration
...
Some distro repositories offer versions of libwebsockets that have not been
compiled with LWS_WITH_GLIB or LWS_WITH_EXTERNAL_POLL enabled. For such cases
a different event loop integration method is needed.
True for Ubuntu 20.04 as of Jun '21
2021-06-13 22:00:29 +02:00
Luciano Iam
5f504f23ac
WebSockets: reduce server log verbosity
2021-06-13 22:00:28 +02:00
Luciano Iam
373d905a93
Update websockets surface author email in source files
2021-06-13 22:00:28 +02:00
Luciano Iam
12a7480ea3
Move #include inside header guard
2021-06-13 22:00:28 +02:00
Paul Davis
b75a37abdb
fix arguemnts to transport call in shared control surface code for transport_play()
2021-06-08 08:32:19 -06:00
David Robillard
74e21e942e
Remove unused variables (Wunused-variable)
2021-05-30 20:09:35 -04:00
David Robillard
1b4aaea92a
Remove unused private fields (Wunused-private-field)
2021-05-30 20:09:35 -04:00
Paul Davis
2e501fd77a
ensure the BasicUI implementation of rewind/ffwd is the same as the ARDOUR_UI one
2021-05-19 18:32:00 -06:00
Len Ovens
a5a2f111ee
Remove debug line
2021-05-18 14:32:38 -07:00
Len Ovens
0130f19e26
Fix positions before start and after end
2021-05-18 14:27:20 -07:00
Len Ovens
f9557d0d04
Remove unused code
2021-05-17 13:50:18 -07:00
Len Ovens
ab7c6e74e0
OSC, update marks list better.
2021-05-17 13:34:19 -07:00
Tobias Kannenberg
e4a6e981d9
fix OSC "/marker" feedback
2021-05-17 13:31:03 -07:00
Todd Naugle
3a3fcd0d2d
Don't crash if master fader is not avaliable.
...
If the wrong device profile is selected (ex Xtouch One) but another device
is connected (Xtouch), it is possible to have a master fader on the
device, but not in the code. This would then cause a crash when the
master fader was touched.
This just protects from a wrong configuration.
2021-05-13 12:08:09 -05:00
Paul Davis
0fc50b9bf2
Mackie Control: set select state correctly during initial setup
2021-05-11 15:55:04 -06:00
Paul Davis
57b3df8b22
copy over (boo!) transport control changes to BasicUI (control surfaces)
2021-05-08 09:20:21 -06:00
Todd Naugle
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
Robin Gareus
5957e14259
Remove unused #include<> (2/2)
...
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:57:16 +02:00
Paul Davis
273049a5a1
Mackie Control: if master surface has a jog wheel *and* a scrub button, button toggles between scroll and shuttle behavior
2021-05-04 21:30:22 -06:00
Paul Davis
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
Paul Davis
cd4aaa808e
use button_varispeed() in BasicUI::rewind() and BasicUI::ffwd()
2021-05-04 16:38:28 -06:00