Review of "Volume Mixer" version 1

Details Page Preview

Applet allowing separate configuration of PulseAudio mixers. Shell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices. Middle mouse click on a slider mutes the selected stream. Please file bugs and feature requests on the GitHub page.

Extension Homepage
https://github.com/aleho/gnome-shell-volume-mixer

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

All Versions

Previous Reviews on this Version

Alex Hofbauer posted a review
Is there anyone I have to poke, nag or bribe to get some feedback about this submission?
Meng Zhuo waiting for author
No, you don't need to do that It just slow. However, have you contact with the original Adv. Vol. mixer author?
Alex Hofbauer posted a review
No, no contact at all. The original repo is still up, yet seems abandoned, the extension hasn't been updated since 3.10. There's a simple fork that aimed at making the original Adv. Volume Mixer compatible and its author tried to contact Harry Karvonen with no reply at all. I've already updated this extension to be compatible with 3.14. I can't seem to find a way to attach it though.
Meng Zhuo waiting for author
I see. I will treat your extension as a new extension and you need to meet the standard of Gnome extension http://blog.mecheye.net/2012/02/requirements-and-tips-for-getting-your-gnome-shell-extension-approved/ I don't see any disconnect function to disconnect signal. Please ADD disconnect functions. ------------------- I'm a new reviwer, so any problem is welcome and you can contact me at #gnome-shell IRC channel, my nickname is mengzhuo
Alex Hofbauer posted a review
That's a good thing, it can only benefit from that. :) Anyway, I'm confused, what do you mean by "disconnect signal"? I already knew that blog post you mentioned, but it's only talking about a global signal (global.display.connect), not about connections to locally generated objects. There are even two people in the comments that seem to have the same question, neither of them got an answer. After connecting a signal to an object that was created locally, will destroying / GC'ing that object not result in it being disconnected automatically? My knowledge of gnome-shell internals is limited, so please excuse that question if it's stupid. Also, I haven't touched the code in quite some time now, maybe I completely forgot about a signal the original author was using. Is there anything in particular you were referring to?
Meng Zhuo waiting for author
For example: extension.js line 35: >>> Settings.gsettings().connect('changed::', function() You bind a signal name "change::" to an anonymous function, which CAN NOT be garbage collected from GJS. Most of time, the memory cost on such signal anonymous function is minor but it's BETTER to disconnect them.
Alex Hofbauer posted a review
Now I'm even more confused. "Settings.gsettings()" returns a Singleton of a "Gio.Settings()" object. As soon as that reference in the Settings module is garbage collected (localGsettings), it IMHO should also disconnect all it's signals. If it doesn't I'd consider that to be quite an implementation flaw. That's what I meant by local references. Anyway, I just created an extension with gnome-shell-extension-tool to see whether there were any hints (at least more than a blog entry from two years ago). Sadly it's very minimal and there's also no disconnect on the button's "button-press-event". Are there more resources for best practices or anything that could be more helpful? I'm going to update the extension with a disconnect call in a few minutes.
Meng Zhuo rejected
Reject with new version >>> As soon as that reference in the Settings module is garbage collected (localGsettings), it IMHO should also disconnect all it's signals. If it doesn't I'd consider that to be quite an implementation flaw. That's what I meant by local references. I agree with you it's an implementation flaw and we can talk with Gnome-Shell developers on IRC. >>> Are there more resources for best practices or anything that could be more helpful? I don't have such tool :(