Files
2026-11-01 15:38:43 +01:00

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;
};