1 //Create a class for music player
3 import SmartThing.SmartThings
5 //Importing mutable integer class
6 import MutableInteger.MutableInteger
8 public class MusicPlayers extends SmartThings {
9 List musicPlayers = new ArrayList()
11 MusicPlayers(Closure sendEvent, boolean init) {
12 // Only initialize one time since we only have one device for each capability
13 musicPlayers = smartThings
16 StringBuilder id = new StringBuilder("musicPlayerID0")
17 StringBuilder label = new StringBuilder("status")
18 StringBuilder displayName = new StringBuilder("musicPlayer0")
19 StringBuilder mute = new StringBuilder()
20 StringBuilder status = new StringBuilder()
21 StringBuilder trackData = new StringBuilder()
22 StringBuilder trackDescription = new StringBuilder()
23 MutableInteger level = new MutableInteger()
27 mute.append("unmuted")
28 status.append("paused")
29 trackData.append("someTrack")
30 trackDescription.append("someDescriptions")
35 trackData.append("someTrack")
36 trackDescription.append("someDescriptions")
39 musicPlayers.add(new MusicPlayer(sendEvent, id, label, displayName, level, mute, status, trackData, trackDescription))
42 // Methods to set values
43 def on(LinkedHashMap metaData) {
51 def off(LinkedHashMap metaData) {
59 def mute(LinkedHashMap metaData) {
64 musicPlayers[0].mute()
67 def unmute(LinkedHashMap metaData) {
72 musicPlayers[0].unmute()
75 def nextTrack(LinkedHashMap metaData) {
80 musicPlayers[0].nextTrack()
83 def pause(LinkedHashMap metaData) {
88 musicPlayers[0].pause()
91 def play(LinkedHashMap metaData) {
96 musicPlayers[0].play()
99 def playTrack(LinkedHashMap metaData) {
100 playTrack("someTrack")
103 def playTrack(String trackToPlay) {
104 musicPlayers[0].playTrack(trackToPlay)
107 def previousTrack(LinkedHashMap metaData) {
111 def previousTrack() {
112 musicPlayers[0].previousTrack()
115 def restoreTrack(LinkedHashMap metaData) {
119 def restoreTrack(String trackToRestore) {
120 musicPlayers[0].restoreTrack(trackToRestore)
123 def resumeTrack(LinkedHashMap metaData) {
127 def resumeTrack(String trackToResume) {
128 musicPlayers[0].resumeTrack(trackToResume)
131 def setLevel(LinkedHashMap metaData) {
135 def setLevel(int level) {
136 musicPlayers[0].setLevel(level)
139 def setTrack(LinkedHashMap metaData) {
143 def setTrack(String trackToSet) {
144 musicPlayers[0].setTrack(trackToSet)
147 def stop(LinkedHashMap metaData) {
152 musicPlayers[0].stop()
155 // Methods to return values
156 def getCurrentLevel() {
157 List tmpValues = new ArrayList()
158 tmpValues.add(musicPlayers[0].getCurrentLevel())
162 def getCurrentMute() {
163 List tmpValues = new ArrayList()
164 tmpValues.add(musicPlayers[0].getCurrentMute())
168 def getCurrentStatus() {
169 List tmpValues = new ArrayList()
170 tmpValues.add(musicPlayers[0].getCurrentStatus())
174 def getCurrentTrackData() {
175 List tmpValues = new ArrayList()
176 tmpValues.add(musicPlayers[0].getCurrentTrackData())
180 def getCurrentTrackDescription() {
181 List tmpValues = new ArrayList()
182 tmpValues.add(musicPlayers[0].getCurrentTrackDescription())