|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
-
-
- #include "multiplier.h"
-
-
- void AudioMultiplier2::update(void)
- {
- audio_block_t *in, *out=NULL;
- unsigned int i;
-
- if (!out) {
- out = receiveWritable(0);
- if (out) {
- in = receiveReadOnly(1);
- if (in) {
- int16_t * input1 = (int16_t *)out->data;
- const int16_t * input2 = (int16_t *)in->data;
- for (i=0; i < AUDIO_BLOCK_SAMPLES; ++i) {
- int32_t tmp =*input1 * *input2++;
-
- *input1++= (int16_t)(tmp>>15);
- }
- release(in);
- }
- }
- }
- if (out) {
- transmit(out);
- release(out);
- }
- }
-
-
-
|