Changeset 89308 in vbox for trunk/src/VBox/Devices/Audio
- Timestamp:
- May 27, 2021 9:36:18 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144655
- Location:
- trunk/src/VBox/Devices/Audio
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/AudioTest.cpp
r89293 r89308 88 88 * Returns a random test tone frequency. 89 89 */ 90 DECLINLINE(double) audioTest GetRandomFreq(void)90 DECLINLINE(double) audioTestToneGetRandomFreq(void) 91 91 { 92 92 return s_aAudioTestToneFreqsHz[RTRandU32Ex(0, RT_ELEMENTS(s_aAudioTestToneFreqsHz) - 1)]; … … 105 105 { 106 106 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 111 109 pTone->rdFreqHz = dbFreq; 112 110 pTone->rdFixed = 2.0 * M_PI * pTone->rdFreqHz / PDMAudioPropsHz(pProps); … … 262 260 /** @todo Make this a bit more sophisticated later, e.g. muting and prequel/sequel are not very balanced. */ 263 261 262 pToneParams->dbFreqHz = audioTestToneGetRandomFreq(); 264 263 pToneParams->msPrequel = RTRandU32Ex(0, RT_MS_5SEC); 265 264 #ifdef DEBUG_andy … … 335 334 AssertRCReturn(rc, rc); 336 335 336 #ifndef DEBUG /* Makes debugging easier to have a deterministic directory. */ 337 337 char szTime[64]; 338 338 RTTIMESPEC time; … … 347 347 rc = RTPathAppend(pszPath, cbPath, szTime); 348 348 AssertRCReturn(rc, rc); 349 #endif 349 350 350 351 return RTDirCreateFullPath(pszPath, RTFS_UNIX_IRWXU); … … 431 432 432 433 /** @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); 434 435 435 436 va_end(va); … … 968 969 rc = audioTestManifestWrite(pSet, "test_type=%RU32\n", pParms->enmType); 969 970 AssertRCReturn(rc, rc); 970 rc = audioTestManifestWrite(pSet, "test_iterations=%RU32\n", pParms->cIterations);971 AssertRCReturn(rc, rc);972 971 rc = audioTestManifestWrite(pSet, "test_delay_ms=%RU32\n", pParms->msDelay); 973 972 AssertRCReturn(rc, rc); … … 977 976 switch (pParms->enmType) 978 977 { 979 case AUDIOTESTTYPE_TESTTONE: 978 case AUDIOTESTTYPE_TESTTONE_PLAY: 979 RT_FALL_THROUGH(); 980 case AUDIOTESTTYPE_TESTTONE_RECORD: 980 981 { 982 rc = audioTestManifestWrite(pSet, "tone_freq_hz=%RU16\n", (uint16_t)pParms->TestTone.dbFreqHz); 983 AssertRCReturn(rc, rc); 981 984 rc = audioTestManifestWrite(pSet, "tone_prequel_ms=%RU32\n", pParms->TestTone.msPrequel); 982 985 AssertRCReturn(rc, rc); -
trunk/src/VBox/Devices/Audio/AudioTest.h
r89294 r89308 80 80 /** Tone frequency (in Hz) to use. 81 81 * Will be later converted to a double value. */ 82 uint16_t uFreq;82 double dbFreqHz; 83 83 /** Prequel (in ms) to play silence. Optional and can be set to 0. */ 84 84 RTMSINTERVAL msPrequel; … … 117 117 AUDIOTESTTYPE_INVALID = 0, 118 118 /** Play a test tone. */ 119 AUDIOTESTTYPE_TESTTONE, 119 AUDIOTESTTYPE_TESTTONE_PLAY, 120 /** Record a test tone. */ 121 AUDIOTESTTYPE_TESTTONE_RECORD, 120 122 /** The usual 32-bit hack. */ 121 123 AUDIOTESTTYPE_32BIT_HACK = 0x7fffffff … … 131 133 /** How many iterations the test should be executed. */ 132 134 uint32_t cIterations; 135 /** PCM audio stream properties to use. */ 136 PDMAUDIOPCMPROPS Props; 133 137 /** Audio device to use. */ 134 138 PDMAUDIOHOSTDEV Dev; -
trunk/src/VBox/Devices/Audio/AudioTestServiceProtocol.h
r89294 r89308 135 135 /** Test tone parameters for playback. */ 136 136 AUDIOTESTTONEPARMS ToneParms; 137 uint8_t aPadding[ 12];137 uint8_t aPadding[4]; 138 138 } ATSPKTREQTONEPLAY; 139 139 AssertCompileSizeAlignment(ATSPKTREQTONEPLAY, ATSPKT_ALIGNMENT); -
trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp
r89294 r89308 149 149 memcpy(&pTestData->t.TestTone.Parms, pToneParms, sizeof(AUDIOTESTTONEPARMS)); 150 150 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); 152 152 153 153 pTestData->t.TestTone.cbToWrite = PDMAudioPropsMilliToBytes(&pStreamCfg->Props,
Note:
See TracChangeset
for help on using the changeset viewer.