44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
// Copyright (C) 2026 Dany Thinnes
|
|
|
|
#pragma once
|
|
|
|
#include <QList>
|
|
#include <QString>
|
|
#include <QStringList>
|
|
|
|
struct AdfEntry {
|
|
QString path; // voller Pfad in der ADF, z. B. "C/Dir" oder "S/Startup-Sequence"
|
|
QString name; // nur der Name
|
|
bool isDir = false;
|
|
qint64 size = 0;
|
|
};
|
|
|
|
// Duenner Wrapper um das Kommandozeilenprogramm xdftool (amitools).
|
|
class XdfTool
|
|
{
|
|
public:
|
|
struct Result {
|
|
bool ok = false;
|
|
QString out;
|
|
QString err;
|
|
QString commandLine;
|
|
};
|
|
|
|
explicit XdfTool(const QString &program = QStringLiteral("xdftool"));
|
|
|
|
void setProgram(const QString &program) { m_program = program; }
|
|
QString program() const { return m_program; }
|
|
|
|
// Fuehrt mehrere xdftool-Kommandos in EINEM Aufruf aus (verkettet mit "+").
|
|
Result runBatch(const QString &image, const QList<QStringList> &commands) const;
|
|
|
|
// Inhalt der ADF auflisten (xdftool <image> list)
|
|
Result list(const QString &image, QList<AdfEntry> &entries) const;
|
|
|
|
static QList<AdfEntry> parseList(const QString &text);
|
|
|
|
private:
|
|
QString m_program;
|
|
};
|