mirror of
https://github.com/markdavidlong/AppleSAWS.git
synced 2026-03-11 14:41:46 +00:00
71 lines
2.1 KiB
C++
71 lines
2.1 KiB
C++
#include "BinaryFileMetadata.h"
|
|
|
|
#include <QFile>
|
|
#include <QDataStream>
|
|
#include <QDebug>
|
|
|
|
BinaryFileMetadata::BinaryFileMetadata(GenericFile &file, quint16 defaultAddress, QObject *parent)
|
|
: QObject(parent), m_file(file), m_defaultAddress(defaultAddress)
|
|
{
|
|
EntryPoint p {defaultAddress, "Start"};
|
|
m_eps.addPoint(p);
|
|
//load();
|
|
}
|
|
|
|
void BinaryFileMetadata::load()
|
|
{
|
|
QFile infile(QString("%1%2%3")
|
|
.arg(m_file.diskFile()->getMetaDataPath())
|
|
.arg(m_file.filename())
|
|
.arg(".bfm"));
|
|
if (infile.open(QIODevice::ReadOnly))
|
|
{
|
|
qDebug() << "Loading binary file metadata from" << QString("%1%2%3")
|
|
.arg(m_file.diskFile()->getMetaDataPath())
|
|
.arg(m_file.filename())
|
|
.arg(".bfm");
|
|
QDataStream ds(&infile);
|
|
ds >> m_eps;
|
|
ds >> m_as;
|
|
infile.close();
|
|
}
|
|
else qDebug() << "Cannot open " << QString("%1%2%3")
|
|
.arg(m_file.diskFile()->getMetaDataPath())
|
|
.arg(m_file.filename())
|
|
.arg(".bfm") << "for reading";
|
|
|
|
}
|
|
|
|
void BinaryFileMetadata::save()
|
|
{
|
|
QFile outfile(QString("%1%2%3")
|
|
.arg(m_file.diskFile()->getMetaDataPath())
|
|
.arg(m_file.filename())
|
|
.arg(".bfm"));
|
|
if (outfile.open(QIODevice::WriteOnly))
|
|
{
|
|
qDebug() << "Saving binary file metadata to" << QString("%1%2%3")
|
|
.arg(m_file.diskFile()->getMetaDataPath())
|
|
.arg(m_file.filename())
|
|
.arg(".bfm");
|
|
QDataStream ds(&outfile);
|
|
ds << m_eps;
|
|
ds << m_as;
|
|
outfile.close();
|
|
}
|
|
else qDebug() << "Cannot open " << QString("%1%2%3")
|
|
.arg(m_file.diskFile()->getMetaDataPath())
|
|
.arg(m_file.filename())
|
|
.arg(".bfm") << "for writing";
|
|
|
|
}
|
|
|
|
void BinaryFileMetadata::requestDisassembly()
|
|
{
|
|
emit doDisassemble(m_eps.getEntryPointAddresses());
|
|
}
|
|
|
|
|
|
|
|
|