[ecasound] controllers always added to last chain-op?

From: Stuart Allie <Stuart.Allie@email-addr-hidden>
Date: Thu Jun 16 2005 - 04:48:39 EEST

Hi All,

The ecasound man page says that "All controllers are attached to the
selected (=usually the last specified effect/controller) effect",
however, that doesn't seem to be the case:

Here's the transcript from a sample session.

************************************************************************
********
* ecasound v2.4.1 (C) 1997-2005 Kai Vehmanen

************************************************************************
********
- Session created
----------------------------------------------------------
- Chainsetup created (cmdline)
---------------------------------------------
(libkvutils) kvu_rtcaps: warning! POSIX_MEMLOCK not supported
(eca-session) Note! Unable to create a valid chainsetup from the
command-line
... arguments.
ecasound ('h' for help)> c-add fred
(eca-control-objects) Added chains: fred.
ecasound ('h' for help)> cop-add -ea:123
ecasound ('h' for help)> cop-add -etf:50
ecasound ('h' for help)> cop-select 1
ecasound ('h' for help)> cop-selected
1
ecasound ('h' for help)> ctrl-add -km:1,0,100,1,1
ecasound ('h' for help)> ctrl-status
### Controller status (chainsetup 'command-line-setup') ###
Chain "default":

Chain "fred":
        1. MIDI-Controller:
                [1] param-id 1.000,
                [2] range-low 0.000,
                [3] range-high 100.000,
                [4] controller 1.000,
                [5] channel 1.000
         -- Status info: Source "MIDI-Controller" connected to target
"Fake stereo". Current
... source value is 0.00 and target 50.00.
ecasound ('h' for help)> q

---
ecasound: Exiting...
Note that although I did a "cop-select 1" and "cop-selected" confirms
this, the controller is added to the second chain-op.
So, is this the intended behaviour, or is it a bug?
If it's a bug, then I believe this will fix it:
In eca-chain.cpp:
void CHAIN::select_chain_operator(int index)
{
  selected_chainop_repp = 0;
  selected_chainop_number_rep = 0;
  for(int chainop_sizet = 0; chainop_sizet !=
static_cast<int>(chainops_rep.size()); chainop_sizet++) {
    if (chainop_sizet + 1 == index) {
      selected_chainop_repp = chainops_rep[chainop_sizet];
      selected_chainop_number_rep = index;
      // make sure we use the selected chain op as the 
      // target for any added controllers
      selected_chain_operator_as_target(); 
    }
  }
}
Cheers,
Stuart Allie
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&opick
_______________________________________________
Ecasound-list mailing list
Ecasound-list@email-addr-hidden
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Thu Jun 16 08:15:05 2005

This archive was generated by hypermail 2.1.8 : Thu Jun 16 2005 - 08:15:05 EEST