protected:
nframes_t process (float * data, nframes_t frames);
-
+
private:
bool active;
uint32_t channels;
-
+
nframes_t leftover_frames;
nframes_t max_leftover_frames;
nframes_t frames_in;
nframes_t frames_out;
-
+
float * data_in;
float * leftover_data;
-
+
float * data_out;
nframes_t data_out_size;
-
+
SRC_DATA src_data;
SRC_STATE* src_state;
};
public:
SampleFormatConverter (uint32_t channels, ExportFormatBase::DitherType type = ExportFormatBase::D_None, int data_width_ = 0);
~SampleFormatConverter ();
-
+
void set_clip_floats (bool yn) { clip_floats = yn; }
-
+
protected:
nframes_t process (float * data, nframes_t frames);
-
+
private:
uint32_t channels;
int data_width;
GDither dither;
nframes_t data_out_size;
TOut * data_out;
-
+
bool clip_floats;
-
+
};
/* Peak reader */
public:
PeakReader (uint32_t channels) : channels (channels), peak (0) {}
~PeakReader () {}
-
+
float get_peak () { return peak; }
-
+
protected:
nframes_t process (float * data, nframes_t frames)
{
peak = compute_peak (data, channels * frames, peak);
return piped_to->write (data, frames);
}
-
+
private:
uint32_t channels;
float peak;
public:
Normalizer (uint32_t channels, float target_dB);
~Normalizer ();
-
+
void set_peak (float peak);
-
+
protected:
nframes_t process (float * data, nframes_t frames);
-
+
private:
uint32_t channels;
-
+
bool enabled;
gain_t target;
gain_t gain;