0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00
obs-studio/UI/window-basic-stats.hpp
jp9000 96f746ce41 UI: Initialize Stats window values after OBSInit/reset
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.
2017-06-19 15:38:13 -07:00

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();
};