9968595e27ba6fa88bb7cbac2261c262aa4e0f34
[smartthings-infrastructure.git] / MusicPlayer / MusicPlayers.groovy
1 //Create a class for music player
2 package MusicPlayer
3 import Timer.SimulatedTimer
4
5
6 public class MusicPlayers {
7         private int deviceNumbers
8         private List musicPlayers
9         def sendEvent
10
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"]
20
21         
22                 
23         MusicPlayers(Closure sendEvent, int deviceNumbers) {
24                 this.sendEvent = sendEvent
25                 this.deviceNumbers = deviceNumbers
26                 this.musicPlayers = []
27
28                 musicPlayers.add(new MusicPlayer(id, label, displayName, this.level, this.mute, this.status, this.trackNumber, this.trackData))
29         }
30
31         //Methods for closures
32         def count(Closure Input) {
33                 musicPlayers.count(Input)
34         }
35         def size() {
36                 musicPlayers.size()
37         }
38         def each(Closure Input) {
39                 musicPlayers.each(Input)
40         }
41         def find(Closure Input) {
42                 musicPlayers.find(Input)
43         }
44         def collect(Closure Input) {
45                 musicPlayers.collect(Input)
46         }
47
48         //methods
49         def mute() {
50                 musicPlayers[0].mute()
51         }
52         def nextTrack() {
53                 musicPlayers[0].nextTrack()
54         }
55         def pause() {
56                 musicPlayers[0].pause()
57         }
58         def play() {
59                 musicPlayers[0].play()
60         }
61         def playTrack(String trackToPlay) {
62                 musicPlayers[0].playTrack(trackToPlay)
63         }
64         def previousTrack() {
65                 musicPlayers[0].previousTrack()
66         }
67         def restoreTrack(String trackToRestore) {
68                 musicPlayers[0].restoreTrack(trackToRestore)
69         }
70         def resumeTrack(String trackToResume) {
71                 musicPlayers[0].resumeTrack(trackToResume)
72         }
73         def setLevel(int level) {
74                 musicPlayers[0].setLevel(level)
75         }
76         def setTrack(String trackToSet) {
77                 musicPlayers[0].setTrack(trackToSet)
78         }
79         def stop() {
80                 musicPlayers[0].stop()
81         }
82
83         def currentValue(String deviceFeature) {
84                 musicPlayers[0].currentValue(deviceFeature)
85         }
86
87         def getAt(int ix) {
88                 musicPlayers[ix]
89         }
90 }