This commit is contained in:
Extremesecrecy
2025-07-27 16:08:10 -07:00
parent 3396907782
commit 9353503833
4 changed files with 21 additions and 108 deletions
+1 -74
View File
@@ -41,73 +41,11 @@
#include "SysExec.hpp"
#include "PiPedalAlsa.hpp"
#include <filesystem>
#include <sstream>
#include "FileEntry.hpp"
using namespace std;
using namespace pipedal;
static std::string JoinStrings(const std::vector<std::string> &values, const std::string &sep = ", ")
{
std::stringstream ss;
for (size_t i = 0; i < values.size(); ++i)
{
if (i != 0)
ss << sep;
ss << values[i];
}
return ss.str();
}
static void CheckJackServerSettings(const JackServerSettings &settings)
{
std::vector<std::string> missing;
if (settings.GetAlsaInputDevice().empty())
missing.push_back("alsaInputDevice");
if (settings.GetAlsaOutputDevice().empty())
missing.push_back("alsaOutputDevice");
if (settings.GetSampleRate() == 0)
missing.push_back("sampleRate");
if (settings.GetBufferSize() == 0)
missing.push_back("bufferSize");
if (settings.GetNumberOfBuffers() == 0)
missing.push_back("numberOfBuffers");
if (!missing.empty())
throw PiPedalArgumentException("Missing properties: " + JoinStrings(missing));
}
static void CheckWifiConfigSettings(const WifiConfigSettings &settings)
{
std::vector<std::string> missing;
if (settings.countryCode_.empty())
missing.push_back("countryCode");
if (settings.hotspotName_.empty())
missing.push_back("hotspotName");
if (settings.channel_.empty())
missing.push_back("channel");
if (settings.IsEnabled() && !settings.hasSavedPassword_ && settings.password_.empty())
missing.push_back("password");
if (!missing.empty())
throw PiPedalArgumentException("Missing properties: " + JoinStrings(missing));
}
static void CheckWifiDirectConfigSettings(const WifiDirectConfigSettings &settings)
{
std::vector<std::string> missing;
if (settings.countryCode_.empty())
missing.push_back("countryCode");
if (settings.hotspotName_.empty())
missing.push_back("hotspotName");
if (settings.pin_.empty())
missing.push_back("pin");
if (settings.channel_.empty())
missing.push_back("channel");
if (settings.wlan_.empty())
missing.push_back("wlan");
if (!missing.empty())
throw PiPedalArgumentException("Missing properties: " + JoinStrings(missing));
}
class PathPatchPropertyChangedBody
{
public:
@@ -1284,17 +1222,8 @@ public:
{
JackServerSettings jackServerSettings;
pReader->read(&jackServerSettings);
CheckJackServerSettings(jackServerSettings);
this->model.SetJackServerSettings(jackServerSettings, true);
this->model.SetJackServerSettings(jackServerSettings);
this->Reply(replyTo, "setJackserverSettings");
}
else if (message == "applyJackServerSettings")
{
JackServerSettings jackServerSettings;
pReader->read(&jackServerSettings);
CheckJackServerSettings(jackServerSettings);
this->model.SetJackServerSettings(jackServerSettings, false);
this->Reply(replyTo, "applyJackServerSettings");
}
else if (message == "setGovernorSettings")
{
@@ -1312,7 +1241,6 @@ public:
{
WifiConfigSettings wifiConfigSettings;
pReader->read(&wifiConfigSettings);
CheckWifiConfigSettings(wifiConfigSettings);
if (!GetAdminClient().CanUseAdminClient())
{
throw PiPedalException("Can't change server settings when running interactively.");
@@ -1334,7 +1262,6 @@ public:
{
WifiDirectConfigSettings wifiDirectConfigSettings;
pReader->read(&wifiDirectConfigSettings);
CheckWifiDirectConfigSettings(wifiDirectConfigSettings);
if (!GetAdminClient().CanUseAdminClient())
{
throw PiPedalException("Can't change server settings when running interactively.");