[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