ACMX 2.139.0
Dual-Backend Real-Time GPU Video Synthesis
Loading...
Searching...
No Matches
backend.hpp
Go to the documentation of this file.
1#ifndef ACMX2_INTERFACE_BACKEND_HPP
2#define ACMX2_INTERFACE_BACKEND_HPP
3
4#include <QString>
5#include <optional>
6
7namespace acmx2 {
8 enum class Backend { Acmx2, Acmxvk };
9
10 inline QString backend_id(Backend backend) { return backend == Backend::Acmxvk ? QStringLiteral("acmxvk") : QStringLiteral("acmx2"); }
11
12 inline QString backend_name(Backend backend) { return backend == Backend::Acmxvk ? QStringLiteral("ACMXVK") : QStringLiteral("ACMX2"); }
13
14 inline QString backend_settings_key(Backend backend, const QString &setting) { return QStringLiteral("backend/%1/%2").arg(backend_id(backend), setting); }
15
16 inline QString default_backend_executable(Backend backend) {
17#ifdef _WIN32
18 return backend == Backend::Acmxvk ? QStringLiteral("acmxvk.exe") : QStringLiteral("acmx2.exe");
19#else
20 return backend == Backend::Acmxvk ? QStringLiteral("acmxvk") : QStringLiteral("acmx2");
21#endif
22 }
23
24 inline std::optional<Backend> backend_from_id(const QString &value) {
25 const QString normalized = value.trimmed().toLower();
26 if (normalized == QStringLiteral("acmx2"))
27 return Backend::Acmx2;
28 if (normalized == QStringLiteral("acmxvk"))
29 return Backend::Acmxvk;
30 return std::nullopt;
31 }
32} // namespace acmx2
33
34#endif
QString default_backend_executable(Backend backend)
Definition backend.hpp:16
Backend
Definition backend.hpp:8
QString backend_settings_key(Backend backend, const QString &setting)
Definition backend.hpp:14
std::optional< Backend > backend_from_id(const QString &value)
Definition backend.hpp:24
QString backend_id(Backend backend)
Definition backend.hpp:10
QString backend_name(Backend backend)
Definition backend.hpp:12