Spaces:
Running
Running
Alan
commited on
Commit
·
d83eddb
1
Parent(s):
403105e
Adds support for stdin wav input
Browse files- examples/main/main.cpp +24 -3
examples/main/main.cpp
CHANGED
|
@@ -454,9 +454,30 @@ int main(int argc, char ** argv) {
|
|
| 454 |
std::vector<float> pcmf32;
|
| 455 |
{
|
| 456 |
drwav wav;
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 460 |
return 4;
|
| 461 |
}
|
| 462 |
|
|
|
|
| 454 |
std::vector<float> pcmf32;
|
| 455 |
{
|
| 456 |
drwav wav;
|
| 457 |
+
|
| 458 |
+
if (fname_inp == "-") {
|
| 459 |
+
std::vector<uint8_t> wav_data;
|
| 460 |
+
{
|
| 461 |
+
uint8_t buf[1024];
|
| 462 |
+
while (true)
|
| 463 |
+
{
|
| 464 |
+
const size_t n = fread(buf, 1, sizeof(buf), stdin);
|
| 465 |
+
if (n == 0)
|
| 466 |
+
{
|
| 467 |
+
break;
|
| 468 |
+
}
|
| 469 |
+
wav_data.insert(wav_data.end(), buf, buf + n);
|
| 470 |
+
}
|
| 471 |
+
}
|
| 472 |
+
|
| 473 |
+
if (drwav_init_memory(&wav, wav_data.data(), wav_data.size(), NULL) == false)
|
| 474 |
+
{
|
| 475 |
+
fprintf(stderr, "error: failed to open WAV file from stdin\n");
|
| 476 |
+
return 4;
|
| 477 |
+
}
|
| 478 |
+
}
|
| 479 |
+
else if (drwav_init_file(&wav, fname_inp.c_str(), NULL) == false) {
|
| 480 |
+
fprintf(stderr, "error: failed to open '%s' as WAV file\n", fname_inp.c_str());
|
| 481 |
return 4;
|
| 482 |
}
|
| 483 |
|