GUI M8d
This commit is contained in:
parent
e649dea9c1
commit
a07f94c93d
10 changed files with 718 additions and 25 deletions
|
|
@ -84,11 +84,28 @@ bool PresetManager::savePreset(const QString &path, warppipe::Client *client,
|
|||
layoutArray.append(nodeLayout);
|
||||
}
|
||||
|
||||
QJsonArray volumesArray;
|
||||
for (auto qtId : model->allNodeIds()) {
|
||||
const WarpNodeData *data = model->warpNodeData(qtId);
|
||||
if (!data)
|
||||
continue;
|
||||
auto vs = model->nodeVolumeState(qtId);
|
||||
if (vs.volume != 1.0f || vs.mute) {
|
||||
QJsonObject volObj;
|
||||
volObj["name"] = QString::fromStdString(data->info.name);
|
||||
volObj["volume"] = static_cast<double>(vs.volume);
|
||||
volObj["mute"] = vs.mute;
|
||||
volumesArray.append(volObj);
|
||||
}
|
||||
}
|
||||
|
||||
QJsonObject root;
|
||||
root["version"] = 1;
|
||||
root["virtual_devices"] = devicesArray;
|
||||
root["routing"] = routingArray;
|
||||
root["layout"] = layoutArray;
|
||||
if (!volumesArray.isEmpty())
|
||||
root["volumes"] = volumesArray;
|
||||
|
||||
QFileInfo fi(path);
|
||||
QDir dir = fi.absoluteDir();
|
||||
|
|
@ -173,5 +190,27 @@ bool PresetManager::loadPreset(const QString &path, warppipe::Client *client,
|
|||
}
|
||||
|
||||
model->refreshFromClient();
|
||||
|
||||
if (root.contains("volumes")) {
|
||||
QJsonArray volumesArray = root["volumes"].toArray();
|
||||
for (const auto &val : volumesArray) {
|
||||
QJsonObject obj = val.toObject();
|
||||
std::string name = obj["name"].toString().toStdString();
|
||||
float volume = static_cast<float>(obj["volume"].toDouble(1.0));
|
||||
bool mute = obj["mute"].toBool(false);
|
||||
|
||||
for (auto qtId : model->allNodeIds()) {
|
||||
const WarpNodeData *data = model->warpNodeData(qtId);
|
||||
if (data && data->info.name == name) {
|
||||
WarpGraphModel::NodeVolumeState vs;
|
||||
vs.volume = volume;
|
||||
vs.mute = mute;
|
||||
model->setNodeVolumeState(qtId, vs);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue