Commit #10: more classes
[smartthings-infrastructure.git] / MusicPlayer / MusicPlayers.groovy
index 9cf8f6969bbfb18fdd88aa69421d320a750af3ae..bf733db3a93bc327219d4f273b507eaf708cc6bd 100644 (file)
@@ -15,8 +15,9 @@ public class MusicPlayers {
        private int level = 20
        private String mute = "unmuted"
        private String status = "pause"
-       private int trackNumber = 0
-       private List trackData = ["track1", "track2", "track3", "track4"]
+       private int trackNumber = 1
+       private String trackData = "someTrack"
+       private String trackDescription = "someDescriptions"
 
        
                
@@ -25,7 +26,42 @@ public class MusicPlayers {
                this.deviceNumbers = deviceNumbers
                this.musicPlayers = []
 
-               musicPlayers.add(new MusicPlayer(id, label, displayName, this.level, this.mute, this.status, this.trackNumber, this.trackData))
+               musicPlayers.add(new MusicPlayer(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) {
+                               musicPlayers[0].setValue(eventDataMap["value"], "status")
+                               this.status = musicPlayers[0].status
+                               sendEvent(eventDataMap)
+                       }       
+               } else if (eventDataMap["name"] == "level") {
+                       if (eventDataMap["value"] != musicPlayers[0].level) {
+                               musicPlayers[0].setValue(eventDataMap["value"], "level")
+                               this.level = musicPlayers[0].level
+                               sendEvent(eventDataMap)
+                       }
+               } else if (eventDataMap["name"] == "trackDescription") {
+                       if (eventDataMap["value"] != musicPlayers[0].trackDescription) {
+                               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
+                               sendEvent(eventDataMap)
+                       }
+               } else if (eventDataMap["name"] == "mute") {
+                       if (eventDataMap["value"] != musicPlayers[0].mute) {
+                               musicPlayers[0].setValue(eventDataMap["value"], "mute")
+                               this.mute = musicPlayers[0].mute
+                               sendEvent(eventDataMap)
+                       }
+               }
        }
 
        //Methods for closures