window-basic-stats.hpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include <obs.hpp>
  3. #include <util/platform.h>
  4. #include <QPointer>
  5. #include <QWidget>
  6. #include <QTimer>
  7. #include <QLabel>
  8. #include <QList>
  9. class QGridLayout;
  10. class QCloseEvent;
  11. class OBSBasicStats : public QWidget {
  12. Q_OBJECT
  13. QLabel *fps = nullptr;
  14. QLabel *cpuUsage = nullptr;
  15. QLabel *hddSpace = nullptr;
  16. QLabel *memUsage = nullptr;
  17. QLabel *renderTime = nullptr;
  18. QLabel *skippedFrames = nullptr;
  19. QLabel *missedFrames = nullptr;
  20. QGridLayout *outputLayout = nullptr;
  21. os_cpu_usage_info_t *cpu_info = nullptr;
  22. QTimer timer;
  23. struct OutputLabels {
  24. QPointer<QLabel> name;
  25. QPointer<QLabel> status;
  26. QPointer<QLabel> droppedFrames;
  27. QPointer<QLabel> megabytesSent;
  28. QPointer<QLabel> bitrate;
  29. uint64_t lastBytesSent = 0;
  30. uint64_t lastBytesSentTime = 0;
  31. int first_total = 0;
  32. int first_dropped = 0;
  33. void Update(obs_output_t *output, bool rec);
  34. void Reset(obs_output_t *output);
  35. };
  36. QList<OutputLabels> outputLabels;
  37. void AddOutputLabels(QString name);
  38. void Update();
  39. void Reset();
  40. virtual void closeEvent(QCloseEvent *event) override;
  41. public:
  42. OBSBasicStats(QWidget *parent = nullptr, bool closable = true);
  43. ~OBSBasicStats();
  44. static void InitializeValues();
  45. private:
  46. QPointer<QObject> shortcutFilter;
  47. protected:
  48. virtual void showEvent(QShowEvent *event) override;
  49. virtual void hideEvent(QHideEvent *event) override;
  50. };