RagePhoto: add G5E1P parser, fix G5E2P
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Syping 2020-11-09 02:13:06 +01:00
parent 2bb3f7f62d
commit 3cf6aedc85
2 changed files with 22 additions and 1 deletions

View file

@ -357,7 +357,27 @@ bool RagePhoto::load()
} }
else if (format == static_cast<quint32>(ExportFormat::G5E2P)) { else if (format == static_cast<quint32>(ExportFormat::G5E2P)) {
p_photoFormat = PhotoFormat::G5EX; p_photoFormat = PhotoFormat::G5EX;
p_fileData = dataBuffer.readAll(); p_fileData = qUncompress(dataBuffer.readAll());
p_inputMode = 0;
return load();
}
else if (format == static_cast<quint32>(ExportFormat::G5E1P)) {
size = dataBuffer.skip(1);
if (size != 1)
return false;
char length[1];
size = dataBuffer.read(length, 1);
if (size != 1)
return false;
int i_length = QByteArray::number((int)length[0], 16).toInt() + 6;
size = dataBuffer.skip(i_length);
if (size != i_length)
return false;
p_photoFormat = PhotoFormat::G5EX;
p_fileData = qUncompress(dataBuffer.readAll());
p_inputMode = 0; p_inputMode = 0;
return load(); return load();
} }

View file

@ -28,6 +28,7 @@ class RagePhoto : public QObject
Q_OBJECT Q_OBJECT
public: public:
enum class ExportFormat : quint32 { enum class ExportFormat : quint32 {
G5E1P = 0x454C0010U,
G5E2P = 0x01000032U, G5E2P = 0x01000032U,
G5E2S = 0x02000032U, G5E2S = 0x02000032U,
G5E3P = 0x01000033U, G5E3P = 0x01000033U,