// // AudioStatsDialog.h // hifi // // Created by Bridget Went on 7/9/15. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #ifndef __hifi__AudioStatsDialog__ #define __hifi__AudioStatsDialog__ #include #include #include #include #include #include #include #include #include class AudioIOStats; class AudioStreamStats; //display class AudioStatsDisplay : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY public: AudioStatsDisplay(QFormLayout* form, QString text, unsigned colorRGBA); void updatedDisplay(QString str); void paint(); private: QString _strBuf; QLabel* _label; QString _text; unsigned _colorRGBA; }; //dialog class AudioStatsDialog : public QDialog { Q_OBJECT public: AudioStatsDialog(QWidget* parent); ~AudioStatsDialog(); void paintEvent(QPaintEvent*); private: // audio stats methods for rendering QVector _audioMixerStats; QVector _upstreamClientStats; QVector _upstreamMixerStats; QVector _downstreamStats; QVector _upstreamInjectedStats; int _audioMixerID; int _upstreamClientID; int _upstreamMixerID; int _downstreamID; int _upstreamInjectedID; QVector> _audioDisplayChannels; int addChannel(QFormLayout* form, QVector& stats, const unsigned color); void updateStats(QVector& stats, const int channelID); void renderStats(); void clearAllChannels(); void renderAudioStreamStats(const AudioStreamStats* streamStats, QVector* audioStreamstats, bool isDownstreamStats); const AudioIOStats* _stats; QFormLayout* _form; bool _isEnabled; bool _shouldShowInjectedStreams; signals: void closed(); public slots: void reject(); void updateTimerTimeout(); protected: // Emits a 'closed' signal when this dialog is closed. void closeEvent(QCloseEvent*); private: QTimer* averageUpdateTimer = new QTimer(this); }; #endif /* defined(__hifi__AudioStatsDialog__) */