Skip to content

Commit c97e362

Browse files
shfitzcmaglie
authored andcommitted
Refactored prepare() method in Audio library
1 parent 43cf5b0 commit c97e362

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

hardware/arduino/sam/libraries/Audio/Audio.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@ void AudioClass::end() {
3333
free( buffer);
3434
}
3535

36+
void AudioClass::prepare(int16_t *buffer, int S, int volume){
37+
uint16_t *ubuffer = (uint16_t*) buffer;
38+
for (int i=0; i<S; i++) {
39+
// set volume amplitude (signed multiply)
40+
buffer[i] = buffer[i] * volume / 1024;
41+
// convert from signed 16 bit to unsigned 12 bit for DAC.
42+
ubuffer[i] += 0x8000;
43+
ubuffer[i] >>= 4;
44+
}
45+
}
46+
3647
size_t AudioClass::write(const uint32_t *data, size_t size) {
3748
const uint32_t TAG = 0x10000000;
3849
int i;

hardware/arduino/sam/libraries/Audio/Audio.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
class AudioClass : public Print {
1919
public:
2020
AudioClass(DACClass &_dac) : dac(&_dac) { };
21+
void prepare(int16_t *buffer, int S, int volume);
2122
void begin(uint32_t sampleRate, uint32_t msPreBuffer);
2223
void end();
2324

hardware/arduino/sam/libraries/Audio/examples/SimpleAudioPlayer/SimpleAudioPlayer.ino

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ void loop()
4444
myFile.read(buffer, sizeof(buffer));
4545

4646
// Prepare samples
47-
int volume = analogRead(2);
48-
prepare(buffer, S, volume);
47+
int volume = 1024;
48+
Audio.prepare(buffer, S, volume);
4949
// Feed samples to audio
5050
Audio.write(buffer, S);
5151

@@ -58,20 +58,7 @@ void loop()
5858
}
5959
myFile.close();
6060

61-
6261
Serial.println("End of file. Thank you for listening!");
6362
while (true) ;
6463
}
6564

66-
67-
void prepare(int16_t *buffer, int S, int volume) {
68-
uint16_t *ubuffer = (uint16_t*) buffer;
69-
for (int i=0; i<S; i++) {
70-
// set volume amplitude (signed multiply)
71-
buffer[i] = buffer[i] * volume / 1024;
72-
// convert from signed 16 bit to unsigned 12 bit for DAC.
73-
ubuffer[i] += 0x8000;
74-
ubuffer[i] >>= 4;
75-
}
76-
}
77-

0 commit comments

Comments
 (0)