X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=wdq2wav.h;h=6e740f4e772d7a8b5f7db22b0865764a0bf27b7b;hb=f7a2760c0c2cf784090cf5619a43532804ee079b;hp=4ebee21e566001a81e821674d6e1cff60e869926;hpb=746abe47c4eaefae0023dde9a8938b80bfcb8247;p=wdq2wav.git diff --git a/wdq2wav.h b/wdq2wav.h index 4ebee21..6e740f4 100644 --- a/wdq2wav.h +++ b/wdq2wav.h @@ -8,7 +8,7 @@ ** ** Copyright (c) 2003 Kevin Rosenberg ** -** $Id: wdq2wav.h,v 1.11 2003/02/24 12:53:46 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 @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #ifdef WIN32 @@ -71,6 +72,9 @@ public: bool m_valid; std::string m_error; int m_fd; + bool m_bLegacy_format; + bool m_bHires; + int m_nMaxChannels; int m_nChannels; unsigned long int m_nSamples; double m_sample_rate; @@ -80,9 +84,13 @@ public: unsigned int m_nData_bytes; unsigned int m_time_acq_start; unsigned int m_time_acq_stop; + double m_time_between_channel_samples; + + bool any_packed_channels(); + bool is_channel_packed(int iChannel); }; -class WindaqChannel +class WindaqChannel { public: WindaqFile& r_wdq; @@ -105,21 +113,21 @@ public: }; -class WavFile +class WavFile { public: - std::string m_strFile; - int m_fd; bool m_valid; + signed short int* m_data; unsigned long int m_nSamples; + std::string m_strFile; + int m_fd; double m_rate; unsigned int m_nChannels; unsigned int m_nBitsPerSample; unsigned int m_nBytesPerSample; - signed short int* m_data; unsigned long int m_nHeaderBytes; - unsigned long int m_nDataBytes; - unsigned long int m_nFileBytes; + long int m_nDataBytes; + long int m_nFileBytes; WavFile (WindaqChannel& wdq_channel, const char* fname); ~WavFile (); @@ -127,7 +135,14 @@ class WavFile bool WriteFile (); bool Play(); - + private: bool fill_header(); }; + +template +inline T nearest (double x) +{ + return (x > 0 ? + static_cast(x+0.5) : static_cast(x-0.5)); +}