hook JSON stats sending from domain-server

This commit is contained in:
Stephen Birarda 2014-03-24 11:56:16 -07:00
parent ec10e61b8c
commit 8f403609e7
5 changed files with 27 additions and 1 deletions
assignment-client/src/audio
domain-server/src
libraries/shared/src

View file

@ -33,6 +33,7 @@
#include <glm/gtx/vector_angle.hpp>
#include <QtCore/QCoreApplication>
#include <QtCore/QJsonObject>
#include <QtCore/QTimer>
#include <Logging.h>
@ -349,11 +350,30 @@ void AudioMixer::readPendingDatagrams() {
}
}
void AudioMixer::sendStatsPacket() {
static QJsonObject statsObject;
statsObject["trailing_sleep"] = _trailingSleepRatio;
statsObject["min_audability_threshold"] = _minAudibilityThreshold;
QByteArray statsPacket = byteArrayWithPopulatedHeader(PacketTypeNodeJsonStats);
QDataStream statsPacketStream(&statsPacket, QIODevice::Append);
statsPacketStream << statsObject.toVariantMap();
NodeList* nodeList = NodeList::getInstance();
nodeList->sendDatagramToDomainServer(statsPacket);
}
void AudioMixer::run() {
commonInit(AUDIO_MIXER_LOGGING_TARGET_NAME, NodeType::AudioMixer);
NodeList* nodeList = NodeList::getInstance();
// send a stats packet every 1 second
QTimer* statsTimer = new QTimer(this);
connect(statsTimer, SIGNAL(timeout()), this, SLOT(sendStatsPacket()));
statsTimer->start(1000);
nodeList->addNodeTypeToInterestSet(NodeType::Agent);

View file

@ -28,6 +28,8 @@ public slots:
void run();
void readPendingDatagrams();
void sendStatsPacket();
private:
/// adds one buffer to the mix for a listening node
void addBufferToMixForListeningNodeWithBuffer(PositionalAudioRingBuffer* bufferToAdd,

View file

@ -35,7 +35,6 @@ void DomainServerNodeData::parseJSONStatsPacket(const QByteArray& statsPacket) {
_statsJSONObject = mergeJSONStatsFromNewObject(unpackedStatsJSON, _statsJSONObject);
}
QJsonObject DomainServerNodeData::mergeJSONStatsFromNewObject(const QJsonObject& newObject, QJsonObject destinationObject) {
foreach(const QString& key, newObject.keys()) {
if (newObject[key].isObject() && destinationObject.contains(key)) {

View file

@ -193,6 +193,10 @@ qint64 NodeList::writeDatagram(const char* data, qint64 size, const SharedNodePo
return writeDatagram(QByteArray(data, size), destinationNode, overridenSockAddr);
}
qint64 NodeList::sendDatagramToDomainServer(const QByteArray &datagram) {
return writeDatagram(datagram, _domainInfo.getSockAddr(), _domainInfo.getConnectionSecret());
}
void NodeList::timePingReply(const QByteArray& packet, const SharedNodePointer& sendingNode) {
QDataStream packetStream(packet);
packetStream.skipRawData(numBytesForPacketHeader(packet));

View file

@ -78,6 +78,7 @@ public:
const HifiSockAddr& overridenSockAddr = HifiSockAddr());
qint64 writeDatagram(const char* data, qint64 size, const SharedNodePointer& destinationNode,
const HifiSockAddr& overridenSockAddr = HifiSockAddr());
qint64 sendDatagramToDomainServer(const QByteArray& datagram);
void(*linkedDataCreateCallback)(Node *);