X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=wdq2wav.cpp;h=03b6557fa6b5ed38638ca46f1ce5e1e6be749b1b;hb=8ddc5f8ddd4b1f33f797b767cacf8d26e4392e6b;hp=510294b9d48406d6ee0f14ba5e8e8c28ef72de9f;hpb=1c71e531474edc2c706b71d615f7fc77b41eef55;p=wdq2wav.git diff --git a/wdq2wav.cpp b/wdq2wav.cpp index 510294b..03b6557 100644 --- a/wdq2wav.cpp +++ b/wdq2wav.cpp @@ -8,7 +8,7 @@ ** ** Copyright (c) 2003 Kevin Rosenberg ** -** $Id: wdq2wav.cpp,v 1.25 2003/02/25 18:24:48 kevin Exp $ +** $Id$ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -26,13 +26,13 @@ #include -const char* g_szIdStr = "$Id: wdq2wav.cpp,v 1.25 2003/02/25 18:24:48 kevin Exp $"; +const char* g_szIdStr = "$Id$"; bool g_quiet = false; bool g_verbose = false; bool g_debug = false; bool g_ignore_zero = false; -bool g_demean = false; +bool g_dont_demean = false; #ifdef WIN32 @@ -111,8 +111,8 @@ usage (const char* progname) std::cout << "OPTIONS\n"; std::cout << " -p Play channel through audio system\n"; std::cout << " -q Supress all messages\n"; - std::cout << " -z Scale output without regard for windaq zero point\n"; - std::cout << " -m Demean the data (subtract the mean value from each sample)\n"; + std::cout << " -z Scale output without preserving zero point\n"; + std::cout << " -m Do not demean the data (don't subtract the mean value from each sample)\n"; std::cout << " -v Verbose mode\n"; std::cout << " -d Debug mode\n"; std::cout << " -r Print program version\n"; @@ -137,7 +137,10 @@ main (int argc, char *argv[]) g_quiet = true; break; case 'm': - g_demean = true; + g_dont_demean = true; + break; + case 'z': + g_ignore_zero = true; break; case 'v': g_verbose = true; @@ -148,9 +151,6 @@ main (int argc, char *argv[]) case 'p': play = true; break; - case 'z': - g_ignore_zero = true; - break; case 'h': usage (progname); return (0); @@ -508,7 +508,7 @@ WindaqChannel::read_channel_data () m_max_scaled_data = (m_slope * data_max) + m_intercept; m_min_scaled_data = (m_slope * data_min) + m_intercept; - if (g_demean) { + if (! g_dont_demean) { double dmean = total_data / static_cast(r_wdq.m_nSamples); int mean = nearest(dmean); std::cout << "Removing mean: " << (dmean * m_slope) + m_intercept << @@ -575,8 +575,9 @@ WavFile::WavFile (WindaqChannel& wdq_channel, const char* fname) if (g_ignore_zero) { value = (value + data_offset) * data_scale; value += 0.5 - 32768; - } else + } else { value = value * data_scale; + } signed short int v = static_cast(value); #if WORDS_BIG_ENDIAN