Skip to content

Commit 4839a25

Browse files
committed
Tau - fix API bundle handling
The format of the parsed OSC bundles changed when support for handling OSC bundles as incoming cues was added - but didn't get reflected in the internal API!?!
1 parent 298838a commit 4839a25

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

app/server/beam/tau/src/tau_server/tau_server_api.erl

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,14 @@ loop(State) ->
135135
end,
136136
?MODULE:loop(State);
137137

138-
{bundle, Time, X} ->
139-
logger:debug("got bundle for time ~f", [Time]),
140-
NewState = do_bundle(Time, X, State),
138+
{bundle, Time, Bins} ->
139+
NewState = lists:foldl(
140+
fun(X, AccState) ->
141+
do_bundle(Time, X, AccState)
142+
end,
143+
State,
144+
Bins
145+
),
141146
?MODULE:loop(NewState);
142147

143148
% {cmd, ["/hydra_eval", Code]=Cmd} ->
@@ -314,39 +319,33 @@ send_to_cue(Message, State) ->
314319
debug_cmd([Cmd|Args]) ->
315320
logger:debug("command: ~s ~p", [Cmd, Args]).
316321

317-
do_bundle(Time, [{_,Bin}|T], State) ->
322+
do_bundle(Time, Args, State) ->
323+
% logger:info("Decoding bundle content:~p", [Args]),
318324
NewState =
319-
try osc:decode(Bin) of
320-
{cmd, ["/send-after", Host, Port, OSC]} ->
325+
case Args of
326+
["/send-after", Host, Port, OSC] ->
321327
schedule_cmd(Time, "default", State, {send_osc, Host, Port, OSC});
322-
{cmd, ["/send-after-tagged", Tag, Host, Port, OSC]} ->
328+
["/send-after-tagged", Tag, Host, Port, OSC] ->
323329
schedule_cmd(Time, Tag, State, {send_osc, Host, Port, OSC});
324-
{cmd, ["/midi-at", MIDI]} ->
330+
["/midi-at", MIDI] ->
325331
schedule_midi(Time, "default", State, {send_midi, MIDI});
326-
{cmd, ["/midi-at-tagged", Tag, MIDI]} ->
332+
["/midi-at-tagged", Tag, MIDI] ->
327333
schedule_midi(Time, Tag, State, {send_midi, MIDI});
328-
{cmd, ["/link-set-tempo", Tempo]} ->
334+
["/link-set-tempo", Tempo] ->
329335
schedule_link(Time, "default", State, {link_set_tempo, Tempo});
330-
{cmd, ["/link-set-tempo-tagged", Tag, Tempo]} ->
336+
["/link-set-tempo-tagged", Tag, Tempo] ->
331337
schedule_link(Time, Tag, State, {link_set_tempo, Tempo});
332-
{cmd, ["/link-set-is-playing", Enabled]} ->
338+
["/link-set-is-playing", Enabled] ->
333339
schedule_link(Time, "default", State, {link_set_is_playing, Enabled});
334-
{cmd, ["/link-set-is-playing-tagged", Tag, Enabled]} ->
340+
["/link-set-is-playing-tagged", Tag, Enabled] ->
335341
schedule_link(Time, Tag, State, {link_set_is_playing, Enabled});
336-
{cmd, ["/hydra_eval", Code]} ->
342+
["/hydra_eval", Code] ->
337343
schedule_internal_call(Time, "default", State, self(), {cmd, ["/hydra_eval", Code]});
338344
Other ->
339-
logger:error("Unexpected bundle content:~p", [Other]),
340-
State
341-
catch
342-
Class:Term:Trace ->
343-
logger:error("Error decoding OSC: ~p~n~p:~p~n~p",
344-
[Bin, Class, Term, Trace]),
345+
logger:error("Unexpected bundle content:~p", Other),
345346
State
346347
end,
347-
do_bundle(Time, T, NewState);
348-
do_bundle(_Time, [], State) ->
349-
State.
348+
NewState.
350349

351350
schedule_internal_call(Time, Tag, State, Server, Msg) ->
352351
Delay = Time - osc:now(),

0 commit comments

Comments
 (0)