1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- //
- // Created by Иван_Архипов on 24.11.2017.
- //
- #include "WavSubfile.h"
- #include "../BinaryData.h"
- #include "../DatFile.h"
- #include "../Common/DatException.h"
- #include "../SubfileData.h"
- namespace LOTRO_DAT {
- WavSubfile::WavSubfile() = default;
- WavSubfile::WavSubfile(DatFile *dat, long long dictionary_offset, long long fragments_count, long long unknown1,
- long long file_id, long long file_offset, long long file_size, long long timestamp,
- long long version, long long block_size)
- : Subfile(dat, dictionary_offset, fragments_count, unknown1, file_id, file_offset, file_size, timestamp,
- version, block_size) {
- }
- FILE_TYPE WavSubfile::FileType() const {
- return WAV;
- }
- std::string WavSubfile::Extension() const {
- return ".wav";
- }
- std::vector<SubfileData> WavSubfile::PrepareForExport(const BinaryData &file_data) {
- std::vector<SubfileData> result(1);
- result[0].binary_data = file_data.CutData(8);
- result[0].options["fid"] = file_id();
- result[0].options["ext"] = Extension();
- return result;
- }
- BinaryData WavSubfile::MakeForImport(const BinaryData &old_data, const SubfileData &data) {
- if (!data.options["ext"] || data.options["ext"].as<std::string>() != Extension() ||
- !data.options["fid"] || data.options["fid"].as<long long>() != file_id()) {
- throw DatException("Bad DdsSubfile::MakeForImport() - invalid options data!", IMPORT_EXCEPTION);
- }
- return old_data.CutData(0, 24) + data.binary_data;
- }
- };
|