Michele Furlanetto / Mbed 2 deprecated mbed_keyboard

Dependencies:   TextLCD mbed MMA8451Q TSI

Committer:
mfurlanetto
Date:
Fri Oct 16 16:38:29 2015 +0000
Branch:
mono
Revision:
10:6e18b220e10c
Parent:
8:60231840370f
ritornati alla singola nota contemporanea.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfurlanetto 8:60231840370f 1 #include "Speaker.h"
mfurlanetto 8:60231840370f 2 #include "Note.cpp"
mfurlanetto 8:60231840370f 3 #include "Button.cpp"
mfurlanetto 8:60231840370f 4
mfurlanetto 10:6e18b220e10c 5 class ButtonMusical: public Button
mfurlanetto 10:6e18b220e10c 6 {
mfurlanetto 8:60231840370f 7 public:
mfurlanetto 10:6e18b220e10c 8
mfurlanetto 10:6e18b220e10c 9 ButtonMusical(PinName pin, Note note, Speaker* speaker) : Button(pin), _note(note), sp(speaker) {
mfurlanetto 10:6e18b220e10c 10 alreadyPressed=false;
mfurlanetto 8:60231840370f 11 }
mfurlanetto 8:60231840370f 12 void press() {
mfurlanetto 10:6e18b220e10c 13 if(!alreadyPressed) {
mfurlanetto 8:60231840370f 14 sp->changeFrequency(_note.getFrequency());
mfurlanetto 10:6e18b220e10c 15 buttonsPressed++;
mfurlanetto 10:6e18b220e10c 16 alreadyPressed=true;
mfurlanetto 8:60231840370f 17 }
mfurlanetto 8:60231840370f 18 }
mfurlanetto 10:6e18b220e10c 19
mfurlanetto 10:6e18b220e10c 20 void release() {
mfurlanetto 10:6e18b220e10c 21 if(alreadyPressed) {
mfurlanetto 10:6e18b220e10c 22 if(--buttonsPressed==0)
mfurlanetto 10:6e18b220e10c 23 sp->stop();
mfurlanetto 10:6e18b220e10c 24 alreadyPressed=false;
mfurlanetto 10:6e18b220e10c 25 }
mfurlanetto 8:60231840370f 26 }
mfurlanetto 8:60231840370f 27
mfurlanetto 8:60231840370f 28 private:
mfurlanetto 8:60231840370f 29 Note _note;
mfurlanetto 10:6e18b220e10c 30 bool alreadyPressed;
mfurlanetto 8:60231840370f 31 Speaker* sp;
mfurlanetto 10:6e18b220e10c 32
mfurlanetto 10:6e18b220e10c 33 int static buttonsPressed;
mfurlanetto 8:60231840370f 34 };