1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2024-11-22 09:15:18 +00:00

WIP: HttpLoader seems to work, Model still borked

This commit is contained in:
Chris Josten 2021-03-28 04:00:00 +02:00
parent e421adf733
commit 729e343661
1412 changed files with 13967 additions and 33794 deletions

View file

@ -5,6 +5,7 @@ include(GeneratedSources.cmake)
set(JellyfinQt_SOURCES set(JellyfinQt_SOURCES
# src/DTO/dto.cpp # src/DTO/dto.cpp
src/model/deviceprofile.cpp
src/model/item.cpp src/model/item.cpp
src/support/jsonconv.cpp src/support/jsonconv.cpp
src/support/loader.cpp src/support/loader.cpp
@ -15,7 +16,6 @@ set(JellyfinQt_SOURCES
src/apiclient.cpp src/apiclient.cpp
src/apimodel.cpp src/apimodel.cpp
src/credentialmanager.cpp src/credentialmanager.cpp
src/deviceprofile.cpp
src/eventbus.cpp src/eventbus.cpp
src/jellyfin.cpp src/jellyfin.cpp
src/jsonhelper.cpp src/jsonhelper.cpp
@ -25,6 +25,7 @@ set(JellyfinQt_SOURCES
list(APPEND JellyfinQt_SOURCES ${openapi_SOURCES}) list(APPEND JellyfinQt_SOURCES ${openapi_SOURCES})
set(JellyfinQt_HEADERS set(JellyfinQt_HEADERS
include/JellyfinQt/model/deviceprofile.h
include/JellyfinQt/model/item.h include/JellyfinQt/model/item.h
include/JellyfinQt/support/jsonconv.h include/JellyfinQt/support/jsonconv.h
include/JellyfinQt/support/loader.h include/JellyfinQt/support/loader.h
@ -36,23 +37,26 @@ set(JellyfinQt_HEADERS
include/JellyfinQt/apiclient.h include/JellyfinQt/apiclient.h
include/JellyfinQt/apimodel.h include/JellyfinQt/apimodel.h
include/JellyfinQt/credentialmanager.h include/JellyfinQt/credentialmanager.h
include/JellyfinQt/deviceprofile.h
include/JellyfinQt/eventbus.h include/JellyfinQt/eventbus.h
include/JellyfinQt/jellyfin.h include/JellyfinQt/jellyfin.h
include/JellyfinQt/jsonhelper.h include/JellyfinQt/jsonhelper.h
include/JellyfinQt/serverdiscoverymodel.h include/JellyfinQt/serverdiscoverymodel.h
include/JellyfinQt/websocket.h) include/JellyfinQt/websocket.h)
list(APPEND JellyfinQt_SOURCES ${openapi_HEADERS}) list(APPEND JellyfinQt_HEADERS ${openapi_HEADERS})
add_definitions(-DSAILFIN_VERSION=\"${SAILFIN_VERSION}\") add_definitions(-DSAILFIN_VERSION=\"${SAILFIN_VERSION}\")
if (PLATFORM_SAILFISHOS) if (PLATFORM_SAILFISHOS)
add_definitions(-DPLATFORM_SAILFISHOS=1) add_definitions(-DPLATFORM_SAILFISHOS=1)
endif() endif()
add_library(JellyfinQt ${JellyfinQt_SOURCES} ${JellyfinQt_HEADERS}) add_library(JellyfinQt ${JellyfinQt_SOURCES} ${JellyfinQt_HEADERS})
if(${CMAKE_VERSION} VERSION_GREATER "3.16.0") if(${CMAKE_VERSION} VERSION_GREATER "3.16.0")
# target_precompile_headers(JellyfinQt PRIVATE ${JellyfinQt_HEADERS}) # target_precompile_headers(JellyfinQt PRIVATE ${JellyfinQt_HEADERS})
endif() endif()
target_include_directories(JellyfinQt PUBLIC "include") target_include_directories(JellyfinQt PUBLIC "include")
target_link_libraries(JellyfinQt PUBLIC Qt5::Core Qt5::Multimedia Qt5::Network Qt5::Qml Qt5::WebSockets) target_link_libraries(JellyfinQt PUBLIC Qt5::Core Qt5::Multimedia Qt5::Network Qt5::Qml Qt5::WebSockets)
set_target_properties(JellyfinQt PROPERTIES CXX_VISIBILITY_PRESET default) set_target_properties(JellyfinQt PROPERTIES CXX_VISIBILITY_PRESET default)

View file

@ -14,4 +14,17 @@ private:
explicit {{className}}Class(); explicit {{className}}Class();
}; };
typedef {{className}}Class::Value {{className}}; using {{className}} = {{className}}Class::Value;
} // NS DTO
namespace Support {
using {{className}} = Jellyfin::DTO::{{className}};
template <>
{{className}} fromJsonValue(const QJsonValue &source, convertType<{{className}}>);
template <>
QJsonValue toJsonValue(const {{className}} &source, convertType<{{className}}>);

View file

@ -1,6 +1,5 @@
{{className}}Class::{{className}}Class() {} {{className}}Class::{{className}}Class() {}
} // NS DTO } // NS DTO
namespace Support { namespace Support {
@ -9,7 +8,7 @@ using {{className}} = Jellyfin::DTO::{{className}};
template <> template <>
{{className}} fromJsonValue<{{className}}>(const QJsonValue &source) { {{className}} fromJsonValue(const QJsonValue &source, convertType<{{className}}>) {
if (!source.isString()) return {{className}}::EnumNotSet; if (!source.isString()) return {{className}}::EnumNotSet;
QString str = source.toString(); QString str = source.toString();
@ -23,3 +22,19 @@ template <>
return {{className}}::EnumNotSet; return {{className}}::EnumNotSet;
} }
template <>
QJsonValue toJsonValue(const {{className}} &source, convertType<{{className}}>) {
switch(source) {
{{#each values as |value|}}
case {{className}}::{{value}}:
return QStringLiteral("{{value}}");
{{/each}}
case {{className}}::EnumNotSet: // Fallthrough
default:
return QJsonValue();
}
}

View file

@ -1,4 +1,7 @@
{{#if endpoint.hasSuccessResponse}} {{#if endpoint.hasSuccessResponse}}
using namespace {{dtoNamespace}};
{{#if endpoint.description.length > 0}} {{#if endpoint.description.length > 0}}
/** /**
* @brief {{endpoint.description}} * @brief {{endpoint.description}}
@ -6,7 +9,8 @@
*/ */
{{/if}} {{/if}}
class {{className}}Loader : public {{supportNamespace}}::HttpLoader<{{dtoNamespace}}::{{endpoint.resultType}}, {{endpoint.parameterType}}> {
class {{className}}Loader : public {{supportNamespace}}::HttpLoader<{{endpoint.resultType}}, {{endpoint.parameterType}}> {
public: public:
explicit {{className}}Loader(ApiClient *apiClient = nullptr); explicit {{className}}Loader(ApiClient *apiClient = nullptr);

View file

@ -1,7 +1,9 @@
{{#if endpoint.hasSuccessResponse}} {{#if endpoint.hasSuccessResponse}}
using namespace {{dtoNamespace}};
{{className}}Loader::{{className}}Loader(ApiClient *apiClient) {{className}}Loader::{{className}}Loader(ApiClient *apiClient)
: {{supportNamespace}}::HttpLoader<{{dtoNamespace}}::{{endpoint.resultType}}, {{endpoint.parameterType}}>(apiClient) {} : {{supportNamespace}}::HttpLoader<{{endpoint.resultType}}, {{endpoint.parameterType}}>(apiClient) {}
QString {{className}}Loader::path(const {{endpoint.parameterType}} &params) const { QString {{className}}Loader::path(const {{endpoint.parameterType}} &params) const {
Q_UNUSED(params) // Might be overzealous, but I don't like theses kind of warnings Q_UNUSED(params) // Might be overzealous, but I don't like theses kind of warnings
@ -15,7 +17,7 @@ QUrlQuery {{className}}Loader::query(const {{endpoint.parameterType}} &params) c
QUrlQuery result; QUrlQuery result;
{{#each endpoint.requiredQueryParameters as |p|}} {{#each endpoint.requiredQueryParameters as |p|}}
result.addQueryItem("{{p.name}}", params.{{p.type.name}}()); result.addQueryItem("{{p.name}}", Support::toString<{{p.type.typeNameWithQualifiers}}>(params.{{p.type.name}}()));
{{/each}} {{/each}}
@ -23,7 +25,7 @@ QUrlQuery {{className}}Loader::query(const {{endpoint.parameterType}} &params) c
{{#each endpoint.optionalQueryParameters as |p|}} {{#each endpoint.optionalQueryParameters as |p|}}
if (!params.{{p.type.name}}Null()) { if (!params.{{p.type.name}}Null()) {
result.addQueryItem("{{p.name}}", Support::toString(params.{{p.type.name}}())); result.addQueryItem("{{p.name}}", Support::toString<{{p.type.typeNameWithQualifiers}}>(params.{{p.type.name}}()));
} }
{{/each}} {{/each}}

View file

@ -19,7 +19,7 @@ public:
static {{className}} fromJson(QJsonObject source); static {{className}} fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -61,3 +61,16 @@ protected:
{{/each}} {{/each}}
}; };
} // NS DTO
namespace Support {
using {{className}} = Jellyfin::DTO::{{className}};
template <>
{{className}} fromJsonValue(const QJsonValue &source, convertType<{{className}}>);
template<>
QJsonValue toJsonValue(const {{className}} &source, convertType<{{className}}>);

View file

@ -41,7 +41,7 @@ void {{className}}::setFromJson(QJsonObject source) {
} }
QJsonObject {{className}}::toJson() { QJsonObject {{className}}::toJson() const {
QJsonObject result; QJsonObject result;
{{#each properties as |property|}} {{#each properties as |property|}}
@ -83,7 +83,12 @@ using {{className}} = Jellyfin::DTO::{{className}};
template <> template <>
{{className}} fromJsonValue<{{className}}>(const QJsonValue &source) { {{className}} fromJsonValue(const QJsonValue &source, convertType<{{className}}>) {
if (!source.isObject()) throw new ParseException("Expected JSON Object"); if (!source.isObject()) throw ParseException("Expected JSON Object");
return {{className}}::fromJson(source.toObject()); return {{className}}::fromJson(source.toObject());
} }
template<>
QJsonValue toJsonValue(const {{className}} &source, convertType<{{className}}>) {
return source.toJson();
}

View file

@ -38,16 +38,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#include <QUrlQuery> #include <QUrlQuery>
#include "dto/generalcommandtype.h" #include "dto/generalcommandtype.h"
#include "support/jsonconv.h"
#include "credentialmanager.h" #include "credentialmanager.h"
#include "deviceprofile.h" #include "model/deviceprofile.h"
#include "eventbus.h" #include "eventbus.h"
#include "websocket.h"
namespace Jellyfin { namespace Jellyfin {
class MediaSource;
class WebSocket;
class PlaybackManager; class PlaybackManager;
class WebSocket;
namespace DTO { namespace DTO {
class UserItemDataDto; // Keep it as an opaque pointer class UserItemDataDto; // Keep it as an opaque pointer
@ -124,6 +121,7 @@ public:
UNEXPECTED_STATUS, UNEXPECTED_STATUS,
INVALID_PASSWORD INVALID_PASSWORD
}; };
Q_ENUM(ApiError)
const QString &baseUrl() const { return this->m_baseUrl; } const QString &baseUrl() const { return this->m_baseUrl; }
const QString &userId() const { return m_userId; } const QString &userId() const { return m_userId; }

View file

@ -91,6 +91,11 @@ public:
ModelStatus status() const { return m_status; } ModelStatus status() const { return m_status; }
/**
* @brief Clears and reloads the model
*/
Q_INVOKABLE virtual void reload() {};
// QQmlParserStatus interface // QQmlParserStatus interface
virtual void classBegin() override; virtual void classBegin() override;
virtual void componentComplete() override; virtual void componentComplete() override;
@ -103,19 +108,33 @@ signals:
void limitChanged(int newLimit); void limitChanged(int newLimit);
void autoReloadChanged(bool newAutoReload); void autoReloadChanged(bool newAutoReload);
/**
* @brief Emitted when the model should clear itself
*/
void modelShouldClear();
/**
* Emitted when new items are loaded.
*/
void itemsLoaded();
void reloadWanted(); void reloadWanted();
protected slots:
virtual void futureReady() = 0;
protected: protected:
// Is this object being parsed by the QML engine // Is this object being parsed by the QML engine
bool m_isBeingParsed = false; bool m_isBeingParsed = false;
ApiClient *m_apiClient = nullptr; ApiClient *m_apiClient = nullptr;
bool m_autoReload = true; bool m_autoReload = true;
bool m_needsAuthentication = true;
// Query/record controlling properties // Query/record controlling properties
int m_limit = -1; int m_limit = -1;
int m_startIndex = 0; int m_startIndex = 0;
int m_totalRecordCount = 0; int m_totalRecordCount = 0;
const int DEFAULT_LIMIT = 100; const int DEFAULT_LIMIT = 100;
void emitModelShouldClear() { emit modelShouldClear(); }
void emitItemsLoaded() { emit itemsLoaded(); }
ModelStatus m_status = ModelStatus::Uninitialised; ModelStatus m_status = ModelStatus::Uninitialised;
void setStatus(ModelStatus newStatus) { void setStatus(ModelStatus newStatus) {
@ -127,6 +146,7 @@ protected:
} }
} }
} }
virtual bool canReload() const;
}; };
/** /**
@ -137,37 +157,56 @@ template <class T>
class ModelLoader : public BaseModelLoader { class ModelLoader : public BaseModelLoader {
public: public:
ModelLoader(QObject *parent = nullptr) ModelLoader(QObject *parent = nullptr)
: BaseModelLoader(parent) {} : BaseModelLoader(parent) {
QList<T> reload() {
m_startIndex = 0;
m_totalRecordCount = -1;
return loadMore();
} }
QList<T> loadMore() { void reload() override {
if (m_startIndex == 0) { if (!canReload()) {
this->setStatus(ModelStatus::Loading); qDebug() << "Cannot yet reload ApiModel: canReload() returned false.";
} else { return;
this->setStatus(ModelStatus::LoadingMore);
} }
std::pair<QList<T>, int> result; m_startIndex = 0;
try { m_totalRecordCount = -1;
result = loadMore(m_startIndex, m_limit); this->setStatus(ModelStatus::Loading);
} catch(Support::LoadException &e) { emitModelShouldClear();
qWarning() << "Exception while loading in ModelLoader: " << e.what(); loadMore(0, -1);
return QList<T>(); }
void loadMore() {
if (!canReload()) {
qDebug() << "Cannot yet reload ApiModel: canReload() returned false.";
return;
} }
m_startIndex += result.first.size(); this->setStatus(ModelStatus::LoadingMore);
m_totalRecordCount = result.second; loadMore(m_startIndex, m_limit);
return result.first;
} }
virtual bool canLoadMore() const { virtual bool canLoadMore() const {
return m_totalRecordCount == -1 || m_startIndex < m_totalRecordCount; return m_totalRecordCount == -1 || m_startIndex < m_totalRecordCount;
} }
/**
* @brief Holds the result. Moves it result to the caller and therefore can be only called once
* when the itemsLoaded is emitted.
* @return pair containing the items loaded and the integer containing the starting offset. A starting
* offset of -1 means an error has occurred.
*/
std::pair<QList<T>, int> &&result() { return std::move(m_result); }
protected: protected:
virtual std::pair<QList<T>, int> loadMore(int offset, int limit) = 0; /**
* @brief Loads data from the given offset with a maximum count of limit.
* The itemsLoaded() signal is emitted when new data is ready. Call
* getLoadedItems to retrieve the loaded items.
*
* @param offset The offset to start loading items from
* @param limit The maximum amount of items to load.
*/
virtual void loadMore(int offset, int limit) = 0;
void updatePosition(int startIndex, int totalRecordCount) {
m_startIndex = startIndex;
m_totalRecordCount = totalRecordCount;
}
std::pair<QList<T>, int> m_result;
}; };
/** /**
@ -210,54 +249,66 @@ void setRequestStartIndex(P &parameters, int startIndex) {
template <class T, class D, class R, class P> template <class T, class D, class R, class P>
class LoaderModelLoader : public ModelLoader<T> { class LoaderModelLoader : public ModelLoader<T> {
public: public:
explicit LoaderModelLoader(Support::Loader<R, P> loader, QObject *parent = nullptr) explicit LoaderModelLoader(Support::Loader<R, P> *loader, QObject *parent = nullptr)
: ModelLoader<T>(parent), m_loader(loader) { } : ModelLoader<T>(parent), m_loader(QScopedPointer<Support::Loader<R, P>>(loader)) {
QObject::connect(&m_futureWatcher, &QFutureWatcher<QList<T>>::finished, this, &BaseModelLoader::futureReady);
}
protected: protected:
std::pair<QList<T>, int> loadMore(int offset, int limit) override { void loadMore(int offset, int limit) override {
QMutexLocker(&this->m_mutex); // This method should only be callable on one thread.
// If futureWatcher's future is running, this method should not be called again.
if (m_futureWatcher.isRunning()) return;
// Set an invalid result.
this->m_result = { QList<T>(), -1 };
// We never want to set this while the loader is running, hence the Mutex and setting it here // We never want to set this while the loader is running, hence the Mutex and setting it here
// instead when Loader::setApiClient is called. // instead when Loader::setApiClient is called.
this->m_loader.setApiClient(this->m_apiClient); this->m_loader->setApiClient(this->m_apiClient);
try { setRequestStartIndex<P>(this->m_parameters, offset);
setRequestStartIndex<P>(this->m_parameters, offset); setRequestLimit<P>(this->m_parameters, limit);
setRequestLimit(this->m_parameters, limit);
R result;
try {
std::optional<R> optResult = m_loader.load(this->m_parameters);
if (!optResult.has_value()) {
this->setStatus(ModelStatus::Error);
return {QList<T>(), -1};
}
result = optResult.value();
} catch (Support::LoadException e) {
this->setStatus(ModelStatus::Error);
return {QList<T>(), -1};
}
QList<D> records = extractRecords<D, R>(result); this->m_loader->setParameters(this->m_parameters);
int totalRecordCount = extractTotalRecordCount<R>(result); this->m_loader->prepareLoad();
// If totalRecordCount < 0, it is not supported for this endpoint QFuture<std::optional<R>> future = QtConcurrent::run(this->m_loader.data(), &Support::Loader<R, P>::load);
if (totalRecordCount < 0) { this->m_futureWatcher.setFuture(future);
totalRecordCount = records.size();
}
QList<T> models;
models.reserve(records.size());
// Convert the DTOs into models
for (int i = 0; i < records.size(); i++) {
models[i] = T(records[i], m_loader.apiClient());
}
this->setStatus(ModelStatus::Ready);
return { models, totalRecordCount};
} catch (Support::LoadException e) {
//this->setErrorString(QString(e.what()));
this->setStatus(ModelStatus::Error);
return {QList<T>(), -1};
}
} }
Support::Loader<R, P> m_loader;
QScopedPointer<Support::Loader<R, P>> m_loader;
QMutex m_mutex; QMutex m_mutex;
P m_parameters; P m_parameters;
QFutureWatcher<std::optional<R>> m_futureWatcher;
void futureReady() override {
R result;
try {
std::optional<R> optResult = m_futureWatcher.result();
if (!optResult.has_value()) {
this->setStatus(ModelStatus::Error);
}
result = optResult.value();
} catch (Support::LoadException e) {
qWarning() << "Exception while loading: " << e.what();
this->setStatus(ModelStatus::Error);
}
QList<D> records = extractRecords<D, R>(result);
int totalRecordCount = extractTotalRecordCount<R>(result);
// If totalRecordCount < 0, it is not supported for this endpoint
if (totalRecordCount < 0) {
totalRecordCount = records.size();
}
QList<T> models;
models.reserve(records.size());
// Convert the DTOs into models
for (int i = 0; i < records.size(); i++) {
models[i] = T(records[i], m_loader->apiClient());
}
this->setStatus(ModelStatus::Ready);
this->m_result = { models, totalRecordCount};
this->emitItemsLoaded();
}
}; };
class BaseApiModel : public QAbstractListModel { class BaseApiModel : public QAbstractListModel {
@ -270,12 +321,22 @@ public:
virtual BaseModelLoader *loader() const = 0; virtual BaseModelLoader *loader() const = 0;
virtual void setLoader(BaseModelLoader *newLoader) { virtual void setLoader(BaseModelLoader *newLoader) {
Q_UNUSED(newLoader);
connect(newLoader, &BaseModelLoader::reloadWanted, this, &BaseApiModel::reload); connect(newLoader, &BaseModelLoader::reloadWanted, this, &BaseApiModel::reload);
connect(newLoader, &BaseModelLoader::modelShouldClear, this, &BaseApiModel::clear);
connect(newLoader, &BaseModelLoader::itemsLoaded, this, &BaseApiModel::loadingFinished);
emit loaderChanged(); emit loaderChanged();
}; };
void disconnectOldLoader(BaseModelLoader *oldLoader) {
if (oldLoader != nullptr) {
// Disconnect all signals
disconnect(oldLoader, nullptr, this, nullptr);
}
}
public slots: public slots:
virtual void reload(); virtual void reload() = 0;
virtual void clear() = 0;
protected slots:
virtual void loadingFinished() = 0;
signals: signals:
void loaderChanged(); void loaderChanged();
}; };
@ -341,8 +402,6 @@ public:
*/ */
explicit ApiModel(QObject *parent = nullptr) explicit ApiModel(QObject *parent = nullptr)
: BaseApiModel(parent) { : BaseApiModel(parent) {
m_futureWatcherConnection = connect(&m_futureWatcher, &QFutureWatcher<QList<T>>::finished,
[&](){ futureFinished(); });
} }
// Standard QAbstractItemModel overrides // Standard QAbstractItemModel overrides
@ -376,11 +435,20 @@ public:
}; };
void removeAt(int index) { void removeAt(int index) {
Q_ASSERT(index < size());
this->beginRemoveRows(QModelIndex(), index, index); this->beginRemoveRows(QModelIndex(), index, index);
m_array.removeAt(index); m_array.removeAt(index);
this->endRemoveRows(); this->endRemoveRows();
} }
void removeUntilEnd(int from) {
this->beginRemoveRows(QModelIndex(), from , m_array.size());
while (m_array.size() != from) {
m_array.removeLast();
}
this->endRemoveRows();
}
void removeOne(T &object) { void removeOne(T &object) {
int idx = m_array.indexOf(object); int idx = m_array.indexOf(object);
if (idx >= 0) { if (idx >= 0) {
@ -388,6 +456,12 @@ public:
} }
} }
void clear() override {
this->beginResetModel();
m_array.clear();
this->endResetModel();
}
// From AbstractListModel, gets implemented in ApiModel<T> // From AbstractListModel, gets implemented in ApiModel<T>
//virtual QHash<int, QByteArray> roleNames() const override = 0; //virtual QHash<int, QByteArray> roleNames() const override = 0;
/*virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override = 0;*/ /*virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override = 0;*/
@ -399,8 +473,7 @@ public:
virtual void fetchMore(const QModelIndex &parent) override { virtual void fetchMore(const QModelIndex &parent) override {
if (parent.isValid()) return; if (parent.isValid()) return;
if (m_loader != nullptr) { if (m_loader != nullptr) {
QFuture<QList<T>> result = QtConcurrent::run(m_loader, &ModelLoader<T>::loadMore); m_loader->loadMore();
m_futureWatcher.setFuture(result);
} }
} }
@ -411,9 +484,10 @@ public:
void setLoader(BaseModelLoader *newLoader) { void setLoader(BaseModelLoader *newLoader) {
ModelLoader<T> *castedLoader = dynamic_cast<ModelLoader<T> *>(newLoader); ModelLoader<T> *castedLoader = dynamic_cast<ModelLoader<T> *>(newLoader);
if (castedLoader != nullptr) { if (castedLoader != nullptr) {
m_loader = castedLoader;
// Hacky way to emit a signal // Hacky way to emit a signal
BaseApiModel::setLoader(newLoader); BaseApiModel::setLoader(newLoader);
BaseApiModel::disconnectOldLoader(m_loader);
m_loader = castedLoader;
} else { } else {
qWarning() << "Somehow set a BaseModelLoader on ApiModel instead of a ModelLoader<T>"; qWarning() << "Somehow set a BaseModelLoader on ApiModel instead of a ModelLoader<T>";
} }
@ -421,23 +495,28 @@ public:
void reload() override { void reload() override {
if (m_loader != nullptr) { if (m_loader != nullptr) {
QFuture<QList<T>> result = QtConcurrent::run(m_loader, &ModelLoader<T>::reload); m_loader->reload();
m_futureWatcher.setFuture(result);
} }
} }
protected: protected:
// Model-specific properties. // Model-specific properties.
QList<T> m_array; QList<T> m_array;
ModelLoader<T> *m_loader; ModelLoader<T> *m_loader = nullptr;
QFutureWatcher<QList<T>> m_futureWatcher;
void futureFinished() { void loadingFinished() override {
try { Q_ASSERT(m_loader != nullptr);
QList<T> result = m_futureWatcher.result(); std::pair<QList<T>, int> result = m_loader->result();
append(result); if (result.second == -1) {
} catch (QUnhandledException &e) { clear();
qWarning() << "Unhandled exception while waiting for a future: " << e.what(); } else if (result.second == m_array.size()) {
append(result.first);
} else if (result.second < m_array.size()){
removeUntilEnd(result.second);
append(result.first);
} else {
// result.second > m_array.size()
qWarning() << "Retrieved data from loader at position bigger than size()";
} }
} }
private: private:

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/dynamicdayofweek.h" #include "JellyfinQt/dto/dynamicdayofweek.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static AccessSchedule fromJson(QJsonObject source); static AccessSchedule fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -107,6 +111,18 @@ protected:
double m_endHour; double m_endHour;
}; };
} // NS DTO
namespace Support {
using AccessSchedule = Jellyfin::DTO::AccessSchedule;
template <>
AccessSchedule fromJsonValue(const QJsonValue &source, convertType<AccessSchedule>);
template<>
QJsonValue toJsonValue(const AccessSchedule &source, convertType<AccessSchedule>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/loglevel.h" #include "JellyfinQt/dto/loglevel.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static ActivityLogEntry fromJson(QJsonObject source); static ActivityLogEntry fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -170,6 +174,18 @@ protected:
LogLevel m_severity; LogLevel m_severity;
}; };
} // NS DTO
namespace Support {
using ActivityLogEntry = Jellyfin::DTO::ActivityLogEntry;
template <>
ActivityLogEntry fromJsonValue(const QJsonValue &source, convertType<ActivityLogEntry>);
template<>
QJsonValue toJsonValue(const ActivityLogEntry &source, convertType<ActivityLogEntry>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/activitylogentry.h" #include "JellyfinQt/dto/activitylogentry.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static ActivityLogEntryQueryResult fromJson(QJsonObject source); static ActivityLogEntryQueryResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -94,6 +98,18 @@ protected:
qint32 m_startIndex; qint32 m_startIndex;
}; };
} // NS DTO
namespace Support {
using ActivityLogEntryQueryResult = Jellyfin::DTO::ActivityLogEntryQueryResult;
template <>
ActivityLogEntryQueryResult fromJsonValue(const QJsonValue &source, convertType<ActivityLogEntryQueryResult>);
template<>
QJsonValue toJsonValue(const ActivityLogEntryQueryResult &source, convertType<ActivityLogEntryQueryResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/libraryoptions.h" #include "JellyfinQt/dto/libraryoptions.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static AddVirtualFolderDto fromJson(QJsonObject source); static AddVirtualFolderDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -67,6 +71,18 @@ protected:
QSharedPointer<LibraryOptions> m_libraryOptions = nullptr; QSharedPointer<LibraryOptions> m_libraryOptions = nullptr;
}; };
} // NS DTO
namespace Support {
using AddVirtualFolderDto = Jellyfin::DTO::AddVirtualFolderDto;
template <>
AddVirtualFolderDto fromJsonValue(const QJsonValue &source, convertType<AddVirtualFolderDto>);
template<>
QJsonValue toJsonValue(const AddVirtualFolderDto &source, convertType<AddVirtualFolderDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -41,6 +41,10 @@
#include "JellyfinQt/dto/songinfo.h" #include "JellyfinQt/dto/songinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,7 @@ public:
static AlbumInfo fromJson(QJsonObject source); static AlbumInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -107,11 +111,11 @@ public:
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
std::optional<QJsonObject> providerIds() const; QJsonObject providerIds() const;
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
void setProviderIds(std::optional<QJsonObject> newProviderIds); void setProviderIds(QJsonObject newProviderIds);
bool providerIdsNull() const; bool providerIdsNull() const;
void setProviderIdsNull(); void setProviderIdsNull();
@ -166,11 +170,11 @@ public:
/** /**
* @brief Gets or sets the artist provider ids. * @brief Gets or sets the artist provider ids.
*/ */
std::optional<QJsonObject> artistProviderIds() const; QJsonObject artistProviderIds() const;
/** /**
* @brief Gets or sets the artist provider ids. * @brief Gets or sets the artist provider ids.
*/ */
void setArtistProviderIds(std::optional<QJsonObject> newArtistProviderIds); void setArtistProviderIds(QJsonObject newArtistProviderIds);
bool artistProviderIdsNull() const; bool artistProviderIdsNull() const;
void setArtistProviderIdsNull(); void setArtistProviderIdsNull();
@ -187,17 +191,29 @@ protected:
QString m_path; QString m_path;
QString m_metadataLanguage; QString m_metadataLanguage;
QString m_metadataCountryCode; QString m_metadataCountryCode;
std::optional<QJsonObject> m_providerIds = std::nullopt; QJsonObject m_providerIds;
std::optional<qint32> m_year = std::nullopt; std::optional<qint32> m_year = std::nullopt;
std::optional<qint32> m_indexNumber = std::nullopt; std::optional<qint32> m_indexNumber = std::nullopt;
std::optional<qint32> m_parentIndexNumber = std::nullopt; std::optional<qint32> m_parentIndexNumber = std::nullopt;
QDateTime m_premiereDate; QDateTime m_premiereDate;
bool m_isAutomated; bool m_isAutomated;
QStringList m_albumArtists; QStringList m_albumArtists;
std::optional<QJsonObject> m_artistProviderIds = std::nullopt; QJsonObject m_artistProviderIds;
QList<SongInfo> m_songInfos; QList<SongInfo> m_songInfos;
}; };
} // NS DTO
namespace Support {
using AlbumInfo = Jellyfin::DTO::AlbumInfo;
template <>
AlbumInfo fromJsonValue(const QJsonValue &source, convertType<AlbumInfo>);
template<>
QJsonValue toJsonValue(const AlbumInfo &source, convertType<AlbumInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/albuminfo.h" #include "JellyfinQt/dto/albuminfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static AlbumInfoRemoteSearchQuery fromJson(QJsonObject source); static AlbumInfoRemoteSearchQuery fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -96,6 +100,18 @@ protected:
bool m_includeDisabledProviders; bool m_includeDisabledProviders;
}; };
} // NS DTO
namespace Support {
using AlbumInfoRemoteSearchQuery = Jellyfin::DTO::AlbumInfoRemoteSearchQuery;
template <>
AlbumInfoRemoteSearchQuery fromJsonValue(const QJsonValue &source, convertType<AlbumInfoRemoteSearchQuery>);
template<>
QJsonValue toJsonValue(const AlbumInfoRemoteSearchQuery &source, convertType<AlbumInfoRemoteSearchQuery>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/thememediaresult.h" #include "JellyfinQt/dto/thememediaresult.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static AllThemeMediaResult fromJson(QJsonObject source); static AllThemeMediaResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -79,6 +83,18 @@ protected:
QSharedPointer<ThemeMediaResult> m_soundtrackSongsResult = nullptr; QSharedPointer<ThemeMediaResult> m_soundtrackSongsResult = nullptr;
}; };
} // NS DTO
namespace Support {
using AllThemeMediaResult = Jellyfin::DTO::AllThemeMediaResult;
template <>
AllThemeMediaResult fromJsonValue(const QJsonValue &source, convertType<AllThemeMediaResult>);
template<>
QJsonValue toJsonValue(const AllThemeMediaResult &source, convertType<AllThemeMediaResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,19 @@ private:
explicit ArchitectureClass(); explicit ArchitectureClass();
}; };
typedef ArchitectureClass::Value Architecture; using Architecture = ArchitectureClass::Value;
} // NS DTO
namespace Support {
using Architecture = Jellyfin::DTO::Architecture;
template <>
Architecture fromJsonValue(const QJsonValue &source, convertType<Architecture>);
template <>
QJsonValue toJsonValue(const Architecture &source, convertType<Architecture>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -41,6 +41,10 @@
#include "JellyfinQt/dto/songinfo.h" #include "JellyfinQt/dto/songinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,7 @@ public:
static ArtistInfo fromJson(QJsonObject source); static ArtistInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -107,11 +111,11 @@ public:
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
std::optional<QJsonObject> providerIds() const; QJsonObject providerIds() const;
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
void setProviderIds(std::optional<QJsonObject> newProviderIds); void setProviderIds(QJsonObject newProviderIds);
bool providerIdsNull() const; bool providerIdsNull() const;
void setProviderIdsNull(); void setProviderIdsNull();
@ -165,7 +169,7 @@ protected:
QString m_path; QString m_path;
QString m_metadataLanguage; QString m_metadataLanguage;
QString m_metadataCountryCode; QString m_metadataCountryCode;
std::optional<QJsonObject> m_providerIds = std::nullopt; QJsonObject m_providerIds;
std::optional<qint32> m_year = std::nullopt; std::optional<qint32> m_year = std::nullopt;
std::optional<qint32> m_indexNumber = std::nullopt; std::optional<qint32> m_indexNumber = std::nullopt;
std::optional<qint32> m_parentIndexNumber = std::nullopt; std::optional<qint32> m_parentIndexNumber = std::nullopt;
@ -174,6 +178,18 @@ protected:
QList<SongInfo> m_songInfos; QList<SongInfo> m_songInfos;
}; };
} // NS DTO
namespace Support {
using ArtistInfo = Jellyfin::DTO::ArtistInfo;
template <>
ArtistInfo fromJsonValue(const QJsonValue &source, convertType<ArtistInfo>);
template<>
QJsonValue toJsonValue(const ArtistInfo &source, convertType<ArtistInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/artistinfo.h" #include "JellyfinQt/dto/artistinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static ArtistInfoRemoteSearchQuery fromJson(QJsonObject source); static ArtistInfoRemoteSearchQuery fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -96,6 +100,18 @@ protected:
bool m_includeDisabledProviders; bool m_includeDisabledProviders;
}; };
} // NS DTO
namespace Support {
using ArtistInfoRemoteSearchQuery = Jellyfin::DTO::ArtistInfoRemoteSearchQuery;
template <>
ArtistInfoRemoteSearchQuery fromJsonValue(const QJsonValue &source, convertType<ArtistInfoRemoteSearchQuery>);
template<>
QJsonValue toJsonValue(const ArtistInfoRemoteSearchQuery &source, convertType<ArtistInfoRemoteSearchQuery>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static AuthenticateUserByName fromJson(QJsonObject source); static AuthenticateUserByName fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -96,6 +100,18 @@ protected:
QString m_password; QString m_password;
}; };
} // NS DTO
namespace Support {
using AuthenticateUserByName = Jellyfin::DTO::AuthenticateUserByName;
template <>
AuthenticateUserByName fromJsonValue(const QJsonValue &source, convertType<AuthenticateUserByName>);
template<>
QJsonValue toJsonValue(const AuthenticateUserByName &source, convertType<AuthenticateUserByName>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static AuthenticationInfo fromJson(QJsonObject source); static AuthenticationInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -187,6 +191,18 @@ protected:
QString m_userName; QString m_userName;
}; };
} // NS DTO
namespace Support {
using AuthenticationInfo = Jellyfin::DTO::AuthenticationInfo;
template <>
AuthenticationInfo fromJsonValue(const QJsonValue &source, convertType<AuthenticationInfo>);
template<>
QJsonValue toJsonValue(const AuthenticationInfo &source, convertType<AuthenticationInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/authenticationinfo.h" #include "JellyfinQt/dto/authenticationinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static AuthenticationInfoQueryResult fromJson(QJsonObject source); static AuthenticationInfoQueryResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -94,6 +98,18 @@ protected:
qint32 m_startIndex; qint32 m_startIndex;
}; };
} // NS DTO
namespace Support {
using AuthenticationInfoQueryResult = Jellyfin::DTO::AuthenticationInfoQueryResult;
template <>
AuthenticationInfoQueryResult fromJsonValue(const QJsonValue &source, convertType<AuthenticationInfoQueryResult>);
template<>
QJsonValue toJsonValue(const AuthenticationInfoQueryResult &source, convertType<AuthenticationInfoQueryResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -40,6 +40,10 @@
#include "JellyfinQt/dto/userdto.h" #include "JellyfinQt/dto/userdto.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -56,7 +60,7 @@ public:
static AuthenticationResult fromJson(QJsonObject source); static AuthenticationResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -91,6 +95,18 @@ protected:
QString m_serverId; QString m_serverId;
}; };
} // NS DTO
namespace Support {
using AuthenticationResult = Jellyfin::DTO::AuthenticationResult;
template <>
AuthenticationResult fromJsonValue(const QJsonValue &source, convertType<AuthenticationResult>);
template<>
QJsonValue toJsonValue(const AuthenticationResult &source, convertType<AuthenticationResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -41,6 +41,10 @@
#include "JellyfinQt/dto/mediaurl.h" #include "JellyfinQt/dto/mediaurl.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,7 @@ public:
static BaseItem fromJson(QJsonObject source); static BaseItem fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -144,6 +148,18 @@ protected:
bool m_supportsExternalTransfer; bool m_supportsExternalTransfer;
}; };
} // NS DTO
namespace Support {
using BaseItem = Jellyfin::DTO::BaseItem;
template <>
BaseItem fromJsonValue(const QJsonValue &source, convertType<BaseItem>);
template<>
QJsonValue toJsonValue(const BaseItem &source, convertType<BaseItem>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -59,6 +59,10 @@
#include "JellyfinQt/dto/videotype.h" #include "JellyfinQt/dto/videotype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -75,7 +79,7 @@ public:
static BaseItemDto fromJson(QJsonObject source); static BaseItemDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -549,11 +553,11 @@ public:
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
std::optional<QJsonObject> providerIds() const; QJsonObject providerIds() const;
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
void setProviderIds(std::optional<QJsonObject> newProviderIds); void setProviderIds(QJsonObject newProviderIds);
bool providerIdsNull() const; bool providerIdsNull() const;
void setProviderIdsNull(); void setProviderIdsNull();
@ -969,11 +973,11 @@ public:
/** /**
* @brief Gets or sets the image tags. * @brief Gets or sets the image tags.
*/ */
std::optional<QJsonObject> imageTags() const; QJsonObject imageTags() const;
/** /**
* @brief Gets or sets the image tags. * @brief Gets or sets the image tags.
*/ */
void setImageTags(std::optional<QJsonObject> newImageTags); void setImageTags(QJsonObject newImageTags);
bool imageTagsNull() const; bool imageTagsNull() const;
void setImageTagsNull(); void setImageTagsNull();
@ -1047,12 +1051,12 @@ public:
* @brief Gets or sets the blurhashes for the image tags. * @brief Gets or sets the blurhashes for the image tags.
Maps image type to dictionary mapping image tag to blurhash value. Maps image type to dictionary mapping image tag to blurhash value.
*/ */
std::optional<QJsonObject> imageBlurHashes() const; QJsonObject imageBlurHashes() const;
/** /**
* @brief Gets or sets the blurhashes for the image tags. * @brief Gets or sets the blurhashes for the image tags.
Maps image type to dictionary mapping image tag to blurhash value. Maps image type to dictionary mapping image tag to blurhash value.
*/ */
void setImageBlurHashes(std::optional<QJsonObject> newImageBlurHashes); void setImageBlurHashes(QJsonObject newImageBlurHashes);
bool imageBlurHashesNull() const; bool imageBlurHashesNull() const;
void setImageBlurHashesNull(); void setImageBlurHashesNull();
@ -1595,7 +1599,7 @@ protected:
std::optional<qint32> m_indexNumberEnd = std::nullopt; std::optional<qint32> m_indexNumberEnd = std::nullopt;
std::optional<qint32> m_parentIndexNumber = std::nullopt; std::optional<qint32> m_parentIndexNumber = std::nullopt;
QList<MediaUrl> m_remoteTrailers; QList<MediaUrl> m_remoteTrailers;
std::optional<QJsonObject> m_providerIds = std::nullopt; QJsonObject m_providerIds;
std::optional<bool> m_isHD = std::nullopt; std::optional<bool> m_isHD = std::nullopt;
std::optional<bool> m_isFolder = std::nullopt; std::optional<bool> m_isFolder = std::nullopt;
QString m_parentId; QString m_parentId;
@ -1635,14 +1639,14 @@ protected:
VideoType m_videoType; VideoType m_videoType;
std::optional<qint32> m_partCount = std::nullopt; std::optional<qint32> m_partCount = std::nullopt;
std::optional<qint32> m_mediaSourceCount = std::nullopt; std::optional<qint32> m_mediaSourceCount = std::nullopt;
std::optional<QJsonObject> m_imageTags = std::nullopt; QJsonObject m_imageTags;
QStringList m_backdropImageTags; QStringList m_backdropImageTags;
QStringList m_screenshotImageTags; QStringList m_screenshotImageTags;
QString m_parentLogoImageTag; QString m_parentLogoImageTag;
QString m_parentArtItemId; QString m_parentArtItemId;
QString m_parentArtImageTag; QString m_parentArtImageTag;
QString m_seriesThumbImageTag; QString m_seriesThumbImageTag;
std::optional<QJsonObject> m_imageBlurHashes = std::nullopt; QJsonObject m_imageBlurHashes;
QString m_seriesStudio; QString m_seriesStudio;
QString m_parentThumbItemId; QString m_parentThumbItemId;
QString m_parentThumbImageTag; QString m_parentThumbImageTag;
@ -1698,6 +1702,18 @@ protected:
QSharedPointer<BaseItemDto> m_currentProgram = nullptr; QSharedPointer<BaseItemDto> m_currentProgram = nullptr;
}; };
} // NS DTO
namespace Support {
using BaseItemDto = Jellyfin::DTO::BaseItemDto;
template <>
BaseItemDto fromJsonValue(const QJsonValue &source, convertType<BaseItemDto>);
template<>
QJsonValue toJsonValue(const BaseItemDto &source, convertType<BaseItemDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/baseitemdto.h" #include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static BaseItemDtoQueryResult fromJson(QJsonObject source); static BaseItemDtoQueryResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -94,6 +98,18 @@ protected:
qint32 m_startIndex; qint32 m_startIndex;
}; };
} // NS DTO
namespace Support {
using BaseItemDtoQueryResult = Jellyfin::DTO::BaseItemDtoQueryResult;
template <>
BaseItemDtoQueryResult fromJsonValue(const QJsonValue &source, convertType<BaseItemDtoQueryResult>);
template<>
QJsonValue toJsonValue(const BaseItemDtoQueryResult &source, convertType<BaseItemDtoQueryResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static BaseItemPerson fromJson(QJsonObject source); static BaseItemPerson fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -114,11 +118,11 @@ public:
/** /**
* @brief Gets or sets the primary image blurhash. * @brief Gets or sets the primary image blurhash.
*/ */
std::optional<QJsonObject> imageBlurHashes() const; QJsonObject imageBlurHashes() const;
/** /**
* @brief Gets or sets the primary image blurhash. * @brief Gets or sets the primary image blurhash.
*/ */
void setImageBlurHashes(std::optional<QJsonObject> newImageBlurHashes); void setImageBlurHashes(QJsonObject newImageBlurHashes);
bool imageBlurHashesNull() const; bool imageBlurHashesNull() const;
void setImageBlurHashesNull(); void setImageBlurHashesNull();
@ -129,9 +133,21 @@ protected:
QString m_role; QString m_role;
QString m_type; QString m_type;
QString m_primaryImageTag; QString m_primaryImageTag;
std::optional<QJsonObject> m_imageBlurHashes = std::nullopt; QJsonObject m_imageBlurHashes;
}; };
} // NS DTO
namespace Support {
using BaseItemPerson = Jellyfin::DTO::BaseItemPerson;
template <>
BaseItemPerson fromJsonValue(const QJsonValue &source, convertType<BaseItemPerson>);
template<>
QJsonValue toJsonValue(const BaseItemPerson &source, convertType<BaseItemPerson>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -32,6 +32,10 @@
#include <QJsonObject> #include <QJsonObject>
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static BookInfo fromJson(QJsonObject source); static BookInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -104,11 +108,11 @@ public:
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
std::optional<QJsonObject> providerIds() const; QJsonObject providerIds() const;
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
void setProviderIds(std::optional<QJsonObject> newProviderIds); void setProviderIds(QJsonObject newProviderIds);
bool providerIdsNull() const; bool providerIdsNull() const;
void setProviderIdsNull(); void setProviderIdsNull();
@ -162,7 +166,7 @@ protected:
QString m_path; QString m_path;
QString m_metadataLanguage; QString m_metadataLanguage;
QString m_metadataCountryCode; QString m_metadataCountryCode;
std::optional<QJsonObject> m_providerIds = std::nullopt; QJsonObject m_providerIds;
std::optional<qint32> m_year = std::nullopt; std::optional<qint32> m_year = std::nullopt;
std::optional<qint32> m_indexNumber = std::nullopt; std::optional<qint32> m_indexNumber = std::nullopt;
std::optional<qint32> m_parentIndexNumber = std::nullopt; std::optional<qint32> m_parentIndexNumber = std::nullopt;
@ -171,6 +175,18 @@ protected:
QString m_seriesName; QString m_seriesName;
}; };
} // NS DTO
namespace Support {
using BookInfo = Jellyfin::DTO::BookInfo;
template <>
BookInfo fromJsonValue(const QJsonValue &source, convertType<BookInfo>);
template<>
QJsonValue toJsonValue(const BookInfo &source, convertType<BookInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/bookinfo.h" #include "JellyfinQt/dto/bookinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static BookInfoRemoteSearchQuery fromJson(QJsonObject source); static BookInfoRemoteSearchQuery fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -96,6 +100,18 @@ protected:
bool m_includeDisabledProviders; bool m_includeDisabledProviders;
}; };
} // NS DTO
namespace Support {
using BookInfoRemoteSearchQuery = Jellyfin::DTO::BookInfoRemoteSearchQuery;
template <>
BookInfoRemoteSearchQuery fromJsonValue(const QJsonValue &source, convertType<BookInfoRemoteSearchQuery>);
template<>
QJsonValue toJsonValue(const BookInfoRemoteSearchQuery &source, convertType<BookInfoRemoteSearchQuery>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static BoxSetInfo fromJson(QJsonObject source); static BoxSetInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -104,11 +108,11 @@ public:
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
std::optional<QJsonObject> providerIds() const; QJsonObject providerIds() const;
/** /**
* @brief Gets or sets the provider ids. * @brief Gets or sets the provider ids.
*/ */
void setProviderIds(std::optional<QJsonObject> newProviderIds); void setProviderIds(QJsonObject newProviderIds);
bool providerIdsNull() const; bool providerIdsNull() const;
void setProviderIdsNull(); void setProviderIdsNull();
@ -155,7 +159,7 @@ protected:
QString m_path; QString m_path;
QString m_metadataLanguage; QString m_metadataLanguage;
QString m_metadataCountryCode; QString m_metadataCountryCode;
std::optional<QJsonObject> m_providerIds = std::nullopt; QJsonObject m_providerIds;
std::optional<qint32> m_year = std::nullopt; std::optional<qint32> m_year = std::nullopt;
std::optional<qint32> m_indexNumber = std::nullopt; std::optional<qint32> m_indexNumber = std::nullopt;
std::optional<qint32> m_parentIndexNumber = std::nullopt; std::optional<qint32> m_parentIndexNumber = std::nullopt;
@ -163,6 +167,18 @@ protected:
bool m_isAutomated; bool m_isAutomated;
}; };
} // NS DTO
namespace Support {
using BoxSetInfo = Jellyfin::DTO::BoxSetInfo;
template <>
BoxSetInfo fromJsonValue(const QJsonValue &source, convertType<BoxSetInfo>);
template<>
QJsonValue toJsonValue(const BoxSetInfo &source, convertType<BoxSetInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/boxsetinfo.h" #include "JellyfinQt/dto/boxsetinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static BoxSetInfoRemoteSearchQuery fromJson(QJsonObject source); static BoxSetInfoRemoteSearchQuery fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -96,6 +100,18 @@ protected:
bool m_includeDisabledProviders; bool m_includeDisabledProviders;
}; };
} // NS DTO
namespace Support {
using BoxSetInfoRemoteSearchQuery = Jellyfin::DTO::BoxSetInfoRemoteSearchQuery;
template <>
BoxSetInfoRemoteSearchQuery fromJsonValue(const QJsonValue &source, convertType<BoxSetInfoRemoteSearchQuery>);
template<>
QJsonValue toJsonValue(const BoxSetInfoRemoteSearchQuery &source, convertType<BoxSetInfoRemoteSearchQuery>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static BrandingOptions fromJson(QJsonObject source); static BrandingOptions fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -84,6 +88,18 @@ protected:
QString m_customCss; QString m_customCss;
}; };
} // NS DTO
namespace Support {
using BrandingOptions = Jellyfin::DTO::BrandingOptions;
template <>
BrandingOptions fromJsonValue(const QJsonValue &source, convertType<BrandingOptions>);
template<>
QJsonValue toJsonValue(const BrandingOptions &source, convertType<BrandingOptions>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static BufferRequestDto fromJson(QJsonObject source); static BufferRequestDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -101,6 +105,18 @@ protected:
QString m_playlistItemId; QString m_playlistItemId;
}; };
} // NS DTO
namespace Support {
using BufferRequestDto = Jellyfin::DTO::BufferRequestDto;
template <>
BufferRequestDto fromJsonValue(const QJsonValue &source, convertType<BufferRequestDto>);
template<>
QJsonValue toJsonValue(const BufferRequestDto &source, convertType<BufferRequestDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -42,6 +42,10 @@
#include "JellyfinQt/dto/channelmediatype.h" #include "JellyfinQt/dto/channelmediatype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,7 @@ public:
static ChannelFeatures fromJson(QJsonObject source); static ChannelFeatures fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -199,6 +203,18 @@ protected:
bool m_supportsContentDownloading; bool m_supportsContentDownloading;
}; };
} // NS DTO
namespace Support {
using ChannelFeatures = Jellyfin::DTO::ChannelFeatures;
template <>
ChannelFeatures fromJsonValue(const QJsonValue &source, convertType<ChannelFeatures>);
template<>
QJsonValue toJsonValue(const ChannelFeatures &source, convertType<ChannelFeatures>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,19 @@ private:
explicit ChannelItemSortFieldClass(); explicit ChannelItemSortFieldClass();
}; };
typedef ChannelItemSortFieldClass::Value ChannelItemSortField; using ChannelItemSortField = ChannelItemSortFieldClass::Value;
} // NS DTO
namespace Support {
using ChannelItemSortField = Jellyfin::DTO::ChannelItemSortField;
template <>
ChannelItemSortField fromJsonValue(const QJsonValue &source, convertType<ChannelItemSortField>);
template <>
QJsonValue toJsonValue(const ChannelItemSortField &source, convertType<ChannelItemSortField>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -42,6 +42,10 @@
#include "JellyfinQt/dto/tunerchannelmapping.h" #include "JellyfinQt/dto/tunerchannelmapping.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,7 @@ public:
static ChannelMappingOptionsDto fromJson(QJsonObject source); static ChannelMappingOptionsDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -113,6 +117,18 @@ protected:
QString m_providerName; QString m_providerName;
}; };
} // NS DTO
namespace Support {
using ChannelMappingOptionsDto = Jellyfin::DTO::ChannelMappingOptionsDto;
template <>
ChannelMappingOptionsDto fromJsonValue(const QJsonValue &source, convertType<ChannelMappingOptionsDto>);
template<>
QJsonValue toJsonValue(const ChannelMappingOptionsDto &source, convertType<ChannelMappingOptionsDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,19 @@ private:
explicit ChannelMediaContentTypeClass(); explicit ChannelMediaContentTypeClass();
}; };
typedef ChannelMediaContentTypeClass::Value ChannelMediaContentType; using ChannelMediaContentType = ChannelMediaContentTypeClass::Value;
} // NS DTO
namespace Support {
using ChannelMediaContentType = Jellyfin::DTO::ChannelMediaContentType;
template <>
ChannelMediaContentType fromJsonValue(const QJsonValue &source, convertType<ChannelMediaContentType>);
template <>
QJsonValue toJsonValue(const ChannelMediaContentType &source, convertType<ChannelMediaContentType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit ChannelMediaTypeClass(); explicit ChannelMediaTypeClass();
}; };
typedef ChannelMediaTypeClass::Value ChannelMediaType; using ChannelMediaType = ChannelMediaTypeClass::Value;
} // NS DTO
namespace Support {
using ChannelMediaType = Jellyfin::DTO::ChannelMediaType;
template <>
ChannelMediaType fromJsonValue(const QJsonValue &source, convertType<ChannelMediaType>);
template <>
QJsonValue toJsonValue(const ChannelMediaType &source, convertType<ChannelMediaType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit ChannelTypeClass(); explicit ChannelTypeClass();
}; };
typedef ChannelTypeClass::Value ChannelType; using ChannelType = ChannelTypeClass::Value;
} // NS DTO
namespace Support {
using ChannelType = Jellyfin::DTO::ChannelType;
template <>
ChannelType fromJsonValue(const QJsonValue &source, convertType<ChannelType>);
template <>
QJsonValue toJsonValue(const ChannelType &source, convertType<ChannelType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static ChapterInfo fromJson(QJsonObject source); static ChapterInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -109,6 +113,18 @@ protected:
QString m_imageTag; QString m_imageTag;
}; };
} // NS DTO
namespace Support {
using ChapterInfo = Jellyfin::DTO::ChapterInfo;
template <>
ChapterInfo fromJsonValue(const QJsonValue &source, convertType<ChapterInfo>);
template<>
QJsonValue toJsonValue(const ChapterInfo &source, convertType<ChapterInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -42,6 +42,10 @@
#include "JellyfinQt/dto/generalcommandtype.h" #include "JellyfinQt/dto/generalcommandtype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,7 @@ public:
static ClientCapabilities fromJson(QJsonObject source); static ClientCapabilities fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -135,6 +139,18 @@ protected:
QString m_iconUrl; QString m_iconUrl;
}; };
} // NS DTO
namespace Support {
using ClientCapabilities = Jellyfin::DTO::ClientCapabilities;
template <>
ClientCapabilities fromJsonValue(const QJsonValue &source, convertType<ClientCapabilities>);
template<>
QJsonValue toJsonValue(const ClientCapabilities &source, convertType<ClientCapabilities>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -42,6 +42,10 @@
#include "JellyfinQt/dto/generalcommandtype.h" #include "JellyfinQt/dto/generalcommandtype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,7 @@ public:
static ClientCapabilitiesDto fromJson(QJsonObject source); static ClientCapabilitiesDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -171,6 +175,18 @@ protected:
QString m_iconUrl; QString m_iconUrl;
}; };
} // NS DTO
namespace Support {
using ClientCapabilitiesDto = Jellyfin::DTO::ClientCapabilitiesDto;
template <>
ClientCapabilitiesDto fromJsonValue(const QJsonValue &source, convertType<ClientCapabilitiesDto>);
template<>
QJsonValue toJsonValue(const ClientCapabilitiesDto &source, convertType<ClientCapabilitiesDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -41,6 +41,10 @@
#include "JellyfinQt/dto/profilecondition.h" #include "JellyfinQt/dto/profilecondition.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,7 @@ public:
static CodecProfile fromJson(QJsonObject source); static CodecProfile fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -102,6 +106,18 @@ protected:
QString m_container; QString m_container;
}; };
} // NS DTO
namespace Support {
using CodecProfile = Jellyfin::DTO::CodecProfile;
template <>
CodecProfile fromJsonValue(const QJsonValue &source, convertType<CodecProfile>);
template<>
QJsonValue toJsonValue(const CodecProfile &source, convertType<CodecProfile>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit CodecTypeClass(); explicit CodecTypeClass();
}; };
typedef CodecTypeClass::Value CodecType; using CodecType = CodecTypeClass::Value;
} // NS DTO
namespace Support {
using CodecType = Jellyfin::DTO::CodecType;
template <>
CodecType fromJsonValue(const QJsonValue &source, convertType<CodecType>);
template <>
QJsonValue toJsonValue(const CodecType &source, convertType<CodecType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static CollectionCreationResult fromJson(QJsonObject source); static CollectionCreationResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -66,6 +70,18 @@ protected:
QString m_jellyfinId; QString m_jellyfinId;
}; };
} // NS DTO
namespace Support {
using CollectionCreationResult = Jellyfin::DTO::CollectionCreationResult;
template <>
CollectionCreationResult fromJsonValue(const QJsonValue &source, convertType<CollectionCreationResult>);
template<>
QJsonValue toJsonValue(const CollectionCreationResult &source, convertType<CollectionCreationResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/configurationpagetype.h" #include "JellyfinQt/dto/configurationpagetype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static ConfigurationPageInfo fromJson(QJsonObject source); static ConfigurationPageInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -137,6 +141,18 @@ protected:
QString m_pluginId; QString m_pluginId;
}; };
} // NS DTO
namespace Support {
using ConfigurationPageInfo = Jellyfin::DTO::ConfigurationPageInfo;
template <>
ConfigurationPageInfo fromJsonValue(const QJsonValue &source, convertType<ConfigurationPageInfo>);
template<>
QJsonValue toJsonValue(const ConfigurationPageInfo &source, convertType<ConfigurationPageInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit ConfigurationPageTypeClass(); explicit ConfigurationPageTypeClass();
}; };
typedef ConfigurationPageTypeClass::Value ConfigurationPageType; using ConfigurationPageType = ConfigurationPageTypeClass::Value;
} // NS DTO
namespace Support {
using ConfigurationPageType = Jellyfin::DTO::ConfigurationPageType;
template <>
ConfigurationPageType fromJsonValue(const QJsonValue &source, convertType<ConfigurationPageType>);
template <>
QJsonValue toJsonValue(const ConfigurationPageType &source, convertType<ConfigurationPageType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -41,6 +41,10 @@
#include "JellyfinQt/dto/profilecondition.h" #include "JellyfinQt/dto/profilecondition.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,7 @@ public:
static ContainerProfile fromJson(QJsonObject source); static ContainerProfile fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -86,6 +90,18 @@ protected:
QString m_container; QString m_container;
}; };
} // NS DTO
namespace Support {
using ContainerProfile = Jellyfin::DTO::ContainerProfile;
template <>
ContainerProfile fromJsonValue(const QJsonValue &source, convertType<ContainerProfile>);
template<>
QJsonValue toJsonValue(const ContainerProfile &source, convertType<ContainerProfile>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,13 +57,13 @@ public:
static ControlResponse fromJson(QJsonObject source); static ControlResponse fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
std::optional<QJsonObject> headers() const; QJsonObject headers() const;
void setHeaders(std::optional<QJsonObject> newHeaders); void setHeaders(QJsonObject newHeaders);
bool headersNull() const; bool headersNull() const;
void setHeadersNull(); void setHeadersNull();
@ -77,11 +81,23 @@ public:
protected: protected:
std::optional<QJsonObject> m_headers = std::nullopt; QJsonObject m_headers;
QString m_xml; QString m_xml;
bool m_isSuccessful; bool m_isSuccessful;
}; };
} // NS DTO
namespace Support {
using ControlResponse = Jellyfin::DTO::ControlResponse;
template <>
ControlResponse fromJsonValue(const QJsonValue &source, convertType<ControlResponse>);
template<>
QJsonValue toJsonValue(const ControlResponse &source, convertType<ControlResponse>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static CountryInfo fromJson(QJsonObject source); static CountryInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -108,6 +112,18 @@ protected:
QString m_threeLetterISORegionName; QString m_threeLetterISORegionName;
}; };
} // NS DTO
namespace Support {
using CountryInfo = Jellyfin::DTO::CountryInfo;
template <>
CountryInfo fromJsonValue(const QJsonValue &source, convertType<CountryInfo>);
template<>
QJsonValue toJsonValue(const CountryInfo &source, convertType<CountryInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static CreatePlaylistDto fromJson(QJsonObject source); static CreatePlaylistDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -110,6 +114,18 @@ protected:
QString m_mediaType; QString m_mediaType;
}; };
} // NS DTO
namespace Support {
using CreatePlaylistDto = Jellyfin::DTO::CreatePlaylistDto;
template <>
CreatePlaylistDto fromJsonValue(const QJsonValue &source, convertType<CreatePlaylistDto>);
template<>
QJsonValue toJsonValue(const CreatePlaylistDto &source, convertType<CreatePlaylistDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static CreateUserByName fromJson(QJsonObject source); static CreateUserByName fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -84,6 +88,18 @@ protected:
QString m_password; QString m_password;
}; };
} // NS DTO
namespace Support {
using CreateUserByName = Jellyfin::DTO::CreateUserByName;
template <>
CreateUserByName fromJsonValue(const QJsonValue &source, convertType<CreateUserByName>);
template<>
QJsonValue toJsonValue(const CreateUserByName &source, convertType<CreateUserByName>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static CultureDto fromJson(QJsonObject source); static CultureDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -118,6 +122,18 @@ protected:
QStringList m_threeLetterISOLanguageNames; QStringList m_threeLetterISOLanguageNames;
}; };
} // NS DTO
namespace Support {
using CultureDto = Jellyfin::DTO::CultureDto;
template <>
CultureDto fromJsonValue(const QJsonValue &source, convertType<CultureDto>);
template<>
QJsonValue toJsonValue(const CultureDto &source, convertType<CultureDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,19 @@ private:
explicit DayOfWeekClass(); explicit DayOfWeekClass();
}; };
typedef DayOfWeekClass::Value DayOfWeek; using DayOfWeek = DayOfWeekClass::Value;
} // NS DTO
namespace Support {
using DayOfWeek = Jellyfin::DTO::DayOfWeek;
template <>
DayOfWeek fromJsonValue(const QJsonValue &source, convertType<DayOfWeek>);
template <>
QJsonValue toJsonValue(const DayOfWeek &source, convertType<DayOfWeek>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit DayPatternClass(); explicit DayPatternClass();
}; };
typedef DayPatternClass::Value DayPattern; using DayPattern = DayPatternClass::Value;
} // NS DTO
namespace Support {
using DayPattern = Jellyfin::DTO::DayPattern;
template <>
DayPattern fromJsonValue(const QJsonValue &source, convertType<DayPattern>);
template <>
QJsonValue toJsonValue(const DayPattern &source, convertType<DayPattern>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static DefaultDirectoryBrowserInfoDto fromJson(QJsonObject source); static DefaultDirectoryBrowserInfoDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -72,6 +76,18 @@ protected:
QString m_path; QString m_path;
}; };
} // NS DTO
namespace Support {
using DefaultDirectoryBrowserInfoDto = Jellyfin::DTO::DefaultDirectoryBrowserInfoDto;
template <>
DefaultDirectoryBrowserInfoDto fromJsonValue(const QJsonValue &source, convertType<DefaultDirectoryBrowserInfoDto>);
template<>
QJsonValue toJsonValue(const DefaultDirectoryBrowserInfoDto &source, convertType<DefaultDirectoryBrowserInfoDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -40,6 +40,10 @@
#include "JellyfinQt/dto/httpheaderinfo.h" #include "JellyfinQt/dto/httpheaderinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -56,7 +60,7 @@ public:
static DeviceIdentification fromJson(QJsonObject source); static DeviceIdentification fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -171,6 +175,18 @@ protected:
QList<HttpHeaderInfo> m_headers; QList<HttpHeaderInfo> m_headers;
}; };
} // NS DTO
namespace Support {
using DeviceIdentification = Jellyfin::DTO::DeviceIdentification;
template <>
DeviceIdentification fromJsonValue(const QJsonValue &source, convertType<DeviceIdentification>);
template<>
QJsonValue toJsonValue(const DeviceIdentification &source, convertType<DeviceIdentification>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -40,6 +40,10 @@
#include "JellyfinQt/dto/clientcapabilities.h" #include "JellyfinQt/dto/clientcapabilities.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -56,7 +60,7 @@ public:
static DeviceInfo fromJson(QJsonObject source); static DeviceInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -153,6 +157,18 @@ protected:
QString m_iconUrl; QString m_iconUrl;
}; };
} // NS DTO
namespace Support {
using DeviceInfo = Jellyfin::DTO::DeviceInfo;
template <>
DeviceInfo fromJsonValue(const QJsonValue &source, convertType<DeviceInfo>);
template<>
QJsonValue toJsonValue(const DeviceInfo &source, convertType<DeviceInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/deviceinfo.h" #include "JellyfinQt/dto/deviceinfo.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static DeviceInfoQueryResult fromJson(QJsonObject source); static DeviceInfoQueryResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -94,6 +98,18 @@ protected:
qint32 m_startIndex; qint32 m_startIndex;
}; };
} // NS DTO
namespace Support {
using DeviceInfoQueryResult = Jellyfin::DTO::DeviceInfoQueryResult;
template <>
DeviceInfoQueryResult fromJsonValue(const QJsonValue &source, convertType<DeviceInfoQueryResult>);
template<>
QJsonValue toJsonValue(const DeviceInfoQueryResult &source, convertType<DeviceInfoQueryResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static DeviceOptions fromJson(QJsonObject source); static DeviceOptions fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -68,6 +72,18 @@ protected:
QString m_customName; QString m_customName;
}; };
} // NS DTO
namespace Support {
using DeviceOptions = Jellyfin::DTO::DeviceOptions;
template <>
DeviceOptions fromJsonValue(const QJsonValue &source, convertType<DeviceOptions>);
template<>
QJsonValue toJsonValue(const DeviceOptions &source, convertType<DeviceOptions>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -48,6 +48,10 @@
#include "JellyfinQt/dto/xmlattribute.h" #include "JellyfinQt/dto/xmlattribute.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -64,7 +68,7 @@ public:
static DeviceProfile fromJson(QJsonObject source); static DeviceProfile fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -513,6 +517,18 @@ protected:
QList<SubtitleProfile> m_subtitleProfiles; QList<SubtitleProfile> m_subtitleProfiles;
}; };
} // NS DTO
namespace Support {
using DeviceProfile = Jellyfin::DTO::DeviceProfile;
template <>
DeviceProfile fromJsonValue(const QJsonValue &source, convertType<DeviceProfile>);
template<>
QJsonValue toJsonValue(const DeviceProfile &source, convertType<DeviceProfile>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/deviceprofiletype.h" #include "JellyfinQt/dto/deviceprofiletype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static DeviceProfileInfo fromJson(QJsonObject source); static DeviceProfileInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -91,6 +95,18 @@ protected:
DeviceProfileType m_type; DeviceProfileType m_type;
}; };
} // NS DTO
namespace Support {
using DeviceProfileInfo = Jellyfin::DTO::DeviceProfileInfo;
template <>
DeviceProfileInfo fromJsonValue(const QJsonValue &source, convertType<DeviceProfileInfo>);
template<>
QJsonValue toJsonValue(const DeviceProfileInfo &source, convertType<DeviceProfileInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit DeviceProfileTypeClass(); explicit DeviceProfileTypeClass();
}; };
typedef DeviceProfileTypeClass::Value DeviceProfileType; using DeviceProfileType = DeviceProfileTypeClass::Value;
} // NS DTO
namespace Support {
using DeviceProfileType = Jellyfin::DTO::DeviceProfileType;
template <>
DeviceProfileType fromJsonValue(const QJsonValue &source, convertType<DeviceProfileType>);
template <>
QJsonValue toJsonValue(const DeviceProfileType &source, convertType<DeviceProfileType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/dlnaprofiletype.h" #include "JellyfinQt/dto/dlnaprofiletype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static DirectPlayProfile fromJson(QJsonObject source); static DirectPlayProfile fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -91,6 +95,18 @@ protected:
DlnaProfileType m_type; DlnaProfileType m_type;
}; };
} // NS DTO
namespace Support {
using DirectPlayProfile = Jellyfin::DTO::DirectPlayProfile;
template <>
DirectPlayProfile fromJsonValue(const QJsonValue &source, convertType<DirectPlayProfile>);
template<>
QJsonValue toJsonValue(const DirectPlayProfile &source, convertType<DirectPlayProfile>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/sortorder.h" #include "JellyfinQt/dto/sortorder.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static DisplayPreferencesDto fromJson(QJsonObject source); static DisplayPreferencesDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -132,11 +136,11 @@ public:
/** /**
* @brief Gets or sets the custom prefs. * @brief Gets or sets the custom prefs.
*/ */
std::optional<QJsonObject> customPrefs() const; QJsonObject customPrefs() const;
/** /**
* @brief Gets or sets the custom prefs. * @brief Gets or sets the custom prefs.
*/ */
void setCustomPrefs(std::optional<QJsonObject> newCustomPrefs); void setCustomPrefs(QJsonObject newCustomPrefs);
bool customPrefsNull() const; bool customPrefsNull() const;
void setCustomPrefsNull(); void setCustomPrefsNull();
@ -197,7 +201,7 @@ protected:
bool m_rememberIndexing; bool m_rememberIndexing;
qint32 m_primaryImageHeight; qint32 m_primaryImageHeight;
qint32 m_primaryImageWidth; qint32 m_primaryImageWidth;
std::optional<QJsonObject> m_customPrefs = std::nullopt; QJsonObject m_customPrefs;
ScrollDirection m_scrollDirection; ScrollDirection m_scrollDirection;
bool m_showBackdrop; bool m_showBackdrop;
bool m_rememberSorting; bool m_rememberSorting;
@ -206,6 +210,18 @@ protected:
QString m_client; QString m_client;
}; };
} // NS DTO
namespace Support {
using DisplayPreferencesDto = Jellyfin::DTO::DisplayPreferencesDto;
template <>
DisplayPreferencesDto fromJsonValue(const QJsonValue &source, convertType<DisplayPreferencesDto>);
template<>
QJsonValue toJsonValue(const DisplayPreferencesDto &source, convertType<DisplayPreferencesDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit DlnaProfileTypeClass(); explicit DlnaProfileTypeClass();
}; };
typedef DlnaProfileTypeClass::Value DlnaProfileType; using DlnaProfileType = DlnaProfileTypeClass::Value;
} // NS DTO
namespace Support {
using DlnaProfileType = Jellyfin::DTO::DlnaProfileType;
template <>
DlnaProfileType fromJsonValue(const QJsonValue &source, convertType<DlnaProfileType>);
template <>
QJsonValue toJsonValue(const DlnaProfileType &source, convertType<DlnaProfileType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -60,7 +64,19 @@ private:
explicit DynamicDayOfWeekClass(); explicit DynamicDayOfWeekClass();
}; };
typedef DynamicDayOfWeekClass::Value DynamicDayOfWeek; using DynamicDayOfWeek = DynamicDayOfWeekClass::Value;
} // NS DTO
namespace Support {
using DynamicDayOfWeek = Jellyfin::DTO::DynamicDayOfWeek;
template <>
DynamicDayOfWeek fromJsonValue(const QJsonValue &source, convertType<DynamicDayOfWeek>);
template <>
QJsonValue toJsonValue(const DynamicDayOfWeek &source, convertType<DynamicDayOfWeek>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit EncodingContextClass(); explicit EncodingContextClass();
}; };
typedef EncodingContextClass::Value EncodingContext; using EncodingContext = EncodingContextClass::Value;
} // NS DTO
namespace Support {
using EncodingContext = Jellyfin::DTO::EncodingContext;
template <>
EncodingContext fromJsonValue(const QJsonValue &source, convertType<EncodingContext>);
template <>
QJsonValue toJsonValue(const EncodingContext &source, convertType<EncodingContext>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,7 @@ public:
static EndPointInfo fromJson(QJsonObject source); static EndPointInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -71,6 +75,18 @@ protected:
bool m_isInNetwork; bool m_isInNetwork;
}; };
} // NS DTO
namespace Support {
using EndPointInfo = Jellyfin::DTO::EndPointInfo;
template <>
EndPointInfo fromJsonValue(const QJsonValue &source, convertType<EndPointInfo>);
template<>
QJsonValue toJsonValue(const EndPointInfo &source, convertType<EndPointInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/externalidmediatype.h" #include "JellyfinQt/dto/externalidmediatype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static ExternalIdInfo fromJson(QJsonObject source); static ExternalIdInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -103,6 +107,18 @@ protected:
QString m_urlFormatString; QString m_urlFormatString;
}; };
} // NS DTO
namespace Support {
using ExternalIdInfo = Jellyfin::DTO::ExternalIdInfo;
template <>
ExternalIdInfo fromJsonValue(const QJsonValue &source, convertType<ExternalIdInfo>);
template<>
QJsonValue toJsonValue(const ExternalIdInfo &source, convertType<ExternalIdInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -62,7 +66,19 @@ private:
explicit ExternalIdMediaTypeClass(); explicit ExternalIdMediaTypeClass();
}; };
typedef ExternalIdMediaTypeClass::Value ExternalIdMediaType; using ExternalIdMediaType = ExternalIdMediaTypeClass::Value;
} // NS DTO
namespace Support {
using ExternalIdMediaType = Jellyfin::DTO::ExternalIdMediaType;
template <>
ExternalIdMediaType fromJsonValue(const QJsonValue &source, convertType<ExternalIdMediaType>);
template <>
QJsonValue toJsonValue(const ExternalIdMediaType &source, convertType<ExternalIdMediaType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static ExternalUrl fromJson(QJsonObject source); static ExternalUrl fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -84,6 +88,18 @@ protected:
QString m_url; QString m_url;
}; };
} // NS DTO
namespace Support {
using ExternalUrl = Jellyfin::DTO::ExternalUrl;
template <>
ExternalUrl fromJsonValue(const QJsonValue &source, convertType<ExternalUrl>);
template<>
QJsonValue toJsonValue(const ExternalUrl &source, convertType<ExternalUrl>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,19 @@ private:
explicit FFmpegLocationClass(); explicit FFmpegLocationClass();
}; };
typedef FFmpegLocationClass::Value FFmpegLocation; using FFmpegLocation = FFmpegLocationClass::Value;
} // NS DTO
namespace Support {
using FFmpegLocation = Jellyfin::DTO::FFmpegLocation;
template <>
FFmpegLocation fromJsonValue(const QJsonValue &source, convertType<FFmpegLocation>);
template <>
QJsonValue toJsonValue(const FFmpegLocation &source, convertType<FFmpegLocation>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/filesystementrytype.h" #include "JellyfinQt/dto/filesystementrytype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static FileSystemEntryInfo fromJson(QJsonObject source); static FileSystemEntryInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -91,6 +95,18 @@ protected:
FileSystemEntryType m_type; FileSystemEntryType m_type;
}; };
} // NS DTO
namespace Support {
using FileSystemEntryInfo = Jellyfin::DTO::FileSystemEntryInfo;
template <>
FileSystemEntryInfo fromJsonValue(const QJsonValue &source, convertType<FileSystemEntryInfo>);
template<>
QJsonValue toJsonValue(const FileSystemEntryInfo &source, convertType<FileSystemEntryInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,19 @@ private:
explicit FileSystemEntryTypeClass(); explicit FileSystemEntryTypeClass();
}; };
typedef FileSystemEntryTypeClass::Value FileSystemEntryType; using FileSystemEntryType = FileSystemEntryTypeClass::Value;
} // NS DTO
namespace Support {
using FileSystemEntryType = Jellyfin::DTO::FileSystemEntryType;
template <>
FileSystemEntryType fromJsonValue(const QJsonValue &source, convertType<FileSystemEntryType>);
template <>
QJsonValue toJsonValue(const FileSystemEntryType &source, convertType<FileSystemEntryType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static FontFile fromJson(QJsonObject source); static FontFile fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -103,6 +107,18 @@ protected:
QDateTime m_dateModified; QDateTime m_dateModified;
}; };
} // NS DTO
namespace Support {
using FontFile = Jellyfin::DTO::FontFile;
template <>
FontFile fromJsonValue(const QJsonValue &source, convertType<FontFile>);
template<>
QJsonValue toJsonValue(const FontFile &source, convertType<FontFile>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit ForgotPasswordActionClass(); explicit ForgotPasswordActionClass();
}; };
typedef ForgotPasswordActionClass::Value ForgotPasswordAction; using ForgotPasswordAction = ForgotPasswordActionClass::Value;
} // NS DTO
namespace Support {
using ForgotPasswordAction = Jellyfin::DTO::ForgotPasswordAction;
template <>
ForgotPasswordAction fromJsonValue(const QJsonValue &source, convertType<ForgotPasswordAction>);
template <>
QJsonValue toJsonValue(const ForgotPasswordAction &source, convertType<ForgotPasswordAction>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static ForgotPasswordDto fromJson(QJsonObject source); static ForgotPasswordDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -70,6 +74,18 @@ protected:
QString m_enteredUsername; QString m_enteredUsername;
}; };
} // NS DTO
namespace Support {
using ForgotPasswordDto = Jellyfin::DTO::ForgotPasswordDto;
template <>
ForgotPasswordDto fromJsonValue(const QJsonValue &source, convertType<ForgotPasswordDto>);
template<>
QJsonValue toJsonValue(const ForgotPasswordDto &source, convertType<ForgotPasswordDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -39,6 +39,10 @@
#include "JellyfinQt/dto/forgotpasswordaction.h" #include "JellyfinQt/dto/forgotpasswordaction.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,7 @@ public:
static ForgotPasswordResult fromJson(QJsonObject source); static ForgotPasswordResult fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -92,6 +96,18 @@ protected:
QDateTime m_pinExpirationDate; QDateTime m_pinExpirationDate;
}; };
} // NS DTO
namespace Support {
using ForgotPasswordResult = Jellyfin::DTO::ForgotPasswordResult;
template <>
ForgotPasswordResult fromJsonValue(const QJsonValue &source, convertType<ForgotPasswordResult>);
template<>
QJsonValue toJsonValue(const ForgotPasswordResult &source, convertType<ForgotPasswordResult>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/generalcommandtype.h" #include "JellyfinQt/dto/generalcommandtype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static GeneralCommand fromJson(QJsonObject source); static GeneralCommand fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -68,9 +72,9 @@ public:
void setControllingUserId(QString newControllingUserId); void setControllingUserId(QString newControllingUserId);
std::optional<QJsonObject> arguments() const; QJsonObject arguments() const;
void setArguments(std::optional<QJsonObject> newArguments); void setArguments(QJsonObject newArguments);
bool argumentsNull() const; bool argumentsNull() const;
void setArgumentsNull(); void setArgumentsNull();
@ -78,9 +82,21 @@ public:
protected: protected:
GeneralCommandType m_name; GeneralCommandType m_name;
QString m_controllingUserId; QString m_controllingUserId;
std::optional<QJsonObject> m_arguments = std::nullopt; QJsonObject m_arguments;
}; };
} // NS DTO
namespace Support {
using GeneralCommand = Jellyfin::DTO::GeneralCommand;
template <>
GeneralCommand fromJsonValue(const QJsonValue &source, convertType<GeneralCommand>);
template<>
QJsonValue toJsonValue(const GeneralCommand &source, convertType<GeneralCommand>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -91,7 +95,19 @@ private:
explicit GeneralCommandTypeClass(); explicit GeneralCommandTypeClass();
}; };
typedef GeneralCommandTypeClass::Value GeneralCommandType; using GeneralCommandType = GeneralCommandTypeClass::Value;
} // NS DTO
namespace Support {
using GeneralCommandType = Jellyfin::DTO::GeneralCommandType;
template <>
GeneralCommandType fromJsonValue(const QJsonValue &source, convertType<GeneralCommandType>);
template <>
QJsonValue toJsonValue(const GeneralCommandType &source, convertType<GeneralCommandType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -42,6 +42,10 @@
#include "JellyfinQt/dto/itemfields.h" #include "JellyfinQt/dto/itemfields.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,7 @@ public:
static GetProgramsDto fromJson(QJsonObject source); static GetProgramsDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -425,6 +429,18 @@ protected:
QList<ItemFields> m_fields; QList<ItemFields> m_fields;
}; };
} // NS DTO
namespace Support {
using GetProgramsDto = Jellyfin::DTO::GetProgramsDto;
template <>
GetProgramsDto fromJsonValue(const QJsonValue &source, convertType<GetProgramsDto>);
template<>
QJsonValue toJsonValue(const GetProgramsDto &source, convertType<GetProgramsDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -41,6 +41,10 @@
#include "JellyfinQt/dto/groupstatetype.h" #include "JellyfinQt/dto/groupstatetype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -57,7 +61,7 @@ public:
static GroupInfoDto fromJson(QJsonObject source); static GroupInfoDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -114,6 +118,18 @@ protected:
QDateTime m_lastUpdatedAt; QDateTime m_lastUpdatedAt;
}; };
} // NS DTO
namespace Support {
using GroupInfoDto = Jellyfin::DTO::GroupInfoDto;
template <>
GroupInfoDto fromJsonValue(const QJsonValue &source, convertType<GroupInfoDto>);
template<>
QJsonValue toJsonValue(const GroupInfoDto &source, convertType<GroupInfoDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit GroupQueueModeClass(); explicit GroupQueueModeClass();
}; };
typedef GroupQueueModeClass::Value GroupQueueMode; using GroupQueueMode = GroupQueueModeClass::Value;
} // NS DTO
namespace Support {
using GroupQueueMode = Jellyfin::DTO::GroupQueueMode;
template <>
GroupQueueMode fromJsonValue(const QJsonValue &source, convertType<GroupQueueMode>);
template <>
QJsonValue toJsonValue(const GroupQueueMode &source, convertType<GroupQueueMode>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit GroupRepeatModeClass(); explicit GroupRepeatModeClass();
}; };
typedef GroupRepeatModeClass::Value GroupRepeatMode; using GroupRepeatMode = GroupRepeatModeClass::Value;
} // NS DTO
namespace Support {
using GroupRepeatMode = Jellyfin::DTO::GroupRepeatMode;
template <>
GroupRepeatMode fromJsonValue(const QJsonValue &source, convertType<GroupRepeatMode>);
template <>
QJsonValue toJsonValue(const GroupRepeatMode &source, convertType<GroupRepeatMode>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit GroupShuffleModeClass(); explicit GroupShuffleModeClass();
}; };
typedef GroupShuffleModeClass::Value GroupShuffleMode; using GroupShuffleMode = GroupShuffleModeClass::Value;
} // NS DTO
namespace Support {
using GroupShuffleMode = Jellyfin::DTO::GroupShuffleMode;
template <>
GroupShuffleMode fromJsonValue(const QJsonValue &source, convertType<GroupShuffleMode>);
template <>
QJsonValue toJsonValue(const GroupShuffleMode &source, convertType<GroupShuffleMode>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,19 @@ private:
explicit GroupStateTypeClass(); explicit GroupStateTypeClass();
}; };
typedef GroupStateTypeClass::Value GroupStateType; using GroupStateType = GroupStateTypeClass::Value;
} // NS DTO
namespace Support {
using GroupStateType = Jellyfin::DTO::GroupStateType;
template <>
GroupStateType fromJsonValue(const QJsonValue &source, convertType<GroupStateType>);
template <>
QJsonValue toJsonValue(const GroupStateType &source, convertType<GroupStateType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -61,7 +65,19 @@ private:
explicit GroupUpdateTypeClass(); explicit GroupUpdateTypeClass();
}; };
typedef GroupUpdateTypeClass::Value GroupUpdateType; using GroupUpdateType = GroupUpdateTypeClass::Value;
} // NS DTO
namespace Support {
using GroupUpdateType = Jellyfin::DTO::GroupUpdateType;
template <>
GroupUpdateType fromJsonValue(const QJsonValue &source, convertType<GroupUpdateType>);
template <>
QJsonValue toJsonValue(const GroupUpdateType &source, convertType<GroupUpdateType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static GuideInfo fromJson(QJsonObject source); static GuideInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -80,6 +84,18 @@ protected:
QDateTime m_endDate; QDateTime m_endDate;
}; };
} // NS DTO
namespace Support {
using GuideInfo = Jellyfin::DTO::GuideInfo;
template <>
GuideInfo fromJsonValue(const QJsonValue &source, convertType<GuideInfo>);
template<>
QJsonValue toJsonValue(const GuideInfo &source, convertType<GuideInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,19 @@ private:
explicit HeaderMatchTypeClass(); explicit HeaderMatchTypeClass();
}; };
typedef HeaderMatchTypeClass::Value HeaderMatchType; using HeaderMatchType = HeaderMatchTypeClass::Value;
} // NS DTO
namespace Support {
using HeaderMatchType = Jellyfin::DTO::HeaderMatchType;
template <>
HeaderMatchType fromJsonValue(const QJsonValue &source, convertType<HeaderMatchType>);
template <>
QJsonValue toJsonValue(const HeaderMatchType &source, convertType<HeaderMatchType>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/headermatchtype.h" #include "JellyfinQt/dto/headermatchtype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static HttpHeaderInfo fromJson(QJsonObject source); static HttpHeaderInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -83,6 +87,18 @@ protected:
HeaderMatchType m_match; HeaderMatchType m_match;
}; };
} // NS DTO
namespace Support {
using HttpHeaderInfo = Jellyfin::DTO::HttpHeaderInfo;
template <>
HttpHeaderInfo fromJsonValue(const QJsonValue &source, convertType<HttpHeaderInfo>);
template<>
QJsonValue toJsonValue(const HttpHeaderInfo &source, convertType<HttpHeaderInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,7 @@ public:
static IgnoreWaitRequestDto fromJson(QJsonObject source); static IgnoreWaitRequestDto fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -69,6 +73,18 @@ protected:
bool m_ignoreWait; bool m_ignoreWait;
}; };
} // NS DTO
namespace Support {
using IgnoreWaitRequestDto = Jellyfin::DTO::IgnoreWaitRequestDto;
template <>
IgnoreWaitRequestDto fromJsonValue(const QJsonValue &source, convertType<IgnoreWaitRequestDto>);
template<>
QJsonValue toJsonValue(const IgnoreWaitRequestDto &source, convertType<IgnoreWaitRequestDto>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static ImageByNameInfo fromJson(QJsonObject source); static ImageByNameInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -118,6 +122,18 @@ protected:
QString m_format; QString m_format;
}; };
} // NS DTO
namespace Support {
using ImageByNameInfo = Jellyfin::DTO::ImageByNameInfo;
template <>
ImageByNameInfo fromJsonValue(const QJsonValue &source, convertType<ImageByNameInfo>);
template<>
QJsonValue toJsonValue(const ImageByNameInfo &source, convertType<ImageByNameInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -55,7 +59,19 @@ private:
explicit ImageFormatClass(); explicit ImageFormatClass();
}; };
typedef ImageFormatClass::Value ImageFormat; using ImageFormat = ImageFormatClass::Value;
} // NS DTO
namespace Support {
using ImageFormat = Jellyfin::DTO::ImageFormat;
template <>
ImageFormat fromJsonValue(const QJsonValue &source, convertType<ImageFormat>);
template <>
QJsonValue toJsonValue(const ImageFormat &source, convertType<ImageFormat>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -38,6 +38,10 @@
#include "JellyfinQt/dto/imagetype.h" #include "JellyfinQt/dto/imagetype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -54,7 +58,7 @@ public:
static ImageInfo fromJson(QJsonObject source); static ImageInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -149,6 +153,18 @@ protected:
qint64 m_size; qint64 m_size;
}; };
} // NS DTO
namespace Support {
using ImageInfo = Jellyfin::DTO::ImageInfo;
template <>
ImageInfo fromJsonValue(const QJsonValue &source, convertType<ImageInfo>);
template<>
QJsonValue toJsonValue(const ImageInfo &source, convertType<ImageInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -37,6 +37,10 @@
#include "JellyfinQt/dto/imagetype.h" #include "JellyfinQt/dto/imagetype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -53,7 +57,7 @@ public:
static ImageOption fromJson(QJsonObject source); static ImageOption fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
@ -86,6 +90,18 @@ protected:
qint32 m_minWidth; qint32 m_minWidth;
}; };
} // NS DTO
namespace Support {
using ImageOption = Jellyfin::DTO::ImageOption;
template <>
ImageOption fromJsonValue(const QJsonValue &source, convertType<ImageOption>);
template<>
QJsonValue toJsonValue(const ImageOption &source, convertType<ImageOption>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -58,7 +62,19 @@ private:
explicit ImageOrientationClass(); explicit ImageOrientationClass();
}; };
typedef ImageOrientationClass::Value ImageOrientation; using ImageOrientation = ImageOrientationClass::Value;
} // NS DTO
namespace Support {
using ImageOrientation = Jellyfin::DTO::ImageOrientation;
template <>
ImageOrientation fromJsonValue(const QJsonValue &source, convertType<ImageOrientation>);
template <>
QJsonValue toJsonValue(const ImageOrientation &source, convertType<ImageOrientation>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -40,6 +40,10 @@
#include "JellyfinQt/dto/imagetype.h" #include "JellyfinQt/dto/imagetype.h"
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -56,7 +60,7 @@ public:
static ImageProviderInfo fromJson(QJsonObject source); static ImageProviderInfo fromJson(QJsonObject source);
void setFromJson(QJsonObject source); void setFromJson(QJsonObject source);
QJsonObject toJson(); QJsonObject toJson() const;
// Properties // Properties
/** /**
@ -87,6 +91,18 @@ protected:
QList<ImageType> m_supportedImages; QList<ImageType> m_supportedImages;
}; };
} // NS DTO
namespace Support {
using ImageProviderInfo = Jellyfin::DTO::ImageProviderInfo;
template <>
ImageProviderInfo fromJsonValue(const QJsonValue &source, convertType<ImageProviderInfo>);
template<>
QJsonValue toJsonValue(const ImageProviderInfo &source, convertType<ImageProviderInfo>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

View file

@ -36,6 +36,10 @@
#include "JellyfinQt/support/jsonconv.h" #include "JellyfinQt/support/jsonconv.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin { namespace Jellyfin {
namespace DTO { namespace DTO {
@ -52,7 +56,19 @@ private:
explicit ImageSavingConventionClass(); explicit ImageSavingConventionClass();
}; };
typedef ImageSavingConventionClass::Value ImageSavingConvention; using ImageSavingConvention = ImageSavingConventionClass::Value;
} // NS DTO
namespace Support {
using ImageSavingConvention = Jellyfin::DTO::ImageSavingConvention;
template <>
ImageSavingConvention fromJsonValue(const QJsonValue &source, convertType<ImageSavingConvention>);
template <>
QJsonValue toJsonValue(const ImageSavingConvention &source, convertType<ImageSavingConvention>);
} // NS DTO } // NS DTO
} // NS Jellyfin } // NS Jellyfin

Some files were not shown because too many files have changed in this diff Show more