* The space bubble around a player's avatar is now visualized. When another avatar enters a player's bubble, The bubble visualization will appear, a soft tone will play, and the "Bubble" HUD button will flash.
* The space bubble radius setting has been removed. Space bubble size now scales based on avatar scale.
* Space bubble collision detection is now more accurate and reliable.
* CTRL + N toggles the bubble.
* The "Bubble" HUD button has been moved to the proper location.
Completely deleting hrtfs incorrectly. This seems to be better, we
only want to delete HRTF for the QUuid() stream for the killed node in each
node's list of HRTFs.
It could be past the end of the buffer if you changed sounds, and the
new one is shorter. Won't happen with our current tests, but that could
change, and in general no reason it couldn't happen.
Need to be sure we don't change the _isAvatar or
_isListeningToAudioStream from one thread while processing audio in
another. Also, fixed issue sending NLPacketList.
Seems they have some state. So if you play a sound, then silence
that doesn't go through the encoder (SilentAudioFrame), then a
sound again, you will hear a click. Now, I just pop a frame of
0s through the encoder at the end of each .wav it plays. Poof!
Started with the horrible screaming when avatar goes away, seems
due to not putting a codec string in the packets. This was an existing
issue, not due to recent changes. Also, some weird indenting was
fixed, etc... Still hear an artifact when audio starts, but only when
a codec was negotiated. Hoping to fix that too.
AgentAvatarTimer now in its own files. The thread still is created
the same way, and started only when you are an avatar, but now I
remember to stop it when you no longer are one. Audio is still at
100Hz, but avatar messages go at 60Hz as before. Unsure it matters,
but easy to do. Looking at that buzz now.
Seems playAvatarSound could be called from a thread other than
the Agent's thread. So, artifacts happen when that pointer changes
while a 'tick' is happening. Also cleaned up code a bit, got rid
of some hard-coded stuff I had in just for dev purposes.
- remove parameters on the jitter buffer algorithm, these are now static
- remove parameters on the output starve detection algorithm, now static
- move interface audio settings to the Developer menu