VirtualBox

Changeset 108360 in vbox


Ignore:
Timestamp:
Feb 24, 2025 6:04:12 PM (2 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167720
Message:

Audio/DrvHostAudioWasApi: Extended logging a bit for better analysis within release builds. bugref:10844

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DrvHostAudioWasApi.cpp

    r107925 r108360  
    340340
    341341
     342/**
     343 * Returns the MMDeviceState as a string.
     344 *
     345 * @returns Pointer to MMDeviceState string.
     346 * @param   dwState             MMDeviceState to return as a string.
     347 */
     348DECLINLINE(const char *) drvHostAudioWasMMDeviceStateToString(DWORD dwState)
     349{
     350    switch (dwState)
     351    {
     352        case DEVICE_STATE_ACTIVE:     return "ACTIVE";
     353        case DEVICE_STATE_DISABLED:   return "DISABLED";
     354        case DEVICE_STATE_NOTPRESENT: return "NOTPRESENT";
     355        case DEVICE_STATE_UNPLUGGED:  return "UNPLUGGED";
     356        default:                      break;
     357    }
     358
     359    AssertFailed();
     360    return "???";
     361}
     362
     363
    342364/*********************************************************************************************************************************
    343365*   IMMNotificationClient implementation
     
    455477    IFACEMETHODIMP OnDeviceStateChanged(LPCWSTR pwszDeviceId, DWORD dwNewState)
    456478    {
    457         RT_NOREF(pwszDeviceId, dwNewState);
    458         Log7Func(("pwszDeviceId=%ls dwNewState=%u (%#x)\n", pwszDeviceId, dwNewState, dwNewState));
    459 
     479        LogRelMax(64, ("WasAPI: Device state for '%ls' changed to %s (%#x)\n",
     480                       pwszDeviceId, drvHostAudioWasMMDeviceStateToString(dwNewState), dwNewState));
    460481        /*
    461482         * Just trigger device re-enumeration.
     
    474495    IFACEMETHODIMP OnDeviceAdded(LPCWSTR pwszDeviceId)
    475496    {
    476         RT_NOREF(pwszDeviceId);
    477         Log7Func(("pwszDeviceId=%ls\n", pwszDeviceId));
     497        LogRelMax(64, ("WasAPI: Device '%ls' added\n", pwszDeviceId));
    478498
    479499        /*
     
    516536    IFACEMETHODIMP OnDeviceRemoved(LPCWSTR pwszDeviceId)
    517537    {
    518         RT_NOREF(pwszDeviceId);
    519         Log7Func(("pwszDeviceId=%ls\n", pwszDeviceId));
     538        LogRelMax(64, ("WasAPI: Device '%ls' removed\n", pwszDeviceId));
    520539
    521540        /*
     
    12431262            LogRel2(("WasAPI: Checking for cached device '%ls' ...\n", pwszDevId));
    12441263
     1264#define LOG_STALE_DEVICE(a_LogRel2What) \
     1265    LogRel2(a_LogRel2What); \
     1266    LogRel(("WasAPI: Stale audio interface '%ls' detected!\n", pDevEntry->wszDevId));
     1267
     1268#define LOG_STALE_DEVICE_BREAK(a_LogRel2What) \
     1269    { \
     1270        LOG_STALE_DEVICE(a_LogRel2What); \
     1271        break; \
     1272    }
     1273
    12451274            /*
    12461275             * The cache has two levels, so first the device entry.
     
    12641293                     */
    12651294                    if (pDevEntry->pIDevice != pIDevice)
    1266                     {
    1267                         LogRel2(("WasAPI: Cache hit for device '%ls': Stale interface (new: %p, old: %p)\n",
    1268                                   pDevEntry->wszDevId, pIDevice, pDevEntry->pIDevice));
    1269 
    1270                         LogRel(("WasAPI: Stale audio interface '%ls' detected!\n", pDevEntry->wszDevId));
    1271                         break;
    1272                     }
    1273 
    1274                     LogRel2(("WasAPI: Cache hit for device '%ls' (%p)\n", pwszDevId, pIDevice));
     1295                        LOG_STALE_DEVICE_BREAK(("WasAPI: Cache hit for device '%ls': Stale interface (new: %p, old: %p)\n",
     1296                                                pDevEntry->wszDevId, pIDevice, pDevEntry->pIDevice));
     1297
     1298                    LogRel2(("WasAPI: Cache hit for device '%ls' (iface %p)\n", pwszDevId, pIDevice));
    12751299
    12761300                    CoTaskMemFree(pwszDevId);
     
    12821306            RTCritSectLeave(&pThis->CritSectCache);
    12831307
    1284             LogRel2(("WasAPI: Cache miss for device '%ls' (%p)\n", pwszDevId, pIDevice));
     1308            LogRel2(("WasAPI: Cache miss for device '%ls' (iface %p)\n", pwszDevId, pIDevice));
     1309
     1310#undef LOG_STALE_DEVICE_BREAK
     1311#undef LOG_STALE_DEVICE
     1312
    12851313        }
    12861314        else
    1287             LogRel2(("WasAPI: Cache disabled for device '%ls' (%p)\n", pwszDevId, pIDevice));
     1315            LogRel2(("WasAPI: Cache disabled for device '%ls' (iface %p)\n", pwszDevId, pIDevice));
    12881316
    12891317        /*
     
    13291357                        pDevEntry = NULL;
    13301358
    1331                         LogRel2(("WasAPI: Lost race adding device '%ls': %p\n", pDevEntry2->wszDevId, pDevEntry2));
     1359                        LogRel2(("WasAPI: Lost race adding device '%ls' (node %p)\n", pDevEntry2->wszDevId, pDevEntry2));
    13321360                        return drvHostAudioWasCacheLookupOrCreateConfig(pThis, pDevEntry2, pCfgReq, fOnWorker, ppDevCfg);
    13331361                    }
     
    13351363                RTListPrepend(&pThis->CacheHead, &pDevEntry->ListEntry);
    13361364
    1337                 LogRel2(("WasAPI: Added device '%ls' to cache: %p\n", pDevEntry->wszDevId, pDevEntry));
     1365                LogRel2(("WasAPI: Added device '%ls' to cache (node %p)\n", pDevEntry->wszDevId, pDevEntry));
    13381366            }
    13391367
     
    33183346        hrc = pThis->pIEnumerator->GetDefaultAudioEndpoint(eCapture, eMultimedia, &pIDeviceInput);
    33193347    if (SUCCEEDED(hrc))
    3320         LogFlowFunc(("pIDeviceInput=%p\n", pIDeviceInput));
     3348        LogRel(("WasAPI: Input device is: %ls (iface %p)\n",
     3349                pThis->pwszInputDevId ? pThis->pwszInputDevId : L"{Default}", pIDeviceInput));
    33213350    else
    33223351    {
     
    33323361        hrc = pThis->pIEnumerator->GetDefaultAudioEndpoint(eRender, eMultimedia, &pIDeviceOutput);
    33333362    if (SUCCEEDED(hrc))
    3334         LogFlowFunc(("pIDeviceOutput=%p\n", pIDeviceOutput));
     3363        LogRel(("WasAPI: Output device is: %ls (iface %p)\n",
     3364                pThis->pwszOutputDevId ? pThis->pwszOutputDevId : L"{Default}", pIDeviceOutput));
    33353365    else
    33363366    {
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette