test publish

Dependencies:   mbed GroveEarbudSensor

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?

UserRevisionLine numberNew 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 }