File indexing completed on 2024-05-19 08:41:55
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