diff --git a/tests/platform/codec2_encode_test.c b/tests/platform/codec2_encode_test.c index 34cb71ea..2dd46c40 100644 --- a/tests/platform/codec2_encode_test.c +++ b/tests/platform/codec2_encode_test.c @@ -33,15 +33,27 @@ static const size_t audioBufSize = 320; static const size_t dataBufSize = 2*1024; +void error() +{ + while(1) + { + platform_ledOn(RED); + sleepFor(0u, 500u); + platform_ledOff(RED); + sleepFor(0u, 500u); + } +} + void *mic_task(void *arg) { struct CODEC2 *codec2 = codec2_create(CODEC2_MODE_3200); int16_t *audioBuf = ((int16_t *) malloc(audioBufSize * sizeof(int16_t))); + if(audioBuf == NULL) error(); uint8_t *dataBuf = ((uint8_t *) malloc(dataBufSize * sizeof(uint8_t))); memset(dataBuf, 0x00, dataBufSize); audio_enableMic(); - delayMs(500); + sleepFor(0u, 500u); streamId id = inputStream_start(SOURCE_MIC, PRIO_RX, audioBuf, audioBufSize, BUF_CIRC_DOUBLE, 8000); @@ -52,22 +64,28 @@ void *mic_task(void *arg) while(pos < dataBufSize) { dataBlock_t data = inputStream_getData(id); + if(data.data == NULL) error(); + // Pre-amplification stage for(size_t i = 0; i < data.len; i++) data.data[i] <<= 3; + + // DC removal dsp_dcRemoval(data.data, data.len); + + // Post-amplification stage + for(size_t i = 0; i < data.len; i++) data.data[i] *= 20; + codec2_encode(codec2, &dataBuf[pos], data.data); pos += 8; } platform_ledOff(GREEN); - delayMs(10000); + sleepFor(10u, 0u); platform_ledOn(RED); - for(size_t i = 0; i < dataBufSize; i++) { iprintf("%02x ", dataBuf[i]); } - platform_ledOff(RED); while(1) ;