VirtualBox

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


Ignore:
Timestamp:
May 27, 2021 9:36:18 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144655
Message:

Audio/ValKit: Various small bugfixes for writing the test manifest file. bugref:10008

Location:
trunk/src/VBox/Devices/Audio
Files:
4 edited

Legend:

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

    r89293 r89308  
    8888 * Returns a random test tone frequency.
    8989 */
    90 DECLINLINE(double) audioTestGetRandomFreq(void)
     90DECLINLINE(double) audioTestToneGetRandomFreq(void)
    9191{
    9292    return s_aAudioTestToneFreqsHz[RTRandU32Ex(0, RT_ELEMENTS(s_aAudioTestToneFreqsHz) - 1)];
     
    105105{
    106106    if (dbFreq == 0.0)
    107         dbFreq = audioTestGetRandomFreq();
    108 
    109     /* Pick a frequency from our selection, so that every time a recording starts
    110      * we'll hopfully generate a different note. */
     107        dbFreq = audioTestToneGetRandomFreq();
     108
    111109    pTone->rdFreqHz = dbFreq;
    112110    pTone->rdFixed  = 2.0 * M_PI * pTone->rdFreqHz / PDMAudioPropsHz(pProps);
     
    262260    /** @todo Make this a bit more sophisticated later, e.g. muting and prequel/sequel are not very balanced. */
    263261
     262    pToneParams->dbFreqHz       = audioTestToneGetRandomFreq();
    264263    pToneParams->msPrequel      = RTRandU32Ex(0, RT_MS_5SEC);
    265264#ifdef DEBUG_andy
     
    335334    AssertRCReturn(rc, rc);
    336335
     336#ifndef DEBUG /* Makes debugging easier to have a deterministic directory. */
    337337    char szTime[64];
    338338    RTTIMESPEC time;
     
    347347    rc = RTPathAppend(pszPath, cbPath, szTime);
    348348    AssertRCReturn(rc, rc);
     349#endif
    349350
    350351    return RTDirCreateFullPath(pszPath, RTFS_UNIX_IRWXU);
     
    431432
    432433    /** @todo Keep it as simple as possible for now. Improve this later. */
    433     int rc = audioTestManifestWrite(pSet, "[%N]", pszSection, &va);
     434    int rc = audioTestManifestWrite(pSet, "[%N]\n", pszSection, &va);
    434435
    435436    va_end(va);
     
    968969    rc = audioTestManifestWrite(pSet, "test_type=%RU32\n", pParms->enmType);
    969970    AssertRCReturn(rc, rc);
    970     rc = audioTestManifestWrite(pSet, "test_iterations=%RU32\n", pParms->cIterations);
    971     AssertRCReturn(rc, rc);
    972971    rc = audioTestManifestWrite(pSet, "test_delay_ms=%RU32\n", pParms->msDelay);
    973972    AssertRCReturn(rc, rc);
     
    977976    switch (pParms->enmType)
    978977    {
    979         case AUDIOTESTTYPE_TESTTONE:
     978        case AUDIOTESTTYPE_TESTTONE_PLAY:
     979            RT_FALL_THROUGH();
     980        case AUDIOTESTTYPE_TESTTONE_RECORD:
    980981        {
     982            rc = audioTestManifestWrite(pSet, "tone_freq_hz=%RU16\n", (uint16_t)pParms->TestTone.dbFreqHz);
     983            AssertRCReturn(rc, rc);
    981984            rc = audioTestManifestWrite(pSet, "tone_prequel_ms=%RU32\n", pParms->TestTone.msPrequel);
    982985            AssertRCReturn(rc, rc);
  • trunk/src/VBox/Devices/Audio/AudioTest.h

    r89294 r89308  
    8080    /** Tone frequency (in Hz) to use.
    8181     *  Will be later converted to a double value. */
    82     uint16_t         uFreq;
     82    double           dbFreqHz;
    8383    /** Prequel (in ms) to play silence. Optional and can be set to 0. */
    8484    RTMSINTERVAL     msPrequel;
     
    117117    AUDIOTESTTYPE_INVALID = 0,
    118118    /** Play a test tone. */
    119     AUDIOTESTTYPE_TESTTONE,
     119    AUDIOTESTTYPE_TESTTONE_PLAY,
     120    /** Record a test tone. */
     121    AUDIOTESTTYPE_TESTTONE_RECORD,
    120122        /** The usual 32-bit hack. */
    121123    AUDIOTESTTYPE_32BIT_HACK = 0x7fffffff
     
    131133    /** How many iterations the test should be executed. */
    132134    uint32_t                cIterations;
     135    /** PCM audio stream properties to use. */
     136    PDMAUDIOPCMPROPS        Props;
    133137    /** Audio device to use. */
    134138    PDMAUDIOHOSTDEV         Dev;
  • trunk/src/VBox/Devices/Audio/AudioTestServiceProtocol.h

    r89294 r89308  
    135135    /** Test tone parameters for playback. */
    136136    AUDIOTESTTONEPARMS ToneParms;
    137     uint8_t            aPadding[12];
     137    uint8_t            aPadding[4];
    138138} ATSPKTREQTONEPLAY;
    139139AssertCompileSizeAlignment(ATSPKTREQTONEPLAY, ATSPKT_ALIGNMENT);
  • trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp

    r89294 r89308  
    149149    memcpy(&pTestData->t.TestTone.Parms, pToneParms, sizeof(AUDIOTESTTONEPARMS));
    150150
    151     AudioTestToneInit(&pTestData->t.TestTone.Tone, &pStreamCfg->Props, pTestData->t.TestTone.Parms.uFreq);
     151    AudioTestToneInit(&pTestData->t.TestTone.Tone, &pStreamCfg->Props, pTestData->t.TestTone.Parms.dbFreqHz);
    152152
    153153    pTestData->t.TestTone.cbToWrite = PDMAudioPropsMilliToBytes(&pStreamCfg->Props,
Note: See TracChangeset for help on using the changeset viewer.

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