File indexing completed on 2024-05-12 04:50:51

0001 /*
0002     SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 
0007 #ifndef _videodvd_H_
0008 #define _videodvd_H_
0009 
0010 #include <QString>
0011 
0012 #include "k3biso9660.h"
0013 #include "k3biso9660backend.h"
0014 
0015 #include <KIO/WorkerBase>
0016 
0017 #include <memory>
0018 
0019 namespace K3b {
0020     namespace Device {
0021         class DeviceManager;
0022     }
0023 }
0024 
0025 class kio_videodvdProtocol : public KIO::WorkerBase
0026 {
0027 public:
0028     kio_videodvdProtocol(const QByteArray &pool_socket, const QByteArray &app_socket);
0029     ~kio_videodvdProtocol() override;
0030 
0031     KIO::WorkerResult mimetype(const QUrl& url) override;
0032     KIO::WorkerResult stat(const QUrl& url) override;
0033     KIO::WorkerResult get(const QUrl& url) override;
0034     KIO::WorkerResult listDir(const QUrl& url) override;
0035 
0036 private:
0037     KIO::WorkerResult openIso( const QUrl& url, std::unique_ptr<K3b::Iso9660>* iso, QString* plainIsoPath );
0038     KIO::UDSEntry createUDSEntry( const K3b::Iso9660Entry* e ) const;
0039     KIO::WorkerResult listVideoDVDs();
0040 
0041     static K3b::Device::DeviceManager* s_deviceManager;
0042     static int s_instanceCnt;
0043 };
0044 
0045 #endif