By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 3159 - Updating mixers at changing sound-boards and master
Summary: Updating mixers at changing sound-boards and master
Status: PATCHAVAIL
Alias: None
Product: TDE
Classification: Unclassified
Component: tdemultimedia (show other bugs)
Version: R14.0.x [Trinity]
Hardware: Other Linux
: P5 enhancement
Assignee: Timothy Pearson
URL:
Depends on:
Blocks: 2969
  Show dependency treegraph
 
Reported: 2020-09-16 09:40 CDT by Michele Calgaro
Modified: 2021-03-22 20:57 CDT (History)
3 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments
kmix patch (14.72 KB, patch)
2020-09-16 09:40 CDT, Michele Calgaro
Details | Diff
PulseAudio and Master channel true treating (4.34 KB, patch)
2020-10-24 20:23 CDT, Michele Calgaro
Details | Diff
Updating mixers at changing sound-boards and master (14.72 KB, patch)
2020-10-24 20:23 CDT, Michele Calgaro
Details | Diff
kmix-LightUpdMixers-NoLeakRPi.patch (3.48 KB, patch)
2021-03-22 02:42 CDT, Roman Savochenko
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michele Calgaro 2020-09-16 09:40:07 CDT
Created attachment 2990 [details]
kmix patch

Separated from bug 2782 which was related to a slightly different topic.
Copied from bug 2782 comment 6, patch from Roman Savochenko.

---------------------------------------

That code modification was done primarily for true treating modern behaviours of PulseAudio, that is the delayed appearance at the requests in X-session and finishing together the X-session finish. So, KMix on Debian 10 doesn't see PulseAudio in LiveDisks and after installation, before commenting "autospawn=no" in /etc/pulse/client.conf.d/00-disable-autospawn.conf and cleaning kmixrc.

So, the patch makes KMix dynamic for mixers (sound-cards) updating, what also actual for the modern Linux sound system where the sound cards may appear and disappear just connection/disconnecting a sound external USB-dongle.

Also the patch finishes the master card+channel changing by recreation the mixers, so their true-actual binding DCOP.

The mixer changes detection performed by a new function mixersUpdate() with the periodic invoking in 10 seconds from a timer and who works only for closed mixer dialogs. This periodic load was successfully tested on wide Linux environments from P3(Debian 7) to Intel Core I7(Debian 10) and you may test that yourself by that LiveDisks: http://ftp.oscada.org/OpenSCADA/Work/Live/

During the process, the KMix code was cleaned from obvious memory leaks at dynamic treating the mixers (Mixer).

So, currently I have tested and this patch works for:
- PulseAudio appears and is accessible everytime in KMix on modern configurations both in LiveDisks and installed systems.
- KMix reflects connection/disconnection external sound cards.
- KMix complete applies the master card+channel changes.
Comment 1 Michele Calgaro 2020-10-24 20:23:09 CDT
Created attachment 2997 [details]
PulseAudio and Master channel true treating
Comment 2 Michele Calgaro 2020-10-24 20:23:29 CDT
Created attachment 2998 [details]
Updating mixers at changing sound-boards and master
Comment 3 Roman Savochenko 2021-03-22 02:42:58 CDT
Created attachment 3009 [details]
kmix-LightUpdMixers-NoLeakRPi.patch

The patch provides some additional improvements targeted on lightening the detection of the mixers number changing, than performing lesser CPU loading, and also on fixing yet one memory leakage detected on Raspberry Pi 3.
Comment 4 Michele Calgaro 2021-03-22 20:57:37 CDT
Thanks Roman, appreciated.
We know we are "guilty" that your work on this patch is pending review. We will get there at some point, bear with us :-)