Index: /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp	(revision 55920)
@@ -83,6 +83,6 @@
 
 
-/**   Logarithmic/exponential volume conversion table. */
-uint32_t aVolumeConv[256] = {
+/** Logarithmic/exponential volume conversion table. */
+static uint32_t s_aVolumeConv[256] = {
         1,     1,     1,     1,     1,     1,     1,     1, /*   7 */
         1,     2,     2,     2,     2,     2,     2,     2, /*  15 */
@@ -120,11 +120,11 @@
 
 /* Bit shift for fixed point conversion. */
-#define VOL_SHIFT       30
+#define AUDIOMIXBUF_VOL_SHIFT       30
 
 /* Internal representation of 0dB volume (1.0 in fixed point). */
-#define VOL_0DB         (1 << VOL_SHIFT)
-
-AssertCompile(VOL_0DB <= 0x40000000);   /* Must always hold. */
-AssertCompile(VOL_0DB == 0x40000000);   /* For now -- when only attenuation is used. */
+#define AUDIOMIXBUF_VOL_0DB         (1 << AUDIOMIXBUF_VOL_SHIFT)
+
+AssertCompile(AUDIOMIXBUF_VOL_0DB <= 0x40000000);   /* Must always hold. */
+AssertCompile(AUDIOMIXBUF_VOL_0DB == 0x40000000);   /* For now -- when only attenuation is used. */
 
 /**
@@ -155,8 +155,6 @@
 #ifdef DEBUG
 static uint64_t s_cSamplesMixedTotal = 0;
+static inline void audioMixBufPrint(PPDMAUDIOMIXBUF pMixBuf);
 #endif
-
-static void audioMixBufFreeBuf(PPDMAUDIOMIXBUF pMixBuf);
-static inline void audioMixBufPrint(PPDMAUDIOMIXBUF pMixBuf);
 
 typedef uint32_t (AUDMIXBUF_FN_CONVFROM) (PPDMAUDIOSAMPLE paDst, const void *pvSrc, uint32_t cbSrc, const PAUDMIXBUF_CONVOPTS pOpts);
@@ -167,5 +165,20 @@
 
 /* Can return VINF_TRY_AGAIN for getting next pointer at beginning (circular) */
-int audioMixBufAcquire(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToRead,
+
+/**
+ * Acquires (reads) a mutable pointer to the mixing buffer's audio samples without
+ * any conversion done.
+ ** @todo Rename to AudioMixBufPeek(Mutable/Raw)?
+ ** @todo Protect the buffer's data?
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to acquire audio samples from.
+ * @param   cSamplesToRead          Number of audio samples to read.
+ * @param   ppvSamples              Returns a mutable pointer to the buffer's audio sample data.
+ * @param   pcSamplesRead           Number of audio samples read (acquired).
+ *
+ * @remark  This function is not thread safe!
+ */
+int AudioMixBufAcquire(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToRead,
                        PPDMAUDIOSAMPLE *ppvSamples, uint32_t *pcSamplesRead)
 {
@@ -210,8 +223,8 @@
  * keeps track to eventually assigned children buffers.
  *
- * @param   pMixBuf
- * @param   cSamplesToClear
- */
-void audioMixBufFinish(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToClear)
+ * @param   pMixBuf                 Mixing buffer to clear.
+ * @param   cSamplesToClear         Number of audio samples to clear.
+ */
+void AudioMixBufFinish(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToClear)
 {
     AUDMIXBUF_LOG(("cSamples=%RU32\n", cSamplesToClear));
@@ -255,10 +268,15 @@
 }
 
-void audioMixBufDestroy(PPDMAUDIOMIXBUF pMixBuf)
+/**
+ * Destroys (uninitializes) a mixing buffer.
+ *
+ * @param   pMixBuf                 Mixing buffer to destroy.
+ */
+void AudioMixBufDestroy(PPDMAUDIOMIXBUF pMixBuf)
 {
     if (!pMixBuf)
         return;
 
-    audioMixBufUnlink(pMixBuf);
+    AudioMixBufUnlink(pMixBuf);
 
     if (pMixBuf->pszName)
@@ -276,13 +294,26 @@
     }
 
-    audioMixBufFreeBuf(pMixBuf);
-}
-
-/** @todo Rename this function! Too confusing in combination with audioMixBufFreeBuf(). */
-uint32_t audioMixBufFree(PPDMAUDIOMIXBUF pMixBuf)
+    if (pMixBuf->pSamples)
+    {
+        Assert(pMixBuf->cSamples);
+
+        RTMemFree(pMixBuf->pSamples);
+        pMixBuf->pSamples = NULL;
+    }
+
+    pMixBuf->cSamples = 0;
+}
+
+/**
+ * Returns the size (in audio samples) of free audio buffer space.
+ *
+ * @return  uint32_t                Size (in audio samples) of free audio buffer space.
+ * @param   pMixBuf                 Mixing buffer to return free size for.
+ */
+uint32_t AudioMixBufFree(PPDMAUDIOMIXBUF pMixBuf)
 {
     AssertPtrReturn(pMixBuf, 0);
 
-    uint32_t cFree;
+    uint32_t cSamplesFree;
     if (pMixBuf->pParent)
     {
@@ -292,19 +323,35 @@
          */
         Assert(pMixBuf->cMixed <= pMixBuf->pParent->cSamples);
-        cFree = pMixBuf->pParent->cSamples - pMixBuf->cMixed;
-    }
-    else
-        cFree = pMixBuf->cSamples - pMixBuf->cProcessed;
-
-    AUDMIXBUF_LOG(("%s: cFree=%RU32\n", pMixBuf->pszName, cFree));
-    return cFree;
-}
-
-uint32_t audioMixBufFreeBytes(PPDMAUDIOMIXBUF pMixBuf)
-{
-    return AUDIOMIXBUF_S2B(pMixBuf, audioMixBufFree(pMixBuf));
-}
-
-static int audioMixBufAllocBuf(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples)
+        cSamplesFree = pMixBuf->pParent->cSamples - pMixBuf->cMixed;
+    }
+    else /* As a parent. */
+    {
+        Assert(pMixBuf->cSamples >= pMixBuf->cProcessed);
+        cSamplesFree = pMixBuf->cSamples - pMixBuf->cProcessed;
+    }
+
+    AUDMIXBUF_LOG(("%s: cSamplesFree=%RU32\n", pMixBuf->pszName, cSamplesFree));
+    return cSamplesFree;
+}
+
+/**
+ * Returns the size (in bytes) of free audio buffer space.
+ *
+ * @return  uint32_t                Size (in bytes) of free audio buffer space.
+ * @param   pMixBuf                 Mixing buffer to return free size for.
+ */
+uint32_t AudioMixBufFreeBytes(PPDMAUDIOMIXBUF pMixBuf)
+{
+    return AUDIOMIXBUF_S2B(pMixBuf, AudioMixBufFree(pMixBuf));
+}
+
+/**
+ * Allocates the internal audio sample buffer.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to allocate sample buffer for.
+ * @param   cSamples                Number of audio samples to allocate.
+ */
+static int audioMixBufAlloc(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples)
 {
     AssertPtrReturn(pMixBuf, VERR_INVALID_POINTER);
@@ -376,6 +423,6 @@
         { \
             AUDMIXBUF_MACRO_LOG(("%p: l=%RI16, r=%RI16\n", paDst, *pSrc, *(pSrc + 1))); \
-            paDst->i64LSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc++), pOpts->Volume.uLeft ) >> VOL_SHIFT; \
-            paDst->i64RSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc++), pOpts->Volume.uRight) >> VOL_SHIFT; \
+            paDst->i64LSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc++), pOpts->Volume.uLeft ) >> AUDIOMIXBUF_VOL_SHIFT; \
+            paDst->i64RSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc++), pOpts->Volume.uRight) >> AUDIOMIXBUF_VOL_SHIFT; \
             AUDMIXBUF_MACRO_LOG(("\t-> l=%RI64, r=%RI64\n", paDst->i64LSample, paDst->i64RSample)); \
             paDst++; \
@@ -395,6 +442,6 @@
         { \
             AUDMIXBUF_MACRO_LOG(("%p: s=%RI16\n", paDst, *pSrc)); \
-            paDst->i64LSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc), pOpts->Volume.uLeft) >> VOL_SHIFT; \
-            paDst->i64RSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc), pOpts->Volume.uRight) >> VOL_SHIFT; \
+            paDst->i64LSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc), pOpts->Volume.uLeft)  >> AUDIOMIXBUF_VOL_SHIFT; \
+            paDst->i64RSample = ASMMult2xS32RetS64((int32_t)audioMixBufClipFrom##_aName(*pSrc), pOpts->Volume.uRight) >> AUDIOMIXBUF_VOL_SHIFT; \
             ++pSrc; \
             AUDMIXBUF_MACRO_LOG(("\t-> l=%RI64, r=%RI64\n", paDst->i64LSample, paDst->i64RSample)); \
@@ -570,10 +617,12 @@
 
 /**
+ * Looks up the matching conversion (macro) routine for converting
+ * audio samples from a source format.
  *
  ** @todo Speed up the lookup by binding it to the actual stream state.
  *
- * @return  PAUDMIXBUF_FN_CONVFROM
- * @param   enmFmt      The source audio stream format
- * @param   fMuted      Flag determining whether the source is muted
+ * @return  PAUDMIXBUF_FN_CONVFROM  Function pointer to conversion macro if found, NULL if not supported.
+ * @param   enmFmt                  Audio format to lookup conversion macro for.
+ * @param   fMuted                  Flag determining whether the source is muted.
  */
 static inline PAUDMIXBUF_FN_CONVFROM audioMixBufConvFromLookup(PDMAUDIOMIXBUFFMT enmFmt, bool fMuted)
@@ -633,9 +682,11 @@
 
 /**
+ * Looks up the matching conversion (macro) routine for converting
+ * audio samples to a destination format.
  *
  ** @todo Speed up the lookup by binding it to the actual stream state.
  *
- * @return  PAUDMIXBUF_FN_CONVTO
- * @param   enmFmt
+ * @return  PAUDMIXBUF_FN_CONVTO    Function pointer to conversion macro if found, NULL if not supported.
+ * @param   enmFmt                  Audio format to lookup conversion macro for.
  */
 static inline PAUDMIXBUF_FN_CONVTO audioMixBufConvToLookup(PDMAUDIOMIXBUFFMT enmFmt)
@@ -691,19 +742,14 @@
 }
 
