diff options
| author | Brian Potchik <brian@vector35.com> | 2019-06-13 03:55:00 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2019-06-13 03:55:00 -0400 |
| commit | 977a0caa78e9a8ddb958baf535df881bbaaf05b4 (patch) | |
| tree | e2d34525ef120ef9868d5e136b8423527c0c5bbd /binaryviewtype.cpp | |
| parent | 2dab57d29589fcc9e3896102ba222c7d1d4671cb (diff) | |
Initial rebase on file load support.
Diffstat (limited to 'binaryviewtype.cpp')
| -rw-r--r-- | binaryviewtype.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/binaryviewtype.cpp b/binaryviewtype.cpp index b0addabe..815b508e 100644 --- a/binaryviewtype.cpp +++ b/binaryviewtype.cpp @@ -43,6 +43,14 @@ bool BinaryViewType::IsValidCallback(void* ctxt, BNBinaryView* data) } +char* BinaryViewType::GetSettingsCallback(void* ctxt, BNBinaryView* data) +{ + BinaryViewType* type = (BinaryViewType*)ctxt; + Ref<BinaryView> view = new BinaryView(BNNewViewReference(data)); + return BNAllocString(type->GetLoadSettingsForData(view).c_str()); +} + + BinaryViewType::BinaryViewType(BNBinaryViewType* type) { m_object = type; @@ -62,6 +70,7 @@ void BinaryViewType::Register(BinaryViewType* type) callbacks.context = type; callbacks.create = CreateCallback; callbacks.isValidForData = IsValidCallback; + callbacks.getLoadSettingsForData = GetSettingsCallback; type->AddRefForRegistration(); type->m_object = BNRegisterBinaryViewType(type->m_nameForRegister.c_str(), @@ -209,3 +218,12 @@ bool CoreBinaryViewType::IsTypeValidForData(BinaryView* data) { return BNIsBinaryViewTypeValidForData(m_object, data->GetObject()); } + + +string CoreBinaryViewType::GetLoadSettingsForData(BinaryView* data) +{ + char* settings = BNGetBinaryViewLoadSettingsForData(m_object, data->GetObject()); + string result = settings; + BNFreeString(settings); + return result; +} |
