#pragma once #include #include #include #include #include #include #include class QGridLayout; class QCloseEvent; class OBSBasicStats : public QWidget { Q_OBJECT QLabel *fps = nullptr; QLabel *cpuUsage = nullptr; QLabel *hddSpace = nullptr; QLabel *memUsage = nullptr; QLabel *renderTime = nullptr; QLabel *skippedFrames = nullptr; QLabel *missedFrames = nullptr; QGridLayout *outputLayout = nullptr; os_cpu_usage_info_t *cpu_info = nullptr; QTimer timer; struct OutputLabels { QPointer name; QPointer status; QPointer droppedFrames; QPointer megabytesSent; QPointer bitrate; uint64_t lastBytesSent = 0; uint64_t lastBytesSentTime = 0; int first_total = 0; int first_dropped = 0; void Update(obs_output_t *output, bool rec); void Reset(obs_output_t *output); }; QList outputLabels; void AddOutputLabels(QString name); void Update(); void Reset(); virtual void closeEvent(QCloseEvent *event) override; public: OBSBasicStats(QWidget *parent = nullptr, bool closable = true); ~OBSBasicStats(); static void InitializeValues(); private: QPointer shortcutFilter; protected: virtual void showEvent(QShowEvent *event) override; virtual void hideEvent(QHideEvent *event) override; };