diff options
Diffstat (limited to 'src/configuration.cpp')
| -rw-r--r-- | src/configuration.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/configuration.cpp b/src/configuration.cpp index 7fdcdb5..88f3355 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -26,6 +26,7 @@ Configuration::Configuration() this->datatype_ = DataType::kSignedInt16; this->has_complex_input_ = false; this->prescale_factor_ = 1.0f; + this->sleep_for_input_ = 0; this->fft_width_ = 1024; this->fft_stride_ = 1024; @@ -169,6 +170,8 @@ Configuration::Build(int argc, const char **argv) prescale(input_opts, "float", "Prescaling factor (default: 1.0)", {'p', "prescale"}); args::ValueFlag<int> block_size(input_opts, "integer", "Block size when reading input, in data types (default: 256)", {'b', "block_size"}); + args::ValueFlag<int> + sleep_for_input(input_opts, "integer", "Duration in milliseconds to sleep for when input is not available (default: 0, busywaits)", {'S', "sleep_for_input"}); args::Group fft_opts(parser, "FFT options:", args::Group::Validators::DontCare); args::ValueFlag<int> @@ -269,6 +272,14 @@ Configuration::Build(int argc, const char **argv) conf.block_size_ = args::get(block_size); } } + if (sleep_for_input) { + if (args::get(sleep_for_input) < 0) { + std::cerr << "'sleep_for_input' must be zero or positive." << std::endl; + return std::make_tuple(conf, 1, true); + } else { + conf.sleep_for_input_ = args::get(sleep_for_input); + } + } if (rate) { if (args::get(rate) <= 0) { std::cerr << "'rate' must be positive." << std::endl; |
