[idd] audio: bridge broker packets over LGMP streams

Add optional playback and capture streams to the LGMP transport.
Negotiate ownership over the existing control path and keep audio
availability isolated from display transport readiness.

Route broker packets through public LGMP stream APIs without changing
the LGMP queue table or shared-memory mapping.
This commit is contained in:
Geoffrey McRae
2026-09-02 01:47:11 +10:00
parent 947f03ede6
commit 348f92d8b6
11 changed files with 2079 additions and 17 deletions

View File

@@ -128,6 +128,31 @@ LGMP_STATUS CLGMPControl::AckData()
return lgmpHostAckData(m_pointerQueue);
}
LGMP_STATUS CLGMPControl::PostForClient(uint64_t udata,
PLGMPMemory memory, uint32_t clientID, unsigned& recipients)
{
recipients = 0;
if (!m_pointerQueue || !memory || !clientID)
return LGMP_ERR_INVALID_ARGUMENT;
return lgmpHostQueuePostForClients(m_pointerQueue, udata, memory,
&clientID, 1, &recipients);
}
bool CLGMPControl::PayloadPending(PLGMPMemory memory) const
{
return m_pointerQueue && memory &&
lgmpHostQueuePayloadPending(m_pointerQueue, memory);
}
LGMP_STATUS CLGMPControl::GetClientIDs(
uint32_t clientIDs[LGMP_MAX_CLIENTS], unsigned& count) const
{
count = 0;
if (!m_pointerQueue || !clientIDs)
return LGMP_ERR_INVALID_ARGUMENT;
return lgmpHostGetClientIDs(m_pointerQueue, clientIDs, &count);
}
bool CLGMPControl::HasNewSubscribers()
{
return lgmpHostQueueNewSubs(m_pointerQueue) != 0;