kopia lustrzana https://github.com/Aircoookie/WLED
removing dead code from getSamples()
rodzic
8acb44b202
commit
c6691564a5
|
@ -79,9 +79,6 @@ class AudioSource {
|
||||||
*/
|
*/
|
||||||
virtual void getSamples(float *buffer, uint16_t num_samples) = 0;
|
virtual void getSamples(float *buffer, uint16_t num_samples) = 0;
|
||||||
|
|
||||||
/* Get an up-to-date sample without DC offset */
|
|
||||||
virtual int getSampleWithoutDCOffset() { return _sampleNoDCOffset; };
|
|
||||||
|
|
||||||
/* check if the audio source driver was initialized successfully */
|
/* check if the audio source driver was initialized successfully */
|
||||||
virtual bool isInitialized(void) {return(_initialized);}
|
virtual bool isInitialized(void) {return(_initialized);}
|
||||||
|
|
||||||
|
@ -97,15 +94,11 @@ class AudioSource {
|
||||||
AudioSource(int sampleRate, int blockSize) :
|
AudioSource(int sampleRate, int blockSize) :
|
||||||
_sampleRate(sampleRate),
|
_sampleRate(sampleRate),
|
||||||
_blockSize(blockSize),
|
_blockSize(blockSize),
|
||||||
_sampleNoDCOffset(0),
|
|
||||||
_dcOffset(0.0f),
|
|
||||||
_initialized(false)
|
_initialized(false)
|
||||||
{};
|
{};
|
||||||
|
|
||||||
int _sampleRate; // Microphone sampling rate
|
int _sampleRate; // Microphone sampling rate
|
||||||
int _blockSize; // I2S block size
|
int _blockSize; // I2S block size
|
||||||
volatile int _sampleNoDCOffset; // Up-to-date sample without DCOffset
|
|
||||||
float _dcOffset; // Rolling average DC offset
|
|
||||||
bool _initialized; // Gets set to true if initialization is successful
|
bool _initialized; // Gets set to true if initialization is successful
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -199,9 +192,6 @@ class I2SSource : public AudioSource {
|
||||||
size_t bytes_read = 0; /* Counter variable to check if we actually got enough data */
|
size_t bytes_read = 0; /* Counter variable to check if we actually got enough data */
|
||||||
I2S_datatype newSamples[num_samples]; /* Intermediary sample storage */
|
I2S_datatype newSamples[num_samples]; /* Intermediary sample storage */
|
||||||
|
|
||||||
// Reset dc offset
|
|
||||||
_dcOffset = 0.0f;
|
|
||||||
|
|
||||||
err = i2s_read(I2S_NUM_0, (void *)newSamples, sizeof(newSamples), &bytes_read, portMAX_DELAY);
|
err = i2s_read(I2S_NUM_0, (void *)newSamples, sizeof(newSamples), &bytes_read, portMAX_DELAY);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
DEBUGSR_PRINTF("Failed to get samples: %d\n", err);
|
DEBUGSR_PRINTF("Failed to get samples: %d\n", err);
|
||||||
|
@ -216,6 +206,7 @@ class I2SSource : public AudioSource {
|
||||||
|
|
||||||
// Store samples in sample buffer and update DC offset
|
// Store samples in sample buffer and update DC offset
|
||||||
for (int i = 0; i < num_samples; i++) {
|
for (int i = 0; i < num_samples; i++) {
|
||||||
|
|
||||||
newSamples[i] = postProcessSample(newSamples[i]); // perform postprocessing (needed for ADC samples)
|
newSamples[i] = postProcessSample(newSamples[i]); // perform postprocessing (needed for ADC samples)
|
||||||
|
|
||||||
float currSample = 0.0f;
|
float currSample = 0.0f;
|
||||||
|
@ -225,11 +216,7 @@ class I2SSource : public AudioSource {
|
||||||
currSample = (float) newSamples[i]; // 16bit input -> use as-is
|
currSample = (float) newSamples[i]; // 16bit input -> use as-is
|
||||||
#endif
|
#endif
|
||||||
buffer[i] = currSample;
|
buffer[i] = currSample;
|
||||||
_dcOffset = ((_dcOffset * 31.0f) + currSample) / 32.0f;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update no-DC sample
|
|
||||||
_sampleNoDCOffset = buffer[num_samples - 1] - _dcOffset;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue