Compile issues for non ESP32 processors

This commit is contained in:
Phil Schatzmann 2022-02-18 16:37:03 +01:00
parent 23ee30916d
commit 0c466784d0
13 changed files with 64 additions and 19 deletions

View File

@ -7,7 +7,7 @@ Maximilian maximilian(out);
// Maximilian
maxiOsc myOsc,myAutoPanner;//
vector<double> myStereoOutput(2,0);
vector<float> myStereoOutput(2,0);
maxiMix myOutputs;//this is the stereo mixer channel.
void setup() {//some inits

View File

@ -146,6 +146,8 @@
#define USE_I2S
#define USE_AUDIO_SERVER
#define USE_URLSTREAM_TASK
#define USE_TYPETRAITS
#define USE_EFFECTS_SUITE
#define PWM_FREQENCY 30000
#define PIN_PWM_START 12
@ -190,10 +192,12 @@ typedef uint32_t eps32_i2s_sample_rate_type;
//----------------
#ifdef ESP8266
#define USE_URL_ARDUINO
//#define USE_URL_ARDUINO // commented out because of compile errors
#define USE_I2S
#define USE_PWM
#define USE_AUDIO_SERVER
#define USE_TYPETRAITS
#define USE_EFFECTS_SUITE
//#define USE_ESP8266_AUDIO
#define PIN_PWM_START 12
@ -211,6 +215,8 @@ typedef uint32_t eps32_i2s_sample_rate_type;
#ifdef ARDUINO_ARDUINO_NANO33BLE
#define USE_I2S
#define USE_PWM
#define USE_TYPETRAITS
#define USE_EFFECTS_SUITE
#define PIN_PWM_START 6
#define PIN_I2S_BCK 2
@ -227,6 +233,8 @@ typedef uint32_t eps32_i2s_sample_rate_type;
//#define USE_I2S 1
#define USE_PWM
#define USE_ADC_ARDUINO
#define USE_TYPETRAITS
#define USE_EFFECTS_SUITE
#define PIN_ADC_START 26
#define PIN_PWM_START 6
@ -256,6 +264,8 @@ typedef uint32_t eps32_i2s_sample_rate_type;
#define USE_I2S 1
#define USE_PWM
#define USE_ADC_ARDUINO
#define USE_TYPETRAITS
#define USE_EFFECTS_SUITE
#define PIN_ADC_START 26
#define PIN_PWM_START 6
@ -315,5 +325,9 @@ typedef uint32_t eps32_i2s_sample_rate_type;
#ifdef IS_DESKTOP
#define USE_URL_ARDUINO
#define FLUSH_OVERRIDE override
#endif
#ifndef OVERRIDE
#define FLUSH_OVERRIDE
#endif

View File

@ -3,7 +3,9 @@
#include "AudioBasic/Vector.h"
#include "AudioEffects/SoundGenerator.h"
#include "AudioEffects/AudioEffect.h"
#ifdef USE_EFFECTS_SUITE
#include "AudioEffects/AudioEffectsSuite.h"
#endif
#ifdef USE_STK
#include "AudioEffects/STKEffects.h"
#endif

View File

@ -24,17 +24,19 @@ class I2SBase {
}
/// starts the DAC with the default config
void begin(RxTxMode mode = TX_MODE) {
begin(defaultConfig(mode));
bool begin(RxTxMode mode = TX_MODE) {
return begin(defaultConfig(mode));
}
/// starts the DAC
void begin(I2SConfig cfg) {
bool begin(I2SConfig cfg) {
i2s_set_rate(cfg.sample_rate);
cfg.bits_per_sample = 16;
if(!i2s_rxtx_begin(cfg.rx_tx_mode == RX_MODE, cfg.rx_tx_mode == TX_MODE)){
LOGE("i2s_rxtx_begin failed");
return false;
}
return true;
}
/// stops the I2C and unistalls the driver
@ -42,6 +44,16 @@ class I2SBase {
i2s_end();
}
/// we assume the data is already available in the buffer
int available() {
return I2S_BUFFER_COUNT*I2S_BUFFER_SIZE;
}
/// We limit the write size to the buffer size
int availableForWrite() {
return I2S_BUFFER_COUNT*I2S_BUFFER_SIZE;
}
/// provides the actual configuration
I2SConfig config() {
return cfg;

View File

@ -181,7 +181,7 @@ class MetaDataICY : public AbstractMetaData {
LOGD(LOG_METHOD);
if (meta_size>0){
if (metaData==nullptr){
metaData = new prog_char[meta_size+1];
metaData = new char[meta_size+1];
metaDataMaxLen = meta_size;
LOGD("metaDataMaxLen: %d", metaDataMaxLen);
} else {

View File

@ -69,7 +69,7 @@ struct PWMConfig : public AudioBaseInfo {
LOGI("channels: %d", channels);
LOGI("bits_per_sample: %d", bits_per_sample);
LOGI("buffer_size: %u", buffer_size);
LOGI("pwm_frequency: %lu", pwm_frequency);
LOGI("pwm_frequency: %u", (unsigned int)pwm_frequency);
LOGI("resolution: %d", resolution);
//LOGI("timer_id: %d", timer_id);
}

View File

@ -44,7 +44,7 @@ class AudioUtils {
result++;
}
if (result <= limit){
LOGW("Time for samplingRate %u -> %lu is < %u μs - we rounded up", (unsigned int)samplingRate, result, limit);
LOGW("Time for samplingRate %u -> %u is < %u μs - we rounded up", (unsigned int)samplingRate, (unsigned int)result, (unsigned int)limit);
result = limit;
}
return result;
@ -56,7 +56,7 @@ class AudioUtils {
result++;
}
if (result <= limit){
LOGW("Time for samplingRate %u -> %lu is < %u μs - we rounded up", (unsigned int)samplingRate, result, limit);
LOGW("Time for samplingRate %u -> %u is < %u μs - we rounded up", (unsigned int)samplingRate, (unsigned int)result, (unsigned int)limit);
result = limit;
}
return result;

View File

@ -20,11 +20,15 @@ TimerAlarmRepeatingESP8266 *self;
*/
class TimerAlarmRepeatingESP8266 : public TimerAlarmRepeatingDef {
public:
TimerAlarmRepeatingESP8266(){
self = this;
}
TimerAlarmRepeatingESP8266(TimerFunction function=DirectTimerCallback, int id=0){
self = this;
}
~TimerAlarmRepeatingESP8266(){
end();
}

View File

@ -18,8 +18,8 @@ typedef void (* repeating_timer_callback_t )(void* obj);
*/
class TimerAlarmRepeatingSTM32 : public TimerAlarmRepeatingDef {
public:
TimerAlarmRepeatingSTM32(int timerIdx=1){
TimerAlarmRepeatingSTM32(TimerFunction function=DirectTimerCallback, int timerIdx=1){
this->timer = new HardwareTimer(timers[timerIdx]);
timer->pause();
}

View File

@ -28,7 +28,7 @@ class AudioPrint : public Print {
return 1;
}
void flush() {
void flush() FLUSH_OVERRIDE {
write((const uint8_t*)tmp, tmpPos-1);
tmpPos=0;
}

View File

@ -8,7 +8,7 @@
namespace audio_tools {
#ifndef ESP32
#ifndef IRAM_ATTR
#define IRAM_ATTR
#endif
@ -68,7 +68,7 @@ class AudioStreamX : public AudioStream {
virtual int read() override { return not_supported(-1); }
virtual int peek() override { return not_supported(-1); }
virtual void flush() override {}
virtual void flush() FLUSH_OVERRIDE {}
virtual void setAudioInfo(audio_tools::AudioBaseInfo) override {}
};
@ -726,7 +726,7 @@ class TimerCallbackAudioStream : public BufferedStream,
buffer = new RingBuffer<uint8_t>(cfg.buffer_size);
timer = new TimerAlarmRepeating(cfg.timer_function, cfg.timer_id);
time = AudioUtils::toTimeUs(cfg.sample_rate);
LOGI("sample_rate: %u -> time: %lu milliseconds", cfg.sample_rate, time);
LOGI("sample_rate: %u -> time: %u milliseconds", (unsigned int)cfg.sample_rate, (unsigned int)time);
timer->setCallbackParameter(this);
timer->begin(timerCallback, time, TimeUnit::US);
}

View File

@ -1,7 +1,9 @@
#pragma once
#include "AudioTools/Converter.h"
#include "AudioConfig.h"
#ifdef USE_TYPETRAITS
#include <type_traits>
#endif
namespace audio_tools {
/**
@ -65,10 +67,15 @@ class FIR : public Filter<T> {
if(i_b == lenB)
i_b = 0;
#ifdef USE_TYPETRAITS
if (!(std::is_same<T, float>::value || std::is_same<T, double>::value)) {
b_terms = b_terms / factor;
}
#else
if (factor!=1.0) {
b_terms = b_terms / factor;
}
#endif
return b_terms;
}
private:
@ -135,9 +142,15 @@ class IIR : public Filter<T> {
i_a++;
if (i_a == lenA) i_a = 0;
#ifdef USE_TYPETRAITS
if (!(std::is_same<T, float>::value || std::is_same<T, double>::value)) {
filtered = filtered / factor;
}
#else
if (factor!=1.0) {
filtered = filtered / factor;
}
#endif
return filtered;
}

View File

@ -78,7 +78,7 @@
../examples/examples-maximilian/08-Counting4 -> rc=0
../examples/examples-maximilian/09-Envelopes -> rc=0
../examples/examples-maximilian/10-Filters -> rc=0
../examples/examples-maximilian/11-Mixing -> rc=1
../examples/examples-maximilian/11-Mixing -> rc=0
../examples/examples-maximilian/12-SamplePlayer -> rc=0
../examples/examples-maximilian/13-AdvancedFilters -> rc=0
../examples/examples-maximilian/14-MonoSynth -> rc=0