Package: ecasound
Version: 2.9.0-1+spoka
Severity: important
Tags: patch

http://www.eca.cx/ecasound-list/2014/01/0017.html

The attached upstream patches fixed the bug in wheezy.

-- System Information:
Debian Release: 7.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-4-686-pae (SMP w/1 CPU core)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages ecasound depends on:
ii  libasound2                        1.0.25-4
ii  libaudiofile1                     0.3.4-2
ii  libc6                             2.13-38+deb7u4
ii  libgcc1                           1:4.7.2-5
ii  libjack-jackd2-0 [libjack-0.116]  1.9.8~dfsg.4+20120529git007cdc37-5
ii  libkvutils10                      2.9.0-1
ii  liblilv-0-0                       0.14.2~dfsg0-4
ii  liblo7                            0.26~repack-7
ii  libncurses5                       5.9-10
ii  liboil0.3                         0.3.17-2
ii  libreadline6                      6.2+dfsg-0.1
ii  libsamplerate0                    0.1.8-5
ii  libserd-0-0                       0.14.0~dfsg0-2
ii  libsndfile1                       1.0.25-5
ii  libsord-0-0                       0.8.0~dfsg0-1
ii  libsratom-0-0                     0.2.0~dfsg0-1
ii  libstdc++6                        4.7.2-5
ii  libtinfo5                         5.9-10

Versions of packages ecasound recommends:
ii  faad          2.7-8
ii  lame          3.99.5+repack1-3
ii  mikmod        3.2.1-4
ii  mpg123        1.14.4-1
ii  timidity      2.13.2-40.1
ii  vorbis-tools  1.4.0-1

Versions of packages ecasound suggests:
pn  ecatools                    <none>
ii  ladspa-sdk [ladspa-plugin]  1.13-1
pn  nama                        <none>

-- no debconf information
commit 34f3baa43d49673fe0fb23f05aef4790e2022392
Author: Kai Vehmanen <kvcont...@nosignal.fi>
Date:   Thu Jan 30 22:41:41 2014 +0200

    eca-control-objects: properly init chainsetup edit objs
    
    Always set the value of 'need_chain_reinit' when creating chainsetup
    edit objects. Depending on stack contents, lack of initialization led
    to unnecessary reinitialization of chains for many commands, including
    cop-set/ctrlp-set/cop-bypass/c-mute/c-bypass.

diff --git a/libecasound/eca-control-objects.cpp b/libecasound/eca-control-objects.cpp
index b042da3..6aca2b5 100644
--- a/libecasound/eca-control-objects.cpp
+++ b/libecasound/eca-control-objects.cpp
@@ -1,6 +1,6 @@
 // ------------------------------------------------------------------------
 // eca-control-objects.cpp: Class for configuring libecasound objects
-// Copyright (C) 2000-2004,2006,2008,2009,2012,2013 Kai Vehmanen
+// Copyright (C) 2000-2004,2006,2008,2009,2012-2014 Kai Vehmanen
 // Copyright (C) 2005 Stuart Allie
 //
 // Attributes:
@@ -2027,6 +2027,7 @@ void ECA_CONTROL::set_chain_operator_parameter(CHAIN_OPERATOR::parameter_t value
   ECA::chainsetup_edit_t edit;
   edit.type = ECA::edit_cop_set_param;
   edit.cs_ptr = selected_chainsetup_repp;
+  edit.need_chain_reinit = false;
 
   unsigned int p = selected_chainsetup_repp->first_selected_chain();
   if (p < selected_chainsetup_repp->chains.size()) {
@@ -2074,6 +2075,7 @@ void ECA_CONTROL::set_chain_muting(const string &arg)
   ECA::chainsetup_edit_t edit;
   edit.type = ECA::edit_c_muting;
   edit.cs_ptr = selected_chainsetup_repp;
+  edit.need_chain_reinit = false;
 
   int state_arg = priv_onofftoggle_to_int(arg);
 
@@ -2102,6 +2104,7 @@ void ECA_CONTROL::set_chain_bypass(const string& arg)
   ECA::chainsetup_edit_t edit;
   edit.type = ECA::edit_c_bypass;
   edit.cs_ptr = selected_chainsetup_repp;
+  edit.need_chain_reinit = false;
 
   int state_arg = priv_onofftoggle_to_int(arg);
 
@@ -2132,6 +2135,7 @@ void ECA_CONTROL::bypass_chain_operator(const string& arg)
   ECA::chainsetup_edit_t edit;
   edit.type = ECA::edit_cop_bypass;
   edit.cs_ptr = selected_chainsetup_repp;
+  edit.need_chain_reinit = false;
 
   int bypass_arg = priv_onofftoggle_to_int(arg);
 
@@ -2517,6 +2521,7 @@ void ECA_CONTROL::set_controller_parameter(CHAIN_OPERATOR::parameter_t value)
   ECA::chainsetup_edit_t edit;
   edit.type = ECA::edit_ctrl_set_param;
   edit.cs_ptr = selected_chainsetup_repp;
+  edit.need_chain_reinit = false;
 
   unsigned int p = selected_chainsetup_repp->first_selected_chain();
   if (p < selected_chainsetup_repp->chains.size()) {
commit 42c2bf99caadffc9a22e2839df4674e31f1f7712
Author: Kai Vehmanen <kvcont...@nosignal.fi>
Date:   Thu Jan 30 22:44:24 2014 +0200

    eca-osc: always initialize chainsetup edit objects
    
    Initialize 'need_chain_reinit' properly for OSC commands to modify
    chainop and controller parameters. Depending on stack contents, unnecessary
    chain reinits were performed.

diff --git a/libecasound/eca-osc.cpp b/libecasound/eca-osc.cpp
index 26040af..1cc675f 100644
--- a/libecasound/eca-osc.cpp
+++ b/libecasound/eca-osc.cpp
@@ -1,6 +1,6 @@
 // ------------------------------------------------------------------------
 // eca-osc.cpp: Class implementing the Ecasound OSC interface
-// Copyright (C) 2009,2012 Kai Vehmanen
+// Copyright (C) 2009,2012,2014 Kai Vehmanen
 //
 // Attributes:
 //     eca-style-version: 3
@@ -246,6 +246,7 @@ int ECA_OSC_INTERFACE::handle_chain_message(const std::string &path, const char
 	  p_res == 0) {
 	DBC_CHECK(types[0] == 'f');
 	edit.type = ECA::edit_cop_set_param;
+        edit.need_chain_reinit = false;
 
 	edit.m.cop_set_param.chain = c_index;
 	edit.m.cop_set_param.op = std::atoi(op_s.c_str());
@@ -277,7 +278,8 @@ int ECA_OSC_INTERFACE::handle_chain_message(const std::string &path, const char
 	  p_res == 0) {
 	DBC_CHECK(types[0] == 'f');
 	edit.type = ECA::edit_ctrl_set_param;
-
+        edit.need_chain_reinit = false;
+  
 	edit.m.ctrl_set_param.chain = c_index;
 	edit.m.ctrl_set_param.op = std::atoi(ctrl_s.c_str());
 	edit.m.ctrl_set_param.param = param;

Reply via email to