From 3dd22f40996fc128ffce6026e8e747ca66bcc21d Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Mon, 22 Jan 2024 16:11:19 -0500 Subject: Project support --- filemetadata.cpp | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'filemetadata.cpp') diff --git a/filemetadata.cpp b/filemetadata.cpp index 89e759af..656fbce7 100644 --- a/filemetadata.cpp +++ b/filemetadata.cpp @@ -19,6 +19,7 @@ // IN THE SOFTWARE. #include #include "binaryninjaapi.h" +#include "binaryninjacore.h" using namespace BinaryNinja; using namespace Json; @@ -69,6 +70,14 @@ FileMetadata::FileMetadata(const string& filename) } +FileMetadata::FileMetadata(Ref projectFile) +{ + m_object = BNCreateFileMetadata(); + BNSetProjectFile(m_object, projectFile->m_object); + BNSetFilename(m_object, projectFile->GetPathOnDisk().c_str()); +} + + FileMetadata::FileMetadata(BNFileMetadata* file) { m_object = file; @@ -489,24 +498,6 @@ void FileMetadata::ClearUndoEntries() } -bool FileMetadata::OpenProject() -{ - return BNOpenProject(m_object); -} - - -void FileMetadata::CloseProject() -{ - BNCloseProject(m_object); -} - - -bool FileMetadata::IsProjectOpen() -{ - return BNIsProjectOpen(m_object); -} - - string FileMetadata::GetCurrentView() { char* view = BNGetCurrentView(m_object); @@ -569,6 +560,21 @@ void FileMetadata::UnregisterViewOfType(const std::string& type, BinaryNinja::Re } +void FileMetadata::SetProjectFile(Ref projectFile) +{ + BNSetProjectFile(m_object, projectFile ? projectFile->m_object : nullptr); +} + + +Ref FileMetadata::GetProjectFile() const +{ + BNProjectFile* bin = BNGetProjectFile(m_object); + if (!bin) + return nullptr; + return new ProjectFile(bin); +} + + SaveSettings::SaveSettings() { m_object = BNCreateSaveSettings(); -- cgit v1.3.1