@@ -18,9 +18,9 @@ namespace audio_tools {
18
18
*/
19
19
class AudioPrint : public Print {
20
20
public:
21
- virtual size_t write (const uint8_t *buffer, size_t size) = 0;
21
+ virtual size_t write (const uint8_t *buffer, size_t size) override = 0;
22
22
23
- virtual size_t write (uint8_t ch) {
23
+ virtual size_t write (uint8_t ch) override {
24
24
tmp[tmpPos++] = ch;
25
25
if (tmpPos>MAX_SINGLE_CHARS){
26
26
flush ();
@@ -222,6 +222,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
222
222
*/
223
223
EncodedAudioStream (Print &outputStream, AudioDecoder &decoder) {
224
224
LOGD (LOG_METHOD);
225
+ ptr_out = &outputStream;
225
226
decoder_ptr = &decoder;
226
227
decoder_ptr->setOutputStream (outputStream);
227
228
writer_ptr = decoder_ptr;
@@ -237,6 +238,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
237
238
*/
238
239
EncodedAudioStream (Print *outputStream, AudioDecoder *decoder) {
239
240
LOGD (LOG_METHOD);
241
+ ptr_out = outputStream;
240
242
decoder_ptr = decoder;
241
243
decoder_ptr->setOutputStream (*outputStream);
242
244
writer_ptr = decoder_ptr;
@@ -251,6 +253,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
251
253
*/
252
254
EncodedAudioStream (Print &outputStream, AudioEncoder &encoder) {
253
255
LOGD (LOG_METHOD);
256
+ ptr_out = &outputStream;
254
257
encoder_ptr = &encoder;
255
258
encoder_ptr->setOutputStream (outputStream);
256
259
writer_ptr = encoder_ptr;
@@ -265,6 +268,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
265
268
*/
266
269
EncodedAudioStream (Print *outputStream, AudioEncoder *encoder) {
267
270
LOGD (LOG_METHOD);
271
+ ptr_out = outputStream;
268
272
encoder_ptr = encoder;
269
273
encoder_ptr->setOutputStream (*outputStream);
270
274
writer_ptr = encoder_ptr;
@@ -276,7 +280,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
276
280
*
277
281
*/
278
282
EncodedAudioStream (){
279
- LOGD (LOG_METHOD);
283
+ LOGD (LOG_METHOD);
280
284
active = false ;
281
285
}
282
286
@@ -291,15 +295,16 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
291
295
}
292
296
293
297
// / Define object which need to be notified if the basinfo is changing
294
- void setNotifyAudioChange (AudioBaseInfoDependent &bi) {
298
+ void setNotifyAudioChange (AudioBaseInfoDependent &bi) override {
295
299
LOGD (LOG_METHOD);
296
300
decoder_ptr->setNotifyAudioChange (bi);
297
301
}
298
302
299
303
300
304
// / Starts the processing - sets the status to active
301
305
void begin (Print *outputStream, AudioEncoder *encoder) {
302
- LOGD (LOG_METHOD);
306
+ LOGD (LOG_METHOD);
307
+ ptr_out = outputStream;
303
308
encoder_ptr = encoder;
304
309
encoder_ptr->setOutputStream (*outputStream);
305
310
writer_ptr = encoder_ptr;
@@ -309,6 +314,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
309
314
// / Starts the processing - sets the status to active
310
315
void begin (Print *outputStream, AudioDecoder *decoder) {
311
316
LOGD (LOG_METHOD);
317
+ ptr_out = outputStream;
312
318
decoder_ptr = decoder;
313
319
decoder_ptr->setOutputStream (*outputStream);
314
320
writer_ptr = decoder_ptr;
@@ -350,7 +356,7 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
350
356
}
351
357
352
358
// / encode the data
353
- virtual size_t write (const uint8_t *data, size_t len){
359
+ virtual size_t write (const uint8_t *data, size_t len) override {
354
360
LOGD (" %s: %zu" , LOG_METHOD, len);
355
361
if (len==0 ) {
356
362
return 0 ;
@@ -366,6 +372,10 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
366
372
CHECK_MEMORY ();
367
373
return result;
368
374
}
375
+
376
+ int availableForWrite () override {
377
+ return ptr_out->availableForWrite ();
378
+ }
369
379
370
380
371
381
// / Returns true if status is active and we still have data to be processed
@@ -388,8 +398,8 @@ class EncodedAudioStream : public AudioPrint, public AudioBaseInfoSource {
388
398
AudioDecoder *decoder_ptr = CodecNOP::instance(); // decoder
389
399
AudioEncoder *encoder_ptr = CodecNOP::instance(); // decoder
390
400
AudioWriter *writer_ptr = nullptr ;
401
+ Print *ptr_out=nullptr ;
391
402
392
- Stream *input_ptr; // data source for encoded data
393
403
uint8_t *write_buffer = nullptr ;
394
404
int write_buffer_pos = 0 ;
395
405
const int write_buffer_size = 256 ;
0 commit comments