mirror of https://github.com/mgba-emu/mgba.git
Qt: Unified VFile opening interface
This commit is contained in:
parent
3c65ac986e
commit
87313041c0
|
@ -5,12 +5,13 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
#include "CheatsModel.h"
|
#include "CheatsModel.h"
|
||||||
|
|
||||||
|
#include "VFileDevice.h"
|
||||||
|
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include <QSet>
|
#include <QSet>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "gba/cheats.h"
|
#include "gba/cheats.h"
|
||||||
#include "util/vfs.h"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using namespace QGBA;
|
using namespace QGBA;
|
||||||
|
@ -201,7 +202,7 @@ void CheatsModel::endAppendRow() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheatsModel::loadFile(const QString& path) {
|
void CheatsModel::loadFile(const QString& path) {
|
||||||
VFile* vf = VFileOpen(path.toLocal8Bit().constData(), O_RDONLY);
|
VFile* vf = VFileDevice::open(path, O_RDONLY);
|
||||||
if (!vf) {
|
if (!vf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -212,7 +213,7 @@ void CheatsModel::loadFile(const QString& path) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheatsModel::saveFile(const QString& path) {
|
void CheatsModel::saveFile(const QString& path) {
|
||||||
VFile* vf = VFileOpen(path.toLocal8Bit().constData(), O_TRUNC | O_CREAT | O_WRONLY);
|
VFile* vf = VFileDevice::open(path, O_TRUNC | O_CREAT | O_WRONLY);
|
||||||
if (!vf) {
|
if (!vf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "AudioProcessor.h"
|
#include "AudioProcessor.h"
|
||||||
#include "InputController.h"
|
#include "InputController.h"
|
||||||
#include "MultiplayerController.h"
|
#include "MultiplayerController.h"
|
||||||
|
#include "VFileDevice.h"
|
||||||
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
@ -280,13 +281,13 @@ void GameController::openGame() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_bios.isNull() &&m_useBios) {
|
if (!m_bios.isNull() &&m_useBios) {
|
||||||
m_threadContext.bios = VFileOpen(m_bios.toLocal8Bit().constData(), O_RDONLY);
|
m_threadContext.bios = VFileDevice::open(m_bios, O_RDONLY);
|
||||||
} else {
|
} else {
|
||||||
m_threadContext.bios = nullptr;
|
m_threadContext.bios = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_patch.isNull()) {
|
if (!m_patch.isNull()) {
|
||||||
m_threadContext.patch = VFileOpen(m_patch.toLocal8Bit().constData(), O_RDONLY);
|
m_threadContext.patch = VFileDevice::open(m_patch, O_RDONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_inputController->recalibrateAxes();
|
m_inputController->recalibrateAxes();
|
||||||
|
@ -322,7 +323,7 @@ void GameController::importSharkport(const QString& path) {
|
||||||
if (!m_gameOpen) {
|
if (!m_gameOpen) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
VFile* vf = VFileOpen(path.toLocal8Bit().constData(), O_RDONLY);
|
VFile* vf = VFileDevice::open(path, O_RDONLY);
|
||||||
if (!vf) {
|
if (!vf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -336,7 +337,7 @@ void GameController::exportSharkport(const QString& path) {
|
||||||
if (!m_gameOpen) {
|
if (!m_gameOpen) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
VFile* vf = VFileOpen(path.toLocal8Bit().constData(), O_WRONLY | O_CREAT | O_TRUNC);
|
VFile* vf = VFileDevice::open(path, O_WRONLY | O_CREAT | O_TRUNC);
|
||||||
if (!vf) {
|
if (!vf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
#include "PaletteView.h"
|
#include "PaletteView.h"
|
||||||
|
|
||||||
|
#include "VFileDevice.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QFontDatabase>
|
#include <QFontDatabase>
|
||||||
|
|
||||||
|
@ -86,7 +88,7 @@ void PaletteView::exportPalette(int start, int length) {
|
||||||
m_controller->threadContinue();
|
m_controller->threadContinue();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
VFile* vf = VFileOpen(filename.toLocal8Bit().constData(), O_WRONLY | O_CREAT | O_TRUNC);
|
VFile* vf = VFileDevice::open(filename, O_WRONLY | O_CREAT | O_TRUNC);
|
||||||
if (!vf) {
|
if (!vf) {
|
||||||
m_controller->threadContinue();
|
m_controller->threadContinue();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -5,10 +5,6 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
#include "VFileDevice.h"
|
#include "VFileDevice.h"
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
#include "util/vfs.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
using namespace QGBA;
|
using namespace QGBA;
|
||||||
|
|
||||||
VFileDevice::VFileDevice(VFile* vf, QObject* parent)
|
VFileDevice::VFileDevice(VFile* vf, QObject* parent)
|
||||||
|
@ -29,3 +25,7 @@ qint64 VFileDevice::writeData(const char* data, qint64 maxSize) {
|
||||||
qint64 VFileDevice::size() const {
|
qint64 VFileDevice::size() const {
|
||||||
return m_vf->size(m_vf);
|
return m_vf->size(m_vf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VFile* VFileDevice::open(QString path, int mode) {
|
||||||
|
return VFileOpen(path.toLocal8Bit().constData(), mode);
|
||||||
|
}
|
||||||
|
|
|
@ -8,7 +8,9 @@
|
||||||
|
|
||||||
#include <QFileDevice>
|
#include <QFileDevice>
|
||||||
|
|
||||||
struct VFile;
|
extern "C" {
|
||||||
|
#include "util/vfs.h"
|
||||||
|
}
|
||||||
|
|
||||||
namespace QGBA {
|
namespace QGBA {
|
||||||
|
|
||||||
|
@ -18,6 +20,8 @@ Q_OBJECT
|
||||||
public:
|
public:
|
||||||
VFileDevice(VFile* vf, QObject* parent = nullptr);
|
VFileDevice(VFile* vf, QObject* parent = nullptr);
|
||||||
|
|
||||||
|
static VFile* open(QString path, int mode);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual qint64 readData(char* data, qint64 maxSize) override;
|
virtual qint64 readData(char* data, qint64 maxSize) override;
|
||||||
virtual qint64 writeData(const char* data, qint64 maxSize) override;
|
virtual qint64 writeData(const char* data, qint64 maxSize) override;
|
||||||
|
|
Loading…
Reference in New Issue