ACMX 2.136.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,
10
11 inline QString backend_id(Backend backend) {
12 return backend == Backend::Acmxvk ? QStringLiteral("acmxvk")
13 : QStringLiteral("acmx2");
14 }
15
16 inline QString backend_name(Backend backend) {
17 return backend == Backend::Acmxvk ? QStringLiteral("ACMXVK")
18 : QStringLiteral("ACMX2");
19 }
20
21 inline QString backend_settings_key(Backend backend,
22 const QString &setting) {
23 return QStringLiteral("backend/%1/%2")
24 .arg(backend_id(backend), setting);
25 }
26
27 inline QString default_backend_executable(Backend backend) {
28#ifdef _WIN32
29 return backend == Backend::Acmxvk ? QStringLiteral("acmxvk.exe")
30 : QStringLiteral("acmx2.exe");
31#else
32 return backend == Backend::Acmxvk ? QStringLiteral("acmxvk")
33 : QStringLiteral("acmx2");
34#endif
35 }
36
37 inline std::optional<Backend> backend_from_id(const QString &value) {
38 const QString normalized = value.trimmed().toLower();
39 if (normalized == QStringLiteral("acmx2"))
40 return Backend::Acmx2;
41 if (normalized == QStringLiteral("acmxvk"))
42 return Backend::Acmxvk;
43 return std::nullopt;
44 }
45} // namespace acmx2
46
47#endif
QString default_backend_executable(Backend backend)
Definition backend.hpp:27
Backend
Definition backend.hpp:8
QString backend_settings_key(Backend backend, const QString &setting)
Definition backend.hpp:21
std::optional< Backend > backend_from_id(const QString &value)
Definition backend.hpp:37
QString backend_id(Backend backend)
Definition backend.hpp:11
QString backend_name(Backend backend)
Definition backend.hpp:16