7#include <unordered_map>
57 std::optional<std::int64_t>
va;
84 std::optional<std::int64_t>
size;
97 [[nodiscard]]
static const TableManifest&
defaults();
102 [[nodiscard]]
static TableManifest
parse(std::string_view json);
108 [[nodiscard]] std::int64_t
image_base() const noexcept {
return image_base_; }
111 [[nodiscard]]
const std::vector<TableEntry>&
cached_tables() const noexcept {
return tables_; }
114 [[nodiscard]]
const std::vector<LiveRegion>&
live_regions() const noexcept {
return regions_; }
127 TableManifest() =
default;
136 using is_transparent = void;
138 [[nodiscard]] std::size_t operator()(std::string_view text)
const noexcept
140 return std::hash<std::string_view>{}(text);
144 using Index = std::unordered_map<std::string, std::size_t, StringHash, std::equal_to<>>;
147 std::int64_t image_base_ = 0;
148 std::vector<TableEntry> tables_;
149 std::vector<LiveRegion> regions_;
151 Index regions_by_name_;
const TableEntry & table(std::string_view name) const
Looks up a cached table by its .bin file name, e.g.
static const TableManifest & defaults()
The manifest embedded in this library. Parsed once, on first use.
static TableManifest parse(std::string_view json)
Parses a manifest from a JSON document.
const DllIdentity & dll() const noexcept
The DLL build these offsets are valid for.
Definition table_manifest.hpp:105
const std::vector< LiveRegion > & live_regions() const noexcept
The regions read directly from the DLL rather than cached.
Definition table_manifest.hpp:114
std::int64_t image_base() const noexcept
The DLL's preferred image base, 0x180000000.
Definition table_manifest.hpp:108
const std::vector< TableEntry > & cached_tables() const noexcept
The static tables cached as .bin slices.
Definition table_manifest.hpp:111
const LiveRegion & region(std::string_view name) const
Looks up a live region by name, e.g.
Definition control_decode.hpp:7
Identity of the SCCore.dll build every offset in the manifest is pinned to.
Definition table_manifest.hpp:18
std::string md5
Lower-case hex MD5 of the whole file.
Definition table_manifest.hpp:32
std::string version
The SOUND Canvas VA release this build ships in — 1.1.6.
Definition table_manifest.hpp:24
std::int64_t size
Exact file size in bytes.
Definition table_manifest.hpp:26
std::string sha1
Lower-case hex SHA-1 of the whole file.
Definition table_manifest.hpp:30
std::string sha256
Lower-case hex SHA-256 of the whole file.
Definition table_manifest.hpp:28
std::string product
Human-readable product description.
Definition table_manifest.hpp:22
std::uint32_t pe_timestamp
COFF TimeDateStamp from the PE header.
Definition table_manifest.hpp:34
std::string file_name
Expected file name, for diagnostics only.
Definition table_manifest.hpp:20
A region read straight from the DLL at render time rather than cached to a .bin file — the two wave-R...
Definition table_manifest.hpp:72
std::optional< std::int64_t > size
Length in bytes, when the manifest records one.
Definition table_manifest.hpp:84
std::int64_t file_offset
Offset of the first byte within the DLL file.
Definition table_manifest.hpp:82
std::string subsystem
Owning subsystem, ROM or DIR.
Definition table_manifest.hpp:78
std::string name
Region name, e.g. wave_rom_bank_A.
Definition table_manifest.hpp:74
std::string purpose
What the region is for.
Definition table_manifest.hpp:86
std::string dtype
Element description.
Definition table_manifest.hpp:80
std::string symbol
Project label for the symbol.
Definition table_manifest.hpp:76
One static table sliced byte-for-byte out of the DLL.
Definition table_manifest.hpp:38
std::string shape
Human-readable shape, e.g.
Definition table_manifest.hpp:51
std::optional< std::int64_t > va
Virtual address in the loaded image, when known.
Definition table_manifest.hpp:57
std::string subsystem
Owning subsystem: TVA, TVF, PITCH, ENV, LFO, DIR, SAMPLER, MIX or CTRL.
Definition table_manifest.hpp:44
std::string symbol
Project label for the symbol, e.g. g_amp_curve_hi. Not Roland's name.
Definition table_manifest.hpp:42
std::string dtype
Element type as recorded by the manifest generator.
Definition table_manifest.hpp:46
std::int32_t size
Length in bytes.
Definition table_manifest.hpp:53
std::optional< std::int64_t > section_adjust
Section skew used to derive file_offset from va.
Definition table_manifest.hpp:59
std::string purpose
What the table is for.
Definition table_manifest.hpp:63
std::string match
full when the cached bytes match the DLL exactly, or prefix n/m for an over-read cache.
Definition table_manifest.hpp:61
std::int64_t file_offset
Offset of the first byte within the DLL file.
Definition table_manifest.hpp:55
std::string name
Cache file name, e.g. curve_amp_hi_2ba0.bin.
Definition table_manifest.hpp:40