VirtualBox

Changeset 57199 in vbox for trunk/src


Ignore:
Timestamp:
Aug 5, 2015 4:56:20 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
101951
Message:

DSound: Careful when enumerating input devices; more release logging.

File:
1 edited

Legend:

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

    r57164 r57199  
    155155}
    156156
     157static char *dsoundGUIDToUtf8StrA(LPCGUID lpGUID)
     158{
     159    LPOLESTR lpOLEStr;
     160    HRESULT hr = StringFromCLSID(*lpGUID, &lpOLEStr);
     161    if (SUCCEEDED(hr))
     162    {
     163        char *pszGUID;
     164        int rc = RTUtf16ToUtf8(lpOLEStr, &pszGUID);
     165        CoTaskMemFree(lpOLEStr);
     166
     167        return RT_SUCCESS(rc) ? pszGUID : NULL;
     168    }
     169
     170    return NULL;
     171}
     172
    157173static void dsoundFreeDeviceLists(PDRVHOSTDSOUND pThis)
    158174{
     
    605621    if (!pGUID)
    606622    {
    607         PDSOUNDDEV pDev = NULL;
     623        PDSOUNDDEV  pDev = NULL;
    608624
    609625        switch (pDSoundStrmIn->enmRecSource)
     
    613629                RTListForEach(&pThis->lstDevInput, pDev, DSOUNDDEV, Node)
    614630                {
    615                     if (RTStrIStr(pDev->pszName, "Mic") == 0) /** @todo what is with non en_us windows versions? */
     631                    if (RTStrIStr(pDev->pszName, "Mic"))    /** @todo what is with non en_us windows versions? */
    616632                        break;
    617633                }
     634                if (RTListNodeIsDummy(&pThis->lstDevInput, pDev, DSOUNDDEV, Node))
     635                    pDev = NULL;    /* Found nothing. */
    618636            } break;
    619637
     
    632650        }
    633651    }
     652
     653    char *pszGUID = dsoundGUIDToUtf8StrA(pGUID);
     654    LogRel(("DSound: Guest \"%s\" is using host device with GUID: %s\n",
     655           drvAudioRecSourceToString(pDSoundStrmIn->enmRecSource), pszGUID ? pszGUID : "NULL"));
     656    RTStrFree(pszGUID);
    634657
    635658    return pGUID;
     
    915938}
    916939
    917 static char *dsoundGUIDToUtf8StrA(LPCGUID lpGUID)
    918 {
    919     LPOLESTR lpOLEStr;
    920     HRESULT hr = StringFromCLSID(*lpGUID, &lpOLEStr);
    921     if (SUCCEEDED(hr))
    922     {
    923         char *pszGUID;
    924         int rc = RTUtf16ToUtf8(lpOLEStr, &pszGUID);
    925         CoTaskMemFree(lpOLEStr);
    926 
    927         return RT_SUCCESS(rc) ? pszGUID : NULL;
    928     }
    929 
    930     return NULL;
    931 }
    932 
    933940static void dsoundLogDevice(const char *pszType, LPGUID lpGUID, LPCWSTR lpwstrDescription, LPCWSTR lpwstrModule)
    934941{
    935942    char *pszGUID = dsoundGUIDToUtf8StrA(lpGUID);
    936943
    937     DSLOG(("DSound: %s: GUID: %s [%ls] (Module: %ls)\n",
     944    LogRel(("DSound: %s: GUID: %s [%ls] (Module: %ls)\n",
    938945           pszType, pszGUID? pszGUID: "no GUID", lpwstrDescription, lpwstrModule));
    939946
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