Commit Graph

2051 Commits

Author SHA1 Message Date
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
Luciano Iam
420137ea9d WebSockets: always return -1 from send_index_body() unless there is a write error 2020-04-11 22:30:40 +02:00
Luciano Iam
ed427e5704 WebSockets: add useful comment on lws_write() 2020-04-11 22:30:40 +02:00
Luciano Iam
c477a81a7c WebSockets: use lws_strncpy() when available 2020-04-11 22:30:40 +02:00
Luciano Iam
731ea79028 WebSockets: fix timeout when sending HTTP body 2020-04-11 22:30:33 +02:00
Paul Davis
230ef7596f websockets: shutdown UI event loop is server cannot start 2020-04-09 15:36:02 -06:00
Paul Davis
661609f2c0 change default port for websockets surface 2020-04-09 15:26:13 -06:00
Robin Gareus
18daf2c9b2 C++98 compatibility 2020-04-09 22:43:24 +02:00
Robin Gareus
be023ef32d Tweak websocket surface for use src-tree shared dir
When running from the src-tree, ardev_common.sh sets multiple
data-paths, to allow running ./ardev ./gtk2_ardour/ardev.
Pick the first one that contains a "web_surfaces" subfolder as
docroot.
2020-04-09 21:50:01 +02:00
Robin Gareus
61692ae1f8 Fix some Wunused-result 2020-04-09 21:26:12 +02:00
Luciano Iam
d694ee97c7 Update waf scripts 2020-04-09 20:56:46 +02:00
Luciano Iam
c946eb3132 Add classes for serving content over HTTP 2020-04-09 20:56:46 +02:00
Luciano Iam
40520a6dc6 Clean up and prepare for HTTP 2020-04-09 20:56:46 +02:00
Luciano Iam
3da0cf2a31 NO-OP update comments for header guard #endifs 2020-04-09 20:56:46 +02:00
John Emmas
02473f058c Add/remove source(s) in our MSVC project (ardour_mackie) 2020-04-08 11:34:54 +01:00
Paul Davis
0a8b670bd0 yet another attempted fix for older gcc/mingw 2020-04-07 18:47:51 -06:00
Paul Davis
0c859316a3 another attempted fix for older gcc/mingw 2020-04-07 18:44:40 -06:00
Paul Davis
5d2bacd238 do not initialize shared_ptr<Subview> with 0 2020-04-07 18:37:18 -06:00
Paul Davis
3f30a0ad39 more code rearrangement ... old gcc/mingw does not allow Enum::Value 2020-04-07 18:32:45 -06:00
Paul Davis
595be0e5e9 try some rearrangement to fix old mingw builds 2020-04-07 18:15:51 -06:00
Paul Davis
893e835dca NOOP: whitespace 2020-04-07 18:15:51 -06:00
Paul Davis
d045dae5ff fix missing #include 2020-04-07 17:33:14 -06:00
Paul Davis
33ae34124a fix missing #include 2020-04-07 17:27:31 -06:00
Paul Davis
e345f38c7b fix missing #include 2020-04-07 17:22:55 -06:00
Phil
69067b9d99 add plugin support for mackie units
Main features: Plugin (Select & Edit)

1.  Plugin Select: When a track is selected that has PluginInserts, pushing the "Plug-In" button on a mackie will list these across the strips. Clicking a vpot of a strip enables editing the parameters of this selected plugin.
2. Plugin Edit: When a Plugin is selected for editing, the input parameters of the plugin are shown across the channel strips and the vpot is assigned the corresponsing AutomationControl for the parameter.

Minor features

- When the number of plugins or the number of parameters exceeds the number of strips available on the surface, one can flip through "pages" of views using the Cursor Left and Right keys (this logic I took from http://www.emagic.de/media/support/content/manuals/LogicControl_en.pdf)
- When in the Plugin Select mode, rearranging the plugins in the mixer strip is reflected on the surface.
- When in Plugin Edit mode, rearranging the plugins in the mixer strip still retains the edit view of the selected plugin (rearranging does not take away the current subview)
 - When removing a plugin in the mixer strip, this is reflected in Plugin Select, while the view jumps to Pan/Surround (the None subview) when in Plugin Edit mode.
- Removing a track resets the subview to None
- When in a Subview that is track-specific (Track, EQ, Send, Plug-In, Inst), selecting a different track retains the subview but updates the channel displays and vpot assignments accordingly. When in Plugin Edit mode for track A, and track B is selected, it changes to Plugin Select mode for track B (if plugins are present).
2020-04-07 14:35:09 -06:00