-
Notifications
You must be signed in to change notification settings - Fork 0
/
MusicVisualizationOutputHandler.txt
39 lines (33 loc) · 1.33 KB
/
MusicVisualizationOutputHandler.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//MusicVisualizationOutputHandler. Handle Information related to what is currently being visualized
Class MusicVisualizationOutputHandler
Declare Visualization currentVisualization
Declare AudioElement currentAudio
Declare Integer progress
Declare List<PhysicalLightBulb> connectedBulbs
Function initiate(audioElement, visualization)
currentAudio = audioElement
currentVisualization = visualization
progress = 0
for each LightBulb in connectedBulbs //verify the connection to every bulb or remove it
if not LightBulb.verifyConnection()
connectedBulbs.remove(LightBulb)
App.alert(Global.ErrorMessages.LostBulbConnect)
LightBulb.reset()
Function start()
App.playAudio(currentAudio, progress)
startVisualization() //helper method below
Function updateProgress(newProgress)
progress = newProgress
App.playAudio(currentAudio, progress)
Function playVisualization()
Declare List<BulbData> currentBulbData = currentVisualization.get(progress)
Declare listIterator bulbIterator = currentBulbData.listIterator()
for each LightBulb in connectedBulbs
if bulbIterator.hasNext()
LightBulb.setValues(bulbIterator.next())
else
App.alert(Global.WarningMessages.ExcessBulbs)
bulbIterator.restart()
LightBulb.setValues(bulbIterator.next())
Function stopVisualization()
App.pauseAudio(currentAudio)