This commit is contained in:
Atlante45 2014-10-24 14:56:56 -07:00
parent 847ef64b66
commit 12f0237dc7
3 changed files with 14 additions and 16 deletions

View file

@ -638,7 +638,7 @@ void AudioMixer::run() {
int nextFrame = 0; int nextFrame = 0;
QElapsedTimer timer; QElapsedTimer timer;
timer.start(); timer.start();
char clientMixBuffer[MAX_PACKET_SIZE]; char clientMixBuffer[MAX_PACKET_SIZE];
char clientEnvBuffer[MAX_PACKET_SIZE]; char clientEnvBuffer[MAX_PACKET_SIZE];
@ -719,13 +719,13 @@ void AudioMixer::run() {
&& nodeData->getAvatarAudioStream()) { && nodeData->getAvatarAudioStream()) {
int streamsMixed = prepareMixForListeningNode(node.data()); int streamsMixed = prepareMixForListeningNode(node.data());
char* mixDataAt; char* mixDataAt;
if (streamsMixed > 0) { if (streamsMixed > 0) {
// pack headers // pack header
int numBytesMixPacketHeader = populatePacketHeader(clientMixBuffer, PacketTypeMixedAudio); int numBytesMixPacketHeader = populatePacketHeader(clientMixBuffer, PacketTypeMixedAudio);
mixDataAt = clientMixBuffer + numBytesMixPacketHeader; mixDataAt = clientMixBuffer + numBytesMixPacketHeader;
// pack sequence number // pack sequence number
quint16 sequence = nodeData->getOutgoingSequenceNumber(); quint16 sequence = nodeData->getOutgoingSequenceNumber();
memcpy(mixDataAt, &sequence, sizeof(quint16)); memcpy(mixDataAt, &sequence, sizeof(quint16));
@ -741,8 +741,7 @@ void AudioMixer::run() {
// find reverb properties // find reverb properties
for (int i = 0; i < _zoneReverbSettings.size(); ++i) { for (int i = 0; i < _zoneReverbSettings.size(); ++i) {
AudioMixerClientData* data = static_cast<AudioMixerClientData*>(node->getLinkedData()); AudioMixerClientData* data = static_cast<AudioMixerClientData*>(node->getLinkedData());
AvatarAudioStream* stream = data->getAvatarAudioStream(); glm::vec3 streamPosition = data->getAvatarAudioStream()->getPosition();
glm::vec3 streamPosition = stream->getPosition();
if (_audioZones[_zoneReverbSettings[i].zone].contains(streamPosition)) { if (_audioZones[_zoneReverbSettings[i].zone].contains(streamPosition)) {
hasReverb = true; hasReverb = true;
reverbTime = _zoneReverbSettings[i].reverbTime; reverbTime = _zoneReverbSettings[i].reverbTime;
@ -754,11 +753,13 @@ void AudioMixer::run() {
bool dataChanged = (stream->hasReverb() != hasReverb) || bool dataChanged = (stream->hasReverb() != hasReverb) ||
(stream->hasReverb() && (stream->getRevebTime() != reverbTime || (stream->hasReverb() && (stream->getRevebTime() != reverbTime ||
stream->getWetLevel() != wetLevel)); stream->getWetLevel() != wetLevel));
// Update stream if (dataChanged) {
if (hasReverb) { // Update stream
stream->setReverb(reverbTime, wetLevel); if (hasReverb) {
} else { stream->setReverb(reverbTime, wetLevel);
stream->clearReverb(); } else {
stream->clearReverb();
}
} }
// Send at change or every so often // Send at change or every so often
@ -770,7 +771,6 @@ void AudioMixer::run() {
char* envDataAt = clientEnvBuffer + numBytesEnvPacketHeader; char* envDataAt = clientEnvBuffer + numBytesEnvPacketHeader;
unsigned char bitset = 0; unsigned char bitset = 0;
setAtBit(bitset, HAS_DATA_BIT);
if (hasReverb) { if (hasReverb) {
setAtBit(bitset, HAS_REVERB_BIT); setAtBit(bitset, HAS_REVERB_BIT);
} }

View file

@ -13,7 +13,6 @@
#include "InboundAudioStream.h" #include "InboundAudioStream.h"
#include "PacketHeaders.h" #include "PacketHeaders.h"
#include <SharedUtil.h>
const int STARVE_HISTORY_CAPACITY = 50; const int STARVE_HISTORY_CAPACITY = 50;

View file

@ -45,9 +45,8 @@ const int DEFAULT_WINDOW_SECONDS_FOR_DESIRED_CALC_ON_TOO_MANY_STARVES = 50;
const int DEFAULT_WINDOW_SECONDS_FOR_DESIRED_REDUCTION = 10; const int DEFAULT_WINDOW_SECONDS_FOR_DESIRED_REDUCTION = 10;
const bool DEFAULT_REPETITION_WITH_FADE = true; const bool DEFAULT_REPETITION_WITH_FADE = true;
// Mixed Audio bitset // Audio Env bitset
const int HAS_DATA_BIT = 0; // 1st bit const int HAS_REVERB_BIT = 0; // 1st bit
const int HAS_REVERB_BIT = 1; // 2nd bit
class InboundAudioStream : public NodeData { class InboundAudioStream : public NodeData {
Q_OBJECT Q_OBJECT