ggwave-to-file : add parameters for volume and sample rate

This commit is contained in:
Georgi Gerganov
2021-01-10 15:33:03 +02:00
parent 7ccd6ed2c6
commit 9c96d18429

View File

@@ -10,8 +10,10 @@
#include <iostream>
int main(int argc, char** argv) {
fprintf(stderr, "Usage: %s [-pN]\n", argv[0]);
fprintf(stderr, " -pN - select the transmission protocol\n");
fprintf(stderr, "Usage: %s [-vN] [-sN] [-pN]\n", argv[0]);
fprintf(stderr, " -vN - output volume, N in (0, 100], (default: 50)\n");
fprintf(stderr, " -sN - output sample rate, N in [1024, %d], (default: %d)\n", (int) GGWave::kBaseSampleRate, (int) GGWave::kBaseSampleRate);
fprintf(stderr, " -pN - select the transmission protocol (default: 1)\n");
fprintf(stderr, "\n");
fprintf(stderr, " Available protocols:\n");
@@ -25,6 +27,16 @@ int main(int argc, char** argv) {
return -1;
}
auto argm = parseCmdArguments(argc, argv);
if (argm.find("h") != argm.end()) {
return 0;
}
int protocolId = argm["p"].empty() ? 1 : std::stoi(argm["p"]);
int volume = argm["v"].empty() ? 50 : std::stoi(argm["v"]);
int sampleRateOut = argm["s"].empty() ? GGWave::kBaseSampleRate : std::stoi(argm["s"]);
fprintf(stderr, "Enter a text message:\n");
std::string message;
@@ -40,11 +52,6 @@ int main(int argc, char** argv) {
return -3;
}
auto argm = parseCmdArguments(argc, argv);
int protocolId = argm["p"].empty() ? 1 : std::stoi(argm["p"]);
int volume = argm["v"].empty() ? 50 : std::stoi(argm["v"]);
auto sampleRateOut = GGWave::kBaseSampleRate;
fprintf(stderr, "Generating waveform for message '%s' ...\n", message.c_str());
@@ -57,7 +64,10 @@ int main(int argc, char** argv) {
std::memcpy(bufferPCM.data(), data, nBytes);
};
ggWave.send(cbQueueAudio);
if (ggWave.send(cbQueueAudio) == false) {
fprintf(stderr, "Failed to generate waveform!\n");
return -4;
}
fprintf(stderr, "Output size = %d bytes\n", (int) bufferPCM.size());