Elements used in the Balls and Things games for the RETRO.

Dependents:   RETRO_BallsAndPaddle RETRO_BallAndHoles

Committer:
maxint
Date:
Fri Feb 06 09:51:06 2015 +0000
Revision:
0:3d0db4e183ee
Child:
1:71185a0aadfc
Put Balls and Things objects into a library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maxint 0:3d0db4e183ee 1 #include "SoundFX.h"
maxint 0:3d0db4e183ee 2
maxint 0:3d0db4e183ee 3 SoundFX::SoundFX() :
maxint 0:3d0db4e183ee 4 // pwm(P0_18),
maxint 0:3d0db4e183ee 5 music(P0_18)
maxint 0:3d0db4e183ee 6 {
maxint 0:3d0db4e183ee 7 // this->pwmTicksLeft=0;
maxint 0:3d0db4e183ee 8 this->fMute=false;
maxint 0:3d0db4e183ee 9 music.setCompletionCallback(this, &SoundFX::musicCompleted);
maxint 0:3d0db4e183ee 10 }
maxint 0:3d0db4e183ee 11
maxint 0:3d0db4e183ee 12 void SoundFX::checkPwm()
maxint 0:3d0db4e183ee 13 {
maxint 0:3d0db4e183ee 14 /*
maxint 0:3d0db4e183ee 15 if(this->fMute || this->pwmTicksLeft == 0)
maxint 0:3d0db4e183ee 16 this->pwm.write(0.0);
maxint 0:3d0db4e183ee 17 else
maxint 0:3d0db4e183ee 18 {
maxint 0:3d0db4e183ee 19 this->pwmTicksLeft--;
maxint 0:3d0db4e183ee 20 this->pwm.write(0.5);
maxint 0:3d0db4e183ee 21 }
maxint 0:3d0db4e183ee 22 */
maxint 0:3d0db4e183ee 23 }
maxint 0:3d0db4e183ee 24
maxint 0:3d0db4e183ee 25 void SoundFX::musicCompleted(void)
maxint 0:3d0db4e183ee 26 {
maxint 0:3d0db4e183ee 27 /*
maxint 0:3d0db4e183ee 28 PwmOut pwm(P0_18);
maxint 0:3d0db4e183ee 29 pwm = 0.0;
maxint 0:3d0db4e183ee 30 pwm.period(0.1);
maxint 0:3d0db4e183ee 31 pwm.write(0.00);
maxint 0:3d0db4e183ee 32 */
maxint 0:3d0db4e183ee 33 }
maxint 0:3d0db4e183ee 34
maxint 0:3d0db4e183ee 35 void SoundFX::reset()
maxint 0:3d0db4e183ee 36 {
maxint 0:3d0db4e183ee 37 /*
maxint 0:3d0db4e183ee 38 this->pwmTicksLeft=0;
maxint 0:3d0db4e183ee 39
maxint 0:3d0db4e183ee 40 this->pwm.period_ms(1);
maxint 0:3d0db4e183ee 41 this->pwm.write(0.00);
maxint 0:3d0db4e183ee 42 */
maxint 0:3d0db4e183ee 43 /*
maxint 0:3d0db4e183ee 44 PwmOut pwm(P0_18);
maxint 0:3d0db4e183ee 45 pwm.write(0.00);
maxint 0:3d0db4e183ee 46 */
maxint 0:3d0db4e183ee 47 }
maxint 0:3d0db4e183ee 48
maxint 0:3d0db4e183ee 49 void SoundFX::setMute(bool fMute)
maxint 0:3d0db4e183ee 50 {
maxint 0:3d0db4e183ee 51 this->fMute=fMute;
maxint 0:3d0db4e183ee 52 }
maxint 0:3d0db4e183ee 53
maxint 0:3d0db4e183ee 54
maxint 0:3d0db4e183ee 55 bool SoundFX::getMute()
maxint 0:3d0db4e183ee 56 {
maxint 0:3d0db4e183ee 57 return(this->fMute);
maxint 0:3d0db4e183ee 58 }
maxint 0:3d0db4e183ee 59
maxint 0:3d0db4e183ee 60
maxint 0:3d0db4e183ee 61 void SoundFX::beep(int nDuration) //nDuration=1
maxint 0:3d0db4e183ee 62 {
maxint 0:3d0db4e183ee 63 if(this->fMute)
maxint 0:3d0db4e183ee 64 return;
maxint 0:3d0db4e183ee 65 // this->pwmTicksLeft = nDuration;
maxint 0:3d0db4e183ee 66 }
maxint 0:3d0db4e183ee 67
maxint 0:3d0db4e183ee 68 void SoundFX::beepShort()
maxint 0:3d0db4e183ee 69 {
maxint 0:3d0db4e183ee 70 if(this->fMute)
maxint 0:3d0db4e183ee 71 return;
maxint 0:3d0db4e183ee 72 /*
maxint 0:3d0db4e183ee 73 this->pwm.period_ms(2);
maxint 0:3d0db4e183ee 74 this->pwmTicksLeft = SoundFX::BOUNCE1_SOUND_TICKS;
maxint 0:3d0db4e183ee 75 */
maxint 0:3d0db4e183ee 76 music.play("T240 L32 O6 C");
maxint 0:3d0db4e183ee 77 }
maxint 0:3d0db4e183ee 78
maxint 0:3d0db4e183ee 79 void SoundFX::beepLong()
maxint 0:3d0db4e183ee 80 {
maxint 0:3d0db4e183ee 81 if(this->fMute)
maxint 0:3d0db4e183ee 82 return;
maxint 0:3d0db4e183ee 83
maxint 0:3d0db4e183ee 84 /*
maxint 0:3d0db4e183ee 85 this->pwm.period_ms(1);
maxint 0:3d0db4e183ee 86 this->pwmTicksLeft = SoundFX::BOUNCE2_SOUND_TICKS;
maxint 0:3d0db4e183ee 87 */
maxint 0:3d0db4e183ee 88 music.play("T240 L8 O5 C");
maxint 0:3d0db4e183ee 89 }
maxint 0:3d0db4e183ee 90
maxint 0:3d0db4e183ee 91 void SoundFX::beepLow()
maxint 0:3d0db4e183ee 92 {
maxint 0:3d0db4e183ee 93 if(this->fMute)
maxint 0:3d0db4e183ee 94 return;
maxint 0:3d0db4e183ee 95 /*
maxint 0:3d0db4e183ee 96 this->pwm.period(1.0/220);
maxint 0:3d0db4e183ee 97 this->pwm.write(0.5);
maxint 0:3d0db4e183ee 98 wait_ms(150);
maxint 0:3d0db4e183ee 99 this->pwm.write(0.0);
maxint 0:3d0db4e183ee 100 */
maxint 0:3d0db4e183ee 101 music.play("T180 L4 O3 C");
maxint 0:3d0db4e183ee 102 }
maxint 0:3d0db4e183ee 103
maxint 0:3d0db4e183ee 104 void SoundFX::play(char *szPlay)
maxint 0:3d0db4e183ee 105 {
maxint 0:3d0db4e183ee 106 if(this->fMute)
maxint 0:3d0db4e183ee 107 return;
maxint 0:3d0db4e183ee 108 music.play(szPlay);
maxint 0:3d0db4e183ee 109 }
maxint 0:3d0db4e183ee 110
maxint 0:3d0db4e183ee 111 void SoundFX::playTune()
maxint 0:3d0db4e183ee 112 {
maxint 0:3d0db4e183ee 113 if(this->fMute)
maxint 0:3d0db4e183ee 114 return;
maxint 0:3d0db4e183ee 115 /*
maxint 0:3d0db4e183ee 116 this->pwm.period(1.0/220);
maxint 0:3d0db4e183ee 117 this->pwm.write(0.5);
maxint 0:3d0db4e183ee 118 wait_ms(150);
maxint 0:3d0db4e183ee 119 this->pwm.write(0.0);
maxint 0:3d0db4e183ee 120
maxint 0:3d0db4e183ee 121 this->pwm.period(1.0/196);
maxint 0:3d0db4e183ee 122 this->pwm.write(0.5);
maxint 0:3d0db4e183ee 123 wait_ms(150);
maxint 0:3d0db4e183ee 124 this->pwm.write(0.0);
maxint 0:3d0db4e183ee 125
maxint 0:3d0db4e183ee 126 this->pwm.period(1.0/164.81);
maxint 0:3d0db4e183ee 127 this->pwm.write(0.5);
maxint 0:3d0db4e183ee 128 wait_ms(150);
maxint 0:3d0db4e183ee 129 this->pwm.write(0.0);
maxint 0:3d0db4e183ee 130 */
maxint 0:3d0db4e183ee 131 // music.setCompletionCallback(this, &SoundFX::musicCompleted);
maxint 0:3d0db4e183ee 132 //music.play("T224L8O5CL16>C<P16GP16L8EL16P16>C<GP16L8E.L16P16L8C#L16>C#<P16G#P16L8FL16P16>C#<G#P16L8F.L16P16L8CL16>C<P16GP16L8EL16P16>C<GP16L8E.L16P16D#EFP16FF#GP16GG#AP16L8>C<P8L4>C");
maxint 0:3d0db4e183ee 133 music.play("T120 O3 L16 F L4 C F L8 C");
maxint 0:3d0db4e183ee 134
maxint 0:3d0db4e183ee 135 }