mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 21:35:04 +02:00
move audio packets to client data
This commit is contained in:
parent
2f457ae891
commit
481cd0ca6a
3 changed files with 32 additions and 15 deletions
|
@ -56,10 +56,13 @@ AudioMixer::AudioMixer(ReceivedMessage& message) :
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
auto& packetReceiver = nodeList->getPacketReceiver();
|
auto& packetReceiver = nodeList->getPacketReceiver();
|
||||||
|
|
||||||
packetReceiver.registerListenerForTypes({ PacketType::MicrophoneAudioNoEcho, PacketType::MicrophoneAudioWithEcho,
|
packetReceiver.registerListenerForTypes({
|
||||||
PacketType::InjectAudio, PacketType::AudioStreamStats },
|
PacketType::MicrophoneAudioNoEcho,
|
||||||
this, "handleAudioPacket");
|
PacketType::MicrophoneAudioWithEcho,
|
||||||
packetReceiver.registerListenerForTypes({ PacketType::SilentAudioFrame }, this, "handleSilentAudioPacket");
|
PacketType::InjectAudio,
|
||||||
|
PacketType::AudioStreamStats,
|
||||||
|
PacketType::SilentAudioFrame },
|
||||||
|
this, "queueAudioPacket");
|
||||||
packetReceiver.registerListener(PacketType::NegotiateAudioFormat, this, "handleNegotiateAudioFormat");
|
packetReceiver.registerListener(PacketType::NegotiateAudioFormat, this, "handleNegotiateAudioFormat");
|
||||||
packetReceiver.registerListener(PacketType::MuteEnvironment, this, "handleMuteEnvironmentPacket");
|
packetReceiver.registerListener(PacketType::MuteEnvironment, this, "handleMuteEnvironmentPacket");
|
||||||
packetReceiver.registerListener(PacketType::NodeIgnoreRequest, this, "handleNodeIgnoreRequestPacket");
|
packetReceiver.registerListener(PacketType::NodeIgnoreRequest, this, "handleNodeIgnoreRequestPacket");
|
||||||
|
@ -72,15 +75,12 @@ AudioMixer::AudioMixer(ReceivedMessage& message) :
|
||||||
connect(nodeList.data(), &NodeList::nodeKilled, this, &AudioMixer::handleNodeKilled);
|
connect(nodeList.data(), &NodeList::nodeKilled, this, &AudioMixer::handleNodeKilled);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioMixer::handleAudioPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) {
|
void AudioMixer::queueAudioPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) {
|
||||||
getOrCreateClientData(sendingNode.data());
|
if (message->getType() == PacketType::SilentAudioFrame) {
|
||||||
DependencyManager::get<NodeList>()->updateNodeWithDataFromPacket(message, sendingNode);
|
_numSilentPackets++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioMixer::handleSilentAudioPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) {
|
getOrCreateClientData(sendingNode.data())->queuePacket(message);
|
||||||
_numSilentPackets++;
|
|
||||||
getOrCreateClientData(sendingNode.data());
|
|
||||||
DependencyManager::get<NodeList>()->updateNodeWithDataFromPacket(message, sendingNode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioMixer::handleMuteEnvironmentPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) {
|
void AudioMixer::handleMuteEnvironmentPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode) {
|
||||||
|
|
|
@ -56,8 +56,7 @@ public slots:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
// packet handlers
|
// packet handlers
|
||||||
void handleAudioPacket(QSharedPointer<ReceivedMessage> packet, SharedNodePointer sendingNode);
|
void queueAudioPacket(QSharedPointer<ReceivedMessage> packet, SharedNodePointer sendingNode);
|
||||||
void handleSilentAudioPacket(QSharedPointer<ReceivedMessage> packet, SharedNodePointer sendingNode);
|
|
||||||
void handleMuteEnvironmentPacket(QSharedPointer<ReceivedMessage> packet, SharedNodePointer sendingNode);
|
void handleMuteEnvironmentPacket(QSharedPointer<ReceivedMessage> packet, SharedNodePointer sendingNode);
|
||||||
void handleNegotiateAudioFormat(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode);
|
void handleNegotiateAudioFormat(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode);
|
||||||
void handleNodeKilled(SharedNodePointer killedNode);
|
void handleNodeKilled(SharedNodePointer killedNode);
|
||||||
|
|
|
@ -52,7 +52,25 @@ void AudioMixerClientData::queuePacket(QSharedPointer<ReceivedMessage> packet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioMixerClientData::processPackets() {
|
void AudioMixerClientData::processPackets() {
|
||||||
// TODO: process the queue
|
while (!_queuedPackets.empty()) {
|
||||||
|
QSharedPointer<ReceivedMessage>& packet = _queuedPackets.back();
|
||||||
|
|
||||||
|
switch (packet->getType()) {
|
||||||
|
case PacketType::MicrophoneAudioNoEcho:
|
||||||
|
case PacketType::MicrophoneAudioWithEcho:
|
||||||
|
case PacketType::InjectAudio:
|
||||||
|
case PacketType::AudioStreamStats:
|
||||||
|
case PacketType::SilentAudioFrame: {
|
||||||
|
QMutexLocker lock(&getMutex());
|
||||||
|
parseData(*packet);
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
Q_UNREACHABLE();
|
||||||
|
}
|
||||||
|
|
||||||
|
_queuedPackets.pop();
|
||||||
|
}
|
||||||
|
|
||||||
assert(_queuedPackets.empty());
|
assert(_queuedPackets.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue