Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TextLCD mbed MMA8451Q TSI
ButtonMusical.cpp@10:6e18b220e10c, 2015-10-16 (annotated)
- 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?
| User | Revision | Line number | New 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 | }; |
