Changeset 89458 in vbox for trunk/src/VBox
- Timestamp:
- Jun 2, 2021 9:04:06 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144812
- Location:
- trunk/src/VBox
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/AudioTestService.cpp
r89456 r89458 609 609 610 610 PATSPKTREQTONEPLAY pReq = (PATSPKTREQTONEPLAY)pPktHdr; 611 rc = pThis->Callbacks.pfnTonePlay(pThis->Callbacks.pvUser, &pReq-> StreamCfg, &pReq->ToneParms);611 rc = pThis->Callbacks.pfnTonePlay(pThis->Callbacks.pvUser, &pReq->ToneParms); 612 612 613 613 int rc2 = atsReplyAck(pThis, pClient, pPktHdr); … … 640 640 641 641 PATSPKTREQTONEREC pReq = (PATSPKTREQTONEREC)pPktHdr; 642 rc = pThis->Callbacks.pfnToneRecord(pThis->Callbacks.pvUser, &pReq-> StreamCfg, &pReq->ToneParms);642 rc = pThis->Callbacks.pfnToneRecord(pThis->Callbacks.pvUser, &pReq->ToneParms); 643 643 644 644 int rc2 = atsReplyAck(pThis, pClient, pPktHdr); -
trunk/src/VBox/Devices/Audio/AudioTestService.h
r89456 r89458 56 56 * @returns VBox status code. 57 57 * @param pvUser User-supplied pointer to context data. Optional. 58 * @param pStreamCfg Audio stream configuration to use for stream to play tone on.59 58 * @param pToneParms Tone parameters to use for playback. 60 59 */ 61 DECLR3CALLBACKMEMBER(int, pfnTonePlay, (void const *pvUser, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms));60 DECLR3CALLBACKMEMBER(int, pfnTonePlay, (void const *pvUser, PAUDIOTESTTONEPARMS pToneParms)); 62 61 63 62 /** … … 66 65 * @returns VBox status code. 67 66 * @param pvUser User-supplied pointer to context data. Optional. 68 * @param pStreamCfg Audio stream configuration to use for stream to play tone on. 69 * @param cMsDelay Delay (in ms) before start recording. 70 * @param cMsDuration Duration (in ms) to record. 67 * @param pToneParms Tone parameters to use for recording. 71 68 */ 72 DECLR3CALLBACKMEMBER(int, pfnToneRecord, (void const *pvUser, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms));69 DECLR3CALLBACKMEMBER(int, pfnToneRecord, (void const *pvUser, PAUDIOTESTTONEPARMS pToneParms)); 73 70 74 71 /** Pointer to opaque user-provided context data. */ -
trunk/src/VBox/Devices/Audio/AudioTestServiceClient.cpp
r89456 r89458 355 355 * @returns VBox status code. 356 356 * @param pClient Client to issue command for. 357 * @param pStreamCfg Audio stream configuration to use.358 357 * @param pToneParms Tone parameters to use. 359 358 * @note How (and if) the server plays a tone depends on the actual implementation side. 360 359 */ 361 int AudioTestSvcClientTonePlay(PATSCLIENT pClient, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms)360 int AudioTestSvcClientTonePlay(PATSCLIENT pClient, PAUDIOTESTTONEPARMS pToneParms) 362 361 { 363 362 ATSPKTREQTONEPLAY Req; 364 363 365 memcpy(&Req.StreamCfg, pStreamCfg, sizeof(PDMAUDIOSTREAMCFG));366 364 memcpy(&Req.ToneParms, pToneParms, sizeof(AUDIOTESTTONEPARMS)); 367 365 … … 380 378 * @returns VBox status code. 381 379 * @param pClient Client to issue command for. 382 * @param pStreamCfg Audio stream configuration to use.383 380 * @param pToneParms Tone parameters to use. 384 381 * @note How (and if) the server plays a tone depends on the actual implementation side. 385 382 */ 386 int AudioTestSvcClientToneRecord(PATSCLIENT pClient, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms)383 int AudioTestSvcClientToneRecord(PATSCLIENT pClient, PAUDIOTESTTONEPARMS pToneParms) 387 384 { 388 385 ATSPKTREQTONEREC Req; 389 386 390 memcpy(&Req.StreamCfg, pStreamCfg, sizeof(PDMAUDIOSTREAMCFG));391 387 memcpy(&Req.ToneParms, pToneParms, sizeof(AUDIOTESTTONEPARMS)); 392 388 -
trunk/src/VBox/Devices/Audio/AudioTestServiceClient.h
r89456 r89458 33 33 int AudioTestSvcClientTestSetBegin(PATSCLIENT pClient, const char *pszTag); 34 34 int AudioTestSvcClientTestSetEnd(PATSCLIENT pClient, const char *pszTag); 35 int AudioTestSvcClientTonePlay(PATSCLIENT pClient, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms);36 int AudioTestSvcClientToneRecord(PATSCLIENT pClient, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms);35 int AudioTestSvcClientTonePlay(PATSCLIENT pClient, PAUDIOTESTTONEPARMS pToneParms); 36 int AudioTestSvcClientToneRecord(PATSCLIENT pClient, PAUDIOTESTTONEPARMS pToneParms); 37 37 int AudioTestSvcClientClose(PATSCLIENT pClient); 38 38 -
trunk/src/VBox/Devices/Audio/AudioTestServiceProtocol.h
r89456 r89458 162 162 /** Embedded packet header. */ 163 163 ATSPKTHDR Hdr; 164 /** Stream configuration to use for playing the tone.165 * Note: Depending on the actual implementation this configuration might or might not be available / supported. */166 PDMAUDIOSTREAMCFG StreamCfg;167 164 /** Test tone parameters for playback. */ 168 165 AUDIOTESTTONEPARMS ToneParms; 169 #if HC_ARCH_BITS == 64 170 uint8_t aPadding[4+8]; 171 #else 172 uint8_t aPadding[6+8]; 173 #endif 166 uint8_t aPadding[8]; 174 167 } ATSPKTREQTONEPLAY; 175 168 AssertCompileSizeAlignment(ATSPKTREQTONEPLAY, ATSPKT_ALIGNMENT); … … 186 179 /** Embedded packet header. */ 187 180 ATSPKTHDR Hdr; 188 /** Stream configuration to use for recording the tone.189 * Note: Depending on the actual implementation this configuration might or might not be available / supported. */190 PDMAUDIOSTREAMCFG StreamCfg;191 181 /** Test tone parameters for playback. */ 192 182 AUDIOTESTTONEPARMS ToneParms; 193 #if HC_ARCH_BITS == 64 194 uint8_t aPadding[4+8]; 195 #else 196 uint8_t aPadding[6+8]; 197 #endif 183 uint8_t aPadding[8]; 198 184 } ATSPKTREQTONEREC; 199 185 AssertCompileSizeAlignment(ATSPKTREQTONEREC, ATSPKT_ALIGNMENT); -
trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp
r89383 r89458 116 116 * Note: Called within server (client serving) thread. 117 117 */ 118 static DECLCALLBACK(int) drvHostValKitAudioSvcTonePlayCallback(void const *pvUser, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms)118 static DECLCALLBACK(int) drvHostValKitAudioSvcTonePlayCallback(void const *pvUser, PAUDIOTESTTONEPARMS pToneParms) 119 119 { 120 120 PDRVHOSTVALKITAUDIO pThis = (PDRVHOSTVALKITAUDIO)pvUser; … … 123 123 AssertPtrReturn(pTestData, VERR_NO_MEMORY); 124 124 125 memcpy(&pTestData->StreamCfg, pStreamCfg, sizeof(PDMAUDIOSTREAMCFG));126 125 memcpy(&pTestData->t.TestTone.Parms, pToneParms, sizeof(AUDIOTESTTONEPARMS)); 127 126 128 AudioTestToneInit(&pTestData->t.TestTone.Tone, &p StreamCfg->Props, pTestData->t.TestTone.Parms.dbFreqHz);129 130 pTestData->t.TestTone.cbToWrite = PDMAudioPropsMilliToBytes(&p StreamCfg->Props,127 AudioTestToneInit(&pTestData->t.TestTone.Tone, &pToneParms->Props, pTestData->t.TestTone.Parms.dbFreqHz); 128 129 pTestData->t.TestTone.cbToWrite = PDMAudioPropsMilliToBytes(&pToneParms->Props, 131 130 pTestData->t.TestTone.Parms.msDuration); 132 131 int rc = RTCritSectEnter(&pThis->CritSect); -
trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp
r89457 r89458 593 593 594 594 /** @copydoc ATSCALLBACKS::pfnTonePlay */ 595 static DECLCALLBACK(int) audioTestSvcTonePlayCallback(void const *pvUser, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms)595 static DECLCALLBACK(int) audioTestSvcTonePlayCallback(void const *pvUser, PAUDIOTESTTONEPARMS pToneParms) 596 596 { 597 597 PATSCALLBACKCTX pCtx = (PATSCALLBACKCTX)pvUser; … … 599 599 600 600 AUDIOTESTTONE TstTone; 601 AudioTestToneInitRandom(&TstTone, &p StreamCfg->Props);601 AudioTestToneInitRandom(&TstTone, &pToneParms->Props); 602 602 603 603 const PAUDIOTESTSTREAM pTstStream = &pTstEnv->aStreams[0]; /** @todo Make this dynamic. */ 604 604 605 int rc = audioTestCreateStreamDefaultOut(pTstEnv, pTstStream, &p StreamCfg->Props);605 int rc = audioTestCreateStreamDefaultOut(pTstEnv, pTstStream, &pToneParms->Props); 606 606 if (RT_SUCCESS(rc)) 607 607 { … … 636 636 637 637 /** @copydoc ATSCALLBACKS::pfnToneRecord */ 638 static DECLCALLBACK(int) audioTestSvcToneRecordCallback(void const *pvUser, P PDMAUDIOSTREAMCFG pStreamCfg, PAUDIOTESTTONEPARMS pToneParms)638 static DECLCALLBACK(int) audioTestSvcToneRecordCallback(void const *pvUser, PAUDIOTESTTONEPARMS pToneParms) 639 639 { 640 640 PATSCALLBACKCTX pCtx = (PATSCALLBACKCTX)pvUser; … … 643 643 const PAUDIOTESTSTREAM pTstStream = &pTstEnv->aStreams[0]; /** @todo Make this dynamic. */ 644 644 645 int rc = audioTestCreateStreamDefaultIn(pTstEnv, pTstStream, &p StreamCfg->Props);645 int rc = audioTestCreateStreamDefaultIn(pTstEnv, pTstStream, &pToneParms->Props); 646 646 if (RT_SUCCESS(rc)) 647 647 { … … 650 650 TstParms.enmType = AUDIOTESTTYPE_TESTTONE_RECORD; 651 651 TstParms.enmDir = PDMAUDIODIR_IN; 652 TstParms.Props = pStreamCfg->Props; 653 pToneParms->Props = pStreamCfg->Props; 652 TstParms.Props = pToneParms->Props; 654 653 TstParms.TestTone = *pToneParms; 655 654 … … 1087 1086 Cfg.Props = pTstParms->Props; 1088 1087 1089 rc = AudioTestSvcClientTonePlay(&pTstEnv->u.Host.Client, & Cfg, &pTstParms->TestTone);1088 rc = AudioTestSvcClientTonePlay(&pTstEnv->u.Host.Client, &pTstParms->TestTone); 1090 1089 if (RT_SUCCESS(rc)) 1091 1090 { … … 1146 1145 for (uint32_t i = 0; i < pTstParms->cIterations; i++) 1147 1146 { 1147 pTstParms->TestTone.Props = pTstParms->Props; 1148 1148 pTstParms->TestTone.msDuration = RTRandU32Ex(50 /* ms */, RT_MS_10SEC); /** @todo Record even longer? */ 1149 1149 … … 1152 1152 if (RT_SUCCESS(rc)) 1153 1153 { 1154 PDMAUDIOSTREAMCFG Cfg; 1155 RT_ZERO(Cfg); 1156 /** @todo Add more parameters here? */ 1157 Cfg.Props = pTstParms->Props; 1158 1159 rc = AudioTestSvcClientToneRecord(&pTstEnv->u.Host.Client, &Cfg, &pTstParms->TestTone); 1154 rc = AudioTestSvcClientToneRecord(&pTstEnv->u.Host.Client, &pTstParms->TestTone); 1160 1155 if (RT_SUCCESS(rc)) 1161 1156 { … … 2095 2090 memcpy(&ToneParms.Props, &CfgAcq.Props, sizeof(PDMAUDIOPCMPROPS)); 2096 2091 2097 rc = AudioTestSvcClientTonePlay(&Conn, & CfgAcq, &ToneParms);2092 rc = AudioTestSvcClientTonePlay(&Conn, &ToneParms); 2098 2093 2099 2094 int rc2 = AudioTestSvcClientClose(&Conn);
Note:
See TracChangeset
for help on using the changeset viewer.