]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
Add a file existence/permissions warning. Edit a few warnings. Clang format.
authorMike Brady <4265913+mikebrady@users.noreply.github.com>
Mon, 29 Sep 2025 12:54:51 +0000 (13:54 +0100)
committerMike Brady <4265913+mikebrady@users.noreply.github.com>
Mon, 29 Sep 2025 12:54:51 +0000 (13:54 +0100)
FFTConvolver/convolver.cpp

index a282482917f439b23803514dce6577a6d9cc4710..6798d2d457d97a4f093e4143c9e31714a6d4c079 100644 (file)
@@ -1,13 +1,14 @@
 
 
-#include <pthread.h>
-#include <sndfile.h>
 #include "convolver.h"
 #include "FFTConvolver.h"
 #include "Utilities.h"
+#include <pthread.h>
+#include <sndfile.h>
 
 extern "C" void _warn(const char *filename, const int linenumber, const char *format, ...);
-extern "C" void _debug(const char *filename, const int linenumber, int level, const char *format, ...);
+extern "C" void _debug(const char *filename, const int linenumber, int level, const char *format,
+                       ...);
 
 #define warn(...) _warn(__FILE__, __LINE__, __VA_ARGS__)
 #define debug(...) _debug(__FILE__, __LINE__, __VA_ARGS__)
@@ -18,25 +19,24 @@ fftconvolver::FFTConvolver convolver_r;
 // always lock use this when accessing the playing conn value
 pthread_mutex_t convolver_lock = PTHREAD_MUTEX_INITIALIZER;
 
-
-int convolver_init(const char* filename, int max_length) {
+int convolver_init(const char *filename, int max_length) {
   int success = 0;
   SF_INFO info;
   if (filename) {
-    SNDFILEfile = sf_open(filename, SFM_READ, &info);
+    SNDFILE *file = sf_open(filename, SFM_READ, &info);
     if (file) {
-  
-      if (info.samplerate == 44100)  {  
+
+      if (info.samplerate == 44100) {
         if ((info.channels == 1) || (info.channels == 2)) {
           const size_t size = info.frames > max_length ? max_length : info.frames;
-          float buffer[size*info.channels];
-  
+          float buffer[size * info.channels];
+
           size_t l = sf_readf_float(file, buffer, size);
           if (l != 0) {
             pthread_mutex_lock(&convolver_lock);
             convolver_l.reset(); // it is possible that init could be called more than once
             convolver_r.reset(); // so it could be necessary to remove all previous settings
-  
+
             if (info.channels == 1) {
               convolver_l.init(352, buffer, size);
               convolver_r.init(352, buffer, size);
@@ -44,41 +44,50 @@ int convolver_init(const char* filename, int max_length) {
               // deinterleave
               float buffer_l[size];
               float buffer_r[size];
-    
+
               unsigned int i;
-              for (i=0; i<size; ++i)
-              {
-                buffer_l[i] = buffer[2*i+0];
-                buffer_r[i] = buffer[2*i+1];
+              for (i = 0; i < size; ++i) {
+                buffer_l[i] = buffer[2 * i + 0];
+                buffer_r[i] = buffer[2 * i + 1];
               }
-    
+
               convolver_l.init(352, buffer_l, size);
               convolver_r.init(352, buffer_r, size);
-              
             }
             pthread_mutex_unlock(&convolver_lock);
             success = 1;
           }
-          debug(1, "IR initialized from \"%s\" with %d channels and %d samples", filename, info.channels, size);
+          debug(1,
+                "Convolution impulse response filter initialized from \"%s\" with %d channel%s and "
+                "%d samples",
+                filename, info.channels, info.channels == 1 ? "" : "s", size);
         } else {
-          warn("Impulse file \"%s\" contains %d channels. Only 1 or 2 is supported.", filename, info.channels);
+          warn("Convolution impulse response filter file \"%s\" contains %d channels. Only 1 or 2 "
+               "is supported.",
+               filename, info.channels);
         }
       } else {
-        warn("Impulse file \"%s\" sample rate is %d Hz. Only 44100 Hz is supported", filename, info.samplerate);
+        warn("Convolution impulse response filter file \"%s\" sample rate is %d Hz. Only 44100 Hz "
+             "is supported.",
+             filename, info.samplerate);
       }
       sf_close(file);
+    } else {
+      warn("Convolution impulse response filter file \"%s\" can not be opened. Please check that "
+           "it exists and has appropriate permissions.",
+           filename);
     }
   }
   return success;
 }
 
-void convolver_process_l(floatdata, int length) {
+void convolver_process_l(float *data, int length) {
   pthread_mutex_lock(&convolver_lock);
   convolver_l.process(data, data, length);
   pthread_mutex_unlock(&convolver_lock);
 }
 
-void convolver_process_r(floatdata, int length) {
+void convolver_process_r(float *data, int length) {
   pthread_mutex_lock(&convolver_lock);
   convolver_r.process(data, data, length);
   pthread_mutex_unlock(&convolver_lock);