New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FEAT(client): Indicate talking users when locally muted #4322
FEAT(client): Indicate talking users when locally muted #4322
Conversation
Note that this PR depends on mumble-voip/mumble-theme#29 |
8bd6c89
to
63d115a
Compare
Before this commit it is impossible to tell whether a client is talking or not once that client is locally muted. This commit changes this by introducing a new talking state "MutedTalking" for these special cases. In order for this talking state to come in existence, the audio code was altered so that audio packets are no longer dropped if the associated user is locally muted. Instead the audio frame will pass the normal processing chain until it comes to actually decoding it. For Opus packets only the sample count is read out without actually doing the work of decoding. For all other codecs the packet is decoded as usual. In a final step the sample buffer is filled/overwritten with zeros in order to mute the stream. With this commit in place, the UI will indicate a user that is talking but is muted with a special icon. Note that this is only the case in the modern themes (Light and Dark) but not for the Classic theme as I wasn't able to alter the talking icon accordingly. There is an altered version of the icon added with this commit but that one doesn't render properly within Qt (it does render everywhere else though). Making this feature work for the classic theme is a simple matter of getting the icon to work and then editing ClassicTheme.qrc which currently points to the same icon as for passive users for the MutedTalking state.
Updating 'mumble_en.ts'... Found 1881 source text(s) (1 new and 1880 already existing)
63d115a
to
740f1f7
Compare
Do I understand it correctly that the full audio stream is transmitted just for a few bits of information (flashing icon)? Edit: Never mind. I see this is a client only change and the audio stream was transmitted before too. |
Yes and yes. |
The following icons were added (with a description) to Qt's "What's this?" help system: - padlocks (mumble-voip#3929) - talking state for locally muted users (mumble-voip#4322) - listener symbol (mumble-voip#4011) Fixes mumble-voip#4686
Before this commit it is impossible to tell whether a client is talking
or not once that client is locally muted.
This commit changes this by introducing a new talking state
"MutedTalking" for these special cases. In order for this talking state
to come in existence, the audio code was altered so that audio packets
are no longer dropped if the associated user is locally muted. Instead
the audio frame will pass the normal processing chain until it comes to
actually decoding it.
For Opus packets only the sample count is read out without actually
doing the work of decoding. For all other codecs the packet is decoded
as usual. In a final step the sample buffer is filled/overwritten with
zeros in order to mute the stream.
With this commit in place, the UI will indicate a user that is talking
but is muted with a special icon. Note that this is only the case in the
modern themes (Light and Dark) but not for the Classic theme as I wasn't
able to alter the talking icon accordingly. There is an altered version
of the icon added with this commit but that one doesn't render properly
within Qt (it does render everywhere else though). Making this feature
work for the classic theme is a simple matter of getting the icon to
work and then editing ClassicTheme.qrc which currently points to the
same icon as for passive users for the MutedTalking state.
Screenshot:
