mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-02 21:47:40 -05:00
impr: Refactor and modularize data information view
This commit is contained in:
@@ -1255,4 +1255,21 @@ namespace hex {
|
||||
|
||||
}
|
||||
|
||||
namespace ContentRegistry::DataInformation {
|
||||
|
||||
namespace impl {
|
||||
|
||||
static AutoReset<std::vector<CreateCallback>> s_informationSectionConstructors;
|
||||
const std::vector<CreateCallback>& getInformationSectionConstructors() {
|
||||
return *s_informationSectionConstructors;
|
||||
}
|
||||
|
||||
void addInformationSectionCreator(const CreateCallback &callback) {
|
||||
s_informationSectionConstructors->emplace_back(callback);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -471,8 +471,8 @@ namespace hex {
|
||||
return s_windowResizable;
|
||||
}
|
||||
|
||||
static std::vector<AutoResetBase*> s_autoResetObjects;
|
||||
void addAutoResetObject(AutoResetBase *object) {
|
||||
static std::vector<hex::impl::AutoResetBase*> s_autoResetObjects;
|
||||
void addAutoResetObject(hex::impl::AutoResetBase *object) {
|
||||
s_autoResetObjects.emplace_back(object);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,12 @@ namespace hex {
|
||||
throw TaskInterruptor();
|
||||
}
|
||||
|
||||
void Task::update() const {
|
||||
if (m_shouldInterrupt.load(std::memory_order_relaxed)) [[unlikely]]
|
||||
throw TaskInterruptor();
|
||||
}
|
||||
|
||||
|
||||
void Task::setMaxValue(u64 value) {
|
||||
m_maxValue = value;
|
||||
}
|
||||
|
||||
@@ -113,9 +113,9 @@ namespace hex::magic {
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string getDescription(prv::Provider *provider, size_t size, bool firstEntryOnly) {
|
||||
std::string getDescription(prv::Provider *provider, u64 address, size_t size, bool firstEntryOnly) {
|
||||
std::vector<u8> buffer(std::min<u64>(provider->getSize(), size), 0x00);
|
||||
provider->read(provider->getBaseAddress(), buffer.data(), buffer.size());
|
||||
provider->read(provider->getBaseAddress() + address, buffer.data(), buffer.size());
|
||||
|
||||
return getDescription(buffer, firstEntryOnly);
|
||||
}
|
||||
@@ -138,16 +138,16 @@ namespace hex::magic {
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string getMIMEType(prv::Provider *provider, size_t size, bool firstEntryOnly) {
|
||||
std::string getMIMEType(prv::Provider *provider, u64 address, size_t size, bool firstEntryOnly) {
|
||||
std::vector<u8> buffer(std::min<u64>(provider->getSize(), size), 0x00);
|
||||
provider->read(provider->getBaseAddress(), buffer.data(), buffer.size());
|
||||
provider->read(provider->getBaseAddress() + address, buffer.data(), buffer.size());
|
||||
|
||||
return getMIMEType(buffer, firstEntryOnly);
|
||||
}
|
||||
|
||||
std::string getExtensions(prv::Provider *provider, size_t size, bool firstEntryOnly) {
|
||||
std::string getExtensions(prv::Provider *provider, u64 address, size_t size, bool firstEntryOnly) {
|
||||
std::vector<u8> buffer(std::min<u64>(provider->getSize(), size), 0x00);
|
||||
provider->read(provider->getBaseAddress(), buffer.data(), buffer.size());
|
||||
provider->read(provider->getBaseAddress() + address, buffer.data(), buffer.size());
|
||||
|
||||
return getExtensions(buffer, firstEntryOnly);
|
||||
}
|
||||
@@ -170,9 +170,9 @@ namespace hex::magic {
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string getAppleCreatorType(prv::Provider *provider, size_t size, bool firstEntryOnly) {
|
||||
std::string getAppleCreatorType(prv::Provider *provider, u64 address, size_t size, bool firstEntryOnly) {
|
||||
std::vector<u8> buffer(std::min<u64>(provider->getSize(), size), 0x00);
|
||||
provider->read(provider->getBaseAddress(), buffer.data(), buffer.size());
|
||||
provider->read(provider->getBaseAddress() + address, buffer.data(), buffer.size());
|
||||
|
||||
return getAppleCreatorType(buffer, firstEntryOnly);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user