Changeset 89058 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- May 15, 2021 5:03:22 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144398
- Location:
- trunk/src/VBox/ValidationKit/utils/audio
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/utils/audio/Makefile.kmk
r89056 r89058 56 56 AudioTest_DEFS += VBOX_WITH_AUDIO_PULSE 57 57 AudioTest_SOURCES += \ 58 $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudioStubs.cpp \59 $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudio.cpp58 $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudioStubs.cpp \ 59 $(VKAT_PATH_AUDIO)/DrvHostAudioPulseAudio.cpp 60 60 endif 61 61 … … 63 63 AudioTest_DEFS += VBOX_WITH_AUDIO_ALSA 64 64 AudioTest_SOURCES += \ 65 $(VKAT_PATH_AUDIO)/DrvHostAudioAlsa.cpp \66 $(VKAT_PATH_AUDIO)/DrvHostAudioAlsaStubs.cpp65 $(VKAT_PATH_AUDIO)/DrvHostAudioAlsa.cpp \ 66 $(VKAT_PATH_AUDIO)/DrvHostAudioAlsaStubs.cpp 67 67 endif 68 68 … … 70 70 AudioTest_DEFS += VBOX_WITH_AUDIO_OSS 71 71 AudioTest_SOURCES += \ 72 $(VKAT_PATH_AUDIO)/DrvHostAudioOss.cpp72 $(VKAT_PATH_AUDIO)/DrvHostAudioOss.cpp 73 73 endif 74 75 AudioTest_SOURCES.darwin = \ 76 $(VKAT_PATH_AUDIO)/DrvHostAudioCoreAudio.cpp \ 77 $(VKAT_PATH_AUDIO)/DrvHostAudioCoreAudioAuth.mm 78 AudioTest_LDFLAGS.darwin = \ 79 -framework CoreAudio \ 80 -framework AudioUnit \ 81 -framework AudioToolbox \ 82 -framework AVFoundation \ 83 -framework Foundation 74 84 75 85 include $(FILE_KBUILD_SUB_FOOTER) -
trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp
r89055 r89058 226 226 }, 227 227 }; 228 229 /** 230 * Backends. 231 * 232 * @note The first backend in the array is the default one for the platform. 233 */ 234 static struct 235 { 236 /** The driver registration structure. */ 237 PCPDMDRVREG pDrvReg; 238 /** The backend name. 239 * Aliases are implemented by having multiple entries for the same backend. */ 240 const char *pszName; 241 } const g_aBackends[] = 242 { 243 #if defined(VBOX_WITH_AUDIO_ALSA) && defined(RT_OS_LINUX) 244 { &g_DrvHostALSAAudio, "alsa" }, 245 #endif 246 #ifdef VBOX_WITH_AUDIO_PULSE 247 { &g_DrvHostPulseAudio, "pulseaudio" }, 248 { &g_DrvHostPulseAudio, "pulse" }, 249 { &g_DrvHostPulseAudio, "pa" }, 250 #endif 251 #ifdef VBOX_WITH_AUDIO_OSS 252 { &g_DrvHostOSSAudio, "oss" }, 253 #endif 254 #if defined(RT_OS_DARWIN) 255 { &g_DrvHostCoreAudio, "coreaudio" }, 256 { &g_DrvHostCoreAudio, "core" }, 257 { &g_DrvHostCoreAudio, "ca" }, 258 #endif 259 #if defined(RT_OS_WINDOWS) 260 { &g_DrvHostAudioWas, "wasapi" }, 261 { &g_DrvHostAudioWas, "was" }, 262 { &g_DrvHostDSound, "directsound" }, 263 { &g_DrvHostDSound, "dsound" }, 264 { &g_DrvHostDSound, "ds" }, 265 #endif 266 }; 267 AssertCompile(sizeof(g_aBackends) > 0 /* port me */); 228 268 229 269 /** The test handle. */ … … 712 752 Cfg.enmLayout = PDMAUDIOSTREAMLAYOUT_NON_INTERLEAVED; 713 753 754 Cfg.Backend.cFramesBufferSize = PDMAudioPropsMilliToFrames(pProps, 300); 755 Cfg.Backend.cFramesPreBuffering = PDMAudioPropsMilliToFrames(pProps, 200); 756 Cfg.Backend.cFramesPeriod = PDMAudioPropsMilliToFrames(pProps, 10); 757 Cfg.Device.cMsSchedulingHint = 10; 758 714 759 return audioTestStreamCreate(pTstEnv, pStream, &Cfg); 715 760 } … … 981 1026 const char *pszDevice = NULL; /* Custom device to use. Can be NULL if not being used. */ 982 1027 const char *pszTag = NULL; /* Custom tag to use. Can be NULL if not being used. */ 983 984 /* The backend: */ 985 PCPDMDRVREG pDrvReg; 986 #if defined(RT_OS_WINDOWS) 987 pDrvReg = &g_DrvHostAudioWas; 988 #elif defined(RT_OS_DARWIN) 989 pDrvReg = &g_DrvHostCoreAudio; 990 #elif defined(RT_OS_SOLARIS) 991 pDrvReg = &g_DrvHostOSSAudio; 992 #elif defined(RT_OS_LINUX) && defined(VBOX_WITH_AUDIO_ALSA) 993 pDrvReg = &g_DrvHostALSAAudio; 994 #elif defined(RT_OS_LINUX) && defined(VBOX_WITH_AUDIO_PULSE) 995 pDrvReg = &g_DrvHostPulseAudio; 996 #elif defined(RT_OS_LINUX) && defined(VBOX_WITH_AUDIO_OSS) 997 pDrvReg = &g_DrvHostPulseAudio; 998 #else 999 # error "Port me!" 1000 #endif 1001 1002 RTGETOPTUNION ValueUnion; 1028 PCPDMDRVREG pDrvReg = g_aBackends[0].pDrvReg; 1029 1003 1030 RTGETOPTSTATE GetState; 1004 1031 int rc = RTGetOptInit(&GetState, argc, argv, g_aCmdTestOptions, RT_ELEMENTS(g_aCmdTestOptions), 1, 0 /*fFlags*/); 1005 1032 AssertRCReturn(rc, RTEXITCODE_INIT); 1006 1033 1034 RTGETOPTUNION ValueUnion; 1007 1035 while ((rc = RTGetOpt(&GetState, &ValueUnion))) 1008 1036 { … … 1020 1048 case 'b': 1021 1049 pDrvReg = NULL; 1022 #ifdef VBOX_WITH_AUDIO_PULSE 1023 if ( !strcmp(ValueUnion.psz, "pulseaudio") 1024 || !strcmp(ValueUnion.psz, "pa")) 1025 pDrvReg = &g_DrvHostPulseAudio; 1026 #endif 1027 #ifdef VBOX_WITH_AUDIO_ALSA 1028 if ( !strcmp(ValueUnion.psz, "alsa")) 1029 pDrvReg = &g_DrvHostALSAAudio; 1030 #endif 1031 #ifdef VBOX_WITH_AUDIO_OSS 1032 if ( !strcmp(ValueUnion.psz, "oss")) 1033 pDrvReg = &g_DrvHostOSSAudio; 1034 #endif 1035 #if defined(RT_OS_DARWIN) 1036 if ( !strcmp(ValueUnion.psz, "coreaudio")) 1037 pDrvReg = &g_DrvHostCoreAudio; 1038 #endif 1039 #if defined(RT_OS_WINDOWS) 1040 if ( !strcmp(ValueUnion.psz, "wasapi")) 1041 pDrvReg = &g_DrvHostAudioWas; 1042 else if ( !strcmp(ValueUnion.psz, "directsound") 1043 || !strcmp(ValueUnion.psz, "dsound") 1044 pDrvReg = &g_DrvHostDSound; 1045 #endif 1050 for (uintptr_t i = 0; i < RT_ELEMENTS(g_aBackends); i++) 1051 if ( strcmp(ValueUnion.psz, g_aBackends[i].pszName) == 0 1052 || strcmp(ValueUnion.psz, g_aBackends[i].pDrvReg->szName) == 0) 1053 { 1054 pDrvReg = g_aBackends[i].pDrvReg; 1055 break; 1056 } 1046 1057 if (pDrvReg == NULL) 1047 1058 return RTMsgErrorExit(RTEXITCODE_SYNTAX, "Unknown backend: '%s'", ValueUnion.psz);
Note:
See TracChangeset
for help on using the changeset viewer.