r4132: *** empty log message ***
[wdq2wav.git] / wdq2wav.h
index 1b36d5016cdd6b417fa511d5a54d62d0d6a9d7e3..6d37b206fd478d3c3498e92d076c7e6de81b77c4 100644 (file)
--- a/wdq2wav.h
+++ b/wdq2wav.h
@@ -8,7 +8,7 @@
 **
 **  Copyright (c) 2003 Kevin Rosenberg
 **
-**  $Id: wdq2wav.h,v 1.10 2003/02/12 07:24:32 kevin Exp $
+**  $Id: wdq2wav.h,v 1.16 2003/02/28 04:21:15 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
@@ -32,6 +32,7 @@
 #include <sstream>
 #include <ctime>
 #include <fcntl.h>
+#include <math.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #ifdef WIN32
@@ -68,13 +69,13 @@ public:
   ~WindaqFile ();
   bool ReadHeader();
 
-  std::string m_strFile;
   bool m_valid;
   std::string m_error;
   int m_fd;
   int m_nChannels;
-  unsigned int m_nSamples;
+  unsigned long int m_nSamples;
   double m_sample_rate;
+  std::string m_strFile;
   unsigned int m_sr_denom, m_sr_numer;
   unsigned short int m_nHeader_bytes, m_channel_offset, m_nBytes_channel_header;
   unsigned int m_nData_bytes;
@@ -85,13 +86,13 @@ public:
 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;
@@ -108,18 +109,18 @@ public:
 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 ();
@@ -131,3 +132,10 @@ class WavFile
  private:
   bool fill_header();
 };
+
+template<class T>
+inline T nearest (double x)
+{
+  return (x > 0 ?
+         static_cast<T>(x+0.5) : static_cast<T>(x-0.5));
+}