moving code around for a better file structure

This commit is contained in:
Chris Cochrun 2022-12-09 10:55:50 -06:00
parent 8f3e898385
commit 7eba697dc2
27 changed files with 20 additions and 24 deletions

154
src/cpp/mpv/mpvhelpers.h Normal file
View file

@ -0,0 +1,154 @@
#pragma once
// MpvObject definition
#define READONLY_PROP_BOOL(p, varName) \
public: \
Q_PROPERTY(bool varName READ varName NOTIFY varName##Changed) \
public Q_SLOTS: \
bool varName() const { return getProperty(p).toBool(); } \
Q_SIGNALS: \
void varName##Changed(bool value);
#define WRITABLE_PROP_BOOL(p, varName) \
public: \
Q_PROPERTY(bool varName READ varName WRITE set_##varName NOTIFY varName##Changed) \
public Q_SLOTS: \
bool varName() const { return getProperty(p).toBool(); } \
void set_##varName(bool value) { setProperty(p, value); } \
Q_SIGNALS: \
void varName##Changed(bool value);
#define READONLY_PROP_INT(p, varName) \
public: \
Q_PROPERTY(int varName READ varName NOTIFY varName##Changed) \
public Q_SLOTS: \
int varName() { return getProperty(p).toInt(); } \
Q_SIGNALS: \
void varName##Changed(int value);
#define WRITABLE_PROP_INT(p, varName) \
public: \
Q_PROPERTY(int varName READ varName WRITE set_##varName NOTIFY varName##Changed) \
public Q_SLOTS: \
int varName() { return getProperty(p).toInt(); } \
void set_##varName(int value) { setProperty(p, value); } \
Q_SIGNALS: \
void varName##Changed(int value);
#define READONLY_PROP_DOUBLE(p, varName) \
public: \
Q_PROPERTY(double varName READ varName NOTIFY varName##Changed) \
public Q_SLOTS: \
double varName() { return getProperty(p).toDouble(); } \
Q_SIGNALS: \
void varName##Changed(double value);
#define WRITABLE_PROP_DOUBLE(p, varName) \
public: \
Q_PROPERTY(double varName READ varName WRITE set_##varName NOTIFY varName##Changed) \
public Q_SLOTS: \
double varName() { return getProperty(p).toDouble(); } \
void set_##varName(double value) { setProperty(p, value); } \
Q_SIGNALS: \
void varName##Changed(double value);
#define READONLY_PROP_STRING(p, varName) \
public: \
Q_PROPERTY(QString varName READ varName NOTIFY varName##Changed) \
public Q_SLOTS: \
QString varName() { return getProperty(p).toString(); } \
Q_SIGNALS: \
void varName##Changed(QString value);
#define WRITABLE_PROP_STRING(p, varName) \
public: \
Q_PROPERTY(QString varName READ varName WRITE set_##varName NOTIFY varName##Changed) \
public Q_SLOTS: \
QString varName() { return getProperty(p).toString(); } \
void set_##varName(QString value) { setProperty(p, value); } \
Q_SIGNALS: \
void varName##Changed(QString value);
#define READONLY_PROP_ARRAY(p, varName) \
public: \
Q_PROPERTY(QVariantList varName READ varName NOTIFY varName##Changed) \
public Q_SLOTS: \
QVariantList varName() { return getProperty(p).toList(); } \
Q_SIGNALS: \
void varName##Changed(QVariantList value);
#define WRITABLE_PROP_ARRAY(p, varName) \
public: \
Q_PROPERTY(QVariantList varName READ varName WRITE set_##varName NOTIFY varName##Changed) \
public Q_SLOTS: \
QVariantList varName() { return getProperty(p).toList(); } \
void set_##varName(QVariantList value) { setProperty(p, value); } \
Q_SIGNALS: \
void varName##Changed(QVariantList value);
#define READONLY_PROP_MAP(p, varName) \
public: \
Q_PROPERTY(QVariantMap varName READ varName NOTIFY varName##Changed) \
public Q_SLOTS: \
QVariantMap varName() { return getProperty(p).toMap(); } \
Q_SIGNALS: \
void varName##Changed(QVariantMap value);
#define WRITABLE_PROP_MAP(p, varName) \
public: \
Q_PROPERTY(QVariantMap varName READ varName WRITE set_##varName NOTIFY varName##Changed) \
public Q_SLOTS: \
QVariantMap varName() { return getProperty(p).toMap(); } \
void set_##varName(QVariantMap value) { setProperty(p, value); } \
Q_SIGNALS: \
void varName##Changed(QVariantMap value);
// MpvObject() constructor
#define WATCH_PROP_BOOL(p) \
mpv_observe_property(mpv, 0, p, MPV_FORMAT_FLAG);
#define WATCH_PROP_DOUBLE(p) \
mpv_observe_property(mpv, 0, p, MPV_FORMAT_DOUBLE);
#define WATCH_PROP_INT(p) \
mpv_observe_property(mpv, 0, p, MPV_FORMAT_INT64);
#define WATCH_PROP_STRING(p) \
mpv_observe_property(mpv, 0, p, MPV_FORMAT_STRING);
#define WATCH_PROP_ARRAY(p) \
mpv_observe_property(mpv, 0, p, MPV_FORMAT_NODE_ARRAY);
#define WATCH_PROP_MAP(p) \
mpv_observe_property(mpv, 0, p, MPV_FORMAT_NODE_MAP);
// MpvObject::handle_mpv_event()
#define HANDLE_PROP_NONE(p, varName) \
(strcmp(prop->name, p) == 0) { \
int64_t value = 0; \
Q_EMIT varName##Changed(value); \
}
#define HANDLE_PROP_BOOL(p, varName) \
(strcmp(prop->name, p) == 0) { \
bool value = *(bool *)prop->data; \
Q_EMIT varName##Changed(value); \
}
#define HANDLE_PROP_INT(p, varName) \
(strcmp(prop->name, p) == 0) { \
int64_t value = *(int64_t *)prop->data; \
Q_EMIT varName##Changed(value); \
}
#define HANDLE_PROP_DOUBLE(p, varName) \
(strcmp(prop->name, p) == 0) { \
double value = *(double *)prop->data; \
Q_EMIT varName##Changed(value); \
}
#define HANDLE_PROP_STRING(p, varName) \
(strcmp(prop->name, p) == 0) { \
char* charValue = *(char**)prop->data; \
QString value = QString::fromUtf8(charValue); \
Q_EMIT varName##Changed(value); \
}
#define HANDLE_PROP_ARRAY(p, varName) \
(strcmp(prop->name, p) == 0) { \
QVariantList value = getProperty(p).toList(); \
Q_EMIT varName##Changed(value); \
}
#define HANDLE_PROP_MAP(p, varName) \
(strcmp(prop->name, p) == 0) { \
QVariantMap value = getProperty(p).toMap(); \
Q_EMIT varName##Changed(value); \
}