VirtualBox

Changeset 90011 in vbox for trunk


Ignore:
Timestamp:
Jul 4, 2021 8:26:51 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145500
Message:

Audio: Baked AudioHlpFileNameGet into AudioHlpFileCreate and added name formatting. bugref:9890

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

Legend:

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

    r90010 r90011  
    242242 * @param   pszPath     Base path to use.  If NULL or empty, the user's
    243243 *                      temporary directory will be used.
    244  * @param   pszName     A name for better identifying the file.
     244 * @param   pszNameFmt  A name for better identifying the file.
     245 * @param   va          Arguments for @a pszNameFmt.
    245246 * @param   uInstance   Device / driver instance which is using this file.
    246247 * @param   enmType     Audio file type to construct file name for.
     
    248249 * @param   chTweak     Retry tweak character.
    249250 */
    250 static int audioHlpConstructPathWorker(char *pszDst, size_t cbDst, const char *pszPath, const char *pszName,
     251static int audioHlpConstructPathWorker(char *pszDst, size_t cbDst, const char *pszPath, const char *pszNameFmt, va_list va,
    251252                                       uint32_t uInstance, AUDIOHLPFILETYPE enmType, uint32_t fFlags, char chTweak)
    252253{
     
    255256     */
    256257    AssertPtrNullReturn(pszPath, VERR_INVALID_POINTER);
    257     AssertPtrReturn(pszName, VERR_INVALID_POINTER);
     258    AssertPtrReturn(pszNameFmt, VERR_INVALID_POINTER);
    258259    AssertReturn(!(fFlags & ~AUDIOHLPFILENAME_FLAGS_VALID_MASK), VERR_INVALID_FLAGS);
    259260
     
    319320
    320321    /* Append the filename, instance, retry-tweak and suffix. */
     322    va_list vaCopy;
     323    va_copy(vaCopy, va);
    321324    ssize_t cchTail;
    322325    if (chTweak == '\0')
    323         cchTail = RTStrPrintf2(&pszDst[offDst], cbDst - offDst, "%s-%u%s", pszName, uInstance, pszSuffix);
     326        cchTail = RTStrPrintf2(&pszDst[offDst], cbDst - offDst, "%N-%u%s", pszNameFmt, &vaCopy, uInstance, pszSuffix);
    324327    else
    325         cchTail = RTStrPrintf2(&pszDst[offDst], cbDst - offDst, "%s-%u%c%s", pszName, uInstance, chTweak, pszSuffix);
     328        cchTail = RTStrPrintf2(&pszDst[offDst], cbDst - offDst, "%N-%u%c%s", pszNameFmt, &vaCopy, uInstance, chTweak, pszSuffix);
     329    va_end(vaCopy);
    326330    AssertReturn(cchTail > 0, VERR_BUFFER_OVERFLOW);
    327331
     
    329333}
    330334
    331 /**
    332  * Constructs an unique file name, based on the given path and the audio file type.
     335
     336/**
     337 * Worker for AudioHlpFileCreateF and AudioHlpFileCreateAndOpenEx that allocates
     338 * and initializes a AUDIOHLPFILE instance.
     339 */
     340static int audioHlpFileCreateWorker(PAUDIOHLPFILE *ppFile, uint32_t fFlags, AUDIOHLPFILETYPE enmType, const char *pszPath)
     341{
     342    AssertReturn(!(fFlags & ~AUDIOHLPFILE_FLAGS_VALID_MASK), VERR_INVALID_FLAGS);
     343
     344    size_t const cbPath = strlen(pszPath) + 1;
     345    PAUDIOHLPFILE pFile = (PAUDIOHLPFILE)RTMemAllocVar(RT_UOFFSETOF_DYN(AUDIOHLPFILE, szName[cbPath]));
     346    AssertPtrReturn(pFile, VERR_NO_MEMORY);
     347
     348    pFile->enmType = enmType;
     349    pFile->fFlags  = fFlags;
     350    pFile->hFile   = NIL_RTFILE;
     351    pFile->pvData  = NULL;
     352    pFile->cbData  = 0;
     353    memcpy(pFile->szName, pszPath, cbPath);
     354
     355    *ppFile = pFile;
     356    return VINF_SUCCESS;
     357}
     358
     359
     360/**
     361 * Creates an instance of AUDIOHLPFILE with the given filename and type.
     362 *
     363 * @note This does <b>NOT</b> create the file, see AudioHlpFileOpen for that.
    333364 *
    334365 * @returns VBox status code.
    335  * @param   pszDst      Where to store the constructed file name.
    336  * @param   cbDst       Size of the destination buffer (bytes; incl terminator).
    337  * @param   pszPath     Base path to use.  If NULL or empty, the user's
    338  *                      temporary directory will be used.
    339  * @param   pszName     A name for better identifying the file.
    340  * @param   uInstance   Device / driver instance which is using this file.
    341  * @param   enmType     Audio file type to construct file name for.
    342  * @param   fFlags      File naming flags, AUDIOHLPFILENAME_FLAGS_XXX.
    343  */
    344 int AudioHlpFileNameGet(char *pszDst, size_t cbDst, const char *pszPath, const char *pszName,
    345                         uint32_t uInstance, AUDIOHLPFILETYPE enmType, uint32_t fFlags)
    346 {
    347     return audioHlpConstructPathWorker(pszDst, cbDst, pszPath, pszName, uInstance, enmType, fFlags, '\0');
    348 }
    349 
    350 /**
    351  * Creates an audio file.
    352  *
    353  * @returns VBox status code.
    354  * @param   enmType             Audio file type to open / create.
    355  * @param   pszFile             File path of file to open or create.
    356  * @param   fFlags              Audio file flags, AUDIOHLPFILE_FLAGS_XXX.
    357  * @param   ppFile              Where to store the created audio file handle.
    358  *                              Needs to be destroyed with AudioHlpFileDestroy().
    359  */
    360 int AudioHlpFileCreate(AUDIOHLPFILETYPE enmType, const char *pszFile, uint32_t fFlags, PAUDIOHLPFILE *ppFile)
    361 {
    362     AssertPtrReturn(pszFile, VERR_INVALID_POINTER);
    363     /** @todo Validate fFlags. */
    364 
    365     PAUDIOHLPFILE pFile = (PAUDIOHLPFILE)RTMemAlloc(sizeof(AUDIOHLPFILE));
    366     if (!pFile)
    367         return VERR_NO_MEMORY;
    368 
    369     int rc = VINF_SUCCESS;
    370 
    371     switch (enmType)
    372     {
    373         case AUDIOHLPFILETYPE_RAW:
    374         case AUDIOHLPFILETYPE_WAV:
    375             pFile->enmType = enmType;
    376             break;
    377 
    378         default:
    379             rc = VERR_INVALID_PARAMETER;
    380             break;
    381     }
    382 
    383     if (RT_SUCCESS(rc))
    384     {
    385         RTStrPrintf(pFile->szName, RT_ELEMENTS(pFile->szName), "%s", pszFile);
    386         pFile->hFile  = NIL_RTFILE;
    387         pFile->fFlags = fFlags;
    388         pFile->pvData = NULL;
    389         pFile->cbData = 0;
    390     }
    391 
    392     if (RT_FAILURE(rc))
    393     {
    394         RTMemFree(pFile);
    395         pFile = NULL;
    396     }
    397     else
    398         *ppFile = pFile;
    399 
    400     return rc;
    401 }
     366 * @param   ppFile      Where to return the pointer to the audio debug file
     367 *                      instance on success.
     368 * @param   fFlags      AUDIOHLPFILE_FLAGS_XXX.
     369 * @param   enmType     The audio file type to produce.
     370 * @param   pszPath     The directory path.  The temporary directory will be
     371 *                      used if NULL or empty.
     372 * @param   fFilename   AUDIOHLPFILENAME_FLAGS_XXX.
     373 * @param   uInstance   The instance number (will be appended to the filename
     374 *                      with a dash inbetween).
     375 * @param   pszNameFmt  The filename format string.
     376 * @param   ...         Arguments to the filename format string.
     377 */
     378int AudioHlpFileCreateF(PAUDIOHLPFILE *ppFile, uint32_t fFlags, AUDIOHLPFILETYPE enmType,
     379                        const char *pszPath, uint32_t fFilename, uint32_t uInstance, const char *pszNameFmt, ...)
     380{
     381    *ppFile = NULL;
     382
     383    /*
     384     * Construct the filename first.
     385     */
     386    char szPath[RTPATH_MAX];
     387    va_list va;
     388    va_start(va, pszNameFmt);
     389    int rc = audioHlpConstructPathWorker(szPath, sizeof(szPath), pszPath, pszNameFmt, va, uInstance, enmType, fFilename, '\0');
     390    va_end(va);
     391    AssertRCReturn(rc, rc);
     392
     393    /*
     394     * Allocate and initializes a debug file instance with that filename path.
     395     */
     396    return audioHlpFileCreateWorker(ppFile, fFlags, enmType, szPath);
     397}
     398
    402399
    403400/**
     
    416413    pFile = NULL;
    417414}
     415
    418416
    419417/**
     
    436434
    437435    if (pFile->enmType == AUDIOHLPFILETYPE_RAW)
    438     {
    439436        rc = RTFileOpen(&pFile->hFile, pFile->szName, fOpen);
    440     }
    441437    else if (pFile->enmType == AUDIOHLPFILETYPE_WAV)
    442438    {
     
    499495}
    500496
     497
    501498/**
    502499 * Creates a debug file structure and opens a file for it, extended version.
     
    506503 * @param   enmType     The file type.
    507504 * @param   pszDir      The directory to open the file in.
    508  * @param   pszName     The base filename.
    509505 * @param   iInstance   The device/driver instance.
    510506 * @param   fFilename   AUDIOHLPFILENAME_FLAGS_XXX.
     
    512508 * @param   pProps      PCM audio properties for the file.
    513509 * @param   fOpen       RTFILE_O_XXX or AUDIOHLPFILE_DEFAULT_OPEN_FLAGS.
    514  */
    515 int AudioHlpFileCreateAndOpenEx(PAUDIOHLPFILE *ppFile, AUDIOHLPFILETYPE enmType, const char *pszDir, const char *pszName,
     510 * @param   pszNameFmt  The base filename.
     511 * @param   ...         Filename format arguments.
     512 */
     513int AudioHlpFileCreateAndOpenEx(PAUDIOHLPFILE *ppFile, AUDIOHLPFILETYPE enmType, const char *pszDir,
    516514                                uint32_t iInstance, uint32_t fFilename, uint32_t fCreate,
    517                                 PCPDMAUDIOPCMPROPS pProps, uint64_t fOpen)
     515                                PCPDMAUDIOPCMPROPS pProps, uint64_t fOpen, const char *pszNameFmt, ...)
    518516{
    519517    *ppFile = NULL;
     
    521519    for (uint32_t iTry = 0; ; iTry++)
    522520    {
     521        /* Format the path to the filename. */
    523522        char szFile[RTPATH_MAX];
    524         int rc = audioHlpConstructPathWorker(szFile, sizeof(szFile), pszDir, pszName, iInstance, enmType, fFilename,
     523        va_list va;
     524        va_start(va, pszNameFmt);
     525        int rc = audioHlpConstructPathWorker(szFile, sizeof(szFile), pszDir, pszNameFmt, va, iInstance, enmType, fFilename,
    525526                                             iTry == 0 ? '\0' : iTry + 'a');
     527        va_end(va);
    526528        AssertRCReturn(rc, rc);
    527529
     530        /* Create an debug audio file instance with the filename path. */
    528531        PAUDIOHLPFILE pFile = NULL;
    529         rc = AudioHlpFileCreate(enmType, szFile, fCreate, &pFile);
     532        rc = audioHlpFileCreateWorker(&pFile, fCreate, enmType, szFile);
    530533        AssertRCReturn(rc, rc);
    531534
     535        /* Try open it. */
    532536        rc = AudioHlpFileOpen(pFile, fOpen, pProps);
    533537        if (RT_SUCCESS(rc))
     
    542546}
    543547
     548
    544549/**
    545550 * Creates a debug wav-file structure and opens a file for it, default flags.
     
    555560                              uint32_t iInstance, PCPDMAUDIOPCMPROPS pProps)
    556561{
    557     return AudioHlpFileCreateAndOpenEx(ppFile, AUDIOHLPFILETYPE_WAV, pszDir, pszName, iInstance,
     562    return AudioHlpFileCreateAndOpenEx(ppFile, AUDIOHLPFILETYPE_WAV, pszDir, iInstance,
    558563                                       AUDIOHLPFILENAME_FLAGS_NONE, AUDIOHLPFILE_FLAGS_NONE,
    559                                        pProps, AUDIOHLPFILE_DEFAULT_OPEN_FLAGS);
     564                                       pProps, AUDIOHLPFILE_DEFAULT_OPEN_FLAGS, "%s", pszName);
    560565}
    561566
     
    607612        && !cbSize
    608613        && !(pFile->fFlags & AUDIOHLPFILE_FLAGS_KEEP_IF_EMPTY))
    609     {
    610614        rc = AudioHlpFileDelete(pFile);
    611     }
    612615
    613616    pFile->cbData = 0;
     
    624627}
    625628
     629
    626630/**
    627631 * Deletes an audio file.
    628632 *
    629633 * @returns VBox status code.
    630  * @param   pFile               Audio file handle to delete.
     634 * @param   pFile               Audio file to delete.
    631635 */
    632636int AudioHlpFileDelete(PAUDIOHLPFILE pFile)
     
    636640    int rc = RTFileDelete(pFile->szName);
    637641    if (RT_SUCCESS(rc))
    638     {
    639642        LogRel2(("Audio: Deleted file '%s'\n", pFile->szName));
    640     }
    641     else if (rc == VERR_FILE_NOT_FOUND) /* Don't bitch if the file is not around (anymore). */
     643    else if (rc == VERR_FILE_NOT_FOUND) /* Don't bitch if the file is not around anymore. */
    642644        rc = VINF_SUCCESS;
    643645
     
    648650}
    649651
     652
    650653/**
    651654 * Returns the raw audio data size of an audio file.
    652655 *
    653  * Note: This does *not* include file headers and other data which does
    654  *       not belong to the actual PCM audio data.
     656 * @note This does *not* include file headers and other data which does not
     657 *       belong to the actual PCM audio data.
    655658 *
    656659 * @returns Size (in bytes) of the raw PCM audio data.
     
    664667
    665668    if (pFile->enmType == AUDIOHLPFILETYPE_RAW)
    666     {
    667669        cbSize = RTFileTell(pFile->hFile);
    668     }
    669670    else if (pFile->enmType == AUDIOHLPFILETYPE_WAV)
    670671    {
     
    677678}
    678679
     680
    679681/**
    680682 * Returns whether the given audio file is open and in use or not.
    681683 *
    682  * @return  bool                True if open, false if not.
    683  * @param   pFile               Audio file handle to check open status for.
     684 * @returnd True if open, false if not.
     685 * @param   pFile               Audio file to check open status for.
    684686 */
    685687bool AudioHlpFileIsOpen(PAUDIOHLPFILE pFile)
     
    691693}
    692694
     695
    693696/**
    694697 * Write PCM data to a wave (.WAV) file.
    695698 *
    696699 * @returns VBox status code.
    697  * @param   pFile               Audio file handle to write PCM data to.
     700 * @param   pFile               Audio file to write PCM data to.
    698701 * @param   pvBuf               Audio data to write.
    699702 * @param   cbBuf               Size (in bytes) of audio data to write.
     
    715718
    716719    if (pFile->enmType == AUDIOHLPFILETYPE_RAW)
    717     {
    718720        rc = RTFileWrite(pFile->hFile, pvBuf, cbBuf, NULL);
    719     }
    720721    else if (pFile->enmType == AUDIOHLPFILETYPE_WAV)
    721722    {
  • trunk/src/VBox/Devices/Audio/AudioHlp.h

    r90010 r90011  
    7575} AUDIOHLPFILETYPE;
    7676
    77 /** @name Audio file (name) helper methods.
    78  * @{ */
    79 int     AudioHlpFileNameGet(char *pszFile, size_t cchFile, const char *pszPath, const char *pszName,
    80                             uint32_t uInstance, AUDIOHLPFILETYPE enmType, uint32_t fFlags);
    81 /** @}  */
    82 
    8377/** @name AUDIOHLPFILENAME_FLAGS_XXX
    8478 * @{ */
     
    108102    size_t              cbData;
    109103    /** File name and path. */
    110     char                szName[RTPATH_MAX];
     104    RT_FLEXIBLE_ARRAY_EXTENSION
     105    char                szName[RT_FLEXIBLE_ARRAY];
    111106} AUDIOHLPFILE;
    112107/** Pointer to an audio file handle. */
     
    117112int     AudioHlpFileCreateAndOpen(PAUDIOHLPFILE *ppFile, const char *pszDir, const char *pszName,
    118113                                  uint32_t iInstance, PCPDMAUDIOPCMPROPS pProps);
    119 int     AudioHlpFileCreateAndOpenEx(PAUDIOHLPFILE *ppFile, AUDIOHLPFILETYPE enmType, const char *pszDir, const char *pszName,
     114int     AudioHlpFileCreateAndOpenEx(PAUDIOHLPFILE *ppFile, AUDIOHLPFILETYPE enmType, const char *pszDir,
    120115                                    uint32_t iInstance, uint32_t fFilename, uint32_t fCreate,
    121                                     PCPDMAUDIOPCMPROPS pProps, uint64_t fOpen);
    122 int     AudioHlpFileCreate(AUDIOHLPFILETYPE enmType, const char *pszFile, uint32_t fFlags, PAUDIOHLPFILE *ppFile);
     116                                    PCPDMAUDIOPCMPROPS pProps, uint64_t fOpen, const char *pszName, ...);
     117int     AudioHlpFileCreateF(PAUDIOHLPFILE *ppFile, uint32_t fFlags, AUDIOHLPFILETYPE enmType,
     118                            const char *pszPath, uint32_t fFilename, uint32_t uInstance, const char *pszFileFmt, ...);
     119
    123120void    AudioHlpFileDestroy(PAUDIOHLPFILE pFile);
    124121int     AudioHlpFileOpen(PAUDIOHLPFILE pFile, uint32_t fOpen, PCPDMAUDIOPCMPROPS pProps);
  • trunk/src/VBox/Devices/Audio/DevHdaStream.cpp

    r89887 r90011  
    108108    if (pStreamR3->Dbg.Runtime.fEnabled)
    109109    {
    110         char szFile[64];
    111         char szPath[RTPATH_MAX];
    112 
    113         /* pFileStream */
    114         if (fIsInput)
    115             RTStrPrintf(szFile, sizeof(szFile), "hdaStreamWriteSD%RU8", uSD);
    116         else
    117             RTStrPrintf(szFile, sizeof(szFile), "hdaStreamReadSD%RU8", uSD);
    118 
    119         int rc2 = AudioHlpFileNameGet(szPath, sizeof(szPath), pThisCC->Dbg.pszOutPath, szFile,
    120                                       0 /* uInst */, AUDIOHLPFILETYPE_WAV, AUDIOHLPFILENAME_FLAGS_NONE);
     110        int rc2 = AudioHlpFileCreateF(&pStreamR3->Dbg.Runtime.pFileStream, AUDIOHLPFILE_FLAGS_NONE, AUDIOHLPFILETYPE_WAV,
     111                                      pThisCC->Dbg.pszOutPath, AUDIOHLPFILENAME_FLAGS_NONE, 0 /*uInstance*/,
     112                                      fIsInput ? "hdaStreamWriteSD%RU8" : "hdaStreamReadSD%RU8", uSD);
    121113        AssertRC(rc2);
    122114
    123         rc2 = AudioHlpFileCreate(AUDIOHLPFILETYPE_WAV, szPath, AUDIOHLPFILE_FLAGS_NONE, &pStreamR3->Dbg.Runtime.pFileStream);
     115        /* pFileDMARaw */
     116        rc2 = AudioHlpFileCreateF(&pStreamR3->Dbg.Runtime.pFileDMARaw, AUDIOHLPFILE_FLAGS_NONE, AUDIOHLPFILETYPE_WAV,
     117                                  pThisCC->Dbg.pszOutPath, AUDIOHLPFILENAME_FLAGS_NONE, 0 /*uInstance*/,
     118                                  fIsInput ? "hdaDMARawWriteSD%RU8" : "hdaDMARawReadSD%RU8", uSD);
    124119        AssertRC(rc2);
    125120
    126         /* pFileDMARaw */
    127         if (fIsInput)
    128             RTStrPrintf(szFile, sizeof(szFile), "hdaDMARawWriteSD%RU8", uSD);
    129         else
    130             RTStrPrintf(szFile, sizeof(szFile), "hdaDMARawReadSD%RU8", uSD);
    131 
    132         rc2 = AudioHlpFileNameGet(szPath, sizeof(szPath), pThisCC->Dbg.pszOutPath, szFile,
    133                                   0 /* uInst */, AUDIOHLPFILETYPE_WAV, AUDIOHLPFILENAME_FLAGS_NONE);
    134         AssertRC(rc2);
    135 
    136         rc2 = AudioHlpFileCreate(AUDIOHLPFILETYPE_WAV, szPath, AUDIOHLPFILE_FLAGS_NONE, &pStreamR3->Dbg.Runtime.pFileDMARaw);
    137         AssertRC(rc2);
    138 
    139121        /* pFileDMAMapped */
    140         if (fIsInput)
    141             RTStrPrintf(szFile, sizeof(szFile), "hdaDMAWriteMappedSD%RU8", uSD);
    142         else
    143             RTStrPrintf(szFile, sizeof(szFile), "hdaDMAReadMappedSD%RU8", uSD);
    144 
    145         rc2 = AudioHlpFileNameGet(szPath, sizeof(szPath), pThisCC->Dbg.pszOutPath, szFile,
    146                                   0 /* uInst */, AUDIOHLPFILETYPE_WAV, AUDIOHLPFILENAME_FLAGS_NONE);
    147         AssertRC(rc2);
    148 
    149         rc2 = AudioHlpFileCreate(AUDIOHLPFILETYPE_WAV, szPath, AUDIOHLPFILE_FLAGS_NONE, &pStreamR3->Dbg.Runtime.pFileDMAMapped);
     122        rc2 = AudioHlpFileCreateF(&pStreamR3->Dbg.Runtime.pFileDMAMapped, AUDIOHLPFILE_FLAGS_NONE, AUDIOHLPFILETYPE_WAV,
     123                                  pThisCC->Dbg.pszOutPath, AUDIOHLPFILENAME_FLAGS_NONE, 0 /*uInstance*/,
     124                                  fIsInput ? "hdaDMAWriteMappedSD%RU8" : "hdaDMAReadMappedSD%RU8", uSD);
    150125        AssertRC(rc2);
    151126
  • trunk/src/VBox/Devices/Audio/DevIchAc97.cpp

    r90006 r90011  
    24112411    else
    24122412    {
    2413         char szFile[64];
    2414         if (ichac97R3GetDirFromSD(pStream->u8SD) == PDMAUDIODIR_IN)
    2415             RTStrPrintf(szFile, sizeof(szFile), "ac97StreamWriteSD%RU8", pStream->u8SD);
    2416         else
    2417             RTStrPrintf(szFile, sizeof(szFile), "ac97StreamReadSD%RU8", pStream->u8SD);
    2418 
    2419         char szPath[RTPATH_MAX];
    2420         int rc2 = AudioHlpFileNameGet(szPath, sizeof(szPath), pThisCC->Dbg.pszOutPath, szFile,
    2421                                       0 /* uInst */, AUDIOHLPFILETYPE_WAV, AUDIOHLPFILENAME_FLAGS_NONE);
     2413        int rc2 = AudioHlpFileCreateF(&pStreamCC->Dbg.Runtime.pFileStream, AUDIOHLPFILE_FLAGS_NONE, AUDIOHLPFILETYPE_WAV,
     2414                                      pThisCC->Dbg.pszOutPath, AUDIOHLPFILENAME_FLAGS_NONE, 0 /*uInstance*/,
     2415                                      ichac97R3GetDirFromSD(pStream->u8SD) == PDMAUDIODIR_IN
     2416                                      ? "ac97StreamWriteSD%RU8" : "ac97StreamReadSD%RU8", pStream->u8SD);
    24222417        AssertRC(rc2);
    2423         rc2 = AudioHlpFileCreate(AUDIOHLPFILETYPE_WAV, szPath, AUDIOHLPFILE_FLAGS_NONE, &pStreamCC->Dbg.Runtime.pFileStream);
    2424         AssertRC(rc2);
    2425 
    2426         if (ichac97R3GetDirFromSD(pStream->u8SD) == PDMAUDIODIR_IN)
    2427             RTStrPrintf(szFile, sizeof(szFile), "ac97DMAWriteSD%RU8", pStream->u8SD);
    2428         else
    2429             RTStrPrintf(szFile, sizeof(szFile), "ac97DMAReadSD%RU8", pStream->u8SD);
    2430 
    2431         rc2 = AudioHlpFileNameGet(szPath, sizeof(szPath), pThisCC->Dbg.pszOutPath, szFile,
    2432                                   0 /* uInst */, AUDIOHLPFILETYPE_WAV, AUDIOHLPFILENAME_FLAGS_NONE);
    2433         AssertRC(rc2);
    2434 
    2435         rc2 = AudioHlpFileCreate(AUDIOHLPFILETYPE_WAV, szPath, AUDIOHLPFILE_FLAGS_NONE, &pStreamCC->Dbg.Runtime.pFileDMA);
     2418
     2419        rc2 = AudioHlpFileCreateF(&pStreamCC->Dbg.Runtime.pFileDMA, AUDIOHLPFILE_FLAGS_NONE, AUDIOHLPFILETYPE_WAV,
     2420                                  pThisCC->Dbg.pszOutPath, AUDIOHLPFILENAME_FLAGS_NONE, 0 /*uInstance*/,
     2421                                  ichac97R3GetDirFromSD(pStream->u8SD) == PDMAUDIODIR_IN
     2422                                  ? "ac97DMAWriteSD%RU8" : "ac97DMAReadSD%RU8", pStream->u8SD);
    24362423        AssertRC(rc2);
    24372424
  • trunk/src/VBox/Devices/Audio/DevSB16.cpp

    r89822 r90011  
    20652065    else
    20662066    {
    2067         char szFile[64];
    2068 
    2069         if (sb16GetDirFromIndex(pStream->uIdx) == PDMAUDIODIR_IN)
    2070             RTStrPrintf(szFile, sizeof(szFile), "sb16StreamWriteSD%RU8", pStream->uIdx);
    2071         else
    2072             RTStrPrintf(szFile, sizeof(szFile), "sb16StreamReadSD%RU8", pStream->uIdx);
    2073 
    2074         char szPath[RTPATH_MAX];
    2075         int rc2 = AudioHlpFileNameGet(szPath, sizeof(szPath), pThis->Dbg.pszOutPath, szFile,
    2076                                       0 /* uInst */, AUDIOHLPFILETYPE_WAV, AUDIOHLPFILENAME_FLAGS_NONE);
    2077         AssertRC(rc2);
    2078         rc2 = AudioHlpFileCreate(AUDIOHLPFILETYPE_WAV, szPath, AUDIOHLPFILE_FLAGS_NONE, &pStream->Dbg.Runtime.pFileDMA);
     2067        int rc2 = AudioHlpFileCreateF(&pStream->Dbg.Runtime.pFileDMA, AUDIOHLPFILE_FLAGS_NONE, AUDIOHLPFILETYPE_WAV,
     2068                                      pThis->Dbg.pszOutPath, AUDIOHLPFILENAME_FLAGS_NONE, 0 /*uInstance*/,
     2069                                      sb16GetDirFromIndex(pStream->uIdx) == PDMAUDIODIR_IN
     2070                                      ? "sb16StreamWriteSD%RU8" : "sb16StreamReadSD%RU8", pStream->uIdx);
    20792071        AssertRC(rc2);
    20802072
  • trunk/src/VBox/Devices/Audio/DrvHostAudioDebug.cpp

    r89510 r90011  
    118118
    119119    int rc = AudioHlpFileCreateAndOpenEx(&pStreamDbg->pFile, AUDIOHLPFILETYPE_WAV, NULL /*use temp dir*/,
    120                                          pCfgReq->enmDir == PDMAUDIODIR_IN ? "DebugAudioIn" : "DebugAudioOut",
    121120                                         pThis->pDrvIns->iInstance, AUDIOHLPFILENAME_FLAGS_NONE, AUDIOHLPFILE_FLAGS_NONE,
    122                                          &pCfgReq->Props, RTFILE_O_WRITE | RTFILE_O_DENY_WRITE | RTFILE_O_CREATE_REPLACE);
     121                                         &pCfgReq->Props, RTFILE_O_WRITE | RTFILE_O_DENY_WRITE | RTFILE_O_CREATE_REPLACE,
     122                                         pCfgReq->enmDir == PDMAUDIODIR_IN ? "DebugAudioIn" : "DebugAudioOut");
    123123    if (RT_FAILURE(rc))
    124124        LogRel(("DebugAudio: Failed to creating debug file for %s stream '%s' in the temp directory: %Rrc\n",
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