1 //Create a class for music player
3 import Timer.SimulatedTimer
6 public class MusicPlayers {
7 private int deviceNumbers
8 private List musicPlayers
11 //For one device(We cannot have obj.id)-> We should have obj[0].id
12 private String id = "musicPlayerID0"
13 private String label = "musicPlayer0"
14 private String displayName = "musicPlayer0"
15 private int level = 20
16 private String mute = "unmuted"
17 private String status = "pause"
18 private int trackNumber = 0
19 private List trackData = ["track1", "track2", "track3", "track4"]
23 MusicPlayers(Closure sendEvent, int deviceNumbers) {
24 this.sendEvent = sendEvent
25 this.deviceNumbers = deviceNumbers
26 this.musicPlayers = []
28 musicPlayers.add(new MusicPlayer(id, label, displayName, this.level, this.mute, this.status, this.trackNumber, this.trackData))
31 //Methods for closures
32 def count(Closure Input) {
33 musicPlayers.count(Input)
38 def each(Closure Input) {
39 musicPlayers.each(Input)
41 def find(Closure Input) {
42 musicPlayers.find(Input)
44 def collect(Closure Input) {
45 musicPlayers.collect(Input)
50 musicPlayers[0].mute()
54 musicPlayers[0].nextTrack()
55 this.status = "playing"
56 this.trackNumber = musicPlayers[0].trackNumber
59 musicPlayers[0].pause()
60 this.status = "paused"
63 musicPlayers[0].play()
64 this.status = "playing"
66 def playTrack(String trackToPlay) {
67 musicPlayers[0].playTrack(trackToPlay)
68 this.status = "playing"
69 this.trackNumber = musicPlayers[0].trackNumber
72 musicPlayers[0].previousTrack()
73 this.status = "playing"
74 this.trackNumber = musicPlayers[0].trackNumber
76 def restoreTrack(String trackToRestore) {
77 musicPlayers[0].restoreTrack(trackToRestore)
79 def resumeTrack(String trackToResume) {
80 musicPlayers[0].resumeTrack(trackToResume)
81 this.status = "playing"
83 def setLevel(int level) {
84 musicPlayers[0].setLevel(level)
87 def setTrack(String trackToSet) {
88 musicPlayers[0].setTrack(trackToSet)
89 this.status = "playing"
90 this.trackNumber = musicPlayers[0].trackNumber
93 musicPlayers[0].stop()
94 this.status = "stopped"
97 def currentValue(String deviceFeature) {
98 musicPlayers[0].currentValue(deviceFeature)