package fr.utc.leapband.sma.sound;
import jade.core.behaviours.CyclicBehaviour;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.MessageTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import fr.utc.leapband.utilities.BackgroundMusicData;
@SuppressWarnings("serial")
public class WaitBackgroundRequestBehaviour extends CyclicBehaviour {
MusicPlayer player = null;
public void action() {
MessageTemplate filtre = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.INFORM),
MessageTemplate.MatchConversationId("BACKGROUND"));
ACLMessage request = myAgent.receive(filtre);
if(request != null) {
ObjectMapper mapper = new ObjectMapper();
try {
BackgroundMusicData data = mapper.readValue(request.getContent(), BackgroundMusicData.class);
switch(data.getAction()) {
case START_BACKGROUND:
player.Start();
break;
case PAUSE_BACKGROUND:
player.Pause();
break;
case RESTART_BACKGROUND:
player.Restart();
break;
case STOP_BACKGROUND:
player.Stop();
break;
case CHANGE_BACKGROUND:
if (player!=null){
player.Stop();
player=null;
}
player = MusicPlayer.getMusicPlayer("effect/short.mp3");
player.Start();
player = MusicPlayer.getMusicPlayer(data.getPath());
break;
case CHANGE_VOLUME:
player.SetVolume(data.getVolume());
break;
case DEFAULT:
break;
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
else
block();
}
}