3#include "factories/BaseFactory.h"
4#include "types/RawBuffer.h"
15 int32_t npredictors = 0;
16 std::vector<int16_t> book;
23 std::vector<int16_t> state;
27 int32_t attackTime = 0;
28 int32_t decayTime = 0;
29 int32_t releaseTime = 0;
30 uint8_t attackVolume = 0;
31 uint8_t decayVolume = 0;
35 uint8_t velocityMin = 0;
36 uint8_t velocityMax = 0;
48 uint32_t loopOffset = 0;
49 uint32_t bookOffset = 0;
53 uint32_t envelopeOffset = 0;
54 uint32_t keyMapOffset = 0;
55 uint32_t waveOffset = 0;
56 uint8_t samplePan = 0;
57 uint8_t sampleVolume = 0;
68 uint8_t tremDepth = 0;
69 uint8_t tremDelay = 0;
74 int16_t bendRange = 0;
75 std::vector<uint32_t> soundOffsets;
81 int32_t sampleRate = 0;
82 uint32_t percussionOffset = 0;
83 std::vector<uint32_t> instrumentOffsets;
87 std::vector<uint8_t> bytes;
88 std::vector<uint8_t> covered;
91class SoundfontData :
public RawBuffer {
93 int16_t mRevision = 0;
94 std::vector<uint32_t> mBankOffsets;
95 std::map<uint32_t, SoundfontBank> mBanks;
96 std::map<uint32_t, SoundfontInstrument> mInstruments;
97 std::map<uint32_t, SoundfontSound> mSounds;
98 std::map<uint32_t, SoundfontEnvelope> mEnvelopes;
99 std::map<uint32_t, SoundfontKeyMap> mKeyMaps;
100 std::map<uint32_t, SoundfontWave> mWaves;
101 std::map<uint32_t, SoundfontBook> mBooks;
102 std::map<uint32_t, SoundfontLoop> mLoops;
103 std::vector<uint8_t> mSampleData;
105 explicit SoundfontData(std::vector<uint8_t> bytes) : RawBuffer(bytes) {
108 uint64_t SampleDataEnd()
const;
110 std::vector<uint8_t> SampleBytes(
const SoundfontWave& wave)
const;
115 std::vector<uint8_t> raw;
116 std::vector<uint8_t> wav;
119SoundfontData ParseSoundfont(
const uint8_t* ctl,
size_t ctlSize);
122 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName,
123 YAML::Node& node, std::string* replacement)
override;
127 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName,
128 YAML::Node& node, std::string* replacement)
override;
133 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data)
override;
134 std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data)
override;
135 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters()
override {
138 bool SupportModdedAssets()
override {
143uint32_t LocateSoundfontCtl(
const std::vector<uint8_t>& rom, uint32_t ctlOffset, uint32_t ctlSize);
Definition SoundfontFactory.h:121
Definition SoundfontFactory.h:91
Definition SoundfontFactory.h:131
Definition SoundfontFactory.h:126
Definition BaseFactory.h:96
Definition BaseFactory.h:102
Definition SoundfontFactory.h:78
Definition SoundfontFactory.h:13
Definition SoundfontFactory.h:26
Definition SoundfontFactory.h:86
Definition SoundfontFactory.h:61
Definition SoundfontFactory.h:34
Definition SoundfontFactory.h:19
Definition SoundfontFactory.h:113
Definition SoundfontFactory.h:52
Definition SoundfontFactory.h:43