@@ -42,6 +42,7 @@ const int kDefaultFrameLength(256);
4242const sptk::DataWindowing::NormalizationType kDefaultNormalizationType (
4343 sptk::DataWindowing::NormalizationType::kPower );
4444const LocalWindowType kDefaultWindowType (kBlackman );
45+ const bool kDefaultPeriodicFlag (false );
4546
4647void PrintUsage (std::ostream* stream) {
4748 // clang-format off
@@ -65,6 +66,7 @@ void PrintUsage(std::ostream* stream) {
6566 *stream << " 4 (trapezoidal)" << std::endl;
6667 *stream << " 5 (rectangular)" << std::endl;
6768 *stream << " 6 (Nuttall)" << std::endl;
69+ *stream << " -p : use periodic window ( bool)[" << std::setw (5 ) << std::right << sptk::ConvertBooleanToString (kDefaultPeriodicFlag ) << " ]" << std::endl; // NOLINT
6870 *stream << " -h : print this message" << std::endl;
6971 *stream << " infile:" << std::endl;
7072 *stream << " data sequence (double)[stdin]" << std::endl; // NOLINT
@@ -99,6 +101,8 @@ void PrintUsage(std::ostream* stream) {
99101 * \arg @c 4 Trapezoidal
100102 * \arg @c 5 Rectangular
101103 * \arg @c 6 Nuttall
104+ * - @b -p
105+ * - use periodic window instead of symmetric one
102106 * - @b infile @e str
103107 * - double-type data sequence
104108 * - @b stdout
@@ -121,9 +125,10 @@ int main(int argc, char* argv[]) {
121125 sptk::DataWindowing::NormalizationType normalization_type (
122126 kDefaultNormalizationType );
123127 LocalWindowType local_window_type (kDefaultWindowType );
128+ bool periodic (kDefaultPeriodicFlag );
124129
125130 for (;;) {
126- const int option_char (getopt_long (argc, argv, " l:L:n:w:h " , NULL , NULL ));
131+ const int option_char (getopt_long (argc, argv, " l:L:n:w:ph " , NULL , NULL ));
127132 if (-1 == option_char) break ;
128133
129134 switch (option_char) {
@@ -183,6 +188,10 @@ int main(int argc, char* argv[]) {
183188 local_window_type = static_cast <LocalWindowType>(tmp);
184189 break ;
185190 }
191+ case ' p' : {
192+ periodic = true ;
193+ break ;
194+ }
186195 case ' h' : {
187196 PrintUsage (&std::cout);
188197 return 0 ;
@@ -268,7 +277,7 @@ int main(int argc, char* argv[]) {
268277 }
269278 }
270279
271- sptk::StandardWindow standard_window (input_length, window_type, false );
280+ sptk::StandardWindow standard_window (input_length, window_type, periodic );
272281 sptk::DataWindowing data_windowing (&standard_window, output_length,
273282 normalization_type);
274283 if (!data_windowing.IsValid ()) {
0 commit comments