Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My first non-accidental PR!
This introduces the concept of local voice mute. The main use case I can think of is when multiple users are in the same location and can hear each other without the call, but want to use it to collaborate with users in other locations.
A user can mute any other user, and this is tracked separately to the other user's RTC mute status. We also still display the spectrogram when the user speaks even when they are locally muted, as a signal that they are communicating something (and as a gentle cue for the user to unmute them if needed).
For simplicity (and I think alignment with encouraging collaboration), I've implemented this as a client-side mute only. This setting does not persist at all; each time you connect to a call, you will need to re-mute anyone you've muted before.
I'm considering retaining this setting for specific users across calls (at least in the same hunt), since (I think most of the time) when you've muted a user because you're in the same space, you will probably remain in the same space, and having to re-mute someone repeatedly could be frustrating.
On one hand, having to unmute someone might be frustrating; on the other, it's only a couple of clicks away. Persisting mute might also be a smidge more complex, but I think it would be very doable if desired.