Commit Graph

2075 Commits

Author SHA1 Message Date
Len Ovens
4717f7806d issue 8186 strip controls reset then show on select
Causes motor controls to jiggle on all strips
	when select changes. Fixed
2020-06-23 20:25:49 -07:00
Len Ovens
32aa290578 issue 8243 select gets feedback past selected strips
make sure to drop old references when route is changed
2020-06-23 09:03:19 -07:00
Len Ovens
399192da4c OSC add width feedback to strips
Also detect panner type change
2020-06-22 23:29:11 -07:00
Robin Gareus
23feb0491e Remove using std::min/max from header 2020-06-18 01:05:48 +02:00
Robin Gareus
ad234b1853 US2400: fix pan_azimuth direction by setting rotary flag 2020-06-18 00:19:29 +02:00
Robin Gareus
aa4d357201 CC121: fix pan_azimuth direction by setting rotary flag 2020-06-18 00:10:08 +02:00
Luciano Iam
8ff4bcfd68 WebSockets: improve JS client message handling code 2020-06-10 19:47:37 +02:00
Luciano Iam
a26a9018fd WebSockets: code refactor
Terminology used by server and client was starting to diverge.

C++ classes ArdourStrips and ArdourGlobals classes have been
renamed to ArdourMixer and ArdourTransport respectively.

State node values for transport functionality have been simplified
and prefixed with 'transport_' to match what was done for strips.
2020-06-10 19:47:37 +02:00
Luciano Iam
ae4df127ad WebSockets: implement a JavaScript object-oriented client API
Replace previous callback based basic client with an easier
to use object-oriented API that further abstracts the low level
details of the WebSockets Server surface messaging protocol.

All built-in web surface demos were updated to use the new API.
2020-06-10 19:47:37 +02:00
Robin Gareus
5296ed141f Fix support for older libwebsocket versions
LWS_WITH_EXTERNAL_POLL a new optional define for libwebsocket 4.x.
Earlier versions always supported it, without the compile-time define.

This fixes support for libwesocket 2.x (Debian, Ubuntu), and 3.x.
Also for Windows, LWS_WITH_GLIB is not available.
2020-06-10 15:58:47 +02:00
Robin Gareus
72d45c154a Do not allow ctrl chars in file (or session) names (1/2) 2020-06-09 20:30:51 +02:00
Peter Kovář
630a3d07d2 Added support for the original Contour Design ShuttlePRO 2020-06-09 17:29:01 +02:00
Robin Gareus
9398a6f60a Fix generic MIDI encoder off by one
Increment for CC values > 0x40, decrement control for values <= 40.
 - 0x41 increment by one
 - 0x40 decrement by one

