mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
Give noisy mutes their own packet type
This commit is contained in:
parent
0507edf90f
commit
46eebe9d40
4 changed files with 23 additions and 23 deletions
|
@ -779,21 +779,9 @@ void AudioMixer::run() {
|
||||||
static const int TIME_BETWEEN_MUTES = 5; // in secs
|
static const int TIME_BETWEEN_MUTES = 5; // in secs
|
||||||
if (usecTimestampNow() - nodeData->getAvatarAudioStream()->getLastMuted() >
|
if (usecTimestampNow() - nodeData->getAvatarAudioStream()->getLastMuted() >
|
||||||
TIME_BETWEEN_MUTES * USECS_PER_SECOND) {
|
TIME_BETWEEN_MUTES * USECS_PER_SECOND) {
|
||||||
int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment);
|
QByteArray packet = byteArrayWithPopulatedHeader(PacketTypeNoisyMute);
|
||||||
int packetSize = headerSize + sizeof(glm::vec3) + sizeof(float);
|
nodeList->writeDatagram(packet, node);
|
||||||
|
|
||||||
// Fake data to force mute
|
|
||||||
glm::vec3 position = nodeData->getAvatarAudioStream()->getPosition();
|
|
||||||
float radius = 1.0f;
|
|
||||||
|
|
||||||
char* packet = (char*)malloc(packetSize);
|
|
||||||
populatePacketHeader(packet, PacketTypeMuteEnvironment);
|
|
||||||
memcpy(packet + headerSize, &position, sizeof(glm::vec3));
|
|
||||||
memcpy(packet + headerSize + sizeof(glm::vec3), &radius, sizeof(float));
|
|
||||||
|
|
||||||
nodeList->writeDatagram(packet, packetSize, node);
|
|
||||||
nodeData->getAvatarAudioStream()->setLastMutedNow();
|
nodeData->getAvatarAudioStream()->setLastMutedNow();
|
||||||
free(packet);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -141,18 +141,29 @@ void DatagramProcessor::processDatagrams() {
|
||||||
AccountManager::getInstance().checkAndSignalForAccessToken();
|
AccountManager::getInstance().checkAndSignalForAccessToken();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case PacketTypeNoisyMute:
|
||||||
case PacketTypeMuteEnvironment: {
|
case PacketTypeMuteEnvironment: {
|
||||||
glm::vec3 position;
|
bool mute = !Application::getInstance()->getAudio()->getMuted();
|
||||||
float radius;
|
|
||||||
|
|
||||||
int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment);
|
if (incomingType == PacketTypeMuteEnvironment) {
|
||||||
memcpy(&position, incomingPacket.constData() + headerSize, sizeof(glm::vec3));
|
glm::vec3 position;
|
||||||
memcpy(&radius, incomingPacket.constData() + headerSize + sizeof(glm::vec3), sizeof(float));
|
float radius, distance;
|
||||||
|
|
||||||
|
int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment);
|
||||||
|
memcpy(&position, incomingPacket.constData() + headerSize, sizeof(glm::vec3));
|
||||||
|
memcpy(&radius, incomingPacket.constData() + headerSize + sizeof(glm::vec3), sizeof(float));
|
||||||
|
distance = glm::distance(Application::getInstance()->getAvatar()->getPosition(), position);
|
||||||
|
|
||||||
|
mute = mute && (distance < radius);
|
||||||
|
}
|
||||||
|
|
||||||
if (glm::distance(Application::getInstance()->getAvatar()->getPosition(), position) < radius
|
if (mute) {
|
||||||
&& !Application::getInstance()->getAudio()->getMuted()) {
|
|
||||||
Application::getInstance()->getAudio()->toggleMute();
|
Application::getInstance()->getAudio()->toggleMute();
|
||||||
AudioScriptingInterface::getInstance().mutedByMixer();
|
if (incomingType == PacketTypeMuteEnvironment) {
|
||||||
|
AudioScriptingInterface::getInstance().environmentMuted();
|
||||||
|
} else {
|
||||||
|
AudioScriptingInterface::getInstance().mutedByMixer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ public slots:
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void mutedByMixer();
|
void mutedByMixer();
|
||||||
|
void environmentMuted();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AudioScriptingInterface();
|
AudioScriptingInterface();
|
||||||
|
|
|
@ -54,7 +54,7 @@ enum PacketType {
|
||||||
UNUSED_2,
|
UNUSED_2,
|
||||||
UNUSED_3,
|
UNUSED_3,
|
||||||
UNUSED_4,
|
UNUSED_4,
|
||||||
UNUSED_5,
|
PacketTypeNoisyMute,
|
||||||
PacketTypeMetavoxelData,
|
PacketTypeMetavoxelData,
|
||||||
PacketTypeAvatarIdentity,
|
PacketTypeAvatarIdentity,
|
||||||
PacketTypeAvatarBillboard,
|
PacketTypeAvatarBillboard,
|
||||||
|
|
Loading…
Reference in a new issue