VirtualBox

Changeset 88928 in vbox


Ignore:
Timestamp:
May 7, 2021 2:25:30 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144263
Message:
Audio/VaKit: Allow dynamic test backend selection via "[-bbackend]". bugref:10008
Location:
trunk/src/VBox
Files:
6 edited

Legend:

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

    r88924 r88928  
    15081508const PDMDRVREG g_DrvVKATAlsa =
    15091509{
     1510    /* szName */
     1511    "ALSAAudio",
    15101512    /* cbInstance */
    15111513    sizeof(DRVHOSTALSAAUDIO),
  • trunk/src/VBox/Devices/Audio/DrvHostAudioOss.cpp

    r88923 r88928  
    937937};
    938938#else
    939 const PDMDRVREG g_DrvVKATOSS =
    940 {
     939const PDMDRVREG g_DrvVKATOss =
     940{
     941    /* szName */
     942    "OSSAudio",
    941943    /* cbInstance */
    942944    sizeof(DRVHOSTOSSAUDIO),
  • trunk/src/VBox/Devices/Audio/DrvHostAudioPulseAudio.cpp

    r88923 r88928  
    20692069const PDMDRVREG g_DrvVKATPulseAudio =
    20702070{
     2071    /* szName */
     2072    "PulseAudio",
    20712073    /* cbInstance */
    20722074    sizeof(DRVHOSTPULSEAUDIO),
  • trunk/src/VBox/Devices/Audio/VBoxDDVKAT.h

    r88923 r88928  
    5252typedef struct PDMDRVREG
    5353{
     54    /** Driver name. */
     55    char                szName[32];
    5456    /** Size of the instance data. */
    5557    uint32_t            cbInstance;
     
    7678extern const PDMDRVREG g_DrvVKATPulseAudio;
    7779extern const PDMDRVREG g_DrvVKATAlsa;
     80extern const PDMDRVREG g_DrvVKATOss;
    7881
    7982#endif /* VBoxDDVKAT_h__ */
  • trunk/src/VBox/ValidationKit/utils/audio/Makefile.kmk

    r88927 r88928  
    5252
    5353ifdef VBOX_WITH_AUDIO_PULSE
     54 AudioTest_DEFS    += VBOX_WITH_AUDIO_PULSE
    5455 AudioTest_SOURCES += \
    5556        $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudioStubs.cpp \
     
    5859
    5960ifdef VBOX_WITH_AUDIO_ALSA
     61 AudioTest_DEFS    += VBOX_WITH_AUDIO_ALSA
    6062 AudioTest_SOURCES += \
    6163        $(VKAT_PATH_AUDIO)/DrvHostAudioAlsa.cpp \
     
    6466
    6567ifdef VBOX_WITH_AUDIO_OSS
     68 AudioTest_DEFS    += VBOX_WITH_AUDIO_OSS
    6669 AudioTest_SOURCES += \
    6770        $(VKAT_PATH_AUDIO)/DrvHostAudioOss.cpp
  • trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp

    r88924 r88928  
    165165static const RTGETOPTDEF g_aCmdTestOptions[] =
    166166{
     167    { "--backend",          'b',                          RTGETOPT_REQ_STRING  },
    167168    { "--exclude",          'e',                          RTGETOPT_REQ_UINT32  },
    168169    { "--exclude-all",      'a',                          RTGETOPT_REQ_NOTHING },
     
    304305    AssertReturn(pDrvReg->cbInstance, VERR_INVALID_PARAMETER); /** @todo Very crude; improve. */
    305306
     307    RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Initializing backend '%s' ...\n", pDrvReg->szName);
     308
    306309    pDrvIns->pvInstanceData = RTMemAllocZ(pDrvReg->cbInstance);
     310    AssertPtrReturn(pDrvIns->pvInstanceData, VERR_NO_MEMORY);
    307311
    308312    int rc = pDrvReg->pfnConstruct(pDrvIns, NULL /* PCFGMNODE */, 0 /* fFlags */);
     
    448452    audioTestParmsInit(&TstCust);
    449453
     454    RT_ZERO(g_DrvIns);
     455    const PDMDRVREG *pDrvReg = NULL;
     456
    450457    RTGETOPTUNION ValueUnion;
    451458    RTGETOPTSTATE GetState;
    452     RTGetOptInit(&GetState, argc, argv, g_aCmdTestOptions, RT_ELEMENTS(g_aCmdTestOptions), 1, 0 /* fFlags */);
     459    RTGetOptInit(&GetState, argc, argv, g_aCmdTestOptions, RT_ELEMENTS(g_aCmdTestOptions), 0, 0 /* fFlags */);
    453460    while ((rc = RTGetOpt(&GetState, &ValueUnion)))
    454461    {
     
    481488            }
    482489
     490            case 'b':
     491            {
     492#ifdef VBOX_WITH_AUDIO_PULSE
     493                if (   !RTStrICmp(ValueUnion.psz, "pulseaudio")
     494                    || !RTStrICmp(ValueUnion.psz, "pa"))
     495                    pDrvReg = &g_DrvVKATPulseAudio;
     496#endif
     497#ifdef VBOX_WITH_AUDIO_ALSA
     498                if (   !RTStrICmp(ValueUnion.psz, "alsa"))
     499                    pDrvReg = &g_DrvVKATAlsa;
     500#endif
     501#ifdef VBOX_WITH_AUDIO_OSS
     502                if (   !RTStrICmp(ValueUnion.psz, "oss"))
     503                    pDrvReg = &g_DrvVKATOss;
     504#endif
     505                /** @todo Add more backends here. */
     506
     507                if (pDrvReg == NULL)
     508                    return RTMsgErrorExit(RTEXITCODE_SYNTAX, "Invalid / unsupported backend '%s' specified\n", ValueUnion.psz);
     509                break;
     510            }
     511
    483512            case 'i':
    484513            {
     
    556585    RTTestBanner(g_hTest);
    557586
    558     const PDMDRVREG *pDrvReg = &g_DrvVKATAlsa;
    559 
    560     RT_ZERO(g_DrvIns);
     587    /* If no backend is specified, go with the ALSA one by default. */
     588    if (pDrvReg == NULL)
     589        pDrvReg = &g_DrvVKATAlsa;
    561590
    562591    PPDMIHOSTAUDIO pDrvAudio;
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