> On Sun, 20 Jan 2013, Tim Munro wrote:
>
>> Holger Marzen wrote:
>>
>>> By trying some tricks with grouping I noticed that I can't set the audio
>>> mixer to 8 submasters. Rosegarden crashes immediately.
>> Hi Holger.
>>
>> There is a special trick involved here. It isn't a fix, but it works for me,
>> as I've been too lazy to fix it right.
>>
>> When you open the audio mixer and try to set the number of submasters, the
>> control will initially indicate "No Submasters," regardless of how many
>> submasters are actually present.
>>
>> Click on "No Submasters" even though the control appears to indicate this
>> already. The existing submasters will disappear.
>>
>> Now when you reopen the Settings menu, you should be able to set eight
>> submasters.
> Indeed. Works for me. Thanks for the hint.
>
> But it would be cool if someone could fix this UI-type bug.
OK. I've taken another look at this issue, and here's what I've found.
Changing the number of submasters involves requesting copies of existing
plugins at src/gui/studio/AudioMixerWindow.cpp, line 1421:
dups.push_back(new Buss(*busses[i + 1]));
The resulting copies have, however, been defective, resulting in a crash
at src/document/RosegardenDocument.cpp, line 1038:
plugin->getIdentifier().c_str());
The program was puking when it sucked up garbage instead of the expected
string.
I've dealt with the issue by cobbling together an ugly, complicated copy
constructor for the PluginContainer class.
The resulting code appears to work, but I have no idea what sort of memory
leaks or other future train wrecks I might have introduced while beating
it into submission.
I've also added some minor tweaks to ensure the "Number of Stereo Inputs"
and "Number of Submasters" menu checkboxes correctly display the initial
state of a file.
Tim Munro
|