VirtualBox

Changeset 89269 in vbox for trunk/src/VBox/Devices/Audio


Ignore:
Timestamp:
May 25, 2021 12:10:57 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144612
Message:

DrvHostAudioDSound: Use RTUuidToStr instead of UuidFromStringW because the string is bracketed and it seems the windows API doesn't like that nor give us any failure. Set PDMAUDIOHOSTDEV::pszId. bugref:9890

File:
1 edited

Legend:

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

    r89258 r89269  
    183183    /** The GUID if handy. */
    184184    GUID            Guid;
     185    /** The GUID as a string (empty if default). */
     186    char            szGuid[RTUUID_STR_LENGTH];
    185187} DSOUNDDEV;
    186188/** Pointer to a DirectSound device entry. */
     
    814816            RTStrFree(pszName);
    815817
    816             if (pGUID) /* pGUID == NULL means default device. */
     818            if (!pGUID)
     819                pDev->Core.fFlags |= PDMAUDIOHOSTDEV_F_DEFAULT_OUT;
     820            else
     821            {
    817822                memcpy(&pDev->Guid, pGUID, sizeof(pDev->Guid));
     823                rc = RTUuidToStr((PCRTUUID)pGUID, pDev->szGuid, sizeof(pDev->szGuid));
     824                AssertRC(rc);
     825            }
     826            pDev->Core.pszId = &pDev->szGuid[0];
    818827
    819828            PDMAudioHostEnumAppend(pDevEnm, &pDev->Core);
     
    872881            RTStrFree(pszName);
    873882
    874             if (pGUID) /* pGUID == NULL means default capture device. */
     883            if (!pGUID)
     884                pDev->Core.fFlags |= PDMAUDIOHOSTDEV_F_DEFAULT_IN;
     885            else
     886            {
    875887                memcpy(&pDev->Guid, pGUID, sizeof(pDev->Guid));
     888                rc = RTUuidToStr((PCRTUUID)pGUID, pDev->szGuid, sizeof(pDev->szGuid));
     889                AssertRC(rc);
     890            }
     891            pDev->Core.pszId = &pDev->szGuid[0];
    876892
    877893            PDMAudioHostEnumAppend(pDevEnm, &pDev->Core);
     
    10401056                        pDev->Core.enmUsage = enmType == eRender ? PDMAUDIODIR_OUT : PDMAUDIODIR_IN;
    10411057                        pDev->Core.enmType  = PDMAUDIODEVICETYPE_BUILTIN;
     1058                        if (fDefault)
     1059                            pDev->Core.fFlags |= enmType == eRender
     1060                                                 ? PDMAUDIOHOSTDEV_F_DEFAULT_OUT : PDMAUDIOHOSTDEV_F_DEFAULT_IN;
    10421061                        if (enmType == eRender)
    10431062                            pDev->Core.cMaxOutputChannels = pFormat->nChannels;
     
    10451064                            pDev->Core.cMaxInputChannels  = pFormat->nChannels;
    10461065
    1047                         RT_NOREF(fDefault);
    10481066                        //if (fDefault)
    1049                             hrc = UuidFromStringW(VarGUID.pwszVal, &pDev->Guid);
    1050                         if (SUCCEEDED(hrc))
     1067                            rc = RTUuidFromUtf16((PRTUUID)&pDev->Guid, VarGUID.pwszVal);
     1068                        if (RT_SUCCESS(rc))
    10511069                        {
     1070                            rc = RTUuidToStr((PCRTUUID)&pDev->Guid, pDev->szGuid, sizeof(pDev->szGuid));
     1071                            AssertRC(rc);
     1072                            pDev->Core.pszId = &pDev->szGuid[0];
     1073
    10521074                            char *pszName;
    10531075                            rc = RTUtf16ToUtf8(VarName.pwszVal, &pszName);
     
    10641086                        else
    10651087                        {
    1066                             LogFunc(("UuidFromStringW(%ls): %Rhrc\n", VarGUID.pwszVal, hrc));
     1088                            LogFunc(("RTUuidFromUtf16(%ls): %Rrc\n", VarGUID.pwszVal, rc));
    10671089                            PDMAudioHostDevFree(&pDev->Core);
    10681090                        }
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