|
|
| version 1.2, 2003/10/19 16:54:51 | version 1.4, 2003/10/21 11:22:05 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "pccore.h" | |
| #include "sound.h" | #include "sound.h" |
| #include "beep.h" | #include "beep.h" |
| Line 14 static void oneshot(BEEP bp, SINT32 *pcm | Line 13 static void oneshot(BEEP bp, SINT32 *pcm |
| SINT32 remain; | SINT32 remain; |
| BPEVENT *bev; | BPEVENT *bev; |
| vol = beepcfg.vol << 11; | vol = beepcfg.vol; |
| bev = bp->event; | bev = bp->event; |
| do { | do { |
| remain = beepcfg.sampleclock; | remain = (1 << 16); |
| samp = 0; | samp = 0; |
| while(remain >= bev->clock) { | while(remain >= bev->clock) { |
| if (--bp->events) { | if (--bp->events) { |
| Line 33 static void oneshot(BEEP bp, SINT32 *pcm | Line 32 static void oneshot(BEEP bp, SINT32 *pcm |
| if (bp->lastenable) { | if (bp->lastenable) { |
| samp += remain; | samp += remain; |
| samp *= vol; | samp *= vol; |
| samp /= beepcfg.sampleclock; | samp >>= (16 - 11); |
| do { | do { |
| pcm[0] += samp; | pcm[0] += samp; |
| pcm[1] += samp; | pcm[1] += samp; |
| Line 43 static void oneshot(BEEP bp, SINT32 *pcm | Line 42 static void oneshot(BEEP bp, SINT32 *pcm |
| } | } |
| else { | else { |
| samp *= vol; | samp *= vol; |
| samp /= beepcfg.sampleclock; | samp >>= (16 - 11); |
| pcm[0] += samp; | pcm[0] += samp; |
| pcm[1] += samp; | pcm[1] += samp; |
| } | } |
| Line 56 static void oneshot(BEEP bp, SINT32 *pcm | Line 55 static void oneshot(BEEP bp, SINT32 *pcm |
| samp += remain; | samp += remain; |
| } | } |
| samp *= vol; | samp *= vol; |
| samp /= beepcfg.sampleclock; | samp >>= (16 - 11); |
| pcm[0] += samp; | pcm[0] += samp; |
| pcm[1] += samp; | pcm[1] += samp; |
| pcm += 2; | pcm += 2; |
| Line 87 void SOUNDCALL beep_getpcm(BEEP bp, SINT | Line 86 void SOUNDCALL beep_getpcm(BEEP bp, SINT |
| if ((count) && (beepcfg.vol)) { | if ((count) && (beepcfg.vol)) { |
| if (bp->mode == 0) { | if (bp->mode == 0) { |
| if ((bp->events) && (beepcfg.sampleclock)) { | if (bp->events) { |
| oneshot(bp, pcm, count); | oneshot(bp, pcm, count); |
| } | } |
| } | } |