Elements used in the Balls and Things games for the RETRO.
Dependents: RETRO_BallsAndPaddle RETRO_BallAndHoles
SoundFx.cpp@0:3d0db4e183ee, 2015-02-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |