diff --git a/src/config/desktop-ep/create-endpoint.lua b/src/config/desktop-ep/create-endpoint.lua index b47f9fbf656de2f07450d9e5ea9d47ab28ad868e..c28463fec5c972196331cb1ad3e62f57cea7e0a5 100644 --- a/src/config/desktop-ep/create-endpoint.lua +++ b/src/config/desktop-ep/create-endpoint.lua @@ -11,6 +11,7 @@ session_items = { } function addEndpoint (node, session_name, endpoint_type, priority) + local id = node["bound-id"] local name = node.properties['node.name'] local media_class = node.properties['media.class'] local session = nil @@ -25,10 +26,10 @@ function addEndpoint (node, session_name, endpoint_type, priority) end -- create endpoint - session_items.endpoints[node] = SessionItem ( endpoint_type ) + session_items.endpoints[id] = SessionItem ( endpoint_type ) -- configure endpoint - if not session_items.endpoints[node]:configure ({ + if not session_items.endpoints[id]:configure ({ "node", node, "name", name, "media-class", media_class, @@ -39,7 +40,7 @@ function addEndpoint (node, session_name, endpoint_type, priority) end -- activate endpoint - session_items.endpoints[node]:activate (function (activated_ep) + session_items.endpoints[id]:activate (function (activated_ep) Log.debug(node, "activated endpoint " .. name); -- export endpoint @@ -49,17 +50,17 @@ function addEndpoint (node, session_name, endpoint_type, priority) -- only use monitor for input endpoints if string.find (media_class, "Input") or string.find (media_class, "Sink") then -- create monitor - session_items.monitors[node] = SessionItem ( "si-monitor-endpoint" ) + session_items.monitors[id] = SessionItem ( "si-monitor-endpoint" ) -- configure monitor - if not session_items.monitors[node]:configure ({ - "adapter", session_items.endpoints[node] + if not session_items.monitors[id]:configure ({ + "adapter", session_items.endpoints[id] }) then Log.warning(node, "failed to configure monitor " .. name); end -- activate monitor - session_items.monitors[node]:activate (function (activated_mon) + session_items.monitors[id]:activate (function (activated_mon) Log.debug(node, "activated monitor " .. name); -- export monitor @@ -73,8 +74,9 @@ function addEndpoint (node, session_name, endpoint_type, priority) end function removeEndpoint (node) - session_items.monitors[node] = nil - session_items.endpoints[node] = nil + local id = node["bound-id"] + session_items.monitors[id] = nil + session_items.endpoints[id] = nil end sessions_om = ObjectManager { Interest { type = "session" } }