chiark / gitweb /
log: more general error message formatting
[disorder] / lib / resample.h
index e8bfb10b2e84c11f21f32778e50b3fea88efe333..a78932571726afbe4b5ae11f59cebe9db7e49864 100644 (file)
 #include <samplerate.h>
 #endif
 
-#define ENDIAN_BIG 1
-#define ENDIAN_LITTLE 2
+#include "byte-order.h"
 
+/** @brief An audio resampler */
 struct resampler {
-  int input_bits, input_channels, input_rate, input_signed, input_endian;
-  int output_bits, output_channels, output_rate, output_signed, output_endian;
+  /** @brief Bits/sample in input */
+  int input_bits;
+
+  /** @brief Number of input channels */
+  int input_channels;
+
+  /** @brief Frames/second in input */
+  int input_rate;
+
+  /** @brief Whether input samples are signed or unsigned */
+  int input_signed;
+
+  /** @brief Input endianness (@c ENDIAN_BIG or @c ENDIAN_LITTLE) */
+  int input_endian;
+
+  /** @brief Bits/sample in output */
+  int output_bits;
+
+  /** @brief Number of output channels */
+  int output_channels;
+
+  /** @brief Frames/second in output */
+  int output_rate;
+
+  /** @brief Whether output samples are signed or unsigned */
+  int output_signed;
+
+  /** @brief Output endianness (@c ENDIAN_BIG or @c ENDIAN_LITTLE) */
+  int output_endian;
+
+  /** @brief  */
   int input_bytes_per_sample;
+
+  /** @brief  */
   int input_bytes_per_frame;
 #if HAVE_SAMPLERATE_H
+  /** @brief Libsamplerate handle */
   SRC_STATE *state;
 #endif
 };
@@ -47,12 +79,14 @@ void resample_init(struct resampler *rs,
                    int output_bits, int output_channels, 
                    int output_rate, int output_signed,
                    int output_endian);
-size_t resample_convert(struct resampler *rs,
+size_t resample_convert(const struct resampler *rs,
                         const uint8_t *bytes,
                         size_t nbytes,
                         int eof,
                         void (*converted)(uint8_t *bytes,
-                                          size_t nbytes));
+                                          size_t nbytes,
+                                          void *cd),
+                        void *cd);
 void resample_close(struct resampler *rs);
 
 #endif /* RESAMPLE_H */