X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=wdq2wav.h;h=4ebee21e566001a81e821674d6e1cff60e869926;hb=746abe47c4eaefae0023dde9a8938b80bfcb8247;hp=fb8d0e00809c98f8741c67de225407de2c347a5b;hpb=d7a27230e4058ce4d949c22b68c758c90c46572b;p=wdq2wav.git diff --git a/wdq2wav.h b/wdq2wav.h index fb8d0e0..4ebee21 100644 --- a/wdq2wav.h +++ b/wdq2wav.h @@ -1,11 +1,65 @@ +/***************************************************************************** +** FILE IDENTIFICATION +** +** Name: wdq2wav.h +** Purpose: Header file for wdq2wav.cpp +** Programmer: Kevin Rosenberg +** Date Started: Jan 2003 +** +** Copyright (c) 2003 Kevin Rosenberg +** +** $Id: wdq2wav.h,v 1.11 2003/02/24 12:53:46 kevin Exp $ +** +** 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 +** published by the Free Software Foundation. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +******************************************************************************/ + #include +#include +#include +#include #include +#include +#include +#include #include #include -#include +#ifdef WIN32 +#include +#include +#else #include -#include -#include +#endif + +#ifdef LINUX +#include +#if __BYTE_ORDER == __BIG_ENDIAN +#define WORDS_BIG_ENDIAN 1 +#endif +#endif + +extern const char* g_szIdStr; +extern bool g_quiet; +extern bool g_verbose; +extern bool g_debug; + +#define MAX_INPUT_STR 256 + +void error_msg (const char *msg); +void info_msg (const char *msg); +void info_msg_sans_newline (const char *msg); + +bool wdq2wav (const char* wdq_fname, const int channel, const char *wav_fname, bool play); class WindaqFile { @@ -14,29 +68,30 @@ public: ~WindaqFile (); bool ReadHeader(); - std::string m_strFile; bool m_valid; + std::string m_error; int m_fd; - unsigned int m_nChannels; - unsigned int m_nSamples; + int m_nChannels; + unsigned long int m_nSamples; double m_sample_rate; + std::string m_strFile; unsigned int m_sr_denom, m_sr_numer; - unsigned int m_nHeader_bytes, m_channel_offset, m_nBytes_channel_header; + unsigned short int m_nHeader_bytes, m_channel_offset, m_nBytes_channel_header; unsigned int m_nData_bytes; - unsigned long int m_time_acq_start; - unsigned long int m_time_acq_stop; + unsigned int m_time_acq_start; + unsigned int m_time_acq_stop; }; class WindaqChannel { public: - bool m_valid; - unsigned int m_channel; - std::string m_units; + WindaqFile& r_wdq; + signed short int *m_data; double m_slope; double m_intercept; - signed short int *m_data; - WindaqFile& r_wdq; + unsigned int m_channel; + bool m_valid; + std::string m_units; signed short int m_min_raw_data; signed short int m_max_raw_data; double m_max_scaled_data; @@ -62,9 +117,17 @@ class WavFile 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; WavFile (WindaqChannel& wdq_channel, const char* fname); ~WavFile (); bool WriteFile (); + + bool Play(); + + private: + bool fill_header(); };