diff base/Resampler.cpp @ 928:6a94bb528e9d warnfix_no_size_t

Remove size_t's, fix compiler warnings
author Chris Cannam
date Tue, 17 Jun 2014 13:52:07 +0100
parents e802e550a1f2
children cc27f35aa75c
line wrap: on
line diff
--- a/base/Resampler.cpp	Tue Jun 03 11:05:49 2014 +0100
+++ b/base/Resampler.cpp	Tue Jun 17 13:52:07 2014 +0100
@@ -31,15 +31,15 @@
 class Resampler::D
 {
 public:
-    D(Quality quality, size_t channels, size_t chunkSize);
+    D(Quality quality, int channels, int chunkSize);
     ~D();
 
-    size_t resample(float **in, float **out,
-                    size_t incount, float ratio,
+    int resample(float **in, float **out,
+                    int incount, float ratio,
                     bool final);
 
-    size_t resampleInterleaved(float *in, float *out,
-                               size_t incount, float ratio,
+    int resampleInterleaved(float *in, float *out,
+                               int incount, float ratio,
                                bool final);
 
     void reset();
@@ -48,12 +48,12 @@
     SRC_STATE *m_src;
     float *m_iin;
     float *m_iout;
-    size_t m_channels;
-    size_t m_iinsize;
-    size_t m_ioutsize;
+    int m_channels;
+    int m_iinsize;
+    int m_ioutsize;
 };
 
-Resampler::D::D(Quality quality, size_t channels, size_t chunkSize) :
+Resampler::D::D(Quality quality, int channels, int chunkSize) :
     m_src(0),
     m_iin(0),
     m_iout(0),
@@ -89,16 +89,16 @@
     }
 }
 
-size_t
+int
 Resampler::D::resample(float **in, float **out,
-                       size_t incount, float ratio,
+                       int incount, float ratio,
                        bool final)
 {
     if (m_channels == 1) {
         return resampleInterleaved(*in, *out, incount, ratio, final);
     }
 
-    size_t outcount = lrintf(ceilf(incount * ratio));
+    int outcount = lrintf(ceilf(incount * ratio));
 
     if (incount * m_channels > m_iinsize) {
         m_iinsize = incount * m_channels;
@@ -108,16 +108,16 @@
         m_ioutsize = outcount * m_channels;
         m_iout = (float *)realloc(m_iout, m_ioutsize * sizeof(float));
     }
-    for (size_t i = 0; i < incount; ++i) {
-        for (size_t c = 0; c < m_channels; ++c) {
+    for (int i = 0; i < incount; ++i) {
+        for (int c = 0; c < m_channels; ++c) {
             m_iin[i * m_channels + c] = in[c][i];
         }
     }
     
-    size_t gen = resampleInterleaved(m_iin, m_iout, incount, ratio, final);
+    int gen = resampleInterleaved(m_iin, m_iout, incount, ratio, final);
 
-    for (size_t i = 0; i < gen; ++i) {
-        for (size_t c = 0; c < m_channels; ++c) {
+    for (int i = 0; i < gen; ++i) {
+        for (int c = 0; c < m_channels; ++c) {
             out[c][i] = m_iout[i * m_channels + c];
         }
     }
@@ -125,14 +125,14 @@
     return gen;
 }
 
-size_t
+int
 Resampler::D::resampleInterleaved(float *in, float *out,
-                                  size_t incount, float ratio,
+                                  int incount, float ratio,
                                   bool final)
 {
     SRC_DATA data;
 
-    size_t outcount = lrintf(ceilf(incount * ratio));
+    int outcount = lrintf(ceilf(incount * ratio));
 
     data.data_in = in;
     data.data_out = out;
@@ -143,9 +143,13 @@
 
     int err = src_process(m_src, &data);
 
-    //!!! check err, respond appropriately
+    if (err) {
+        cerr << "Resampler: ERROR: src_process returned error: " <<
+            src_strerror(err) << endl;
+        return 0;
+    }
 
-    if (data.input_frames_used != incount) {
+    if (data.input_frames_used != (int)incount) {
         cerr << "Resampler: NOTE: input_frames_used == " << data.input_frames_used << " (while incount = " << incount << ")" << endl;
     }
 
@@ -158,7 +162,7 @@
     src_reset(m_src);
 }
 
-Resampler::Resampler(Quality quality, size_t channels, size_t chunkSize)
+Resampler::Resampler(Quality quality, int channels, int chunkSize)
 {
     m_d = new D(quality, channels, chunkSize);
 }
@@ -168,17 +172,17 @@
     delete m_d;
 }
 
-size_t 
+int 
 Resampler::resample(float **in, float **out,
-                    size_t incount, float ratio,
+                    int incount, float ratio,
                     bool final)
 {
     return m_d->resample(in, out, incount, ratio, final);
 }
 
-size_t 
+int 
 Resampler::resampleInterleaved(float *in, float *out,
-                    size_t incount, float ratio,
+                    int incount, float ratio,
                     bool final)
 {
     return m_d->resampleInterleaved(in, out, incount, ratio, final);