[SCM] calf/master: More de-inlining.
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:40:01 UTC 2013
The following commit has been merged in the master branch:
commit 035f393cb079a52711865d8252a01cc93077be57
Author: Krzysztof Foltman <wdev at foltman.com>
Date: Mon Apr 5 13:51:17 2010 +0100
More de-inlining.
diff --git a/src/calf/modules_synths.h b/src/calf/modules_synths.h
index d57f61f..d546874 100644
--- a/src/calf/modules_synths.h
+++ b/src/calf/modules_synths.h
@@ -165,64 +165,30 @@ public:
/// Value for configure variable map_curve
std::string var_map_curve;
- organ_audio_module()
- : drawbar_organ(&par_values)
- {
- var_map_curve = "2\n0 1\n1 1\n"; // XXXKF hacky bugfix
- }
+ organ_audio_module();
- void post_instantiate()
- {
- dsp::organ_voice_base::precalculate_waves(progress_report);
- }
+ void post_instantiate();
void set_sample_rate(uint32_t sr) {
srate = sr;
}
- void params_changed() {
- for (int i = 0; i < param_count - var_count; i++)
- ((float *)&par_values)[i] = *params[i];
-
- unsigned int old_poly = polyphony_limit;
- polyphony_limit = dsp::clip(dsp::fastf2i_drm(*params[par_polyphony]), 1, 32);
- if (polyphony_limit < old_poly)
- trim_voices();
-
- update_params();
- }
+ void params_changed();
inline void pitch_bend(int amt)
{
drawbar_organ::pitch_bend(amt);
}
- void activate() {
- setup(srate);
- panic_flag = false;
- }
+ void activate();
void deactivate();
- uint32_t process(uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask) {
- float *o[2] = { outs[0] + offset, outs[1] + offset };
- if (panic_flag)
- {
- control_change(120, 0); // stop all sounds
- control_change(121, 0); // reset all controllers
- panic_flag = false;
- }
- render_separate(o, nsamples);
- return 3;
- }
+ uint32_t process(uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask);
/// No CV inputs for now
bool is_cv(int param_no) { return false; }
/// Practically all the stuff here is noisy
bool is_noisy(int param_no) { return true; }
void execute(int cmd_no);
bool get_graph(int index, int subindex, float *data, int points, cairo_iface *context);
-
char *configure(const char *key, const char *value);
void send_configures(send_configure_iface *);
- uint32_t message_run(const void *valid_inputs, void *output_ports) {
- // silence a default printf (which is kind of a warning about unhandled message_run)
- return 0;
- }
+ uint32_t message_run(const void *valid_inputs, void *output_ports);
};
};
diff --git a/src/calf/organ.h b/src/calf/organ.h
index c95b397..466342a 100644
--- a/src/calf/organ.h
+++ b/src/calf/organ.h
@@ -133,7 +133,6 @@ protected:
static small_wave_family (*waves)[wave_count_small];
static big_wave_family (*big_waves)[wave_count_big];
- // dsp::sine_table<float, ORGAN_WAVE_SIZE, 1> sine_wave;
int note;
dsp::decay amp;
/// percussion FM carrier amplitude envelope
@@ -165,12 +164,7 @@ public:
return (*big_waves)[wave];
}
static void precalculate_waves(calf_plugins::progress_report_iface *reporter);
- void update_pitch()
- {
- float phase = dsp::midi_note_to_phase(note, 100 * parameters->global_transpose + parameters->global_detune, sample_rate_ref);
- dpphase.set((long int) (phase * parameters->percussion_harmonic * parameters->pitch_bend));
- moddphase.set((long int) (phase * parameters->percussion_fm_harmonic * parameters->pitch_bend));
- }
+ void update_pitch();
// this doesn't really have a voice interface
void render_percussion_to(float (*buf)[2], int nsamples);
void perc_note_on(int note, int vel);
diff --git a/src/organ.cpp b/src/organ.cpp
index 44e61b7..51f2760 100644
--- a/src/organ.cpp
+++ b/src/organ.cpp
@@ -36,6 +36,49 @@ using namespace calf_plugins;
//////////////////////////////////////////////////////////////////////////////////////////////////////////
+organ_audio_module::organ_audio_module()
+: drawbar_organ(&par_values)
+{
+ var_map_curve = "2\n0 1\n1 1\n"; // XXXKF hacky bugfix
+}
+
+void organ_audio_module::activate()
+{
+ setup(srate);
+ panic_flag = false;
+}
+
+void organ_audio_module::post_instantiate()
+{
+ dsp::organ_voice_base::precalculate_waves(progress_report);
+}
+
+
+uint32_t organ_audio_module::process(uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask)
+{
+ float *o[2] = { outs[0] + offset, outs[1] + offset };
+ if (panic_flag)
+ {
+ control_change(120, 0); // stop all sounds
+ control_change(121, 0); // reset all controllers
+ panic_flag = false;
+ }
+ render_separate(o, nsamples);
+ return 3;
+}
+
+void organ_audio_module::params_changed() {
+ for (int i = 0; i < param_count - var_count; i++)
+ ((float *)&par_values)[i] = *params[i];
+
+ unsigned int old_poly = polyphony_limit;
+ polyphony_limit = dsp::clip(dsp::fastf2i_drm(*params[par_polyphony]), 1, 32);
+ if (polyphony_limit < old_poly)
+ trim_voices();
+
+ update_params();
+}
+
bool organ_audio_module::get_graph(int index, int subindex, float *data, int points, cairo_iface *context)
{
if (index == par_master) {
@@ -75,6 +118,13 @@ bool organ_audio_module::get_graph(int index, int subindex, float *data, int poi
return false;
}
+uint32_t organ_audio_module::message_run(const void *valid_inputs, void *output_ports)
+{
+ // silence a default printf (which is kind of a warning about unhandled message_run)
+ return 0;
+}
+
+
////////////////////////////////////////////////////////////////////////////
organ_voice_base::small_wave_family (*organ_voice_base::waves)[organ_voice_base::wave_count_small];
@@ -193,6 +243,12 @@ static void padsynth(bandlimiter<ORGAN_WAVE_BITS> blSrc, bandlimiter<ORGAN_BIG_W
#define LARGE_WAVEFORM_PROGRESS() do { if (reporter) { progress += 100; reporter->report_progress(floor(progress / totalwaves), "Precalculating large waveforms"); } } while(0)
+void organ_voice_base::update_pitch()
+{
+ float phase = dsp::midi_note_to_phase(note, 100 * parameters->global_transpose + parameters->global_detune, sample_rate_ref);
+ dpphase.set((long int) (phase * parameters->percussion_harmonic * parameters->pitch_bend));
+ moddphase.set((long int) (phase * parameters->percussion_fm_harmonic * parameters->pitch_bend));
+}
void organ_voice_base::precalculate_waves(progress_report_iface *reporter)
{
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list