window-basic-stats.hpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. #include <obs.hpp>
  3. #include <util/platform.h>
  4. #include <QPointer>
  5. #include <QDialog>
  6. #include <QTimer>
  7. #include <QLabel>
  8. #include <QList>
  9. class QGridLayout;
  10. class OBSBasicStats : public QDialog {
  11. Q_OBJECT
  12. QLabel *fps = nullptr;
  13. QLabel *cpuUsage = nullptr;
  14. QLabel *hddSpace = nullptr;
  15. QLabel *memUsage = nullptr;
  16. QLabel *renderTime = nullptr;
  17. QLabel *skippedFrames = nullptr;
  18. QLabel *missedFrames = nullptr;
  19. QGridLayout *outputLayout = nullptr;
  20. os_cpu_usage_info_t *cpu_info = nullptr;
  21. QTimer timer;
  22. struct OutputLabels {
  23. QPointer<QLabel> name;
  24. QPointer<QLabel> status;
  25. QPointer<QLabel> droppedFrames;
  26. QPointer<QLabel> megabytesSent;
  27. QPointer<QLabel> bitrate;
  28. uint64_t lastBytesSent = 0;
  29. uint64_t lastBytesSentTime = 0;
  30. int first_total = 0;
  31. int first_dropped = 0;
  32. void Update(obs_output_t *output);
  33. void Reset(obs_output_t *output);
  34. };
  35. QList<OutputLabels> outputLabels;
  36. void AddOutputLabels(QString name);
  37. void Update();
  38. void Reset();
  39. public:
  40. OBSBasicStats(QWidget *parent = nullptr);
  41. ~OBSBasicStats();
  42. };