package v2.Adaptor.Impl; import v2.Adaptor.Clavier; import v2.Adaptor.Materiel; import v2.Command.Command; import v2.Impl.Controller; import v2.Impl.UI.Led; /** * Cette classe d�crit l'adaptateur entre le Controleur et le Mat�riel. <br /> * Elle impl�mente Command car la m�thode execute est appel�e � intervale * r�gulier pour v�rifier l'�tat du Mat�riel. * */ public class Adaptor implements Command { private Materiel mat; private Controller ctl; private int oldTempo; public Adaptor(Materiel mat, Controller ctl) { this.mat = mat; this.ctl = ctl; oldTempo = 120; } @Override public void execute() { Clavier cl = mat.getClavier(); if (cl.touchePressee(Materiel.DEC)) ctl.dec(); if (cl.touchePressee(Materiel.INC)) ctl.inc(); if (cl.touchePressee(Materiel.START)) ctl.start(); if (cl.touchePressee(Materiel.STOP)) ctl.stop(); int newTempo = (int) mat.getMolette().position(); if (oldTempo != newTempo) { ctl.setTempo(newTempo); mat.getAfficheur().afficherTempo(newTempo); oldTempo = newTempo; } } /** * M�thode appel�e depuis le Controleur pour notifier le passage d'un temps au Mat�riel */ public void notifyTemps() { mat.getAfficheur().allumerLed(Led.LEDTEMPS); mat.getEmetteurSonore().emettreClic(); } /** * M�thode appel�e depuis le Controleur pour notifier le passage d'une mesure au Mat�riel */ public void notifyMesure() { mat.getAfficheur().allumerLed(Led.LEDMESURE); } }