1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#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, bool rec);
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();
};
|