96f746ce41
When the statistics window starts up for the first time, it reset values at that very moment so that stray lagged frames due to OBS' startup wouldn't be displayed. However, that's really a bad place to reset those values because the user could want to view the stats window after a long stream, and having those values reset when he/she views the window for the first time would sort of make the point of viewing your stats moot. Instead, reset the values only when applicable, such as after OBSInit or when video is reset.
63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <obs.hpp>
|
|
#include <util/platform.h>
|
|
#include <QPointer>
|
|
#include <QWidget>
|
|
#include <QTimer>
|
|
#include <QLabel>
|
|
#include <QList>
|
|
|
|
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<QLabel> name;
|
|
QPointer<QLabel> status;
|
|
QPointer<QLabel> droppedFrames;
|
|
QPointer<QLabel> megabytesSent;
|
|
QPointer<QLabel> bitrate;
|
|
|
|
uint64_t lastBytesSent = 0;
|
|
uint64_t lastBytesSentTime = 0;
|
|
|
|
int first_total = 0;
|
|
int first_dropped = 0;
|
|
|
|
void Update(obs_output_t *output);
|
|
void Reset(obs_output_t *output);
|
|
};
|
|
|
|
QList<OutputLabels> outputLabels;
|
|
|
|
void AddOutputLabels(QString name);
|
|
void Update();
|
|
void Reset();
|
|
|
|
virtual void closeEvent(QCloseEvent *event) override;
|
|
|
|
public:
|
|
OBSBasicStats(QWidget *parent = nullptr);
|
|
~OBSBasicStats();
|
|
|
|
static void InitializeValues();
|
|
};
|