• David Reid's avatar
    Fix NXDK build for Xbox. · 61a85dca
    David Reid authored
    This disables the WASAPI, DirectSound and WinMM backends which means
    you will not get any actual audio output working. An Xbox backend will
    need to come later. The main purpose of this commit is to get the main
    library compiling.
    
    The main complication arises from the fact that both _WIN32 and
    _MSC_VER are defined which makes miniaudio think it's using a normal
    desktop Windows build. In practice it mostly works, but there's a few
    things needing to be changed specifically for NXDK:
    
      - `fopen_s()` is not a thing with NXDK. It always uses `fopen()`.
      - There is no `_wfopen()`, nor `wcsrtombs()`, so attempting to open
        a file from a wide character string will fail.
      - There is also no `CreateFileW()`, so this code path will also
        result in an error if you attempt to open a file from a wide
        character path.
      - `CoInitialize()` is not a thing with NXDK and has therefore been
        excluded from the build.
      - `GetFileInformationByHandle()` does not exist, and neither does
        `struct stat` or `stat()`. Since the only file information miniaudio
        attempts to retrieve is the file size, I've implemented a fall back
        which uses the seek/tell/seek pattern when info retrieval is
        unavailable.
      - A fall back has been implemented for comparing wide character path
        extensions which performs a case-sensitive compare instead. This
        means that if you are using wide character paths, miniaudio will not
        detect an extension like "wav" and "WAV" as the same thing. This
        might be made more robust later if there is enough demand.
    
    Public issue https://github.com/mackron/miniaudio/issues/1023
    61a85dca
miniaudio.h 3.91 MB
The source could not be displayed because it is larger than 1 MB. You can load it anyway or download it instead.