@@ -135,9 +135,14 @@ loop(State) ->
135
135
end ,
136
136
? MODULE :loop (State );
137
137
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
+ ),
141
146
? MODULE :loop (NewState );
142
147
143
148
% {cmd, ["/hydra_eval", Code]=Cmd} ->
@@ -314,39 +319,33 @@ send_to_cue(Message, State) ->
314
319
debug_cmd ([Cmd |Args ]) ->
315
320
logger :debug (" command: ~s ~p " , [Cmd , Args ]).
316
321
317
- do_bundle (Time , [{_ ,Bin }|T ], State ) ->
322
+ do_bundle (Time , Args , State ) ->
323
+ % logger:info("Decoding bundle content:~p", [Args]),
318
324
NewState =
319
- try osc : decode ( Bin ) of
320
- { cmd , [" /send-after" , Host , Port , OSC ]} ->
325
+ case Args of
326
+ [" /send-after" , Host , Port , OSC ] ->
321
327
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 ] ->
323
329
schedule_cmd (Time , Tag , State , {send_osc , Host , Port , OSC });
324
- { cmd , [" /midi-at" , MIDI ]} ->
330
+ [" /midi-at" , MIDI ] ->
325
331
schedule_midi (Time , " default" , State , {send_midi , MIDI });
326
- { cmd , [" /midi-at-tagged" , Tag , MIDI ]} ->
332
+ [" /midi-at-tagged" , Tag , MIDI ] ->
327
333
schedule_midi (Time , Tag , State , {send_midi , MIDI });
328
- { cmd , [" /link-set-tempo" , Tempo ]} ->
334
+ [" /link-set-tempo" , Tempo ] ->
329
335
schedule_link (Time , " default" , State , {link_set_tempo , Tempo });
330
- { cmd , [" /link-set-tempo-tagged" , Tag , Tempo ]} ->
336
+ [" /link-set-tempo-tagged" , Tag , Tempo ] ->
331
337
schedule_link (Time , Tag , State , {link_set_tempo , Tempo });
332
- { cmd , [" /link-set-is-playing" , Enabled ]} ->
338
+ [" /link-set-is-playing" , Enabled ] ->
333
339
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 ] ->
335
341
schedule_link (Time , Tag , State , {link_set_is_playing , Enabled });
336
- { cmd , [" /hydra_eval" , Code ]} ->
342
+ [" /hydra_eval" , Code ] ->
337
343
schedule_internal_call (Time , " default" , State , self (), {cmd , [" /hydra_eval" , Code ]});
338
344
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 ),
345
346
State
346
347
end ,
347
- do_bundle (Time , T , NewState );
348
- do_bundle (_Time , [], State ) ->
349
- State .
348
+ NewState .
350
349
351
350
schedule_internal_call (Time , Tag , State , Server , Msg ) ->
352
351
Delay = Time - osc :now (),
0 commit comments