1
0
Fork 0
forked from len0rd/rockbox

qeditor: backends can now report validity status

Change-Id: Iefedc9cee10a8c7457d972e5a60d151a6cb38aa8
Reviewed-on: http://gerrit.rockbox.org/995
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
This commit is contained in:
Amaury Pouly 2014-09-27 21:23:38 +02:00
parent b08620dd30
commit 99ed6d2bea
2 changed files with 9 additions and 0 deletions

View file

@ -114,6 +114,7 @@ FileIoBackend::FileIoBackend(const QString& filename, const QString& soc_name)
{ {
m_filename = filename; m_filename = filename;
m_soc = soc_name; m_soc = soc_name;
m_valid = false;
Reload(); Reload();
} }
@ -132,6 +133,7 @@ bool FileIoBackend::ReadRegister(const QString& name, soc_word_t& value)
bool FileIoBackend::Reload() bool FileIoBackend::Reload()
{ {
m_valid = false;
QFile file(m_filename); QFile file(m_filename);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
return false; return false;
@ -155,6 +157,7 @@ bool FileIoBackend::Reload()
m_readonly = !QFileInfo(file).isWritable(); m_readonly = !QFileInfo(file).isWritable();
m_dirty = false; m_dirty = false;
m_valid = true;
return true; return true;
} }

View file

@ -53,6 +53,8 @@ public:
* HW.dev.reg * HW.dev.reg
* where <dev> is the device name (including index like APPUART1) * where <dev> is the device name (including index like APPUART1)
* and <reg> is the register name (including index like PRIORITY29) */ * and <reg> is the register name (including index like PRIORITY29) */
/* report whether backend is valid */
virtual bool IsValid() = 0;
/* report whether backend supports register access type */ /* report whether backend supports register access type */
virtual bool SupportAccess(AccessType type) = 0; virtual bool SupportAccess(AccessType type) = 0;
/* get SoC name */ /* get SoC name */
@ -83,6 +85,7 @@ class DummyIoBackend : public IoBackend
public: public:
DummyIoBackend() {} DummyIoBackend() {}
virtual bool IsValid() { return false; }
virtual bool SupportAccess(AccessType type) { Q_UNUSED(type); return false; } virtual bool SupportAccess(AccessType type) { Q_UNUSED(type); return false; }
virtual QString GetSocName() { return ""; } virtual QString GetSocName() { return ""; }
virtual bool ReadRegister(const QString& name, soc_word_t& value) virtual bool ReadRegister(const QString& name, soc_word_t& value)
@ -107,6 +110,7 @@ class FileIoBackend : public IoBackend
public: public:
FileIoBackend(const QString& filename, const QString& soc_name = ""); FileIoBackend(const QString& filename, const QString& soc_name = "");
virtual bool IsValid() { return m_valid; }
virtual bool SupportAccess(AccessType type) { return type == ByName; } virtual bool SupportAccess(AccessType type) { return type == ByName; }
virtual QString GetSocName(); virtual QString GetSocName();
virtual bool ReadRegister(const QString& name, soc_word_t& value); virtual bool ReadRegister(const QString& name, soc_word_t& value);
@ -126,6 +130,7 @@ protected:
QString m_soc; QString m_soc;
bool m_readonly; bool m_readonly;
bool m_dirty; bool m_dirty;
bool m_valid;
QMap< QString, soc_word_t > m_map; QMap< QString, soc_word_t > m_map;
}; };
@ -173,6 +178,7 @@ public:
HWStubIoBackend(HWStubDevice *dev); HWStubIoBackend(HWStubDevice *dev);
virtual ~HWStubIoBackend(); virtual ~HWStubIoBackend();
virtual bool IsValid() { return m_dev->IsValid(); }
virtual bool SupportAccess(AccessType type) { return type == ByAddress; } virtual bool SupportAccess(AccessType type) { return type == ByAddress; }
virtual QString GetSocName(); virtual QString GetSocName();
virtual bool ReadRegister(const QString& name, soc_word_t& value) virtual bool ReadRegister(const QString& name, soc_word_t& value)