Node editor

This commit is contained in:
Joey Yakimowich-Payne 2026-02-06 08:01:27 -07:00
commit 21cd3bd3f9
4 changed files with 479 additions and 18 deletions

View file

@ -2140,9 +2140,28 @@ Status Client::DisableNodeMeter(NodeId node) {
meter->stream = nullptr;
pw_thread_loop_unlock(impl_->thread_loop);
}
impl_->AutoSave();
return Status::Ok();
}
Result<VirtualNodeInfo> Client::GetVirtualNodeInfo(NodeId node) const {
std::lock_guard<std::mutex> lock(impl_->cache_mutex);
auto it = impl_->virtual_streams.find(node.value);
if (it == impl_->virtual_streams.end())
return {Status::Error(StatusCode::kNotFound, "not a virtual node"), {}};
const auto &sd = *it->second;
VirtualNodeInfo info;
info.node = node;
info.name = sd.name;
info.is_source = sd.is_source;
info.loopback = sd.loopback;
info.target_node = sd.target_node;
info.rate = sd.rate;
info.channels = sd.channels;
return {Status::Ok(), std::move(info)};
}
Result<MeterState> Client::NodeMeterPeak(NodeId node) const {
std::lock_guard<std::mutex> lock(impl_->cache_mutex);
auto live_it = impl_->live_meters.find(node.value);