1 //Create a class for music player
3 import SmartThing.SmartThings
5 public class MusicPlayers extends SmartThings {
6 List musicPlayers = new ArrayList()
8 MusicPlayers(Closure sendEvent, boolean init) {
9 // Only initialize one time since we only have one device for each capability
10 musicPlayers = smartThings
13 StringBuilder id = new StringBuilder("musicPlayerID0")
14 StringBuilder label = new StringBuilder("status")
15 StringBuilder displayName = new StringBuilder("musicPlayer0")
16 StringBuilder mute = new StringBuilder()
17 StringBuilder status = new StringBuilder()
18 StringBuilder trackData = new StringBuilder()
19 StringBuilder trackDescription = new StringBuilder()
20 MutableInteger level = new MutableInteger()
24 mute.append("unmuted")
25 status.append("paused")
26 trackData.append("someTrack")
27 trackDescription.append("someDescriptions")
32 trackData.append("someTrack")
33 trackDescription.append("someDescriptions")
36 musicPlayers.add(new MusicPlayer(sendEvent, id, label, displayName, level, mute, status, trackData, trackDescription))
39 // Methods to set values
40 def on(LinkedHashMap metaData) {
48 def off(LinkedHashMap metaData) {
56 def mute(LinkedHashMap metaData) {
61 musicPlayers[0].mute()
64 def unmute(LinkedHashMap metaData) {
69 musicPlayers[0].unmute()
72 def nextTrack(LinkedHashMap metaData) {
77 musicPlayers[0].nextTrack()
80 def pause(LinkedHashMap metaData) {
85 musicPlayers[0].pause()
88 def play(LinkedHashMap metaData) {
93 musicPlayers[0].play()
96 def playTrack(LinkedHashMap metaData) {
97 playTrack("someTrack")
100 def playTrack(String trackToPlay) {
101 musicPlayers[0].playTrack(trackToPlay)
104 def previousTrack(LinkedHashMap metaData) {
108 def previousTrack() {
109 musicPlayers[0].previousTrack()
112 def restoreTrack(LinkedHashMap metaData) {
116 def restoreTrack(String trackToRestore) {
117 musicPlayers[0].restoreTrack(trackToRestore)
120 def resumeTrack(LinkedHashMap metaData) {
124 def resumeTrack(String trackToResume) {
125 musicPlayers[0].resumeTrack(trackToResume)
128 def setLevel(LinkedHashMap metaData) {
132 def setLevel(int level) {
133 musicPlayers[0].setLevel(level)
136 def setTrack(LinkedHashMap metaData) {
140 def setTrack(String trackToSet) {
141 musicPlayers[0].setTrack(trackToSet)
144 def stop(LinkedHashMap metaData) {
149 musicPlayers[0].stop()
152 // Methods to return values
153 def getCurrentLevel() {
154 List tmpValues = new ArrayList()
155 tmpValues.add(musicPlayers[0].getCurrentLevel())
159 def getCurrentMute() {
160 List tmpValues = new ArrayList()
161 tmpValues.add(musicPlayers[0].getCurrentMute())
165 def getCurrentStatus() {
166 List tmpValues = new ArrayList()
167 tmpValues.add(musicPlayers[0].getCurrentStatus())
171 def getCurrentTrackData() {
172 List tmpValues = new ArrayList()
173 tmpValues.add(musicPlayers[0].getCurrentTrackData())
177 def getCurrentTrackDescription() {
178 List tmpValues = new ArrayList()
179 tmpValues.add(musicPlayers[0].getCurrentTrackDescription())