[SCM] calf/master: + LADSPA, DSSI: do not call activate() until first run()

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:37:06 UTC 2013


The following commit has been merged in the master branch:
commit 6df7ba9253d3598465df5768d32f93474ad4103e
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date:   Fri Mar 28 22:18:15 2008 +0000

    + LADSPA, DSSI: do not call activate() until first run()
    
    
    
    git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@138 78b06b96-2940-0410-b7fc-879d825d01d8

diff --git a/src/calf/giface.h b/src/calf/giface.h
index e2930ea..93f510c 100644
--- a/src/calf/giface.h
+++ b/src/calf/giface.h
@@ -164,6 +164,7 @@ extern std::string generate_ladspa_rdf(const ladspa_info &info, parameter_proper
 template<class Module>
 struct ladspa_instance: public Module, public plugin_ctl_iface
 {
+    bool activate_flag;
     ladspa_instance()
     {
         for (int i=0; i < Module::in_count; i++)
@@ -172,6 +173,7 @@ struct ladspa_instance: public Module, public plugin_ctl_iface
             Module::outs[i] = NULL;
         for (int i=0; i < Module::param_count; i++)
             Module::params[i] = NULL;
+        activate_flag = true;
     }
     virtual parameter_properties *get_param_props(int param_no)
     {
@@ -387,12 +389,7 @@ struct ladspa_wrapper
 
     static void cb_activate(LADSPA_Handle Instance) {
         instance *const mod = (instance *)Instance;
-        mod->set_sample_rate(mod->srate);
-        mod->activate();
-        /*
-        for (int i =0 ; i < Module::param_count; i++)
-            *mod->params[i] = Module::param_props[i].def_value;
-        */
+        mod->activate_flag = true;
     }
     
     static inline void zero_by_mask(Module *module, uint32_t mask, uint32_t offset, uint32_t nsamples)
@@ -406,6 +403,12 @@ struct ladspa_wrapper
 
     static void cb_run(LADSPA_Handle Instance, unsigned long SampleCount) {
         instance *const mod = (instance *)Instance;
+        if (mod->activate_flag)
+        {
+            mod->set_sample_rate(mod->srate);
+            mod->activate();
+            mod->activate_flag = false;
+        }
         mod->params_changed();
         process_slice(mod, 0, SampleCount);
     }
@@ -425,6 +428,12 @@ struct ladspa_wrapper
     static void cb_run_synth(LADSPA_Handle Instance, unsigned long SampleCount, 
             snd_seq_event_t *Events, unsigned long EventCount) {
         instance *const mod = (instance *)Instance;
+        if (mod->activate_flag)
+        {
+            mod->set_sample_rate(mod->srate);
+            mod->activate();
+            mod->activate_flag = false;
+        }
         mod->params_changed();
         
         uint32_t offset = 0;

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list