-static void audioMixBufFreeBuf(PPDMAUDIOMIXBUF pMixBuf)
-{
-    if (pMixBuf)
-    {
-        if (pMixBuf->pSamples)
-        {
-            RTMemFree(pMixBuf->pSamples);
-            pMixBuf->pSamples = NULL;
-        }
-
-        pMixBuf->cSamples = 0;
-    }
-}
-
-int audioMixBufInit(PPDMAUDIOMIXBUF pMixBuf, const char *pszName, PPDMPCMPROPS pProps, uint32_t cSamples)
+/**
+ * Initializes a mixing buffer.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to initialize.
+ * @param   pszName                 Name of mixing buffer for easier identification. Optional.
+ * @param   pProps                  PCM audio properties to use for the mixing buffer.
+ * @param   cSamples                Maximum number of audio samples the mixing buffer can hold.
+ */
+int AudioMixBufInit(PPDMAUDIOMIXBUF pMixBuf, const char *pszName, PPDMPCMPROPS pProps, uint32_t cSamples)
 {
     AssertPtrReturn(pMixBuf, VERR_INVALID_POINTER);
@@ -723,6 +769,6 @@
     /* Set initial volume to max. */
     pMixBuf->Volume.fMuted = false;
-    pMixBuf->Volume.uLeft  = VOL_0DB;
-    pMixBuf->Volume.uRight = VOL_0DB;
+    pMixBuf->Volume.uLeft  = AUDIOMIXBUF_VOL_0DB;
+    pMixBuf->Volume.uRight = AUDIOMIXBUF_VOL_0DB;
 
     /* Prevent division by zero.
@@ -748,8 +794,15 @@
                    RT_BOOL(AUDMIXBUF_FMT_SIGNED(pMixBuf->AudioFmt))));
 
-    return audioMixBufAllocBuf(pMixBuf, cSamples);
-}
-
-bool audioMixBufIsEmpty(PPDMAUDIOMIXBUF pMixBuf)
+    return audioMixBufAlloc(pMixBuf, cSamples);
+}
+
+/**
+ * Returns @true if there are any audio samples available for processing,
+ * @false if not.
+ *
+ * @return  bool                    @true if there are any audio samples available for processing, @false if not.
+ * @param   pMixBuf                 Mixing buffer to return value for.
+ */
+bool AudioMixBufIsEmpty(PPDMAUDIOMIXBUF pMixBuf)
 {
     AssertPtrReturn(pMixBuf, true);
@@ -760,5 +813,25 @@
 }
 
-int audioMixBufLinkTo(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOMIXBUF pParent)
+/**
+ * Links an audio mixing buffer to a parent mixing buffer. A parent mixing
+ * buffer can have multiple children mixing buffers [1:N], whereas a child only can
+ * have one parent mixing buffer [N:1].
+ *
+ * The mixing direction always goes from the child/children buffer(s) to the
+ * parent buffer.
+ *
+ * For guest audio output the host backend owns the parent mixing buffer, the
+ * device emulation owns the child/children.
+ *
+ * The audio format of each mixing buffer can vary; the internal mixing code
+ * then will autiomatically do the (needed) conversion.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to link parent to.
+ * @param   pParent                 Parent mixing buffer to use for linking.
+ *
+ * @remark  Circular linking is not allowed.
+ */
+int AudioMixBufLinkTo(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOMIXBUF pParent)
 {
     AssertPtrReturn(pMixBuf, VERR_INVALID_POINTER);
@@ -847,5 +920,12 @@
 }
 
-uint32_t audioMixBufMixed(PPDMAUDIOMIXBUF pMixBuf)
+/**
+ * Returns the number of audio samples mixed (processed) from
+ * the parent mixing buffer.
+ *
+ * @return  uint32_t                Number of audio samples mixed (processed).
+ * @param   pMixBuf                 Mixing buffer to return number from.
+ */
+uint32_t AudioMixBufMixed(PPDMAUDIOMIXBUF pMixBuf)
 {
     AssertPtrReturn(pMixBuf, 0);
@@ -859,4 +939,13 @@
 }
 
+/**
+ * Mixes audio samples from a source mixing buffer to a destination mixing buffer.
+ *
+ * @return  IPRT status code.
+ * @param   pDst                    Destination mixing buffer.
+ * @param   pSrc                    Source mixing buffer.
+ * @param   cSamples                Number of source audio samples to mix.
+ * @param   pcProcessed             Number of audio samples successfully mixed.
+ */
 static int audioMixBufMixTo(PPDMAUDIOMIXBUF pDst, PPDMAUDIOMIXBUF pSrc, uint32_t cSamples, uint32_t *pcProcessed)
 {
@@ -942,7 +1031,25 @@
 }
 
-int audioMixBufMixToChildren(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples,
+/**
+ * Mixes (multiplexes) audio samples to all connected mixing buffer children.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to use.
+ * @param   cSamples                Number of audio samples to mix to children.
+ * @param   pcProcessed             Maximum number of audio samples successfully mixed
+ *                                  to all children. Optional.
+ */
+int AudioMixBufMixToChildren(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples,
                              uint32_t *pcProcessed)
 {
+    AssertPtrReturn(pMixBuf, VERR_INVALID_POINTER);
+
+    if (!cSamples)
+    {
+        if (pcProcessed)
+            *pcProcessed = 0;
+        return VINF_SUCCESS;
+    }
+
     int rc = VINF_SUCCESS;
 
@@ -966,5 +1073,13 @@
 }
 
-int audioMixBufMixToParent(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples,
+/**
+ * Mixes audio samples down to the parent mixing buffer.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to mix samples down to parent.
+ * @param   cSamples                Number of audio samples to mix down.
+ * @param   pcProcessed             Number of audio samples successfully processed. Optional.
+ */
+int AudioMixBufMixToParent(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples,
                            uint32_t *pcProcessed)
 {
@@ -976,7 +1091,14 @@
 }
 
+#ifdef DEBUG
+/**
+ * Prints statistics and status of a mixing buffer to the logger.
+ * For debug versions only.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to print.
+ */
 static inline void audioMixBufPrint(PPDMAUDIOMIXBUF pMixBuf)
 {
-#ifdef DEBUG_DISABLED
     PPDMAUDIOMIXBUF pParent = pMixBuf;
     if (pMixBuf->pParent)
@@ -999,6 +1121,6 @@
     AUDMIXBUF_LOG(("Total samples mixed: %RU64\n", s_cSamplesMixedTotal));
     AUDMIXBUF_LOG(("********************************************\n"));
+}
 #endif
-}
 
 /**
@@ -1008,5 +1130,5 @@
  * @param   pMixBuf
  */
-uint32_t audioMixBufProcessed(PPDMAUDIOMIXBUF pMixBuf)
+uint32_t AudioMixBufProcessed(PPDMAUDIOMIXBUF pMixBuf)
 {
     AssertPtrReturn(pMixBuf, 0);
@@ -1016,14 +1138,37 @@
 }
 
-int audioMixBufReadAt(PPDMAUDIOMIXBUF pMixBuf,
+/**
+ * Reads audio samples at a specific offset.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to read audio samples from.
+ * @param   offSamples              Offset (in audio samples) to start reading from.
+ * @param   pvBuf                   Pointer to buffer to write output to.
+ * @param   cbBuf                   Size (in bytes) of buffer to write to.
+ * @param   pcbRead                 Size (in bytes) of data read. Optional.
+ */
+int AudioMixBufReadAt(PPDMAUDIOMIXBUF pMixBuf,
                       uint32_t offSamples,
                       void *pvBuf, uint32_t cbBuf,
                       uint32_t *pcbRead)
 {
-    return audioMixBufReadAtEx(pMixBuf, pMixBuf->AudioFmt,
+    return AudioMixBufReadAtEx(pMixBuf, pMixBuf->AudioFmt,
                                offSamples, pvBuf, cbBuf, pcbRead);
 }
 
-int audioMixBufReadAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
+/**
+ * Reads audio samples at a specific offset.
+ * If the audio format of the mixing buffer and the requested audio format do
+ * not match the output will be converted accordingly.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to read audio samples from.
+ * @param   enmFmt                  Audio format to use for output.
+ * @param   offSamples              Offset (in audio samples) to start reading from.
+ * @param   pvBuf                   Pointer to buffer to write output to.
+ * @param   cbBuf                   Size (in bytes) of buffer to write to.
+ * @param   pcbRead                 Size (in bytes) of data read. Optional.
+ */
+int AudioMixBufReadAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
                         uint32_t offSamples,
                         void *pvBuf, uint32_t cbBuf,
@@ -1058,5 +1203,7 @@
             rc = VERR_INVALID_PARAMETER;
 
+#ifdef DEBUG
         audioMixBufPrint(pMixBuf);
+#endif
     }
     else
@@ -1073,12 +1220,33 @@
 }
 
-int audioMixBufReadCirc(PPDMAUDIOMIXBUF pMixBuf,
+/**
+ * Reads audio samples. The audio format of the mixing buffer will be used.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to read audio samples from.
+ * @param   pvBuf                   Pointer to buffer to write output to.
+ * @param   cbBuf                   Size (in bytes) of buffer to write to.
+ * @param   pcRead                  Number of audio samples read. Optional.
+ */
+int AudioMixBufReadCirc(PPDMAUDIOMIXBUF pMixBuf,
                         void *pvBuf, uint32_t cbBuf, uint32_t *pcRead)
 {
-    return audioMixBufReadCircEx(pMixBuf, pMixBuf->AudioFmt,
+    return AudioMixBufReadCircEx(pMixBuf, pMixBuf->AudioFmt,
                                  pvBuf, cbBuf, pcRead);
 }
 
-int audioMixBufReadCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
+/**
+ * Reads audio samples in a specific audio format.
+ * If the audio format of the mixing buffer and the requested audio format do
+ * not match the output will be converted accordingly.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to read audio samples from.
+ * @param   enmFmt                  Audio format to use for output.
+ * @param   pvBuf                   Pointer to buffer to write output to.
+ * @param   cbBuf                   Size (in bytes) of buffer to write to.
+ * @param   pcRead                  Number of audio samples read. Optional.
+ */
+int AudioMixBufReadCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
                           void *pvBuf, uint32_t cbBuf, uint32_t *pcRead)
 {
@@ -1098,6 +1266,7 @@
     if (!cToRead)
     {
+#ifdef DEBUG
         audioMixBufPrint(pMixBuf);
-
+#endif
         if (pcRead)
             *pcRead = 0;
@@ -1180,5 +1349,7 @@
     }
 
+#ifdef DEBUG
     audioMixBufPrint(pMixBuf);
+#endif
 
     AUDMIXBUF_LOG(("cRead=%RU32 (%zu bytes), rc=%Rrc\n",
@@ -1188,5 +1359,10 @@
 }
 
-void audioMixBufReset(PPDMAUDIOMIXBUF pMixBuf)
+/**
+ * Resets a mixing buffer.
+ *
+ * @param   pMixBuf                 Mixing buffer to reset.
+ */
+void AudioMixBufReset(PPDMAUDIOMIXBUF pMixBuf)
 {
     AssertPtrReturnVoid(pMixBuf);
@@ -1202,5 +1378,11 @@
 }
 
-void audioMixBufSetVolume(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOVOLUME pVol)
+/**
+ * Sets the overall (master) volume.
+ *
+ * @param   pMixBuf                 Mixing buffer to set volume for.
+ * @param   pVol                    Pointer to volume structure to set.
+ */
+void AudioMixBufSetVolume(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOVOLUME pVol)
 {
     AssertPtrReturnVoid(pMixBuf);
@@ -1210,13 +1392,20 @@
 
     pMixBuf->Volume.fMuted = pVol->fMuted;
-    //@todo: Ensure that the input is in the correct range/initialized!
-    pMixBuf->Volume.uLeft  = aVolumeConv[pVol->uLeft  & 0xFF] * (VOL_0DB >> 16);
-    pMixBuf->Volume.uRight = aVolumeConv[pVol->uRight & 0xFF] * (VOL_0DB >> 16);
+    /** @todo Ensure that the input is in the correct range/initialized! */
+    pMixBuf->Volume.uLeft  = s_aVolumeConv[pVol->uLeft  & 0xFF] * (AUDIOMIXBUF_VOL_0DB >> 16);
+    pMixBuf->Volume.uRight = s_aVolumeConv[pVol->uRight & 0xFF] * (AUDIOMIXBUF_VOL_0DB >> 16);
 
     LogFlowFunc(("\t-> lVol=%#RX32, rVol=%#RX32\n", pMixBuf->Volume.uLeft, pMixBuf->Volume.uRight));
 }
 
-uint32_t audioMixBufSize(PPDMAUDIOMIXBUF pMixBuf)
-{
+/**
+ * Returns the maximum amount of audio samples this buffer can hold.
+ *
+ * @return  uint32_t                Size (in audio samples) the mixing buffer can hold.
+ * @param   pMixBuf                 Mixing buffer to retrieve maximum for.
+ */
+uint32_t AudioMixBufSize(PPDMAUDIOMIXBUF pMixBuf)
+{
+    AssertPtrReturn(pMixBuf, 0);
     return pMixBuf->cSamples;
 }
@@ -1225,13 +1414,20 @@
  * Returns the maximum amount of bytes this buffer can hold.
  *
- * @return  uint32_t
- * @param   pMixBuf
- */
-uint32_t audioMixBufSizeBytes(PPDMAUDIOMIXBUF pMixBuf)
-{
+ * @return  uint32_t                Size (in bytes) the mixing buffer can hold.
+ * @param   pMixBuf                 Mixing buffer to retrieve maximum for.
+ */
+uint32_t AudioMixBufSizeBytes(PPDMAUDIOMIXBUF pMixBuf)
+{
+    AssertPtrReturn(pMixBuf, 0);
     return AUDIOMIXBUF_S2B(pMixBuf, pMixBuf->cSamples);
 }
 
-void audioMixBufUnlink(PPDMAUDIOMIXBUF pMixBuf)
+/**
+ * Unlinks a mixing buffer from its parent, if any.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Mixing buffer to unlink from parent.
+ */
+void AudioMixBufUnlink(PPDMAUDIOMIXBUF pMixBuf)
 {
     if (!pMixBuf || !pMixBuf->pszName)
@@ -1249,5 +1445,5 @@
         /* Make sure to reset the parent mixing buffer each time it gets linked
          * to a new child. */
-        audioMixBufReset(pMixBuf->pParent);
+        AudioMixBufReset(pMixBuf->pParent);
         pMixBuf->pParent = NULL;
     }
@@ -1260,5 +1456,5 @@
         AUDMIXBUF_LOG(("\tUnlinking \"%s\"\n", pIter->pszName));
 
-        audioMixBufReset(pIter->pParent);
+        AudioMixBufReset(pIter->pParent);
         pIter->pParent = NULL;
 
@@ -1275,26 +1471,39 @@
 }
 
-int audioMixBufWriteAt(PPDMAUDIOMIXBUF pMixBuf,
+/**
+ * Writes audio samples at a specific offset.
+ * The sample format being written must match the format of the mixing buffer.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Pointer to mixing buffer to write to.
+ * @param   enmFmt                  Audio format supplied in the buffer.
+ * @param   offSamples              Offset (in samples) starting to write at.
+ * @param   pvBuf                   Pointer to audio buffer to be written.
+ * @param   cbBuf                   Size (in bytes) of audio buffer.
+ * @param   pcWritten               Returns number of audio samples written. Optional.
+ */
+int AudioMixBufWriteAt(PPDMAUDIOMIXBUF pMixBuf,
                        uint32_t offSamples,
                        const void *pvBuf, uint32_t cbBuf,
                        uint32_t *pcWritten)
 {
-    return audioMixBufWriteAtEx(pMixBuf, pMixBuf->AudioFmt,
+    return AudioMixBufWriteAtEx(pMixBuf, pMixBuf->AudioFmt,
                                 offSamples, pvBuf, cbBuf, pcWritten);
 }
 
 /**
- * TODO
+ * Writes audio samples at a specific offset. The audio sample format
+ * to be written can be different from the audio format the mixing buffer
+ * operates on.
  *
  * @return  IPRT status code.
- * @return  int
- * @param   pMixBuf
- * @param   enmFmt
- * @param   offSamples
- * @param   pvBuf
- * @param   cbBuf
- * @param   pcWritten           Returns number of samples written. Optional.
- */
-int audioMixBufWriteAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
+ * @param   pMixBuf                 Pointer to mixing buffer to write to.
+ * @param   enmFmt                  Audio format supplied in the buffer.
+ * @param   offSamples              Offset (in samples) starting to write at.
+ * @param   pvBuf                   Pointer to audio buffer to be written.
+ * @param   cbBuf                   Size (in bytes) of audio buffer.
+ * @param   pcWritten               Returns number of audio samples written. Optional.
+ */
+int AudioMixBufWriteAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
                          uint32_t offSamples,
                          const void *pvBuf, uint32_t cbBuf,
@@ -1342,6 +1551,7 @@
 
         cWritten = pConv(pMixBuf->pSamples + offSamples, pvBuf, cbBuf, &convOpts);
+#ifdef DEBUG
         audioMixBufPrint(pMixBuf);
-
+#endif
         rc = cWritten ? VINF_SUCCESS : VERR_GENERAL_FAILURE; /** @todo Fudge! */
     }
@@ -1362,12 +1572,32 @@
 }
 
-int audioMixBufWriteCirc(PPDMAUDIOMIXBUF pMixBuf,
+/**
+ * Writes audio samples. The sample format being written must match the
+ * format of the mixing buffer.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Pointer to mixing buffer to write to.
+ * @param   pvBuf                   Pointer to audio buffer to be written.
+ * @param   cbBuf                   Size (in bytes) of audio buffer.
+ * @param   pcWritten               Returns number of audio samples written. Optional.
+ */
+int AudioMixBufWriteCirc(PPDMAUDIOMIXBUF pMixBuf,
                          const void *pvBuf, uint32_t cbBuf,
                          uint32_t *pcWritten)
 {
-    return audioMixBufWriteCircEx(pMixBuf, pMixBuf->AudioFmt, pvBuf, cbBuf, pcWritten);
-}
-
-int audioMixBufWriteCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
+    return AudioMixBufWriteCircEx(pMixBuf, pMixBuf->AudioFmt, pvBuf, cbBuf, pcWritten);
+}
+
+/**
+ * Writes audio samples of a specific format.
+ *
+ * @return  IPRT status code.
+ * @param   pMixBuf                 Pointer to mixing buffer to write to.
+ * @param   enmFmt                  Audio format supplied in the buffer.
+ * @param   pvBuf                   Pointer to audio buffer to be written.
+ * @param   cbBuf                   Size (in bytes) of audio buffer.
+ * @param   pcWritten               Returns number of audio samples written. Optional.
+ */
+int AudioMixBufWriteCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt,
                            const void *pvBuf, uint32_t cbBuf,
                            uint32_t *pcWritten)
@@ -1478,5 +1708,7 @@
     }
 
+#ifdef DEBUG
     audioMixBufPrint(pMixBuf);
+#endif
 
     AUDMIXBUF_LOG(("cWritten=%RU32 (%zu bytes), rc=%Rrc\n",
@@ -1485,2 +1717,3 @@
     return rc;
 }
+
Index: /trunk/src/VBox/Devices/Audio/AudioMixBuffer.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixBuffer.h	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/AudioMixBuffer.h	(revision 55920)
@@ -1,5 +1,6 @@
 /* $Id$ */
 /** @file
- * VBox audio: TODO
+ * VBox audio: Mixing buffer to convert audio samples to/from different
+ *             rates / formats.
  */
 
@@ -49,30 +50,30 @@
 
 
-int audioMixBufAcquire(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToRead, PPDMAUDIOSAMPLE *ppvSamples, uint32_t *pcSamplesRead);
-inline uint32_t audioMixBufBytesToSamples(PPDMAUDIOMIXBUF pMixBuf);
-void audioMixBufDestroy(PPDMAUDIOMIXBUF pMixBuf);
-void audioMixBufFinish(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToClear);
-uint32_t audioMixBufFree(PPDMAUDIOMIXBUF pMixBuf);
-uint32_t audioMixBufFreeBytes(PPDMAUDIOMIXBUF pMixBuf);
-int audioMixBufInit(PPDMAUDIOMIXBUF pMixBuf, const char *pszName, PPDMPCMPROPS pProps, uint32_t cSamples);
-bool audioMixBufIsEmpty(PPDMAUDIOMIXBUF pMixBuf);
-int audioMixBufLinkTo(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOMIXBUF pParent);
-uint32_t audioMixBufMixed(PPDMAUDIOMIXBUF pMixBuf);
-int audioMixBufMixToChildren(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples, uint32_t *pcProcessed);
-int audioMixBufMixToParent(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples, uint32_t *pcProcessed);
-uint32_t audioMixBufProcessed(PPDMAUDIOMIXBUF pMixBuf);
-int audioMixBufReadAt(PPDMAUDIOMIXBUF pMixBuf, uint32_t offSamples, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead);
-int audioMixBufReadAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, uint32_t offSamples, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead);
-int audioMixBufReadCirc(PPDMAUDIOMIXBUF pMixBuf, void *pvBuf, uint32_t cbBuf, uint32_t *pcRead);
-int audioMixBufReadCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, void *pvBuf, uint32_t cbBuf, uint32_t *pcRead);
-void audioMixBufReset(PPDMAUDIOMIXBUF pMixBuf);
-void audioMixBufSetVolume(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOVOLUME pVol);
-uint32_t audioMixBufSize(PPDMAUDIOMIXBUF pMixBuf);
-uint32_t audioMixBufSizeBytes(PPDMAUDIOMIXBUF pMixBuf);
-void audioMixBufUnlink(PPDMAUDIOMIXBUF pMixBuf);
-int audioMixBufWriteAt(PPDMAUDIOMIXBUF pMixBuf, uint32_t offSamples, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
-int audioMixBufWriteAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, uint32_t offSamples, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
-int audioMixBufWriteCirc(PPDMAUDIOMIXBUF pMixBuf, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
-int audioMixBufWriteCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
+int AudioMixBufAcquire(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToRead, PPDMAUDIOSAMPLE *ppvSamples, uint32_t *pcSamplesRead);
+inline uint32_t AudioMixBufBytesToSamples(PPDMAUDIOMIXBUF pMixBuf);
+void AudioMixBufDestroy(PPDMAUDIOMIXBUF pMixBuf);
+void AudioMixBufFinish(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamplesToClear);
+uint32_t AudioMixBufFree(PPDMAUDIOMIXBUF pMixBuf);
+uint32_t AudioMixBufFreeBytes(PPDMAUDIOMIXBUF pMixBuf);
+int AudioMixBufInit(PPDMAUDIOMIXBUF pMixBuf, const char *pszName, PPDMPCMPROPS pProps, uint32_t cSamples);
+bool AudioMixBufIsEmpty(PPDMAUDIOMIXBUF pMixBuf);
+int AudioMixBufLinkTo(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOMIXBUF pParent);
+uint32_t AudioMixBufMixed(PPDMAUDIOMIXBUF pMixBuf);
+int AudioMixBufMixToChildren(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples, uint32_t *pcProcessed);
+int AudioMixBufMixToParent(PPDMAUDIOMIXBUF pMixBuf, uint32_t cSamples, uint32_t *pcProcessed);
+uint32_t AudioMixBufProcessed(PPDMAUDIOMIXBUF pMixBuf);
+int AudioMixBufReadAt(PPDMAUDIOMIXBUF pMixBuf, uint32_t offSamples, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead);
+int AudioMixBufReadAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, uint32_t offSamples, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead);
+int AudioMixBufReadCirc(PPDMAUDIOMIXBUF pMixBuf, void *pvBuf, uint32_t cbBuf, uint32_t *pcRead);
+int AudioMixBufReadCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, void *pvBuf, uint32_t cbBuf, uint32_t *pcRead);
+void AudioMixBufReset(PPDMAUDIOMIXBUF pMixBuf);
+void AudioMixBufSetVolume(PPDMAUDIOMIXBUF pMixBuf, PPDMAUDIOVOLUME pVol);
+uint32_t AudioMixBufSize(PPDMAUDIOMIXBUF pMixBuf);
+uint32_t AudioMixBufSizeBytes(PPDMAUDIOMIXBUF pMixBuf);
+void AudioMixBufUnlink(PPDMAUDIOMIXBUF pMixBuf);
+int AudioMixBufWriteAt(PPDMAUDIOMIXBUF pMixBuf, uint32_t offSamples, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
+int AudioMixBufWriteAtEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, uint32_t offSamples, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
+int AudioMixBufWriteCirc(PPDMAUDIOMIXBUF pMixBuf, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
+int AudioMixBufWriteCircEx(PPDMAUDIOMIXBUF pMixBuf, PDMAUDIOMIXBUFFMT enmFmt, const void *pvBuf, uint32_t cbBuf, uint32_t *pcWritten);
 
 #endif /* AUDIO_MIXBUF_H */
Index: /trunk/src/VBox/Devices/Audio/AudioMixer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixer.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/AudioMixer.cpp	(revision 55920)
@@ -41,5 +41,5 @@
 
 
-int audioMixerAddSink(PAUDIOMIXER pMixer, const char *pszName, AUDMIXSINKDIR enmDir, PAUDMIXSINK *ppSink)
+int AudioMixerAddSink(PAUDIOMIXER pMixer, const char *pszName, AUDMIXSINKDIR enmDir, PAUDMIXSINK *ppSink)
 {
     AssertPtrReturn(pMixer, VERR_INVALID_POINTER);
@@ -86,5 +86,5 @@
 }
 
-int audioMixerAddStreamIn(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMIN pStream,
+int AudioMixerAddStreamIn(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMIN pStream,
                           uint32_t uFlags, PAUDMIXSTREAM *ppStream)
 {
@@ -124,5 +124,5 @@
 }
 
-int audioMixerAddStreamOut(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMOUT pStream,
+int AudioMixerAddStreamOut(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMOUT pStream,
                            uint32_t uFlags, PAUDMIXSTREAM *ppStream)
 {
@@ -162,10 +162,10 @@
 }
 
-int audioMixerControlStream(PAUDIOMIXER pMixer, PAUDMIXSTREAM pHandle)
+int AudioMixerControlStream(PAUDIOMIXER pMixer, PAUDMIXSTREAM pHandle)
 {
     return VERR_NOT_IMPLEMENTED;
 }
 
-int audioMixerCreate(const char *pszName, uint32_t uFlags, PAUDIOMIXER *ppMixer)
+int AudioMixerCreate(const char *pszName, uint32_t uFlags, PAUDIOMIXER *ppMixer)
 {
     AssertPtrReturn(pszName, VERR_INVALID_POINTER);
@@ -205,5 +205,5 @@
 }
 
-void audioMixerDestroy(PAUDIOMIXER pMixer)
+void AudioMixerDestroy(PAUDIOMIXER pMixer)
 {
     if (pMixer)
@@ -217,5 +217,5 @@
             bool fLast = RTListNodeIsLast(&pMixer->lstSinks, &pSink->Node);
 
-            audioMixerRemoveSink(pMixer, pSink);
+            AudioMixerRemoveSink(pMixer, pSink);
 
             if (fLast)
@@ -253,5 +253,5 @@
 }
 
-uint32_t audioMixerGetStreamCount(PAUDIOMIXER pMixer)
+uint32_t AudioMixerGetStreamCount(PAUDIOMIXER pMixer)
 {
     AssertPtrReturn(pMixer, 0);
@@ -266,5 +266,5 @@
 }
 
-void audioMixerInvalidate(PAUDIOMIXER pMixer)
+void AudioMixerInvalidate(PAUDIOMIXER pMixer)
 {
     AssertPtrReturnVoid(pMixer);
@@ -281,5 +281,5 @@
 }
 
-int audioMixerProcessSinkIn(PAUDMIXSINK pSink, AUDMIXOP enmOp, void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed)
+int AudioMixerProcessSinkIn(PAUDMIXSINK pSink, AUDMIXOP enmOp, void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed)
 {
     AssertPtrReturn(pSink, VERR_INVALID_POINTER);
@@ -344,10 +344,10 @@
 }
 
-int audioMixerProcessSinkOut(PAUDMIXSINK pSink, AUDMIXOP enmOp, const void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed)
+int AudioMixerProcessSinkOut(PAUDMIXSINK pSink, AUDMIXOP enmOp, const void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed)
 {
     return VERR_NOT_IMPLEMENTED;
 }
 
-void audioMixerRemoveSink(PAUDIOMIXER pMixer, PAUDMIXSINK pSink)
+void AudioMixerRemoveSink(PAUDIOMIXER pMixer, PAUDMIXSINK pSink)
 {
     AssertPtrReturnVoid(pMixer);
@@ -361,5 +361,5 @@
         bool fLast = RTListNodeIsLast(&pSink->lstStreams, &pStream->Node);
 
-        audioMixerRemoveStream(pSink, pStream);
+        AudioMixerRemoveStream(pSink, pStream);
 
         if (fLast)
@@ -381,5 +381,5 @@
 }
 
-void audioMixerRemoveStream(PAUDMIXSINK pSink, PAUDMIXSTREAM pStream)
+void AudioMixerRemoveStream(PAUDMIXSINK pSink, PAUDMIXSTREAM pStream)
 {
     AssertPtrReturnVoid(pSink);
@@ -400,5 +400,5 @@
 }
 
-int audioMixerSetDeviceFormat(PAUDIOMIXER pMixer, PPDMAUDIOSTREAMCFG pCfg)
+int AudioMixerSetDeviceFormat(PAUDIOMIXER pMixer, PPDMAUDIOSTREAMCFG pCfg)
 {
     AssertPtrReturn(pMixer, VERR_INVALID_POINTER);
@@ -438,7 +438,7 @@
     {
         if (fOut)
-            audioMixBufSetVolume(&pStream->pOut->MixBuf, &volSink);
+            AudioMixBufSetVolume(&pStream->pOut->MixBuf, &volSink);
         else
-            audioMixBufSetVolume(&pStream->pIn->MixBuf,  &volSink);
+            AudioMixBufSetVolume(&pStream->pIn->MixBuf,  &volSink);
     }
 
@@ -447,5 +447,5 @@
 
 /** Set the master volume of the mixer. */
-int audioMixerSetMasterVolume(PAUDIOMIXER pMixer, PPDMAUDIOVOLUME pVol)
+int AudioMixerSetMasterVolume(PAUDIOMIXER pMixer, PPDMAUDIOVOLUME pVol)
 {
     AssertPtrReturn(pMixer, VERR_INVALID_POINTER);
@@ -458,10 +458,10 @@
                  pMixer->VolMaster.fMuted, pMixer->VolMaster.uLeft, pMixer->VolMaster.uRight));
 
-    audioMixerInvalidate(pMixer);
+    AudioMixerInvalidate(pMixer);
     return VINF_SUCCESS;
 }
 
 /** Set the volume of an individual sink. */
-int audioMixerSetSinkVolume(PAUDMIXSINK pSink, PPDMAUDIOVOLUME pVol)
+int AudioMixerSetSinkVolume(PAUDMIXSINK pSink, PPDMAUDIOVOLUME pVol)
 {
     AssertPtrReturn(pSink, VERR_INVALID_POINTER);
Index: /trunk/src/VBox/Devices/Audio/AudioMixer.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixer.h	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/AudioMixer.h	(revision 55920)
@@ -92,19 +92,19 @@
 
 
-int audioMixerAddSink(PAUDIOMIXER pMixer, const char *pszName, AUDMIXSINKDIR enmDir, PAUDMIXSINK *ppSink);
-int audioMixerAddStreamIn(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMIN pStream, uint32_t uFlags, PAUDMIXSTREAM *ppStream);
-int audioMixerAddStreamOut(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMOUT pStream, uint32_t uFlags, PAUDMIXSTREAM *ppStream);
-int audioMixerControlStream(AUDMIXSTREAM pHandle); /** @todo Implement me. */
-int audioMixerCreate(const char *pszName, uint32_t uFlags, PAUDIOMIXER *ppMixer);
-void audioMixerDestroy(PAUDIOMIXER pMixer);
-uint32_t audioMixerGetStreamCount(PAUDIOMIXER pMixer);
-void audioMixerInvalidate(PAUDIOMIXER pMixer);
-int audioMixerProcessSinkIn(PAUDMIXSINK pSink, AUDMIXOP enmOp, void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed);
-int audioMixerProcessSinkOut(PAUDMIXSINK pSink, AUDMIXOP enmOp, const void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed);
-void audioMixerRemoveSink(PAUDIOMIXER pMixer, PAUDMIXSINK pSink);
-void audioMixerRemoveStream(PAUDMIXSINK pMixer, PAUDMIXSTREAM pStream);
-int audioMixerSetDeviceFormat(PAUDIOMIXER pMixer, PPDMAUDIOSTREAMCFG pCfg);
-int audioMixerSetMasterVolume(PAUDIOMIXER pMixer, PPDMAUDIOVOLUME pVol);
-int audioMixerSetSinkVolume(PAUDMIXSINK pSink, PPDMAUDIOVOLUME pVol);
+int AudioMixerAddSink(PAUDIOMIXER pMixer, const char *pszName, AUDMIXSINKDIR enmDir, PAUDMIXSINK *ppSink);
+int AudioMixerAddStreamIn(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMIN pStream, uint32_t uFlags, PAUDMIXSTREAM *ppStream);
+int AudioMixerAddStreamOut(PAUDMIXSINK pSink, PPDMIAUDIOCONNECTOR pConnector, PPDMAUDIOGSTSTRMOUT pStream, uint32_t uFlags, PAUDMIXSTREAM *ppStream);
+int AudioMixerControlStream(AUDMIXSTREAM pHandle); /** @todo Implement me. */
+int AudioMixerCreate(const char *pszName, uint32_t uFlags, PAUDIOMIXER *ppMixer);
+void AudioMixerDestroy(PAUDIOMIXER pMixer);
+uint32_t AudioMixerGetStreamCount(PAUDIOMIXER pMixer);
+void AudioMixerInvalidate(PAUDIOMIXER pMixer);
+int AudioMixerProcessSinkIn(PAUDMIXSINK pSink, AUDMIXOP enmOp, void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed);
+int AudioMixerProcessSinkOut(PAUDMIXSINK pSink, AUDMIXOP enmOp, const void *pvBuf, uint32_t cbBuf, uint32_t *pcbProcessed);
+void AudioMixerRemoveSink(PAUDIOMIXER pMixer, PAUDMIXSINK pSink);
+void AudioMixerRemoveStream(PAUDMIXSINK pSink, PAUDMIXSTREAM pStream);
+int AudioMixerSetDeviceFormat(PAUDIOMIXER pMixer, PPDMAUDIOSTREAMCFG pCfg);
+int AudioMixerSetMasterVolume(PAUDIOMIXER pMixer, PPDMAUDIOVOLUME pVol);
+int AudioMixerSetSinkVolume(PAUDMIXSINK pSink, PPDMAUDIOVOLUME pVol);
 
 #endif /* AUDIO_MIXER_H */
Index: /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 55920)
@@ -582,6 +582,6 @@
                     if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
                     {
-                        audioMixerRemoveStream(pThis->pSinkLineIn, pDrv->LineIn.phStrmIn);
-                        rc = audioMixerAddStreamIn(pThis->pSinkLineIn,
+                        AudioMixerRemoveStream(pThis->pSinkLineIn, pDrv->LineIn.phStrmIn);
+                        rc = AudioMixerAddStreamIn(pThis->pSinkLineIn,
                                                    pDrv->pConnector, pDrv->LineIn.pStrmIn,
                                                    0 /* uFlags */,
@@ -609,6 +609,6 @@
                     if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
                     {
-                        audioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
-                        rc = audioMixerAddStreamOut(pThis->pSinkOutput,
+                        AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+                        rc = AudioMixerAddStreamOut(pThis->pSinkOutput,
                                                     pDrv->pConnector, pDrv->Out.pStrmOut,
                                                     0 /* uFlags */,
@@ -637,6 +637,6 @@
                     if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
                     {
-                        audioMixerRemoveStream(pThis->pSinkMicIn, pDrv->MicIn.phStrmIn);
-                        rc = audioMixerAddStreamIn(pThis->pSinkMicIn,
+                        AudioMixerRemoveStream(pThis->pSinkMicIn, pDrv->MicIn.phStrmIn);
+                        rc = AudioMixerAddStreamIn(pThis->pSinkMicIn,
                                                    pDrv->pConnector, pDrv->MicIn.pStrmIn,
                                                    0 /* uFlags */,
@@ -665,5 +665,5 @@
                 {
                     pDrv->pConnector->pfnCloseIn(pDrv->pConnector, pDrv->LineIn.pStrmIn);
-                    audioMixerRemoveStream(pThis->pSinkLineIn, pDrv->LineIn.phStrmIn);
+                    AudioMixerRemoveStream(pThis->pSinkLineIn, pDrv->LineIn.phStrmIn);
 
                     pDrv->LineIn.pStrmIn  = NULL;
@@ -680,5 +680,5 @@
                 {
                     pDrv->pConnector->pfnCloseOut(pDrv->pConnector, pDrv->Out.pStrmOut);
-                    audioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+                    AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
 
                     pDrv->Out.pStrmOut  = NULL;
@@ -695,5 +695,5 @@
                 {
                     pDrv->pConnector->pfnCloseIn(pDrv->pConnector, pDrv->MicIn.pStrmIn);
-                    audioMixerRemoveStream(pThis->pSinkMicIn, pDrv->MicIn.phStrmIn);
+                    AudioMixerRemoveStream(pThis->pSinkMicIn, pDrv->MicIn.phStrmIn);
 
                     pDrv->MicIn.pStrmIn  = NULL;
@@ -713,5 +713,5 @@
     }
 
-    audioMixerInvalidate(pThis->pMixer);
+    AudioMixerInvalidate(pThis->pMixer);
 #else
     if (freq)
@@ -863,17 +863,17 @@
         {
             case PDMAUDIOMIXERCTL_VOLUME:
-                audioMixerSetMasterVolume(pThis->pMixer, &vol);
+                AudioMixerSetMasterVolume(pThis->pMixer, &vol);
                 break;
 
             case PDMAUDIOMIXERCTL_PCM:
-                audioMixerSetSinkVolume(pThis->pSinkOutput, &vol);
+                AudioMixerSetSinkVolume(pThis->pSinkOutput, &vol);
                 break;
 
             case PDMAUDIOMIXERCTL_MIC_IN:
-                audioMixerSetSinkVolume(pThis->pSinkMicIn, &vol);
+                AudioMixerSetSinkVolume(pThis->pSinkMicIn, &vol);
                 break;
 
             case PDMAUDIOMIXERCTL_LINE_IN:
-                audioMixerSetSinkVolume(pThis->pSinkLineIn, &vol);
+                AudioMixerSetSinkVolume(pThis->pSinkLineIn, &vol);
                 break;
 
@@ -982,9 +982,9 @@
     if (pThis->pMixer)
     {
-        audioMixerDestroy(pThis->pMixer);
+        AudioMixerDestroy(pThis->pMixer);
         pThis->pMixer = NULL;
     }
 
-    int rc2 = audioMixerCreate("AC'97 Mixer", 0 /* uFlags */, &pThis->pMixer);
+    int rc2 = AudioMixerCreate("AC'97 Mixer", 0 /* uFlags */, &pThis->pMixer);
     if (RT_SUCCESS(rc2))
     {
@@ -996,17 +996,17 @@
         streamCfg.enmEndianness = PDMAUDIOHOSTENDIANNESS;
 
-        rc2 = audioMixerSetDeviceFormat(pThis->pMixer, &streamCfg);
+        rc2 = AudioMixerSetDeviceFormat(pThis->pMixer, &streamCfg);
         AssertRC(rc2);
 
         /* Add all required audio sinks. */
-        rc2 = audioMixerAddSink(pThis->pMixer, "[Playback] PCM Output",
+        rc2 = AudioMixerAddSink(pThis->pMixer, "[Playback] PCM Output",
                                AUDMIXSINKDIR_OUTPUT, &pThis->pSinkOutput);
         AssertRC(rc2);
 
-        rc2 = audioMixerAddSink(pThis->pMixer, "[Recording] Line In",
+        rc2 = AudioMixerAddSink(pThis->pMixer, "[Recording] Line In",
                                 AUDMIXSINKDIR_INPUT, &pThis->pSinkLineIn);
         AssertRC(rc2);
 
-        rc2 = audioMixerAddSink(pThis->pMixer, "[Recording] Microphone In",
+        rc2 = AudioMixerAddSink(pThis->pMixer, "[Recording] Microphone In",
                                 AUDMIXSINKDIR_INPUT, &pThis->pSinkMicIn);
         AssertRC(rc2);
@@ -1243,5 +1243,5 @@
     if (pvMixBuf)
     {
-        rc = audioMixerProcessSinkIn(pSink, AUDMIXOP_BLEND, pvMixBuf, cbToRead, &cbRead);
+        rc = AudioMixerProcessSinkIn(pSink, AUDMIXOP_BLEND, pvMixBuf, cbToRead, &cbRead);
         if (   RT_SUCCESS(rc)
             && cbRead)
@@ -2206,5 +2206,5 @@
     if (pThis->pMixer)
     {
-        audioMixerDestroy(pThis->pMixer);
+        AudioMixerDestroy(pThis->pMixer);
         pThis->pMixer = NULL;
     }
Index: /trunk/src/VBox/Devices/Audio/DevIchHda.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevIchHda.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DevIchHda.cpp	(revision 55920)
@@ -2210,5 +2210,5 @@
     {
         uint32_t cbRead = 0;
-        rc = audioMixerProcessSinkIn(pSink, AUDMIXOP_BLEND, pBdle->au8HdaBuffer, cb2Copy, &cbRead);
+        rc = AudioMixerProcessSinkIn(pSink, AUDMIXOP_BLEND, pBdle->au8HdaBuffer, cb2Copy, &cbRead);
         if (RT_SUCCESS(rc))
         {
@@ -2475,6 +2475,6 @@
         if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            audioMixerRemoveStream(pSink, pDrv->LineIn.phStrmIn);
-            rc = audioMixerAddStreamIn(pSink,
+            AudioMixerRemoveStream(pSink, pDrv->LineIn.phStrmIn);
+            rc = AudioMixerAddStreamIn(pSink,
                                        pDrv->pConnector, pDrv->LineIn.pStrmIn,
                                        0 /* uFlags */, &pDrv->LineIn.phStrmIn);
@@ -2507,6 +2507,6 @@
         if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            audioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
-            rc = audioMixerAddStreamOut(pThis->pSinkOutput,
+            AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+            rc = AudioMixerAddStreamOut(pThis->pSinkOutput,
                                         pDrv->pConnector, pDrv->Out.pStrmOut,
                                         0 /* uFlags */, &pDrv->Out.phStrmOut);
@@ -2543,5 +2543,5 @@
 
     /* Set the volume. Codec already converted it to the correct range. */
-    audioMixerSetSinkVolume(pSink, &vol);
+    AudioMixerSetSinkVolume(pSink, &vol);
 
     LogFlowFuncLeaveRC(rc);
@@ -3589,5 +3589,5 @@
     if (pThis->pMixer)
     {
-        audioMixerDestroy(pThis->pMixer);
+        AudioMixerDestroy(pThis->pMixer);
         pThis->pMixer = NULL;
     }
@@ -3858,5 +3858,5 @@
     if (RT_SUCCESS(rc))
     {
-        rc = audioMixerCreate("HDA Mixer", 0 /* uFlags */, &pThis->pMixer);
+        rc = AudioMixerCreate("HDA Mixer", 0 /* uFlags */, &pThis->pMixer);
         if (RT_SUCCESS(rc))
         {
@@ -3868,17 +3868,17 @@
             streamCfg.enmEndianness = PDMAUDIOHOSTENDIANNESS;
 
-            rc = audioMixerSetDeviceFormat(pThis->pMixer, &streamCfg);
+            rc = AudioMixerSetDeviceFormat(pThis->pMixer, &streamCfg);
             AssertRC(rc);
 
             /* Add all required audio sinks. */
-            rc = audioMixerAddSink(pThis->pMixer, "[Playback] PCM Output",
+            rc = AudioMixerAddSink(pThis->pMixer, "[Playback] PCM Output",
                                    AUDMIXSINKDIR_OUTPUT, &pThis->pSinkOutput);
             AssertRC(rc);
 
-            rc = audioMixerAddSink(pThis->pMixer, "[Recording] Line In",
+            rc = AudioMixerAddSink(pThis->pMixer, "[Recording] Line In",
                                    AUDMIXSINKDIR_INPUT, &pThis->pSinkLineIn);
             AssertRC(rc);
 
-            rc = audioMixerAddSink(pThis->pMixer, "[Recording] Microphone In",
+            rc = AudioMixerAddSink(pThis->pMixer, "[Recording] Microphone In",
                                    AUDMIXSINKDIR_INPUT, &pThis->pSinkMicIn);
             AssertRC(rc);
@@ -3886,5 +3886,5 @@
             /* There is no master volume control. Set the master to max. */
             PDMAUDIOVOLUME vol = { false, 255, 255 };
-            rc = audioMixerSetMasterVolume(pThis->pMixer, &vol);
+            rc = AudioMixerSetMasterVolume(pThis->pMixer, &vol);
             AssertRC(rc);
         }
Index: /trunk/src/VBox/Devices/Audio/DevSB16.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevSB16.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DevSB16.cpp	(revision 55920)
@@ -1075,5 +1075,5 @@
     uint8_t rvol = sb16MixRegToVol(pThis, 0x31);
     PDMAUDIOVOLUME vol = { false, lvol, rvol };
-    audioMixerSetMasterVolume(pThis->pMixer, &vol);
+    AudioMixerSetMasterVolume(pThis->pMixer, &vol);
 #else
     int     mute = 0;
@@ -1092,5 +1092,5 @@
     uint8_t rvol = sb16MixRegToVol(pThis, 0x33);
     PDMAUDIOVOLUME vol = { false, lvol, rvol };
-    audioMixerSetSinkVolume(pThis->pSinkOutput, &vol);
+    AudioMixerSetSinkVolume(pThis->pSinkOutput, &vol);
 #else
     int     mute = 0;
@@ -1348,5 +1348,5 @@
     if (pThis->pMixer)
     {
-        audioMixerDestroy(pThis->pMixer);
+        AudioMixerDestroy(pThis->pMixer);
         pThis->pMixer = NULL;
     }
@@ -1383,5 +1383,5 @@
 
 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER
-    int rc2 = audioMixerCreate("SB16 Mixer", 0 /* uFlags */, &pThis->pMixer);
+    int rc2 = AudioMixerCreate("SB16 Mixer", 0 /* uFlags */, &pThis->pMixer);
     if (RT_SUCCESS(rc2))
     {
@@ -1393,9 +1393,9 @@
         streamCfg.enmEndianness = PDMAUDIOHOSTENDIANNESS;
 
-        rc2 = audioMixerSetDeviceFormat(pThis->pMixer, &streamCfg);
+        rc2 = AudioMixerSetDeviceFormat(pThis->pMixer, &streamCfg);
         AssertRC(rc2);
 
         /* Add all required audio sinks. */
-        rc2 = audioMixerAddSink(pThis->pMixer, "[Playback] PCM Output",
+        rc2 = AudioMixerAddSink(pThis->pMixer, "[Playback] PCM Output",
                                 AUDMIXSINKDIR_OUTPUT, &pThis->pSinkOutput);
         AssertRC(rc2);
@@ -2119,6 +2119,6 @@
         if (rc2 == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            audioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
-            rc = audioMixerAddStreamOut(pThis->pSinkOutput,
+            AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+            rc = AudioMixerAddStreamOut(pThis->pSinkOutput,
                                         pDrv->pConnector, pDrv->Out.pStrmOut,
                                         0 /* uFlags */,
@@ -2138,5 +2138,5 @@
     }
     /* Ensure volume gets propagated. */
-    audioMixerInvalidate(pThis->pMixer);
+    AudioMixerInvalidate(pThis->pMixer);
 
     return rc;
@@ -2206,5 +2206,5 @@
     if (pThis->pMixer)
     {
-        audioMixerDestroy(pThis->pMixer);
+        AudioMixerDestroy(pThis->pMixer);
         pThis->pMixer = NULL;
     }
Index: /trunk/src/VBox/Devices/Audio/DrvAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 55920)
@@ -490,7 +490,7 @@
             return VERR_NO_MEMORY;
 
-        rc = audioMixBufInit(&pGstStrmOut->MixBuf, pszTemp, &pGstStrmOut->Props, audioMixBufSize(&pHostStrmOut->MixBuf));
+        rc = AudioMixBufInit(&pGstStrmOut->MixBuf, pszTemp, &pGstStrmOut->Props, AudioMixBufSize(&pHostStrmOut->MixBuf));
         if (RT_SUCCESS(rc))
-            rc = audioMixBufLinkTo(&pGstStrmOut->MixBuf, &pHostStrmOut->MixBuf);
+            rc = AudioMixBufLinkTo(&pGstStrmOut->MixBuf, &pHostStrmOut->MixBuf);
 
         RTStrFree(pszTemp);
@@ -564,5 +564,5 @@
         }
 
-        rc = audioMixBufInit(&pHstStrmOut->MixBuf, pszTemp, &pHstStrmOut->Props, cSamples);
+        rc = AudioMixBufInit(&pHstStrmOut->MixBuf, pszTemp, &pHstStrmOut->Props, cSamples);
         if (RT_SUCCESS(rc))
         {
@@ -742,7 +742,7 @@
             return VERR_NO_MEMORY;
 
-        rc = audioMixBufInit(&pGstStrmIn->MixBuf, pszTemp, &pGstStrmIn->Props, audioMixBufSize(&pHstStrmIn->MixBuf));
+        rc = AudioMixBufInit(&pGstStrmIn->MixBuf, pszTemp, &pGstStrmIn->Props, AudioMixBufSize(&pHstStrmIn->MixBuf));
         if (RT_SUCCESS(rc))
-            rc = audioMixBufLinkTo(&pHstStrmIn->MixBuf, &pGstStrmIn->MixBuf);
+            rc = AudioMixBufLinkTo(&pHstStrmIn->MixBuf, &pGstStrmIn->MixBuf);
 
         RTStrFree(pszTemp);
@@ -816,5 +816,5 @@
         }
 
-        rc = audioMixBufInit(&pHstStrmIn->MixBuf, pszTemp, &pHstStrmIn->Props, cSamples);
+        rc = AudioMixBufInit(&pHstStrmIn->MixBuf, pszTemp, &pHstStrmIn->Props, cSamples);
         if (RT_SUCCESS(rc))
         {
@@ -885,5 +885,5 @@
      */
     uint32_t cWritten;
-    int rc = audioMixBufWriteAt(&pGstStrmOut->MixBuf, 0 /* Offset in samples */, pvBuf, cbBuf, &cWritten);
+    int rc = AudioMixBufWriteAt(&pGstStrmOut->MixBuf, 0 /* Offset in samples */, pvBuf, cbBuf, &cWritten);
 
     /*
@@ -895,5 +895,5 @@
         && cWritten)
     {
-        rc = audioMixBufMixToParent(&pGstStrmOut->MixBuf, cWritten, &cMixed);
+        rc = AudioMixBufMixToParent(&pGstStrmOut->MixBuf, cWritten, &cMixed);
     }
     else
@@ -1078,5 +1078,5 @@
                  * so that it can start writing PCM data to us. */
                 cbFree2 = RT_MIN(cbFree2, AUDIOMIXBUF_S2B_RATIO(&pGstStrmOut->MixBuf,
-                                                                audioMixBufFree(&pGstStrmOut->MixBuf)));
+                                                                AudioMixBufFree(&pGstStrmOut->MixBuf)));
 
                 LogFlowFunc(("\t[%s] cbFree=%RU32\n", pGstStrmOut->MixBuf.pszName, cbFree2));
@@ -1108,5 +1108,5 @@
         {
             cbAvailIn = RT_MAX(cbAvailIn, AUDIOMIXBUF_S2B(&pHstStrmIn->MixBuf,
-                                                          audioMixBufMixed(&pHstStrmIn->MixBuf)));
+                                                          AudioMixBufMixed(&pHstStrmIn->MixBuf)));
 
             LogFlowFunc(("\t[%s] cbFree=%RU32\n", pHstStrmIn->MixBuf.pszName, cbAvailIn));
@@ -1194,5 +1194,5 @@
                 continue;
 
-            if (audioMixBufIsEmpty(&pGstStrmOut->MixBuf))
+            if (AudioMixBufIsEmpty(&pGstStrmOut->MixBuf))
             {
                 pGstStrmOut->State.fEmpty = true;
@@ -1428,9 +1428,9 @@
      */
     uint32_t cRead;
-    int rc = audioMixBufReadCirc(&pGstStrmIn->MixBuf,
+    int rc = AudioMixBufReadCirc(&pGstStrmIn->MixBuf,
                                  pvBuf, cbBuf, &cRead);
     if (RT_SUCCESS(rc))
     {
-        audioMixBufFinish(&pGstStrmIn->MixBuf, cRead);
+        AudioMixBufFinish(&pGstStrmIn->MixBuf, cRead);
 
         if (pcbRead)
Index: /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 55920)
@@ -147,5 +147,5 @@
     }
 
-    audioMixBufDestroy(&pGstStrmIn->MixBuf);
+    AudioMixBufDestroy(&pGstStrmIn->MixBuf);
 }
 
@@ -153,5 +153,5 @@
 {
     AssertPtrReturnVoid(pHstStrmIn);
-    audioMixBufDestroy(&pHstStrmIn->MixBuf);
+    AudioMixBufDestroy(&pHstStrmIn->MixBuf);
 }
 
@@ -167,5 +167,5 @@
     }
 
-    audioMixBufDestroy(&pGstStrmOut->MixBuf);
+    AudioMixBufDestroy(&pGstStrmOut->MixBuf);
 }
 
@@ -226,5 +226,5 @@
 {
     AssertPtrReturnVoid(pHstStrmOut);
-    audioMixBufDestroy(&pHstStrmOut->MixBuf);
+    AudioMixBufDestroy(&pHstStrmOut->MixBuf);
 }
 
@@ -438,5 +438,5 @@
             || !pGstStrmOut->State.fEmpty)
         {
-            cSamples = audioMixBufMixed(&pGstStrmOut->MixBuf);
+            cSamples = AudioMixBufMixed(&pGstStrmOut->MixBuf);
             cMinSamplesMixed = RT_MIN(cMinSamplesMixed, cSamples);
 
@@ -473,5 +473,5 @@
     {
         if (   cSamplesMin == UINT32_MAX
-            || cSamplesMin > audioMixBufSize(&pHstStrmOut->MixBuf))
+            || cSamplesMin > AudioMixBufSize(&pHstStrmOut->MixBuf))
         {
             LogFlowFunc(("Error: cSamplesMin=%RU32\n", cSamplesMin));
Index: /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 55920)
@@ -801,5 +801,5 @@
         {
             case SND_PCM_STATE_PREPARED:
-                cAvail = audioMixBufFree(&pHstStrmIn->MixBuf);
+                cAvail = AudioMixBufFree(&pHstStrmIn->MixBuf);
                 break;
 
@@ -882,5 +882,5 @@
         {
             uint32_t cWritten;
-            rc = audioMixBufWriteCirc(&pHstStrmIn->MixBuf,
+            rc = AudioMixBufWriteCirc(&pHstStrmIn->MixBuf,
                                       pThisStrmIn->pvBuf, AUDIOMIXBUF_S2B(&pHstStrmIn->MixBuf, cRead),
                                       &cWritten);
@@ -900,5 +900,5 @@
         uint32_t cProcessed = 0;
         if (cWrittenTotal)
-            rc = audioMixBufMixToParent(&pHstStrmIn->MixBuf, cWrittenTotal,
+            rc = AudioMixBufMixToParent(&pHstStrmIn->MixBuf, cWrittenTotal,
                                         &cProcessed);
 
@@ -946,5 +946,5 @@
         while (cbToRead)
         {
-            rc = audioMixBufReadCirc(&pHstStrmOut->MixBuf, pThisStrmOut->pvBuf, cbToRead, &cRead);
+            rc = AudioMixBufReadCirc(&pHstStrmOut->MixBuf, pThisStrmOut->pvBuf, cbToRead, &cRead);
             if (RT_FAILURE(rc))
                 break;
@@ -1011,5 +1011,5 @@
         uint32_t cReadTotal = AUDIOMIXBUF_B2S(&pHstStrmOut->MixBuf, cbReadTotal);
         if (cReadTotal)
-            audioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
+            AudioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
 
         if (pcSamplesPlayed)
Index: /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 55920)
@@ -1320,5 +1320,5 @@
     do
     {
-        size_t cbBuf = audioMixBufSizeBytes(&pHstStrmIn->MixBuf);
+        size_t cbBuf = AudioMixBufSizeBytes(&pHstStrmIn->MixBuf);
         size_t cbToWrite = RT_MIN(cbBuf, RTCircBufFree(pStreamIn->pBuf));
         LogFlowFunc(("cbToWrite=%zu\n", cbToWrite));
@@ -1338,5 +1338,5 @@
             }
 
-            rc = audioMixBufWriteCirc(&pHstStrmIn->MixBuf, puBuf, cbToRead, &cWritten);
+            rc = AudioMixBufWriteCirc(&pHstStrmIn->MixBuf, puBuf, cbToRead, &cWritten);
             if (RT_FAILURE(rc))
                 break;
@@ -1358,5 +1358,5 @@
         uint32_t cWrittenTotal = AUDIOMIXBUF_B2S(&pHstStrmIn->MixBuf, cbWrittenTotal);
         if (cWrittenTotal)
-            audioMixBufFinish(&pHstStrmIn->MixBuf, cWrittenTotal);
+            AudioMixBufFinish(&pHstStrmIn->MixBuf, cWrittenTotal);
 
         LogFlowFunc(("cWrittenTotal=%RU32 (%RU32 bytes)\n", cWrittenTotal, cbWrittenTotal));
@@ -1477,5 +1477,5 @@
     do
     {
-        size_t cbBuf = RT_MIN(audioMixBufSizeBytes(&pHstStrmOut->MixBuf), pStreamOut->cbPCMBuf);
+        size_t cbBuf = RT_MIN(AudioMixBufSizeBytes(&pHstStrmOut->MixBuf), pStreamOut->cbPCMBuf);
         size_t cbToRead = RT_MIN(cbBuf, RTCircBufFree(pStreamOut->pBuf));
         LogFlowFunc(("cbToRead=%zu\n", cbToRead));
@@ -1487,5 +1487,5 @@
         while (cbToRead)
         {
-            rc = audioMixBufReadCirc(&pHstStrmOut->MixBuf,
+            rc = AudioMixBufReadCirc(&pHstStrmOut->MixBuf,
                                      pStreamOut->pvPCMBuf, cbToRead, &cRead);
             if (   RT_FAILURE(rc)
@@ -1522,5 +1522,5 @@
         uint32_t cReadTotal = AUDIOMIXBUF_B2S(&pHstStrmOut->MixBuf, cbReadTotal);
         if (cReadTotal)
-            audioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
+            AudioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
 
         LogFlowFunc(("cReadTotal=%RU32 (%RU32 bytes)\n", cReadTotal, cbReadTotal));
Index: /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 55920)
@@ -1167,5 +1167,5 @@
     if (pv1 && cb1)
     {
-        rc = audioMixBufReadCirc(&pHstStrmOut->MixBuf, pv1, cb1, &cRead);
+        rc = AudioMixBufReadCirc(&pHstStrmOut->MixBuf, pv1, cb1, &cRead);
         if (RT_SUCCESS(rc))
             cReadTotal += cRead;
@@ -1176,5 +1176,5 @@
         && pv2 && cb2)
     {
-        rc = audioMixBufReadCirc(&pHstStrmOut->MixBuf, pv2, cb2, &cRead);
+        rc = AudioMixBufReadCirc(&pHstStrmOut->MixBuf, pv2, cb2, &cRead);
         if (RT_SUCCESS(rc))
             cReadTotal += cRead;
@@ -1192,5 +1192,5 @@
     if (cReadTotal)
     {
-        audioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
+        AudioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
         rc = VINF_SUCCESS; /* Played something. */
     }
@@ -1352,8 +1352,8 @@
 
     /* Using as an intermediate not circular buffer. */
-    audioMixBufReset(&pHstStrmIn->MixBuf);
+    AudioMixBufReset(&pHstStrmIn->MixBuf);
 
     /* Get number of free samples in the mix buffer and check that is has free space */
-    uint32_t csMixFree = audioMixBufFree(&pHstStrmIn->MixBuf);
+    uint32_t csMixFree = AudioMixBufFree(&pHstStrmIn->MixBuf);
     if (csMixFree == 0)
     {
@@ -1392,5 +1392,5 @@
     if (pv1 && len1)
     {
-        rc = audioMixBufWriteAt(&pHstStrmIn->MixBuf, 0 /* offWrite */,
+        rc = AudioMixBufWriteAt(&pHstStrmIn->MixBuf, 0 /* offWrite */,
                                 pv1, cb1, &csWritten);
         if (RT_SUCCESS(rc))
@@ -1402,5 +1402,5 @@
         && pv2 && len2)
     {
-        rc = audioMixBufWriteAt(&pHstStrmIn->MixBuf, csWrittenTotal,
+        rc = AudioMixBufWriteAt(&pHstStrmIn->MixBuf, csWrittenTotal,
                                 pv2, cb2, &csWritten);
         if (RT_SUCCESS(rc))
@@ -1414,5 +1414,5 @@
     {
         /* Captured something. */
-        rc = audioMixBufMixToParent(&pHstStrmIn->MixBuf, csWrittenTotal,
+        rc = AudioMixBufMixToParent(&pHstStrmIn->MixBuf, csWrittenTotal,
                                     &csProcessed);
     }
Index: /trunk/src/VBox/Devices/Audio/DrvHostNullAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostNullAudio.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvHostNullAudio.cpp	(revision 55920)
@@ -175,5 +175,5 @@
         cSamplesPlayed = csLive;
 
-    audioMixBufFinish(&pHstStrmOut->MixBuf, cSamplesPlayed);
+    AudioMixBufFinish(&pHstStrmOut->MixBuf, cSamplesPlayed);
 
     if (pcSamplesPlayed)
Index: /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp	(revision 55920)
@@ -366,5 +366,5 @@
         {
             audio_pcm_info_clear_buf(&pHstStrmOut->Props,
-                                     pThisStrmOut->pvPCMBuf, audioMixBufSize(&pHstStrmOut->MixBuf));
+                                     pThisStrmOut->pvPCMBuf, AudioMixBufSize(&pHstStrmOut->MixBuf));
 
             mask = PCM_ENABLE_OUTPUT;
@@ -419,5 +419,5 @@
     int rc = VINF_SUCCESS;
     size_t cbToRead = RT_MIN(pThisStrmIn->cbBuf,
-                             audioMixBufFreeBytes(&pHstStrmIn->MixBuf));
+                             AudioMixBufFreeBytes(&pHstStrmIn->MixBuf));
 
     LogFlowFunc(("cbToRead=%zu\n", cbToRead));
@@ -466,5 +466,5 @@
         {
             uint32_t cWritten;
-            rc = audioMixBufWriteCirc(&pHstStrmIn->MixBuf,
+            rc = AudioMixBufWriteCirc(&pHstStrmIn->MixBuf,
                                       pThisStrmIn->pvBuf, cbRead,
                                       &cWritten);
@@ -490,5 +490,5 @@
         uint32_t cProcessed = 0;
         if (cWrittenTotal)
-            rc = audioMixBufMixToParent(&pHstStrmIn->MixBuf, cWrittenTotal,
+            rc = AudioMixBufMixToParent(&pHstStrmIn->MixBuf, cWrittenTotal,
                                         &cProcessed);
 
@@ -786,5 +786,5 @@
     do
     {
-        size_t cbBuf = audioMixBufSizeBytes(&pHstStrmOut->MixBuf);
+        size_t cbBuf = AudioMixBufSizeBytes(&pHstStrmOut->MixBuf);
 
         uint32_t cLive = drvAudioHstOutSamplesLive(pHstStrmOut,
@@ -861,5 +861,5 @@
         while (cbToRead)
         {
-            rc = audioMixBufReadCirc(&pHstStrmOut->MixBuf,
+            rc = AudioMixBufReadCirc(&pHstStrmOut->MixBuf,
                                      pThisStrmOut->pvPCMBuf, cbToRead, &cRead);
             if (RT_FAILURE(rc))
@@ -893,5 +893,5 @@
         uint32_t cReadTotal = AUDIOMIXBUF_B2S(&pHstStrmOut->MixBuf, cbReadTotal);
         if (cReadTotal)
-            audioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
+            AudioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
 
         if (pcSamplesPlayed)
Index: /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 55920)
@@ -723,5 +723,5 @@
 
     int rc = VINF_SUCCESS;
-    size_t cbToRead = RT_MIN(cbAvail, audioMixBufFreeBytes(&pHstStrmIn->MixBuf));
+    size_t cbToRead = RT_MIN(cbAvail, AudioMixBufFreeBytes(&pHstStrmIn->MixBuf));
 
     LogFlowFunc(("cbToRead=%zu, cbAvail=%zu, offPeekBuf=%zu, cbPeekBuf=%zu\n",
@@ -763,5 +763,5 @@
         {
             uint32_t cWritten;
-            rc = audioMixBufWriteCirc(&pHstStrmIn->MixBuf,
+            rc = AudioMixBufWriteCirc(&pHstStrmIn->MixBuf,
                                       pThisStrmIn->pu8PeekBuf + pThisStrmIn->offPeekBuf,
                                       cbToWrite, &cWritten);
@@ -796,5 +796,5 @@
         uint32_t cProcessed = 0;
         if (cWrittenTotal)
-            rc = audioMixBufMixToParent(&pHstStrmIn->MixBuf, cWrittenTotal,
+            rc = AudioMixBufMixToParent(&pHstStrmIn->MixBuf, cWrittenTotal,
                                         &cProcessed);
 
@@ -852,5 +852,5 @@
         while (cbToRead)
         {
-            rc = audioMixBufReadCirc(&pHstStrmOut->MixBuf, pThisStrmOut->pvPCMBuf,
+            rc = AudioMixBufReadCirc(&pHstStrmOut->MixBuf, pThisStrmOut->pvPCMBuf,
                                      RT_MIN(cbToRead, pThisStrmOut->cbPCMBuf), &cRead);
             if (   !cRead
@@ -884,5 +884,5 @@
         uint32_t cReadTotal = AUDIOMIXBUF_B2S(&pHstStrmOut->MixBuf, cbReadTotal);
         if (cReadTotal)
-            audioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
+            AudioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
 
         if (pcSamplesPlayed)
Index: /trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp	(revision 55919)
+++ /trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp	(revision 55920)
@@ -59,10 +59,10 @@
      */
     PDMAUDIOMIXBUF mb;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&mb, "Single", &props, cBufSize));
-    RTTESTI_CHECK(audioMixBufSize(&mb) == cBufSize);
-    RTTESTI_CHECK(AUDIOMIXBUF_B2S(&mb, audioMixBufSizeBytes(&mb)) == cBufSize);
-    RTTESTI_CHECK(AUDIOMIXBUF_S2B(&mb, audioMixBufSize(&mb)) == audioMixBufSizeBytes(&mb));
-    RTTESTI_CHECK(audioMixBufFree(&mb) == cBufSize);
-    RTTESTI_CHECK(AUDIOMIXBUF_S2B(&mb, audioMixBufFree(&mb)) == audioMixBufFreeBytes(&mb));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&mb, "Single", &props, cBufSize));
+    RTTESTI_CHECK(AudioMixBufSize(&mb) == cBufSize);
+    RTTESTI_CHECK(AUDIOMIXBUF_B2S(&mb, AudioMixBufSizeBytes(&mb)) == cBufSize);
+    RTTESTI_CHECK(AUDIOMIXBUF_S2B(&mb, AudioMixBufSize(&mb)) == AudioMixBufSizeBytes(&mb));
+    RTTESTI_CHECK(AudioMixBufFree(&mb) == cBufSize);
+    RTTESTI_CHECK(AUDIOMIXBUF_S2B(&mb, AudioMixBufFree(&mb)) == AudioMixBufFreeBytes(&mb));
 
     /*
@@ -75,16 +75,16 @@
     int64_t samples64[2] = { 0xEE, 0xFF };
 
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&mb, 0, &samples8, sizeof(samples8), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&mb, 0, &samples8, sizeof(samples8), &written));
     RTTESTI_CHECK(written == 0 /* Samples */);
 
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&mb, 0, &samples16, sizeof(samples16), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&mb, 0, &samples16, sizeof(samples16), &written));
     RTTESTI_CHECK(written == 1 /* Samples */);
 
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&mb, 2, &samples32, sizeof(samples32), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&mb, 2, &samples32, sizeof(samples32), &written));
     RTTESTI_CHECK(written == 2 /* Samples */);
     written_abs = 0;
 
     /* Beyond buffer. */
-    RTTESTI_CHECK_RC(audioMixBufWriteAt(&mb, audioMixBufSize(&mb) + 1, &samples16, sizeof(samples16),
+    RTTESTI_CHECK_RC(AudioMixBufWriteAt(&mb, AudioMixBufSize(&mb) + 1, &samples16, sizeof(samples16),
                                         &written), VERR_BUFFER_OVERFLOW);
 
@@ -92,42 +92,42 @@
      * Circular writes.
      */
-    uint32_t cToWrite = audioMixBufSize(&mb) - written_abs - 1; /* -1 as padding plus -2 samples for above. */
+    uint32_t cToWrite = AudioMixBufSize(&mb) - written_abs - 1; /* -1 as padding plus -2 samples for above. */
     for (uint32_t i = 0; i < cToWrite; i++)
     {
-        RTTESTI_CHECK_RC_OK(audioMixBufWriteCirc(&mb, &samples16, sizeof(samples16), &written));
+        RTTESTI_CHECK_RC_OK(AudioMixBufWriteCirc(&mb, &samples16, sizeof(samples16), &written));
         RTTESTI_CHECK(written == 1);
     }
-    RTTESTI_CHECK(!audioMixBufIsEmpty(&mb));
-    RTTESTI_CHECK(audioMixBufFree(&mb) == 1);
-    RTTESTI_CHECK(audioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, 1U));
-    RTTESTI_CHECK(audioMixBufProcessed(&mb) == cToWrite + written_abs /* + last absolute write */);
-
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteCirc(&mb, &samples16, sizeof(samples16), &written));
+    RTTESTI_CHECK(!AudioMixBufIsEmpty(&mb));
+    RTTESTI_CHECK(AudioMixBufFree(&mb) == 1);
+    RTTESTI_CHECK(AudioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, 1U));
+    RTTESTI_CHECK(AudioMixBufProcessed(&mb) == cToWrite + written_abs /* + last absolute write */);
+
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteCirc(&mb, &samples16, sizeof(samples16), &written));
     RTTESTI_CHECK(written == 1);
-    RTTESTI_CHECK(audioMixBufFree(&mb) == 0);
-    RTTESTI_CHECK(audioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, 0));
-    RTTESTI_CHECK(audioMixBufProcessed(&mb) == cBufSize);
+    RTTESTI_CHECK(AudioMixBufFree(&mb) == 0);
+    RTTESTI_CHECK(AudioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, 0));
+    RTTESTI_CHECK(AudioMixBufProcessed(&mb) == cBufSize);
 
     /* Circular reads. */
-    uint32_t cToRead = audioMixBufSize(&mb) - written_abs - 1;
+    uint32_t cToRead = AudioMixBufSize(&mb) - written_abs - 1;
     for (uint32_t i = 0; i < cToWrite; i++)
     {
-        RTTESTI_CHECK_RC_OK(audioMixBufReadCirc(&mb, &samples16, sizeof(samples16), &read));
+        RTTESTI_CHECK_RC_OK(AudioMixBufReadCirc(&mb, &samples16, sizeof(samples16), &read));
         RTTESTI_CHECK(read == 1);
-        audioMixBufFinish(&mb, read);
-    }
-    RTTESTI_CHECK(!audioMixBufIsEmpty(&mb));
-    RTTESTI_CHECK(audioMixBufFree(&mb) == audioMixBufSize(&mb) - written_abs - 1);
-    RTTESTI_CHECK(audioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, cBufSize - written_abs - 1));
-    RTTESTI_CHECK(audioMixBufProcessed(&mb) == cBufSize - cToRead + written_abs);
-
-    RTTESTI_CHECK_RC_OK(audioMixBufReadCirc(&mb, &samples16, sizeof(samples16), &read));
+        AudioMixBufFinish(&mb, read);
+    }
+    RTTESTI_CHECK(!AudioMixBufIsEmpty(&mb));
+    RTTESTI_CHECK(AudioMixBufFree(&mb) == AudioMixBufSize(&mb) - written_abs - 1);
+    RTTESTI_CHECK(AudioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, cBufSize - written_abs - 1));
+    RTTESTI_CHECK(AudioMixBufProcessed(&mb) == cBufSize - cToRead + written_abs);
+
+    RTTESTI_CHECK_RC_OK(AudioMixBufReadCirc(&mb, &samples16, sizeof(samples16), &read));
     RTTESTI_CHECK(read == 1);
-    audioMixBufFinish(&mb, read);
-    RTTESTI_CHECK(audioMixBufFree(&mb) == cBufSize - written_abs);
-    RTTESTI_CHECK(audioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, cBufSize - written_abs));
-    RTTESTI_CHECK(audioMixBufProcessed(&mb) == written_abs);
-
-    audioMixBufDestroy(&mb);
+    AudioMixBufFinish(&mb, read);
+    RTTESTI_CHECK(AudioMixBufFree(&mb) == cBufSize - written_abs);
+    RTTESTI_CHECK(AudioMixBufFreeBytes(&mb) == AUDIOMIXBUF_S2B(&mb, cBufSize - written_abs));
+    RTTESTI_CHECK(AudioMixBufProcessed(&mb) == written_abs);
+
+    AudioMixBufDestroy(&mb);
 
     return RTTestSubErrorCount(hTest) ? VERR_GENERAL_FAILURE : VINF_SUCCESS;
@@ -153,5 +153,5 @@
 
     PDMAUDIOMIXBUF parent;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&parent, "Parent", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&parent, "Parent", &props, cBufSize));
 
     PDMAUDIOSTREAMCFG cfg_c1 = /* Upmixing to parent */
@@ -167,6 +167,6 @@
 
     PDMAUDIOMIXBUF child1;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&child1, "Child1", &props, cBufSize));
-    RTTESTI_CHECK_RC_OK(audioMixBufLinkTo(&child1, &parent));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&child1, "Child1", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufLinkTo(&child1, &parent));
 
     PDMAUDIOSTREAMCFG cfg_c2 = /* Downmixing to parent */
@@ -182,6 +182,6 @@
 
     PDMAUDIOMIXBUF child2;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&child2, "Child2", &props, cBufSize));
-    RTTESTI_CHECK_RC_OK(audioMixBufLinkTo(&child2, &parent));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&child2, "Child2", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufLinkTo(&child2, &parent));
 
     /*
@@ -208,34 +208,34 @@
     {
         RTTestPrintf(hTest, RTTESTLVL_DEBUG, "i=%RU32\n", i);
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufWriteAt(&child1, 0, &samples, sizeof(samples), &written));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufWriteAt(&child1, 0, &samples, sizeof(samples), &written));
         RTTESTI_CHECK_MSG_BREAK(written == cSamplesChild1, ("Child1: Expected %RU32 written samples, got %RU32\n", cSamplesChild1, written));
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufMixToParent(&child1, written, &mixed));
-        temp = audioMixBufProcessed(&parent) - audioMixBufMixed(&child2);
-        RTTESTI_CHECK_MSG_BREAK(audioMixBufMixed(&child1) == temp, ("Child1: Expected %RU32 mixed samples, got %RU32\n", audioMixBufMixed(&child1), temp));
-
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufWriteAt(&child2, 0, &samples, sizeof(samples), &written));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufMixToParent(&child1, written, &mixed));
+        temp = AudioMixBufProcessed(&parent) - AudioMixBufMixed(&child2);
+        RTTESTI_CHECK_MSG_BREAK(AudioMixBufMixed(&child1) == temp, ("Child1: Expected %RU32 mixed samples, got %RU32\n", AudioMixBufMixed(&child1), temp));
+
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufWriteAt(&child2, 0, &samples, sizeof(samples), &written));
         RTTESTI_CHECK_MSG_BREAK(written == cSamplesChild2, ("Child2: Expected %RU32 written samples, got %RU32\n", cSamplesChild2, written));
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufMixToParent(&child2, written, &mixed));
-        temp = audioMixBufProcessed(&parent) - audioMixBufMixed(&child1);
-        RTTESTI_CHECK_MSG_BREAK(audioMixBufMixed(&child2) == temp, ("Child2: Expected %RU32 mixed samples, got %RU32\n", audioMixBufMixed(&child2), temp));
-    }
-
-    RTTESTI_CHECK(audioMixBufProcessed(&parent) == audioMixBufMixed(&child1) + audioMixBufMixed(&child2));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufMixToParent(&child2, written, &mixed));
+        temp = AudioMixBufProcessed(&parent) - AudioMixBufMixed(&child1);
+        RTTESTI_CHECK_MSG_BREAK(AudioMixBufMixed(&child2) == temp, ("Child2: Expected %RU32 mixed samples, got %RU32\n", AudioMixBufMixed(&child2), temp));
+    }
+
+    RTTESTI_CHECK(AudioMixBufProcessed(&parent) == AudioMixBufMixed(&child1) + AudioMixBufMixed(&child2));
 
     for (;;)
     {
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufReadCirc(&parent, pvBuf, cbBuf, &read));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufReadCirc(&parent, pvBuf, cbBuf, &read));
         if (!read)
             break;
-        audioMixBufFinish(&parent, read);
-    }
-
-    RTTESTI_CHECK(audioMixBufProcessed(&parent) == 0);
-    RTTESTI_CHECK(audioMixBufMixed(&child1) == 0);
-    RTTESTI_CHECK(audioMixBufMixed(&child2) == 0);
-
-    audioMixBufDestroy(&parent);
-    audioMixBufDestroy(&child1);
-    audioMixBufDestroy(&child2);
+        AudioMixBufFinish(&parent, read);
+    }
+
+    RTTESTI_CHECK(AudioMixBufProcessed(&parent) == 0);
+    RTTESTI_CHECK(AudioMixBufMixed(&child1) == 0);
+    RTTESTI_CHECK(AudioMixBufMixed(&child2) == 0);
+
+    AudioMixBufDestroy(&parent);
+    AudioMixBufDestroy(&child1);
+    AudioMixBufDestroy(&child2);
 
     return RTTestSubErrorCount(hTest) ? VERR_GENERAL_FAILURE : VINF_SUCCESS;
@@ -264,5 +264,5 @@
 
     PDMAUDIOMIXBUF parent;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&parent, "Parent", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&parent, "Parent", &props, cBufSize));
 
     /* Child uses half the sample rate; that ensures the mixing engine can't
@@ -285,6 +285,6 @@
 
     PDMAUDIOMIXBUF child;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&child, "Child", &props, cBufSize));
-    RTTESTI_CHECK_RC_OK(audioMixBufLinkTo(&child, &parent));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&child, "Child", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufLinkTo(&child, &parent));
 
     /* 8-bit unsigned samples. Often used with SB16 device. */
@@ -307,19 +307,19 @@
     /**** 8-bit unsigned samples ****/
     RTTestPrintf(hTest, RTTESTLVL_DEBUG, "Conversion test %uHz %uch 8-bit\n", cfg_c.uHz, cfg_c.cChannels);
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
-    RTTESTI_CHECK_RC_OK(audioMixBufMixToParent(&child, written, &mixed));
-    temp = audioMixBufProcessed(&parent);
-    RTTESTI_CHECK_MSG(audioMixBufMixed(&child) == temp, ("Child: Expected %RU32 mixed samples, got %RU32\n", audioMixBufMixed(&child), temp));
-
-    RTTESTI_CHECK(audioMixBufProcessed(&parent) == audioMixBufMixed(&child));
+    RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
+    temp = AudioMixBufProcessed(&parent);
+    RTTESTI_CHECK_MSG(AudioMixBufMixed(&child) == temp, ("Child: Expected %RU32 mixed samples, got %RU32\n", AudioMixBufMixed(&child), temp));
+
+    RTTESTI_CHECK(AudioMixBufProcessed(&parent) == AudioMixBufMixed(&child));
 
     for (;;)
     {
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
         if (!read)
             break;
         cSamplesRead += read;
-        audioMixBufFinish(&parent, read);
+        AudioMixBufFinish(&parent, read);
     }
     RTTESTI_CHECK_MSG(cSamplesRead == cSamplesParent, ("Parent: Expected %RU32 mixed samples, got %RU32\n", cSamplesParent, cSamplesRead));
@@ -337,9 +337,9 @@
     }
 
-    RTTESTI_CHECK(audioMixBufProcessed(&parent) == 0);
-    RTTESTI_CHECK(audioMixBufMixed(&child) == 0);
-
-    audioMixBufDestroy(&parent);
-    audioMixBufDestroy(&child);
+    RTTESTI_CHECK(AudioMixBufProcessed(&parent) == 0);
+    RTTESTI_CHECK(AudioMixBufMixed(&child) == 0);
+
+    AudioMixBufDestroy(&parent);
+    AudioMixBufDestroy(&child);
 
     return RTTestSubErrorCount(hTest) ? VERR_GENERAL_FAILURE : VINF_SUCCESS;
@@ -368,5 +368,5 @@
 
     PDMAUDIOMIXBUF parent;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&parent, "Parent", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&parent, "Parent", &props, cBufSize));
 
     PDMAUDIOSTREAMCFG cfg_c =   /* Upmixing to parent */
@@ -382,6 +382,6 @@
 
     PDMAUDIOMIXBUF child;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&child, "Child", &props, cBufSize));
-    RTTESTI_CHECK_RC_OK(audioMixBufLinkTo(&child, &parent));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&child, "Child", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufLinkTo(&child, &parent));
 
     /* 16-bit signed. More or less exclusively used as output, and usually as input, too. */
@@ -404,19 +404,19 @@
     /**** 16-bit signed samples ****/
     RTTestPrintf(hTest, RTTESTLVL_DEBUG, "Conversion test %uHz %uch 16-bit\n", cfg_c.uHz, cfg_c.cChannels);
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
-    RTTESTI_CHECK_RC_OK(audioMixBufMixToParent(&child, written, &mixed));
-    temp = audioMixBufProcessed(&parent);
-    RTTESTI_CHECK_MSG(audioMixBufMixed(&child) == temp, ("Child: Expected %RU32 mixed samples, got %RU32\n", audioMixBufMixed(&child), temp));
-
-    RTTESTI_CHECK(audioMixBufProcessed(&parent) == audioMixBufMixed(&child));
+    RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
+    temp = AudioMixBufProcessed(&parent);
+    RTTESTI_CHECK_MSG(AudioMixBufMixed(&child) == temp, ("Child: Expected %RU32 mixed samples, got %RU32\n", AudioMixBufMixed(&child), temp));
+
+    RTTESTI_CHECK(AudioMixBufProcessed(&parent) == AudioMixBufMixed(&child));
 
     for (;;)
     {
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
         if (!read)
             break;
         cSamplesRead += read;
-        audioMixBufFinish(&parent, read);
+        AudioMixBufFinish(&parent, read);
     }
     RTTESTI_CHECK_MSG(cSamplesRead == cSamplesParent, ("Parent: Expected %RU32 mixed samples, got %RU32\n", cSamplesParent, cSamplesRead));
@@ -434,9 +434,9 @@
     }
 
-    RTTESTI_CHECK(audioMixBufProcessed(&parent) == 0);
-    RTTESTI_CHECK(audioMixBufMixed(&child) == 0);
-    
-    audioMixBufDestroy(&parent);
-    audioMixBufDestroy(&child);
+    RTTESTI_CHECK(AudioMixBufProcessed(&parent) == 0);
+    RTTESTI_CHECK(AudioMixBufMixed(&child) == 0);
+
+    AudioMixBufDestroy(&parent);
+    AudioMixBufDestroy(&child);
 
     return RTTestSubErrorCount(hTest) ? VERR_GENERAL_FAILURE : VINF_SUCCESS;
@@ -467,9 +467,9 @@
     PDMAUDIOVOLUME vol = { false, 0, 0 };   /* Not muted. */
     PDMAUDIOMIXBUF parent;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&parent, "Parent", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&parent, "Parent", &props, cBufSize));
 
     PDMAUDIOMIXBUF child;
-    RTTESTI_CHECK_RC_OK(audioMixBufInit(&child, "Child", &props, cBufSize));
-    RTTESTI_CHECK_RC_OK(audioMixBufLinkTo(&child, &parent));
+    RTTESTI_CHECK_RC_OK(AudioMixBufInit(&child, "Child", &props, cBufSize));
+    RTTESTI_CHECK_RC_OK(AudioMixBufLinkTo(&child, &parent));
 
     /* A few 16-bit signed samples. */
@@ -497,18 +497,18 @@
     /* 1) Full volume/0dB attenuation (255). */
     vol.uLeft = vol.uRight = 255;
-    audioMixBufSetVolume(&child, &vol);
-
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    AudioMixBufSetVolume(&child, &vol);
+
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
-    RTTESTI_CHECK_RC_OK(audioMixBufMixToParent(&child, written, &mixed));
+    RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
 
     cSamplesRead = 0;
     for (;;)
     {
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
         if (!read)
             break;
         cSamplesRead += read;
-        audioMixBufFinish(&parent, read);
+        AudioMixBufFinish(&parent, read);
     }
     RTTESTI_CHECK_MSG(cSamplesRead == cSamplesParent, ("Parent: Expected %RU32 mixed samples, got %RU32\n", cSamplesParent, cSamplesRead));
@@ -524,22 +524,22 @@
         ++pDst16;
     }
-    audioMixBufReset(&child);
+    AudioMixBufReset(&child);
 
     /* 2) Half volume/-6dB attenuation (16 steps down). */
     vol.uLeft = vol.uRight = 255 - 16;
-    audioMixBufSetVolume(&child, &vol);
-
-    RTTESTI_CHECK_RC_OK(audioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    AudioMixBufSetVolume(&child, &vol);
+
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
-    RTTESTI_CHECK_RC_OK(audioMixBufMixToParent(&child, written, &mixed));
+    RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
 
     cSamplesRead = 0;
     for (;;)
     {
-        RTTESTI_CHECK_RC_OK_BREAK(audioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
+        RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufReadCirc(&parent, achBuf, cbBuf, &read));
         if (!read)
             break;
         cSamplesRead += read;
-        audioMixBufFinish(&parent, read);
+        AudioMixBufFinish(&parent, read);
     }
     RTTESTI_CHECK_MSG(cSamplesRead == cSamplesParent, ("Parent: Expected %RU32 mixed samples, got %RU32\n", cSamplesParent, cSamplesRead));
@@ -557,6 +557,6 @@
     }
 
-    audioMixBufDestroy(&parent);
-    audioMixBufDestroy(&child);
+    AudioMixBufDestroy(&parent);
+    AudioMixBufDestroy(&child);
 
     return RTTestSubErrorCount(hTest) ? VERR_GENERAL_FAILURE : VINF_SUCCESS;
