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()
53 musicPlayers[0].nextTrack()
56 musicPlayers[0].pause()
59 musicPlayers[0].play()
61 def playTrack(String trackToPlay) {
62 musicPlayers[0].playTrack(trackToPlay)
65 musicPlayers[0].previousTrack()
67 def restoreTrack(String trackToRestore) {
68 musicPlayers[0].restoreTrack(trackToRestore)
70 def resumeTrack(String trackToResume) {
71 musicPlayers[0].resumeTrack(trackToResume)
73 def setLevel(int level) {
74 musicPlayers[0].setLevel(level)
76 def setTrack(String trackToSet) {
77 musicPlayers[0].setTrack(trackToSet)
80 musicPlayers[0].stop()
83 def currentValue(String deviceFeature) {
84 musicPlayers[0].currentValue(deviceFeature)