Fixing conflicting files.
[smartthings-infrastructure.git] / MusicPlayer / MusicPlayers.groovy
index 63a213b9852f6b263e997b76446b6cfa86520158..c2d8b75dda55204f5742f4e6e637a5004931eea3 100644 (file)
@@ -28,54 +28,69 @@ public class MusicPlayers {
                this.deviceNumbers = deviceNumbers
                this.musicPlayers = []
 
-               def initLevel = Verify.getIntFromList(10, 20, 30)
+               /*def initLevel = Verify.getIntFromList(10, 20, 30)
                this.level = initLevel
                def initMute = Verify.getBoolean()
                if (initMute) {
                        this.mute = "unmuted"
                } else {
-                       this.mute = "mute"
+                       this.mute = "muted"
                }
-               def initStatus = Verify.getBoolean()
-               if (initStatus) {
+               def initStatus = Verify.getInt(0,2)
+               if (initStatus == 0) {
                        this.status = "paused"
-               } else {
+               } else if (initStatus == 1) {
                        this.status = "playing"
+               } else {
+                       this.status = "stopped"
                }
-
-               musicPlayers.add(new MusicPlayer(id, label, displayName, this.level, this.mute, this.status, this.trackNumber, this.trackData, this.trackDescription))
+               def initTrack = Verify.getIntFromList(1, 2, 3)
+               this.trackNumber = initTrack 
+               def initData = Verify.getBoolean()
+               if (initData) {
+                       this.trackData = "someTrack"
+               } else {
+                       this.trackData = "someOtherTrack"
+               }
+               def initDesc = Verify.getBoolean()
+               if (initDesc) {
+                       this.trackDescription = "someDescriptions"
+               } else {
+                       this.trackDescription = "someOtherDescriptions"
+               }*/
+               musicPlayers.add(new MusicPlayer(sendEvent, id, label, displayName, this.level, this.mute, this.status, this.trackNumber, this.trackData, this.trackDescription))
        }
 
        //By model checker
        def setValue(LinkedHashMap eventDataMap) {
                if (eventDataMap["name"] == "status") {
                        if (eventDataMap["value"] != musicPlayers[0].status) {
+                               this.status = eventDataMap["value"]
                                musicPlayers[0].setValue(eventDataMap["value"], "status")
-                               this.status = musicPlayers[0].status
                                sendEvent(eventDataMap)
                        }       
                } else if (eventDataMap["name"] == "level") {
-                       if (eventDataMap["value"] != musicPlayers[0].level) {
+                       if (eventDataMap["value"].toInteger() != musicPlayers[0].level) {
+                               this.level = eventDataMap["value"].toInteger()
                                musicPlayers[0].setValue(eventDataMap["value"], "level")
-                               this.level = musicPlayers[0].level
                                sendEvent(eventDataMap)
                        }
                } else if (eventDataMap["name"] == "trackDescription") {
                        if (eventDataMap["value"] != musicPlayers[0].trackDescription) {
+                               this.trackDescription = eventDataMap["value"]
                                musicPlayers[0].setValue(eventDataMap["value"], "trackDescription")
-                               this.trackDescription = musicPlayers[0].trackDescription
                                sendEvent(eventDataMap)
                        }
                } else if (eventDataMap["name"] == "trackData") {
                        if (eventDataMap["value"] != musicPlayers[0].trackData) {
-                               musicPlayers[0].setValue(eventDataMap["value"], "trackData")
-                               this.trackData = musicPlayers[0].trackData
+                               this.trackData = eventDataMap["value"]
+                               musicPlayers[0].setValue(eventDataMap["value"], "trackData")                            
                                sendEvent(eventDataMap)
                        }
                } else if (eventDataMap["name"] == "mute") {
                        if (eventDataMap["value"] != musicPlayers[0].mute) {
+                               this.mute = eventDataMap["value"]
                                musicPlayers[0].setValue(eventDataMap["value"], "mute")
-                               this.mute = musicPlayers[0].mute
                                sendEvent(eventDataMap)
                        }
                }
@@ -94,6 +109,9 @@ public class MusicPlayers {
        def find(Closure Input) {
                musicPlayers.find(Input)
        }
+       def sort(Closure Input) {
+               musicPlayers.sort(Input)
+       }
        def collect(Closure Input) {
                musicPlayers.collect(Input)
        }
@@ -101,76 +119,85 @@ public class MusicPlayers {
        //methods
        def mute() {
                if (mute != "muted") {
-                       musicPlayers[0].mute()
                        this.mute = "muted"
+                       musicPlayers[0].mute()
                }
        }
        def nextTrack() {
-               musicPlayers[0].nextTrack()
                if (status != "playing") {
                        this.status = "playing"
                }
-               this.trackNumber = musicPlayers[0].trackNumber
+               this.trackNumber = this.trackNumber+1
+               musicPlayers[0].nextTrack()
        }
        def pause() {
                if (status != "paused") {
-                       musicPlayers[0].pause()
                        this.status = "paused"
+                       musicPlayers[0].pause()                 
                }
        }
        def play() {
                if (status != "playing") {
-                       musicPlayers[0].play()
                        this.status = "playing"
+                       musicPlayers[0].play()
                }
        }
        def playTrack(String trackToPlay) {
-               musicPlayers[0].playTrack(trackToPlay)
                if (status != "playing") {
                        this.status = "playing"
                }
-               this.trackNumber = musicPlayers[0].trackNumber
+               musicPlayers[0].playTrack(trackToPlay)
        }
        def previousTrack() {
-               musicPlayers[0].previousTrack()
                if (status != "playing") {
                        this.status = "playing"
                }
-               this.trackNumber = musicPlayers[0].trackNumber
+               if (this.trackNumber != 1)
+                       this.trackNumber = this.trackNumber-1
+               musicPlayers[0].previousTrack()
        }
        def restoreTrack(String trackToRestore) {
                musicPlayers[0].restoreTrack(trackToRestore)
        }
        def resumeTrack(String trackToResume) {
-               musicPlayers[0].resumeTrack(trackToResume)
                if (status != "playing") {
                        this.status = "playing"
                }
+               musicPlayers[0].resumeTrack(trackToResume)
        }
        def setLevel(int level) {
-               if (level != this.level) {              
+               if (level != this.level) {
+                       this.level = level      
                        musicPlayers[0].setLevel(level)
-                       this.level = level
                }
        }
        def setTrack(String trackToSet) {
-               musicPlayers[0].setTrack(trackToSet)
                if (status != "playing") {
                        this.status = "playing"
                }
-               this.trackNumber = musicPlayers[0].trackNumber
+               musicPlayers[0].setTrack(trackToSet)
        }
        def stop() {
                if (status != "stopped") {
-                       musicPlayers[0].stop()
                        this.status = "stopped"
+                       musicPlayers[0].stop()
                }
        }
+       def playText(String text) {
+               if (status != "playing") {
+                       this.status = "playing"
+               }
+               musicPlayers[0].playText(text)
+       }
 
        def currentValue(String deviceFeature) {
                musicPlayers[0].currentValue(deviceFeature)
        }
 
+       def latestValue(String deviceFeature) {
+               musicPlayers[0].latestValue(deviceFeature)
+       }
+
        def getAt(int ix) {
                musicPlayers[ix]
        }