first changes for new network API

This commit is contained in:
Stephen Birarda 2015-07-02 16:18:44 -07:00
parent 448a0f01b6
commit 3a5701e02e
2 changed files with 65 additions and 62 deletions

View file

@ -795,11 +795,11 @@ void AudioClient::handleAudioInput() {
delete[] inputAudioSamples;
// Remove DC offset
// Remove DC offset
if (!_isStereoInput && !_audioSourceInjectEnabled) {
_inputGate.removeDCOffset(networkAudioSamples, numNetworkSamples);
}
// only impose the noise gate and perform tone injection if we are sending mono audio
if (!_isStereoInput && !_audioSourceInjectEnabled && _isNoiseGateEnabled) {
_inputGate.gateSamples(networkAudioSamples, numNetworkSamples);
@ -921,22 +921,23 @@ void AudioClient::processReceivedSamples(const QByteArray& inputBuffer, QByteArr
void AudioClient::sendMuteEnvironmentPacket() {
auto nodeList = DependencyManager::get<NodeList>();
QByteArray mutePacket = nodeList->byteArrayWithPopulatedHeader(PacketTypeMuteEnvironment);
int headerSize = mutePacket.size();
int dataSize = sizeof(glm::vec3) + sizeof(float);
NodeList::Packet mutePacket = nodeList->makePacket(PacketType::MuteEnvironment, dataSize);
const float MUTE_RADIUS = 50;
glm::vec3 currentSourcePosition = _positionGetter();
mutePacket.resize(mutePacket.size() + sizeof(glm::vec3) + sizeof(float));
memcpy(mutePacket.data() + headerSize, &currentSourcePosition, sizeof(glm::vec3));
memcpy(mutePacket.data() + headerSize + sizeof(glm::vec3), &MUTE_RADIUS, sizeof(float));
memcpy(mutePacket.payload().data(), &currentSourcePosition, sizeof(glm::vec3));
memcpy(mutePacket.payload() + sizeof(glm::vec3), &MUTE_RADIUS, sizeof(float));
// grab our audio mixer from the NodeList, if it exists
SharedNodePointer audioMixer = nodeList->soloNodeOfType(NodeType::AudioMixer);
if (audioMixer) {
// send off this mute packet
nodeList->writeDatagram(mutePacket, audioMixer);
nodeList->sendPacket(mutePacket, audioMixer);
}
}

View file

@ -26,60 +26,62 @@
// NOTE: if adding a new packet packetType, you can replace one marked usable or add at the end
// NOTE: if you want the name of the packet packetType to be available for debugging or logging, update nameForPacketType() as well
enum PacketType {
PacketTypeUnknown, // 0
PacketTypeStunResponse,
PacketTypeDomainList,
PacketTypePing,
PacketTypePingReply,
PacketTypeKillAvatar, // 5
PacketTypeAvatarData,
PacketTypeInjectAudio,
PacketTypeMixedAudio,
PacketTypeMicrophoneAudioNoEcho,
PacketTypeMicrophoneAudioWithEcho, // 10
PacketTypeBulkAvatarData,
PacketTypeSilentAudioFrame,
PacketTypeEnvironmentData,
PacketTypeDomainListRequest,
PacketTypeRequestAssignment, // 15
PacketTypeCreateAssignment,
PacketTypeDomainConnectionDenied,
PacketTypeMuteEnvironment,
PacketTypeAudioStreamStats,
PacketTypeDataServerConfirm, // 20
PacketTypeDomainServerPathQuery,
PacketTypeDomainServerPathResponse,
PacketTypeDomainServerAddedNode,
PacketTypeIceServerPeerInformation,
PacketTypeIceServerQuery, // 25
PacketTypeOctreeStats,
PacketTypeJurisdiction,
PacketTypeJurisdictionRequest,
UNUSED_6,
UNUSED_7, // 30
UNUSED_8,
UNUSED_9,
PacketTypeNoisyMute,
UNUSED_10,
PacketTypeAvatarIdentity, // 35
PacketTypeAvatarBillboard,
PacketTypeDomainConnectRequest,
PacketTypeDomainServerRequireDTLS,
PacketTypeNodeJsonStats,
PacketTypeEntityQuery, // 40
PacketTypeEntityData,
PacketTypeEntityAdd,
PacketTypeEntityErase,
PacketTypeEntityEdit,
PacketTypeOctreeDataNack, // 45
PacketTypeStopNode,
PacketTypeAudioEnvironment,
PacketTypeEntityEditNack,
PacketTypeSignedTransactionPayment,
PacketTypeIceServerHeartbeat, // 50
PacketTypeUnverifiedPing,
PacketTypeUnverifiedPingReply
namespace PacketType {
enum Value {
Unknown, // 0
StunResponse,
DomainList,
Ping,
PingReply,
KillAvatar, // 5
AvatarData,
InjectAudio,
MixedAudio,
MicrophoneAudioNoEcho,
MicrophoneAudioWithEcho, // 10
BulkAvatarData,
SilentAudioFrame,
EnvironmentData,
DomainListRequest,
RequestAssignment, // 15
CreateAssignment,
DomainConnectionDenied,
MuteEnvironment,
AudioStreamStats,
DataServerConfirm, // 20
DomainServerPathQuery,
DomainServerPathResponse,
DomainServerAddedNode,
IceServerPeerInformation,
IceServerQuery, // 25
OctreeStats,
Jurisdiction,
JurisdictionRequest,
UNUSED_6,
UNUSED_7, // 30
UNUSED_8,
UNUSED_9,
NoisyMute,
UNUSED_10,
AvatarIdentity, // 35
AvatarBillboard,
DomainConnectRequest,
DomainServerRequireDTLS,
NodeJsonStats,
EntityQuery, // 40
EntityData,
EntityAdd,
EntityErase,
EntityEdit,
OctreeDataNack, // 45
StopNode,
AudioEnvironment,
EntityEditNack,
SignedTransactionPayment,
IceServerHeartbeat, // 50
UnverifiedPing,
UnverifiedPingReply
};
};
typedef char PacketVersion;