Skip to content

Commit be02e69

Browse files
committed
audio.connecttospeech not working #1106
1 parent df221c5 commit be02e69

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

src/Audio.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
audio.cpp
44
55
Created on: Oct 28.2018 */char audioI2SVers[] ="\
6-
Version 3.3.2q ";
7-
/* Updated on: Jul 11.2025
6+
Version 3.3.2r ";
7+
/* Updated on: Jul 18.2025
88
99
Author: Wolle (schreibfaul1)
1010
Audio library for ESP32, ESP32-S3 or ESP32-P4
@@ -1003,6 +1003,7 @@ bool Audio::connecttospeech(const char* speech, const char* lang) {
10031003
m_f_tts = true;
10041004
m_dataMode = HTTP_RESPONSE_HEADER;
10051005
m_lastHost.assign(host);
1006+
m_currentHost.copy_from(host);
10061007
xSemaphoreGiveRecursive(mutex_playAudioData);
10071008
return true;
10081009
}

src/psram_unique_ptr.hpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,47 @@ class ps_ptr {
548548
if (!myStr || !other) return false;
549549
return strcmp(myStr, other) == 0;
550550
}
551+
// —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
552+
// 📌📌📌 A S S I G N F 📌📌📌
553+
554+
// ps_ptr<char> message;
555+
// message.assignf("Code %d, Modul %s", 404, "Network");
556+
// printf("%s\n", message.get()); // → Error: Code 404, Modul Network
557+
558+
// onli activate if T = char
559+
template <typename U = T>
560+
requires std::is_same_v<U, char>
561+
void assignf(const char* fmt, ...) {
562+
if (!fmt) return;
563+
564+
// Formatierte Länge berechnen
565+
va_list args;
566+
va_start(args, fmt);
567+
va_list args_copy;
568+
va_copy(args_copy, args);
569+
int fmt_len = vsnprintf(nullptr, 0, fmt, args_copy);
570+
va_end(args_copy);
551571

572+
if (fmt_len < 0) {
573+
va_end(args);
574+
return;
575+
}
576+
577+
std::size_t new_len = static_cast<std::size_t>(fmt_len) + 1;
578+
579+
// share previous memory and new allocates
580+
reset();
581+
alloc(new_len);
582+
if (!mem) {
583+
printf("OOM: assignf() failed for %zu bytes\n", new_len);
584+
va_end(args);
585+
return;
586+
}
587+
588+
// write formatted text
589+
vsnprintf(static_cast<char*>(mem.get()), new_len, fmt, args);
590+
va_end(args);
591+
}
552592
// —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
553593
// 📌📌📌 A P P E N D F 📌📌📌
554594

0 commit comments

Comments
 (0)