previously: 0x3f decremented by one, 0x3e by two, .. 0x00 by 64,
but 0x40 also by 64.
2020-06-06 17:10:31 +02:00
Luciano Iam
e253302c62 WebSockets: allow compilation with lws < 2.1.0
Old libwebsockets does not define lws_callback_http_dummy()
Conditionally use custom code instead
2020-05-28 18:56:21 +02:00
Luciano Iam
3840264edd WebSockets: remove usage of lws constant LLL_USER
It is not available on lws 2 and really not needed
2020-05-28 18:56:21 +02:00
Luciano Iam
c3d72625cd WebSockets: leverage LWS_WITH_GLIB 2020-05-28 18:56:21 +02:00
Luciano Iam
85d1aa30d5 WebSockets: comment out a lws_callback case that made clients hang 2020-05-28 18:56:21 +02:00
Luciano Iam
7554655616 WebSockets: improve libwebsockets 4 compatibility
After upgrading from lws 3 to 4 clients could still connect to the surface but no data was sent from the server.
2020-05-28 18:56:21 +02:00
Luciano Iam
6e5aeb57b3 WebSockets: fix LWS_WITH_EXTERNAL_POLL check 2020-05-28 18:56:20 +02:00
Luciano Iam
ea16fc51d3 WebSockets: fix guard header in json.h 2020-04-22 21:59:35 +02:00
Luciano Iam
dbb26daafa WebSockets: also json-escape strings in state messages 2020-04-22 21:59:35 +02:00
Luciano Iam
946094b25c WebSockets: also json-escape paths in manifests
Extends 3c423d9
2020-04-22 21:59:35 +02:00
Luciano Iam
c362605b49 WebSockets: add some TO DO comments 2020-04-22 21:59:35 +02:00
Luciano Iam
8b65b0a961 WebSockets: disable http caching if NDEBUG is set
This is useful while developing web surface javascript code
2020-04-22 21:59:35 +02:00
Luciano Iam
ff7b7fe6a7 WebSockets: fix a comment in server.cc 2020-04-22 21:59:34 +02:00
Luciano Iam
80dc3a38e0 WebSockets: let clients know if a strip is a VCA
This allows to hide the panner for example
2020-04-21 16:20:24 +02:00
Luciano Iam
68463cb591 WebSockets: add checks for VCA stripables
Also include VCAs when sending strip descriptions
2020-04-21 15:53:27 +02:00
Luciano Iam
cc08a2d945 WebSockets: compatibility fixes for Windows
Escape path strings in surfaces.json
Default to index.html in mount points
2020-04-21 15:53:27 +02:00
Luciano Iam
d5c2af1cfb WebSockets: NOOP fix comment in manifest.cc 2020-04-20 22:59:17 +02:00
Luciano Iam
3c423d9265 WebSockets: json-escape user strings loaded from manifest.xml 2020-04-20 22:59:17 +02:00
Luciano Iam
4f2fdb10a3 WebSockets: send caching headers for static resources 2020-04-20 22:59:16 +02:00
Luciano Iam
7118eff7eb WebSockets: transport surface implementation 2020-04-20 22:59:16 +02:00
Luciano Iam
dc97bf3ff0 WebSockets: output position time in seconds 2020-04-20 22:59:16 +02:00
Luciano Iam
bfbb15011c WebSockets: add record state support to surface 2020-04-20 22:59:15 +02:00
Luciano Iam
5105219076 WebSockets: rename *_desc nodes to *_description 2020-04-20 22:59:15 +02:00
Luciano Iam
0e664b1556 WebSockets: add transport roll support to surface 2020-04-20 22:59:15 +02:00
Robin Gareus
c32fef2660 WebSockets: hotfix crash when a session has VCAs
This eventually needs a better solution, special casing VCAs
on the top-level.
2020-04-19 15:44:39 +02:00
Luciano Iam
137042f80c WebSockets: rename _lws_mnt_index to _lws_mnt_root
This mount point not only serves the index but everything that is under
/ , including the built-in surfaces directory
2020-04-17 20:15:10 +02:00
Luciano Iam
36a27b8a90 WebSockets: prevent crashes by validating inbound message addr and val sizes 2020-04-17 20:15:10 +02:00
Luciano Iam
50ba8dea96 WebSockets: improve JS client and demo
add methods to callback.js
automatically reconnect js client on disconnection
mixer-demo do not recreate UI on reconnection
NO-OP: indentation in message.js
make client JS reconnection optional
fix mixer-demo scrolling
minor JS client refactor
improve mixer-demo readability
2020-04-17 20:15:10 +02:00
Luciano Iam
612c71aa25 WebSockets: allow serving SVG files using libwebsockets < 3 2020-04-17 20:15:10 +02:00
Luciano Iam
30c8563a6d WebSockets: rename send_index_* to send_availsurf_* to avoid confusion with a static index page 2020-04-13 16:29:38 +02:00
Luciano Iam
e7f22cf989 WebSockets: rename resource index.json to more meaningful surfaces.json 2020-04-13 16:29:38 +02:00
Luciano Iam
17cbd65603 WebSockets: rename all occurrences of 'disk path' to 'filesystem path' 2020-04-13 16:29:38 +02:00
Luciano Iam
1b4deb11ec WebSockets: use canonical paths in index.json 2020-04-13 16:29:38 +02:00
Luciano Iam
46d39a9ee7 WebSockets: reject an empty ARDOUR_WEBSURFACES_PATH 2020-04-13 16:29:38 +02:00
Luciano Iam
b66b2858b1 WebSockets: add version field in manifests and update loader 2020-04-13 16:29:37 +02:00
Luciano Iam
9aef431818 WebSockets: move diskPath property to surfaces group object 2020-04-11 22:30:41 +02:00
Luciano Iam
ad363d12a2 WebSockets: fix path field in index.json 2020-04-11 22:30:41 +02:00
Luciano Iam
e82171ea19 WebSockets: improve surface manifest format and loader 2020-04-11 22:30:40 +02:00