Merge remote-tracking branch 'upstream/master'

Base class for text entry
This commit is contained in:
furrtek
2017-06-21 03:25:27 +01:00
131 changed files with 19385 additions and 5412 deletions

View File

@@ -35,8 +35,6 @@ static void init() {
audio::dma::configure();
audio::dma::enable();
LPC_CREG->DMAMUX = portapack::gpdma_mux;
gpdma::controller.enable();
nvicEnableVector(DMA_IRQn, CORTEX_PRIORITY_MASK(LPC_DMA_IRQ_PRIORITY));
}

View File

@@ -23,7 +23,6 @@
#define __CHANNEL_STATS_COLLECTOR_H__
#include "dsp_types.hpp"
#include "simd.hpp"
#include "message.hpp"
#include "utility.hpp"
@@ -36,15 +35,7 @@ class ChannelStatsCollector {
public:
template<typename Callback>
void feed(const buffer_c16_t& src, Callback callback) {
auto src_p = simd32_ptr(src.p);
const auto end_p = simd32_ptr(&src.p[src.count]);
while(src_p < end_p) {
const uint32_t sample = *(src_p++);
const uint32_t mag_sq = __SMUAD(sample, sample);
if( mag_sq > max_squared ) {
max_squared = mag_sq;
}
}
max_squared = compute_max_squared(src, max_squared);
count += src.count;
const size_t samples_per_update = src.sampling_rate * update_interval;
@@ -63,6 +54,22 @@ private:
static constexpr float update_interval { 0.1f };
uint32_t max_squared { 0 };
size_t count { 0 };
static uint32_t compute_max_squared(
const buffer_c16_t& src,
uint32_t max_squared
) {
auto src_p = src.p;
while(src_p < &src.p[src.count]) {
const uint32_t sample = *__SIMD32(src_p)++;
const uint32_t mag_sq = __SMUAD(sample, sample);
if( mag_sq > max_squared ) {
max_squared = mag_sq;
}
}
return max_squared;
}
};
#endif/*__CHANNEL_STATS_COLLECTOR_H__*/