test publish
Dependencies: mbed GroveEarbudSensor
Speaker.cpp@13:879d678baf64, 2016-04-14 (annotated)
- Committer:
- age2pierre
- Date:
- Thu Apr 14 14:01:28 2016 +0000
- Revision:
- 13:879d678baf64
- Parent:
- 6:7cc8a333e03b
Added Ticker
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
age2pierre | 4:23aba111f73a | 1 | #include "Speaker.h" |
age2pierre | 4:23aba111f73a | 2 | |
age2pierre | 5:ee265ab0752d | 3 | Speaker::Speaker(PwmOut* argPin) |
age2pierre | 4:23aba111f73a | 4 | { |
age2pierre | 4:23aba111f73a | 5 | this->pin = argPin; |
age2pierre | 4:23aba111f73a | 6 | this->pulseWidth = 0.5; |
age2pierre | 4:23aba111f73a | 7 | } |
age2pierre | 4:23aba111f73a | 8 | |
age2pierre | 4:23aba111f73a | 9 | void Speaker::play(Notes note) |
age2pierre | 4:23aba111f73a | 10 | { |
age2pierre | 4:23aba111f73a | 11 | switch(note) { |
age2pierre | 5:ee265ab0752d | 12 | case DO_4 : |
age2pierre | 4:23aba111f73a | 13 | pin->period_us(1911); |
age2pierre | 4:23aba111f73a | 14 | break; |
age2pierre | 5:ee265ab0752d | 15 | case DO_d_4 : |
age2pierre | 4:23aba111f73a | 16 | pin->period_us(1804); |
age2pierre | 4:23aba111f73a | 17 | break; |
age2pierre | 5:ee265ab0752d | 18 | case RE_4 : |
age2pierre | 4:23aba111f73a | 19 | pin->period_us(1703); |
age2pierre | 4:23aba111f73a | 20 | break; |
age2pierre | 5:ee265ab0752d | 21 | case RE_d_4 : |
age2pierre | 4:23aba111f73a | 22 | pin->period_us(1607); |
age2pierre | 4:23aba111f73a | 23 | break; |
age2pierre | 5:ee265ab0752d | 24 | case MI_4 : |
age2pierre | 4:23aba111f73a | 25 | pin->period_us(1517); |
age2pierre | 4:23aba111f73a | 26 | break; |
age2pierre | 5:ee265ab0752d | 27 | case FA_4 : |
age2pierre | 4:23aba111f73a | 28 | pin->period_us(1432); |
age2pierre | 4:23aba111f73a | 29 | break; |
age2pierre | 5:ee265ab0752d | 30 | case FA_d_4 : |
age2pierre | 4:23aba111f73a | 31 | pin->period_us(1351); |
age2pierre | 4:23aba111f73a | 32 | break; |
age2pierre | 5:ee265ab0752d | 33 | case SOL_4 : |
age2pierre | 4:23aba111f73a | 34 | pin->period_us(1276); |
age2pierre | 4:23aba111f73a | 35 | break; |
age2pierre | 5:ee265ab0752d | 36 | case SOL_d_4 : |
age2pierre | 4:23aba111f73a | 37 | pin->period_us(1204); |
age2pierre | 4:23aba111f73a | 38 | break; |
age2pierre | 5:ee265ab0752d | 39 | case LA_4 : |
age2pierre | 4:23aba111f73a | 40 | pin->period_us(1136); |
age2pierre | 4:23aba111f73a | 41 | break; |
age2pierre | 5:ee265ab0752d | 42 | case LA_d_4 : |
age2pierre | 4:23aba111f73a | 43 | pin->period_us(1073); |
age2pierre | 4:23aba111f73a | 44 | break; |
age2pierre | 5:ee265ab0752d | 45 | case SI_4 : |
age2pierre | 4:23aba111f73a | 46 | pin->period_us(1012); |
age2pierre | 4:23aba111f73a | 47 | break; |
age2pierre | 5:ee265ab0752d | 48 | case DO_5 : |
age2pierre | 4:23aba111f73a | 49 | pin->period_us(956); |
age2pierre | 4:23aba111f73a | 50 | break; |
age2pierre | 5:ee265ab0752d | 51 | case DO_d_5 : |
age2pierre | 4:23aba111f73a | 52 | pin->period_us(902); |
age2pierre | 4:23aba111f73a | 53 | break; |
age2pierre | 5:ee265ab0752d | 54 | case RE_5 : |
age2pierre | 4:23aba111f73a | 55 | pin->period_us(851); |
age2pierre | 4:23aba111f73a | 56 | break; |
age2pierre | 5:ee265ab0752d | 57 | case RE_d_5 : |
age2pierre | 4:23aba111f73a | 58 | pin->period_us(804); |
age2pierre | 4:23aba111f73a | 59 | break; |
age2pierre | 5:ee265ab0752d | 60 | case MI_5 : |
age2pierre | 4:23aba111f73a | 61 | pin->period_us(758); |
age2pierre | 4:23aba111f73a | 62 | break; |
age2pierre | 5:ee265ab0752d | 63 | case FA_5 : |
age2pierre | 4:23aba111f73a | 64 | pin->period_us(716); |
age2pierre | 4:23aba111f73a | 65 | break; |
age2pierre | 5:ee265ab0752d | 66 | case FA_d_5 : |
age2pierre | 4:23aba111f73a | 67 | pin->period_us(676); |
age2pierre | 4:23aba111f73a | 68 | break; |
age2pierre | 5:ee265ab0752d | 69 | case SOL_5 : |
age2pierre | 4:23aba111f73a | 70 | pin->period_us(638); |
age2pierre | 4:23aba111f73a | 71 | break; |
age2pierre | 5:ee265ab0752d | 72 | case SOL_d_5 : |
age2pierre | 4:23aba111f73a | 73 | pin->period_us(602); |
age2pierre | 4:23aba111f73a | 74 | break; |
age2pierre | 5:ee265ab0752d | 75 | case LA_5 : |
age2pierre | 4:23aba111f73a | 76 | pin->period_us(568); |
age2pierre | 4:23aba111f73a | 77 | break; |
age2pierre | 5:ee265ab0752d | 78 | case LA_d_5 : |
age2pierre | 4:23aba111f73a | 79 | pin->period_us(536); |
age2pierre | 4:23aba111f73a | 80 | break; |
age2pierre | 5:ee265ab0752d | 81 | case SI_5 : |
age2pierre | 4:23aba111f73a | 82 | pin->period_us(506); |
age2pierre | 4:23aba111f73a | 83 | break; |
age2pierre | 5:ee265ab0752d | 84 | case DO_6 : |
age2pierre | 4:23aba111f73a | 85 | pin->period_us(478); |
age2pierre | 4:23aba111f73a | 86 | break; |
age2pierre | 5:ee265ab0752d | 87 | case DO_d_6 : |
age2pierre | 4:23aba111f73a | 88 | pin->period_us(451); |
age2pierre | 4:23aba111f73a | 89 | break; |
age2pierre | 5:ee265ab0752d | 90 | case RE_6 : |
age2pierre | 4:23aba111f73a | 91 | pin->period_us(426); |
age2pierre | 4:23aba111f73a | 92 | break; |
age2pierre | 5:ee265ab0752d | 93 | case RE_d_6 : |
age2pierre | 4:23aba111f73a | 94 | pin->period_us(402); |
age2pierre | 4:23aba111f73a | 95 | break; |
age2pierre | 5:ee265ab0752d | 96 | case MI_6 : |
age2pierre | 4:23aba111f73a | 97 | pin->period_us(379); |
age2pierre | 4:23aba111f73a | 98 | break; |
age2pierre | 5:ee265ab0752d | 99 | case FA_6 : |
age2pierre | 4:23aba111f73a | 100 | pin->period_us(358); |
age2pierre | 4:23aba111f73a | 101 | break; |
age2pierre | 5:ee265ab0752d | 102 | case FA_d_6 : |
age2pierre | 4:23aba111f73a | 103 | pin->period_us(338); |
age2pierre | 4:23aba111f73a | 104 | break; |
age2pierre | 5:ee265ab0752d | 105 | case SOL_6 : |
age2pierre | 4:23aba111f73a | 106 | pin->period_us(318); |
age2pierre | 4:23aba111f73a | 107 | break; |
age2pierre | 5:ee265ab0752d | 108 | case SOL_d_6 : |
age2pierre | 4:23aba111f73a | 109 | pin->period_us(301); |
age2pierre | 4:23aba111f73a | 110 | break; |
age2pierre | 5:ee265ab0752d | 111 | case LA_6 : |
age2pierre | 4:23aba111f73a | 112 | pin->period_us(284); |
age2pierre | 4:23aba111f73a | 113 | break; |
age2pierre | 5:ee265ab0752d | 114 | case LA_d_6 : |
age2pierre | 4:23aba111f73a | 115 | pin->period_us(268); |
age2pierre | 4:23aba111f73a | 116 | break; |
age2pierre | 5:ee265ab0752d | 117 | case SI_6 : |
age2pierre | 4:23aba111f73a | 118 | pin->period_us(253); |
age2pierre | 4:23aba111f73a | 119 | break; |
age2pierre | 6:7cc8a333e03b | 120 | case SILENCE : |
age2pierre | 5:ee265ab0752d | 121 | default : |
age2pierre | 4:23aba111f73a | 122 | this->mute(); |
age2pierre | 4:23aba111f73a | 123 | break; |
age2pierre | 4:23aba111f73a | 124 | } |
age2pierre | 5:ee265ab0752d | 125 | pin->write(this->pulseWidth); |
age2pierre | 4:23aba111f73a | 126 | } |
age2pierre | 4:23aba111f73a | 127 | |
age2pierre | 4:23aba111f73a | 128 | bool Speaker::setPulseWidth(float argPulseWidth) |
age2pierre | 4:23aba111f73a | 129 | { |
age2pierre | 4:23aba111f73a | 130 | if ((argPulseWidth >= 0.0) && (argPulseWidth <= 1.0)) { |
age2pierre | 4:23aba111f73a | 131 | this->pulseWidth = argPulseWidth; |
age2pierre | 4:23aba111f73a | 132 | return true; |
age2pierre | 4:23aba111f73a | 133 | } |
age2pierre | 4:23aba111f73a | 134 | else |
age2pierre | 4:23aba111f73a | 135 | return false; |
age2pierre | 4:23aba111f73a | 136 | } |
age2pierre | 4:23aba111f73a | 137 | |
age2pierre | 4:23aba111f73a | 138 | void Speaker::mute() |
age2pierre | 4:23aba111f73a | 139 | { |
age2pierre | 4:23aba111f73a | 140 | |
age2pierre | 4:23aba111f73a | 141 | } |