Fix virtual nodes
This commit is contained in:
parent
9f33bcd017
commit
1dd4ef7327
7 changed files with 113 additions and 22 deletions
|
|
@ -339,6 +339,8 @@ void Client::Impl::RegistryGlobal(void* data,
|
|||
info.application_name = LookupString(props, PW_KEY_APP_NAME);
|
||||
info.process_binary = LookupString(props, PW_KEY_APP_PROCESS_BINARY);
|
||||
info.media_role = LookupString(props, PW_KEY_MEDIA_ROLE);
|
||||
std::string virt_str = LookupString(props, PW_KEY_NODE_VIRTUAL);
|
||||
info.is_virtual = (virt_str == "true");
|
||||
impl->nodes[id] = info;
|
||||
impl->CheckRulesForNode(info);
|
||||
return;
|
||||
|
|
@ -1098,7 +1100,13 @@ Result<std::vector<NodeInfo>> Client::ListNodes() {
|
|||
std::vector<NodeInfo> items;
|
||||
items.reserve(impl_->nodes.size());
|
||||
for (const auto& entry : impl_->nodes) {
|
||||
items.push_back(entry.second);
|
||||
NodeInfo info = entry.second;
|
||||
if (!info.is_virtual &&
|
||||
impl_->virtual_streams.find(entry.first) !=
|
||||
impl_->virtual_streams.end()) {
|
||||
info.is_virtual = true;
|
||||
}
|
||||
items.push_back(std::move(info));
|
||||
}
|
||||
return {Status::Ok(), std::move(items)};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue