Commit Graph

2034 Commits

Author SHA1 Message Date
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
Len Ovens
55854e3797 Add foldback busses to OSC GUI 2020-04-05 14:45:18 -07:00
Len Ovens
df8c000810 OSC: support foldback busses 2020-04-05 14:10:50 -07:00
Robin Gareus
1607d6a6c1 Fix websocket to glib IO condition mapping 2020-03-26 16:04:17 +01:00
Robin Gareus
bf894d80fb NO-OP: remove unused #includes 2020-03-21 19:46:38 +01:00
Nikolaus Gullotta
5dcac21092 Adhere to Ardour style guide - 810b2fb78d 2020-03-10 09:41:50 -05:00
Nikolaus Gullotta
810b2fb78d Prevent double free of global observers
We accomplish this by explicitly setting the global_obs to NULL after
free'ing it. The crash that led to this fix can be replicated as such

$ sendosc localhost 3819 /set_surface i 8 i 159 i 8
$ sendosc localhost 3819 /set_surface i 0 i 0 i 0
$ sendosc localhost 3819 /set_surface i 0 i 0 i 0

In this example the observer is created, then free'd, and then free'd
*again* because the new observer was never made (sur->feedback[x]
checks fail)
2020-03-09 13:02:38 -05:00
Robin Gareus
1196eed89d Remove Mixbus send special case
Mixbus v6 uses AutomationType BusSendLevel like other Sends,
however with different min/max range compared to default Ardour
Aux sends. Control surfaces should use interface/internal API.
2020-03-07 02:33:36 +01:00
Robin Gareus
9c97724fc9 Fix OSC endless loop for tracks with hidden plugins 2020-03-07 02:23:56 +01:00
Robin Gareus
4eba86b503 Fix libwebsockets compat
LWS_CALLBACK_HTTP_CONFIRM_UPGRADE is only available since v3.1.0
2020-02-27 23:58:00 +01:00
Luciano Iam
ef512d412d Avoid occasional response delay when handling HTTP in the websockets surface 2020-02-27 03:42:54 +01:00
Luciano Iam
0921cf8939 Make previous commit 81ecc2b compatible with libwebsockets==2 2020-02-27 03:42:54 +01:00
Luciano Iam
ec8e0f8ee5 Gracefully reject HTTP requests reaching the websockets surface 2020-02-27 03:42:54 +01:00
Robin Gareus
61b6b740bc Fix deadlock, shared_ptr d'tor called from ScopedConnectionList d'tor
See https://ardour.org/styleguide.html #10
https://pastebin.com/gJfrNhL2
2020-02-25 22:55:59 +01:00
Robin Gareus
1074c16299 Websockets: error on unhandled callbacks
This prevents unhandled http request from hogging the backend.
2020-02-24 22:06:15 +01:00
Robin Gareus
bd00db9e8b Websockets: use established NDEBUG - see assert(3) 2020-02-24 22:06:15 +01:00
Robin Gareus
bf649cd68a Fix another websocket surface crash when no panner is available
This amends 224be91211
2020-02-23 19:12:26 +01:00
Robin Gareus
8b092f8658 Websockets: use unique header guards 2020-02-23 16:21:55 +01:00