Lines Matching defs:pSink

40 int audioMixerUpdateSinkVolume(PAUDMIXSINK pSink, const PPDMAUDIOVOLUME pVolMaster, const PPDMAUDIOVOLUME pVolSink);
51 PAUDMIXSINK pSink = (PAUDMIXSINK)RTMemAllocZ(sizeof(AUDMIXSINK));
52 if (pSink)
54 pSink->pszName = RTStrDup(pszName);
55 if (!pSink->pszName)
60 pSink->pParent = pMixer;
61 pSink->cStreams = 0;
62 pSink->enmDir = enmDir;
63 RTListInit(&pSink->lstStreams);
66 pSink->Volume.fMuted = false;
67 pSink->Volume.uLeft = 0x7F;
68 pSink->Volume.uRight = 0x7F;
70 RTListAppend(&pMixer->lstSinks, &pSink->Node);
73 LogFlowFunc(("pMixer=%p, pSink=%p, cSinks=%RU8\n",
74 pMixer, pSink, pMixer->cSinks));
77 *ppSink = pSink;
80 RTMemFree(pSink);
88 int audioMixerAddStreamIn(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMIN pStream,
91 AssertPtrReturn(pSink, VERR_INVALID_POINTER);
98 if (pSink->cStreams == UINT8_MAX) /* 255 streams per sink max. */
109 RTListAppend(&pSink->lstStreams, &pMixStream->Node);
110 pSink->cStreams++;
113 pSink->pszName, pMixStream, pSink->cStreams));
126 int audioMixerAddStreamOut(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMOUT pStream,
129 AssertPtrReturn(pSink, VERR_INVALID_POINTER);
136 if (pSink->cStreams == UINT8_MAX) /* 255 streams per sink max. */
147 RTListAppend(&pSink->lstStreams, &pMixStream->Node);
148 pSink->cStreams++;
151 pSink->pszName, pMixStream, pSink->cStreams));
213 PAUDMIXSINK pSink = RTListGetFirst(&pMixer->lstSinks, AUDMIXSINK, Node);
214 while (pSink)
216 PAUDMIXSINK pNext = RTListNodeGetNext(&pSink->Node, AUDMIXSINK, Node);
217 bool fLast = RTListNodeIsLast(&pMixer->lstSinks, &pSink->Node);
219 audioMixerRemoveSink(pMixer, pSink);
224 pSink = pNext;
235 static void audioMixerDestroySink(PAUDMIXSINK pSink)
237 AssertPtrReturnVoid(pSink);
238 if (!pSink)
241 RTStrFree(pSink->pszName);
243 RTMemFree(pSink);
261 PAUDMIXSINK pSink;
262 RTListForEach(&pMixer->lstSinks, pSink, AUDMIXSINK, Node)
263 cStreams += pSink->cStreams;
275 PAUDMIXSINK pSink;
276 RTListForEach(&pMixer->lstSinks, pSink, AUDMIXSINK, Node)
278 int rc2 = audioMixerUpdateSinkVolume(pSink, &pMixer->VolMaster, &pSink->Volume);
283 int audioMixerProcessSinkIn(PAUDMIXSINK pSink, AUDMIXOP enmOp, void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed)
285 AssertPtrReturn(pSink, VERR_INVALID_POINTER);
299 LogFlowFunc(("%s: pvBuf=%p, cbBuf=%zu\n", pSink->pszName, pvBuf, cbBuf));
302 RTListForEach(&pSink->lstStreams, pStream, AUDMIXSTREAM, Node)
346 int audioMixerProcessSinkOut(PAUDMIXSINK pSink, AUDMIXOP enmOp, const void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed)
351 void audioMixerRemoveSink(PAUDIOMIXER pMixer, PAUDMIXSINK pSink)
354 if (!pSink)
357 PAUDMIXSTREAM pStream = RTListGetFirst(&pSink->lstStreams, AUDMIXSTREAM, Node);
361 bool fLast = RTListNodeIsLast(&pSink->lstStreams, &pStream->Node);
363 audioMixerRemoveStream(pSink, pStream);
371 Assert(pSink->cStreams == 0);
373 RTListNodeRemove(&pSink->Node);
377 LogFlowFunc(("%s: pSink=%s, cSinks=%RU8\n",
378 pMixer->pszName, pSink->pszName, pMixer->cSinks));
380 audioMixerDestroySink(pSink);
383 void audioMixerRemoveStream(PAUDMIXSINK pSink, PAUDMIXSTREAM pStream)
385 AssertPtrReturnVoid(pSink);
389 Assert(pSink->cStreams);
391 pSink->cStreams--;
393 const char *pszStream = pSink->enmDir == AUDMIXSINKDIR_INPUT
397 pSink->pszName, pszStream, pSink->cStreams));
446 int audioMixerUpdateSinkVolume(PAUDMIXSINK pSink, const PPDMAUDIOVOLUME pVolMaster, const PPDMAUDIOVOLUME pVolSink)
448 AssertPtrReturn(pSink, VERR_INVALID_POINTER);
455 pSink->pszName, pSink->Volume.fMuted, pSink->Volume.uLeft, pSink->Volume.uRight));
467 bool fOut = pSink->enmDir == AUDMIXSINKDIR_OUTPUT;
471 RTListForEach(&pSink->lstStreams, pStream, AUDMIXSTREAM, Node)
497 int audioMixerSetSinkVolume(PAUDMIXSINK pSink, PPDMAUDIOVOLUME pVol)
499 AssertPtrReturn(pSink, VERR_INVALID_POINTER);
502 LogFlowFunc(("%s: fMuted=%RTbool, lVol=%RU32, rVol=%RU32\n", pSink->pszName, pVol->fMuted, pVol->uLeft, pVol->uRight));
504 AssertPtr(pSink->pParent);
505 return audioMixerUpdateSinkVolume(pSink, &pSink->pParent->VolMaster, pVol);