59 lines
2.1 KiB
C
59 lines
2.1 KiB
C
|
//--------------------------------------------------------------------------------------
|
||
|
// File: WAVFileReader.h
|
||
|
//
|
||
|
// Functions for loading WAV audio files
|
||
|
//
|
||
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||
|
// PARTICULAR PURPOSE.
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// http://go.microsoft.com/fwlink/?LinkId=248929
|
||
|
//-------------------------------------------------------------------------------------
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#pragma warning(push)
|
||
|
#pragma warning(disable : 4005)
|
||
|
#include <stdint.h>
|
||
|
#pragma warning(pop)
|
||
|
|
||
|
#include <objbase.h>
|
||
|
#include <memory>
|
||
|
#include <mmreg.h>
|
||
|
|
||
|
|
||
|
namespace DirectX
|
||
|
{
|
||
|
HRESULT LoadWAVAudioInMemory( _In_reads_bytes_(wavDataSize) const uint8_t* wavData,
|
||
|
_In_ size_t wavDataSize,
|
||
|
_Outptr_ const WAVEFORMATEX** wfx,
|
||
|
_Outptr_ const uint8_t** startAudio,
|
||
|
_Out_ uint32_t* audioBytes );
|
||
|
|
||
|
HRESULT LoadWAVAudioFromFile( _In_z_ const wchar_t* szFileName,
|
||
|
_Inout_ std::unique_ptr<uint8_t[]>& wavData,
|
||
|
_Outptr_ const WAVEFORMATEX** wfx,
|
||
|
_Outptr_ const uint8_t** startAudio,
|
||
|
_Out_ uint32_t* audioBytes );
|
||
|
|
||
|
struct WAVData
|
||
|
{
|
||
|
const WAVEFORMATEX* wfx;
|
||
|
const uint8_t* startAudio;
|
||
|
uint32_t audioBytes;
|
||
|
uint32_t loopStart;
|
||
|
uint32_t loopLength;
|
||
|
const uint32_t* seek; // Note: XMA Seek data is Big-Endian
|
||
|
uint32_t seekCount;
|
||
|
};
|
||
|
|
||
|
HRESULT LoadWAVAudioInMemoryEx( _In_reads_bytes_(wavDataSize) const uint8_t* wavData,
|
||
|
_In_ size_t wavDataSize, _Out_ WAVData& result );
|
||
|
|
||
|
HRESULT LoadWAVAudioFromFileEx( _In_z_ const wchar_t* szFileName,
|
||
|
_Inout_ std::unique_ptr<uint8_t[]>& wavData,
|
||
|
_Out_ WAVData& result );
|
||
|
}
|