blob: 32873315cbf0b9d80cce344359eaee142e8ba611 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "OoTAudioTypes.h"
namespace OoT {
SafeAudioBankReader::SafeAudioBankReader(std::vector<uint8_t> data)
: mData(std::move(data)), mReader((char*)mData.data(), mData.size()) {
mReader.SetEndianness(Torch::Endianness::Big);
}
uint8_t SafeAudioBankReader::ReadU8(uint32_t offset) {
if (offset >= mData.size()) return 0;
mReader.Seek(offset, LUS::SeekOffsetType::Start);
return mReader.ReadUByte();
}
uint32_t SafeAudioBankReader::ReadU32(uint32_t offset) {
if (offset + 4 > mData.size()) return 0;
mReader.Seek(offset, LUS::SeekOffsetType::Start);
return mReader.ReadUInt32();
}
int16_t SafeAudioBankReader::ReadS16(uint32_t offset) {
if (offset + 2 > mData.size()) return 0;
mReader.Seek(offset, LUS::SeekOffsetType::Start);
return mReader.ReadInt16();
}
float SafeAudioBankReader::ReadFloat(uint32_t offset) {
if (offset + 4 > mData.size()) return 0.0f;
mReader.Seek(offset, LUS::SeekOffsetType::Start);
return mReader.ReadFloat();
}
} // namespace OoT
|