Commit #9: extension to the infrastructure with more devices + minor changes in extra...
[smartthings-infrastructure.git] / MusicPlayer / MusicPlayers.groovy
diff --git a/MusicPlayer/MusicPlayers.groovy b/MusicPlayer/MusicPlayers.groovy
new file mode 100644 (file)
index 0000000..9968595
--- /dev/null
@@ -0,0 +1,90 @@
+//Create a class for music player
+package MusicPlayer
+import Timer.SimulatedTimer
+
+
+public class MusicPlayers {
+       private int deviceNumbers
+       private List musicPlayers
+       def sendEvent
+
+       //For one device(We cannot have obj.id)-> We should have obj[0].id
+       private String id = "musicPlayerID0"
+       private String label = "musicPlayer0"
+       private String displayName = "musicPlayer0"
+       private int level = 20
+       private String mute = "unmuted"
+       private String status = "pause"
+       private int trackNumber = 0
+       private List trackData = ["track1", "track2", "track3", "track4"]
+
+       
+               
+       MusicPlayers(Closure sendEvent, int deviceNumbers) {
+               this.sendEvent = sendEvent
+               this.deviceNumbers = deviceNumbers
+               this.musicPlayers = []
+
+               musicPlayers.add(new MusicPlayer(id, label, displayName, this.level, this.mute, this.status, this.trackNumber, this.trackData))
+       }
+
+       //Methods for closures
+       def count(Closure Input) {
+               musicPlayers.count(Input)
+       }
+       def size() {
+               musicPlayers.size()
+       }
+       def each(Closure Input) {
+               musicPlayers.each(Input)
+       }
+       def find(Closure Input) {
+               musicPlayers.find(Input)
+       }
+       def collect(Closure Input) {
+               musicPlayers.collect(Input)
+       }
+
+       //methods
+       def mute() {
+               musicPlayers[0].mute()
+       }
+       def nextTrack() {
+               musicPlayers[0].nextTrack()
+       }
+       def pause() {
+               musicPlayers[0].pause()
+       }
+       def play() {
+               musicPlayers[0].play()
+       }
+       def playTrack(String trackToPlay) {
+               musicPlayers[0].playTrack(trackToPlay)
+       }
+       def previousTrack() {
+               musicPlayers[0].previousTrack()
+       }
+       def restoreTrack(String trackToRestore) {
+               musicPlayers[0].restoreTrack(trackToRestore)
+       }
+       def resumeTrack(String trackToResume) {
+               musicPlayers[0].resumeTrack(trackToResume)
+       }
+       def setLevel(int level) {
+               musicPlayers[0].setLevel(level)
+       }
+       def setTrack(String trackToSet) {
+               musicPlayers[0].setTrack(trackToSet)
+       }
+       def stop() {
+               musicPlayers[0].stop()
+       }
+
+       def currentValue(String deviceFeature) {
+               musicPlayers[0].currentValue(deviceFeature)
+       }
+
+       def getAt(int ix) {
+               musicPlayers[ix]
+       }
+}