Add settings dialog, camera controls

This commit is contained in:
2023-07-20 02:13:48 -05:00
parent a8327b2b67
commit 29cdc499e6
24 changed files with 793 additions and 82 deletions

142
src/settingsdata.cpp Normal file
View File

@@ -0,0 +1,142 @@
/*
* Copyright 2021 - 2023 gary@drinkingtea.net
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <QSettings>
#include "settingsdata.hpp"
void setCameraConnectionData(QSettings &settings, ConnectionData const&cd) {
settings.beginGroup("CameraClient");
settings.setValue("Host", cd.host);
settings.setValue("Port", cd.port);
settings.endGroup();
}
void setOpenLPConnectionData(QSettings &settings, ConnectionData const&cd) {
settings.beginGroup("OpenLPClient");
settings.setValue("Host", cd.host);
settings.setValue("Port", cd.port);
settings.endGroup();
}
void setOBSConnectionData(QSettings &settings, ConnectionData const&cd) {
settings.beginGroup("OBSClient");
settings.setValue("Host", cd.host);
settings.setValue("Port", cd.port);
settings.endGroup();
}
ConnectionData getCameraConnectionData(QSettings &settings) {
ConnectionData out;
settings.beginGroup("CameraClient");
out.host = settings.value("Host", "192.168.100.88").toString();
out.port = static_cast<uint16_t>(settings.value("Port", 80).toInt());
settings.endGroup();
return out;
}
ConnectionData getOpenLPConnectionData(QSettings &settings) {
ConnectionData out;
settings.beginGroup("OpenLPClient");
out.host = settings.value("Host", "127.0.0.1").toString();
out.port = static_cast<uint16_t>(settings.value("Port", 4316).toInt());
settings.endGroup();
return out;
}
ConnectionData getOBSConnectionData(QSettings &settings) {
ConnectionData out;
settings.beginGroup("OBSClient");
out.host = settings.value("Host", "127.0.0.1").toString();
out.port = static_cast<uint16_t>(settings.value("Port", 9302).toInt());
settings.endGroup();
return out;
}
void setCameraConnectionData(ConnectionData const&cd) {
QSettings settings;
settings.beginGroup("CameraClient");
settings.setValue("Host", cd.host);
settings.setValue("Port", cd.port);
settings.endGroup();
}
void setOpenLPConnectionData(ConnectionData const&cd) {
QSettings settings;
settings.beginGroup("OpenLPClient");
settings.setValue("Host", cd.host);
settings.setValue("Port", cd.port);
settings.endGroup();
}
void setOBSConnectionData(ConnectionData const&cd) {
QSettings settings;
settings.beginGroup("OBSClient");
settings.setValue("Host", cd.host);
settings.setValue("Port", cd.port);
settings.endGroup();
}
ConnectionData getCameraConnectionData() {
QSettings s;
return getCameraConnectionData(s);
}
ConnectionData getOpenLPConnectionData() {
QSettings s;
return getOpenLPConnectionData(s);
}
ConnectionData getOBSConnectionData() {
QSettings s;
return getOBSConnectionData(s);
}
void setViews(QSettings &settings, QVector<View> const&views) {
settings.beginGroup("Views");
settings.beginWriteArray("Views");
for (auto i = 0; auto const&view : views) {
settings.setArrayIndex(i);
settings.setValue("Name", view.name);
settings.setValue("Slides", view.slides);
settings.setValue("ObsSlides", view.obsSlides);
settings.setValue("Preset", view.cameraPreset);
++i;
}
settings.endArray();
settings.endGroup();
}
void setViews(QVector<View> const&views) {
QSettings s;
return setViews(s, views);
}
QVector<View> getViews(QSettings &settings) {
QVector<View> out;
settings.beginGroup("Views");
const auto size = settings.beginReadArray("Views");
for (auto i = 0; i < size; ++i) {
settings.setArrayIndex(i);
out.emplace_back(View{
.name = settings.value("Name").toString(),
.slides = settings.value("Slides").toBool(),
.obsSlides = settings.value("ObsSlides").toBool(),
.cameraPreset = settings.value("Preset").toInt(),
});
}
settings.endArray();
settings.endGroup();
return out;
}
QVector<View> getViews() {
QSettings s;
return getViews(s);
}