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;