Commit Graph

46 Commits

Author SHA1 Message Date
Luciano Iam
f1d7e1759a WebSockets: repeat 8baf275 for JS files
Like ec131fc does
2021-06-14 10:25:45 +02:00
Luciano Iam
9ee828b47b
WS: properly support MIDI strips 2020-11-19 17:03:36 +01:00
Luciano Iam
9c08c058a3
WS: crash bugfix related to missing strip panner
Surface made Ardour crash when a client connected
and some session track was not a VCA nor had a panner,
like MIDI strips.
2020-09-04 01:59:53 +02:00
Luciano Iam
c4ead80613
Extend 1de0542
Make Mixer and Transport subclasses of ChildComponent
2020-06-23 22:00:58 +02:00
Luciano Iam
d65e1170b9
WS: make ArdourClient extend Component
This allows the client object to be observed using the on()
method just like with the mixer and transport components,
instead of passing separate callbacks.

See mixer-demo/js/main.js for an example.
2020-06-23 22:00:58 +02:00
Luciano Iam
1369076c14
WS: improve Observable implementation 2020-06-23 22:00:58 +02:00
Luciano Iam
842b989e19
WS: improve ES6 import/export syntax 2020-06-23 22:00:58 +02:00
Luciano Iam
5929551b3b
WS: improve Component class hierarchy 2020-06-23 22:00:58 +02:00
Luciano Iam
cc8ed1580c
WS: use dot notation for JS properties 2020-06-23 22:00:58 +02:00
Luciano Iam
8ff4bcfd68
WebSockets: improve JS client message handling code 2020-06-10 19:47:37 +02:00
Luciano Iam
176d803a55
WebSockets: move autoReconnect option in JS client to client ctor 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
Luciano Iam
0a19e87646
WebSockets: match message.js constants to C++ code 2020-05-28 18:56:21 +02:00
Luciano Iam
742adad310
WebSockets: extend 57fdce8 2020-04-22 21:59:35 +02:00
Luciano Iam
b0733a0d20
WebSockets: fix JS client get* methods 2020-04-22 21:59:35 +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
4579f5b4cd
WebSockets: transport surface minor optimizations
Layout tweaks on small screens (ie, phones)
Custom font for transport time
Fix ArdourClient constructor parameters
2020-04-20 22:59:17 +02:00
Luciano Iam
1d84cc0046
WebSockets: add transport methods to client JS 2020-04-20 22:59:16 +02:00
Luciano Iam
5105219076
WebSockets: rename *_desc nodes to *_description 2020-04-20 22:59:15 +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
2ba8dab95e
WebSockets: update JS client and demo
avoid hardcoded node name strings in mixer-demo
improve mixer-demo design
split ardour.js client into control and metadata mixins
rename JS client class Ardour to ArdourClient
JS client improve mixin implementation
JS client improve manifest parser
NO-OP whitespace and comments
NO-OP update websurface manifest versions
add Ardour icon in mixer-demo
improve mixer-demo scrolling on touch screens
2020-04-17 20:15:10 +02:00
Luciano Iam
9fa7eb15ac
WebSockets: avoid hardcoding node names in mixer-demo, fix typo in message.js 2020-04-13 16:29:41 +02:00
Luciano Iam
da670aa186
WebSockets: improve support for callbacks in JS client lib 2020-04-13 16:29:41 +02:00
Luciano Iam
eead6f9cac
WebSockets: make mixer-demo import ardour.js instead of lower level channel.js 2020-04-13 16:29:41 +02:00
Luciano Iam
1f0dfddde1
WebSockets: split channel.js into channel.js and message.js 2020-04-13 16:29:41 +02:00
Luciano Iam
1e3084d760
WebSockets: detect channel drop in ardour.js 2020-04-13 16:29:41 +02:00
Luciano Iam
236ba5c1c4
WebSockets: NO-OP update some code comments 2020-04-13 16:29:41 +02:00
Luciano Iam
a8dce60eb5
WebSockets: rename Node to ANode to avoid shadowing DOM Node class 2020-04-13 16:29:40 +02:00
Luciano Iam
b8f52a519a
WebSockets: add support for a message callback in ardour.js 2020-04-13 16:29:40 +02:00
Luciano Iam
bfcba85336
WebSockets: throw error if trying to send() before open() in MessageChannel 2020-04-13 16:29:40 +02:00
Luciano Iam
7aca159017
WebSockets: remove test code from ardour.js 2020-04-13 16:29:40 +02:00
Luciano Iam
089a4958ca
WebSockets: complete ardour.js client APIs 2020-04-13 16:29:40 +02:00
Luciano Iam
de7b76e77d
WebSockets: fix node+addr hash when addr is undefined 2020-04-13 16:29:39 +02:00
Luciano Iam
50fc366eeb
WebSockets: add mixer APIs in ardour.js 2020-04-13 16:29:39 +02:00
Luciano Iam
dbbd3b0eaf
WebSockets: export Node constants in channel.js 2020-04-13 16:29:39 +02:00
Luciano Iam
2b8e9ceb89
WebSockets: make Message.fromJsonText() a ES6 static method 2020-04-13 16:29:39 +02:00
Luciano Iam
feeda2c19d
WebSockets: avoid duplicated node+addr hash function in JS code 2020-04-13 16:29:39 +02:00
Luciano Iam
22199e8845
WebSockets: decouple Message from MessageChannel 2020-04-13 16:29:39 +02:00
Luciano Iam
a51ce18334
WebSockets: rename ArdourMessageChannel to MessageChannel 2020-04-13 16:29:39 +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
68ecf6c0b3
WebSockets: add method for retrieving surface manifest in ardour.js 2020-04-11 22:30:42 +02:00
Luciano Iam
5c78c85ef5
WebSockets: rename Channel to ArdourMessageChannel 2020-04-11 22:30:41 +02:00
Luciano Iam
02cdd5b52d
WebSockets: re-add close callback in channel.js 2020-04-11 22:30:41 +02:00
Luciano Iam
01e25a3199
WebSockets: shared JS client initial implementation 2020-04-11 22:30:41 +02:00
Luciano Iam
c96e392f0f
WebSockets: prepare for developing a shared JS API client 2020-04-11 22:30:40 +02:00