@@ -164,6 +164,56 @@ def test_connect(camilla_mockws):
164164 camilla_mockws .general .state ()
165165 camilla_mockws .connect ()
166166 assert camilla_mockws .is_connected ()
167+ def test_subscribe_vu_events (camilla_mockws ):
168+ camilla_mockws .connect ()
169+ sent = []
170+ replies = iter (
171+ [
172+ json .dumps ({"SubscribeVuLevels" : {"result" : "Ok" }}),
173+ json .dumps (
174+ {
175+ "VuLevelsEvent" : {
176+ "result" : "Ok" ,
177+ "value" : {
178+ "playback_rms" : [- 20.0 , - 21.0 ],
179+ "playback_peak" : [- 10.0 , - 11.0 ],
180+ "capture_rms" : [- 30.0 , - 31.0 ],
181+ "capture_peak" : [- 12.0 , - 13.0 ],
182+ },
183+ }
184+ }
185+ ),
186+ json .dumps ({"StopSubscription" : {"result" : "Ok" }}),
187+ ]
188+ )
189+
190+ camilla_mockws .mockconnection .send = MagicMock (side_effect = lambda msg : sent .append (msg ))
191+ camilla_mockws .mockconnection .recv = MagicMock (side_effect = lambda : next (replies ))
192+
193+ events = []
194+
195+ def on_event (event_data ):
196+ events .append (event_data )
197+ return False
198+
199+ camilla_mockws .levels .subscribe_vu_levels (
200+ on_event , max_rate = 30 , attack = 10 , release = 200
201+ )
202+
203+ assert events == [
204+ {
205+ "playback_rms" : [- 20.0 , - 21.0 ],
206+ "playback_peak" : [- 10.0 , - 11.0 ],
207+ "capture_rms" : [- 30.0 , - 31.0 ],
208+ "capture_peak" : [- 12.0 , - 13.0 ],
209+ }
210+ ]
211+ assert sent == [
212+ json .dumps (
213+ {"SubscribeVuLevels" : {"max_rate" : 30.0 , "attack" : 10.0 , "release" : 200.0 }}
214+ ),
215+ json .dumps ("StopSubscription" ),
216+ ]
167217 assert camilla_mockws .general .state () == camilladsp .ProcessingState .INACTIVE
168218 assert camilla_mockws .versions .camilladsp () == ("0" , "3" , "2" )
169219 assert camilla_mockws .versions .library () == tuple (camilladsp .VERSION .split ("." ))
@@ -424,6 +474,38 @@ def test_subscribe_signal_levels(camilla_mockquery):
424474 )
425475
426476
477+ def test_subscribe_vu_levels (camilla_mockquery ):
478+ callback = MagicMock (return_value = False )
479+ camilla_mockquery .subscribe_events = MagicMock ()
480+
481+ camilla_mockquery .levels .subscribe_vu_levels (
482+ callback , max_rate = 30 , attack = 10 , release = 200
483+ )
484+
485+ camilla_mockquery .subscribe_events .assert_called_with (
486+ command = "SubscribeVuLevels" ,
487+ arg = {"max_rate" : 30.0 , "attack" : 10.0 , "release" : 200.0 },
488+ event_name = "VuLevelsEvent" ,
489+ callback = callback ,
490+ )
491+
492+
493+ def test_subscribe_vu_levels (camilla_mockquery ):
494+ callback = MagicMock (return_value = False )
495+ camilla_mockquery .subscribe_events = MagicMock ()
496+
497+ camilla_mockquery .levels .subscribe_vu_levels (
498+ callback , max_rate = 30 , attack = 10 , release = 200
499+ )
500+
501+ camilla_mockquery .subscribe_events .assert_called_with (
502+ command = "SubscribeVuLevels" ,
503+ arg = {"max_rate" : 30.0 , "attack" : 10.0 , "release" : 200.0 },
504+ event_name = "VuLevelsEvent" ,
505+ callback = callback ,
506+ )
507+
508+
427509def test_subscribe_events (camilla_mockws ):
428510 camilla_mockws .connect ()
429511 sent = []
@@ -470,3 +552,55 @@ def on_event(event_data):
470552 "peak" : [- 39.4 , - 38.9 ],
471553 }
472554 ]
555+
556+
557+ def test_subscribe_vu_events (camilla_mockws ):
558+ camilla_mockws .connect ()
559+ sent = []
560+ replies = iter (
561+ [
562+ json .dumps ({"SubscribeVuLevels" : {"result" : "Ok" }}),
563+ json .dumps (
564+ {
565+ "VuLevelsEvent" : {
566+ "result" : "Ok" ,
567+ "value" : {
568+ "playback_rms" : [- 20.0 , - 21.0 ],
569+ "playback_peak" : [- 10.0 , - 11.0 ],
570+ "capture_rms" : [- 30.0 , - 31.0 ],
571+ "capture_peak" : [- 12.0 , - 13.0 ],
572+ },
573+ }
574+ }
575+ ),
576+ json .dumps ({"StopSubscription" : {"result" : "Ok" }}),
577+ ]
578+ )
579+
580+ camilla_mockws .mockconnection .send = MagicMock (side_effect = lambda msg : sent .append (msg ))
581+ camilla_mockws .mockconnection .recv = MagicMock (side_effect = lambda : next (replies ))
582+
583+ events = []
584+
585+ def on_event (event_data ):
586+ events .append (event_data )
587+ return False
588+
589+ camilla_mockws .levels .subscribe_vu_levels (
590+ on_event , max_rate = 30 , attack = 10 , release = 200
591+ )
592+
593+ assert events == [
594+ {
595+ "playback_rms" : [- 20.0 , - 21.0 ],
596+ "playback_peak" : [- 10.0 , - 11.0 ],
597+ "capture_rms" : [- 30.0 , - 31.0 ],
598+ "capture_peak" : [- 12.0 , - 13.0 ],
599+ }
600+ ]
601+ assert sent == [
602+ json .dumps (
603+ {"SubscribeVuLevels" : {"max_rate" : 30.0 , "attack" : 10.0 , "release" : 200.0 }}
604+ ),
605+ json .dumps ("StopSubscription" ),
606+ ]
0 commit comments