diff options
Diffstat (limited to 'kioslaves/videodvd')
-rw-r--r-- | kioslaves/videodvd/Makefile.am | 19 | ||||
-rw-r--r-- | kioslaves/videodvd/videodvd.cpp | 407 | ||||
-rw-r--r-- | kioslaves/videodvd/videodvd.desktop | 48 | ||||
-rw-r--r-- | kioslaves/videodvd/videodvd.h | 55 | ||||
-rw-r--r-- | kioslaves/videodvd/videodvd.protocol | 52 |
5 files changed, 0 insertions, 581 deletions
diff --git a/kioslaves/videodvd/Makefile.am b/kioslaves/videodvd/Makefile.am deleted file mode 100644 index eccc0e9..0000000 --- a/kioslaves/videodvd/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -INCLUDES = -I$(srcdir)/../../libk3b/tools \ - -I$(srcdir)/../../libk3b/core \ - -I$(srcdir)/../../libk3bdevice \ - $(all_includes) - -kde_module_LTLIBRARIES = kio_videodvd.la - -kio_videodvd_la_SOURCES = videodvd.cpp -kio_videodvd_la_LIBADD = -lkio ../../libk3b/libk3b.la -kio_videodvd_la_LDFLAGS = -avoid-version -module $(all_libraries) $(KDE_PLUGIN) $(LIB_QT) -lkio -ltdecore -L../../libk3bdevice/.libs -lk3bdevice - -protocol_DATA = videodvd.protocol -protocoldir = $(kde_servicesdir) - -konq_sidebartree_init_services_data_DATA = videodvd.desktop -konq_sidebartree_init_services_datadir = $(kde_datadir)/konqsidebartng/virtual_folders/services - -messages: - $(XGETTEXT) *.cpp -o $(podir)/kio_videodvd.pot diff --git a/kioslaves/videodvd/videodvd.cpp b/kioslaves/videodvd/videodvd.cpp deleted file mode 100644 index c3398a1..0000000 --- a/kioslaves/videodvd/videodvd.cpp +++ /dev/null @@ -1,407 +0,0 @@ -/* - * - * $Id: sourceheader 380067 2005-01-19 13:03:46Z trueg $ - * Copyright (C) 2005 Sebastian Trueg <trueg@k3b.org> - * - * This file is part of the K3b project. - * Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * See the file "COPYING" for the exact licensing terms. - */ - -#include <config.h> - -#include <tqcstring.h> -#include <tqdatetime.h> -#include <tqbitarray.h> -#include <tqptrlist.h> - -#include <kdebug.h> -#include <kinstance.h> -#include <kglobal.h> -#include <klocale.h> -#include <kurl.h> - -#include <stdlib.h> - -#include <k3bdevicemanager.h> -#include <k3bdevice.h> -#include <k3biso9660.h> -#include <k3biso9660backend.h> -#include <k3b_export.h> - -#include "videodvd.h" - -using namespace TDEIO; - -extern "C" -{ - LIBK3B_EXPORT int kdemain( int argc, char **argv ) - { - TDEInstance instance( "kio_videodvd" ); - - kdDebug(7101) << "*** Starting kio_videodvd " << endl; - - if (argc != 4) - { - kdDebug(7101) << "Usage: kio_videodvd protocol domain-socket1 domain-socket2" << endl; - exit(-1); - } - - kio_videodvdProtocol slave(argv[2], argv[3]); - slave.dispatchLoop(); - - kdDebug(7101) << "*** kio_videodvd Done" << endl; - return 0; - } -} - - - -// FIXME: Does it really make sense to use a static device manager? Are all instances -// of videodvd started in another process? -K3bDevice::DeviceManager* kio_videodvdProtocol::s_deviceManager = 0; -int kio_videodvdProtocol::s_instanceCnt = 0; - -kio_videodvdProtocol::kio_videodvdProtocol(const TQCString &pool_socket, const TQCString &app_socket) - : SlaveBase("kio_videodvd", pool_socket, app_socket) -{ - kdDebug() << "kio_videodvdProtocol::kio_videodvdProtocol()" << endl; - if( !s_deviceManager ) - { - s_deviceManager = new K3bDevice::DeviceManager(); - s_deviceManager->setCheckWritingModes( false ); - s_deviceManager->scanBus(); - } - s_instanceCnt++; -} - - -kio_videodvdProtocol::~kio_videodvdProtocol() -{ - kdDebug() << "kio_videodvdProtocol::~kio_videodvdProtocol()" << endl; - s_instanceCnt--; - if( s_instanceCnt == 0 ) - { - delete s_deviceManager; - s_deviceManager = 0; - } -} - - -TDEIO::UDSEntry kio_videodvdProtocol::createUDSEntry( const K3bIso9660Entry* e ) const -{ - TDEIO::UDSEntry uds; - TDEIO::UDSAtom a; - - a.m_uds = TDEIO::UDS_NAME; - a.m_str = e->name(); - uds.append( a ); - - a.m_uds = TDEIO::UDS_ACCESS; - a.m_long = e->permissions(); - uds.append( a ); - - a.m_uds = TDEIO::UDS_CREATION_TIME; - a.m_long = e->date(); - uds.append( a ); - - a.m_uds = TDEIO::UDS_MODIFICATION_TIME; - a.m_long = e->date(); - uds.append( a ); - - if( e->isDirectory() ) - { - a.m_uds = TDEIO::UDS_FILE_TYPE; - a.m_long = S_IFDIR; - uds.append( a ); - - a.m_uds = TDEIO::UDS_MIME_TYPE; - a.m_str = "inode/directory"; - uds.append( a ); - } - else - { - const K3bIso9660File* file = static_cast<const K3bIso9660File*>( e ); - - a.m_uds = TDEIO::UDS_SIZE; - a.m_long = file->size(); - uds.append( a ); - - a.m_uds = TDEIO::UDS_FILE_TYPE; - a.m_long = S_IFREG; - uds.append( a ); - - a.m_uds = TDEIO::UDS_MIME_TYPE; - if( e->name().endsWith( "VOB" ) ) - a.m_str = "video/mpeg"; - else - a.m_str = "unknown"; - uds.append( a ); - } - - return uds; -} - - -// FIXME: remember the iso instance for quicker something and search for the videodvd -// in the available devices. -K3bIso9660* kio_videodvdProtocol::openIso( const KURL& url, TQString& plainIsoPath ) -{ - // get the volume id from the url - TQString volumeId = url.path().section( '/', 1, 1 ); - - kdDebug() << "(kio_videodvdProtocol) searching for Video dvd: " << volumeId << endl; - - // now search the devices for this volume id - // FIXME: use the cache created in listVideoDVDs - for( TQPtrListIterator<K3bDevice::Device> it( s_deviceManager->dvdReader() ); *it; ++it ) { - K3bDevice::Device* dev = *it; - K3bDevice::DiskInfo di = dev->diskInfo(); - - // we search for a DVD with a single track. - // this time let K3bIso9660 decide if we need dvdcss or not - // FIXME: check for encryption and libdvdcss and report an error - if( di.isDvdMedia() && di.numTracks() == 1 ) { - K3bIso9660* iso = new K3bIso9660( dev ); - iso->setPlainIso9660( true ); - if( iso->open() && iso->primaryDescriptor().volumeId == volumeId ) { - plainIsoPath = url.path().section( "/", 2, -1 ) + "/"; - kdDebug() << "(kio_videodvdProtocol) using iso path: " << plainIsoPath << endl; - return iso; - } - delete iso; - } - } - - error( ERR_SLAVE_DEFINED, i18n("No VideoDVD found") ); - return 0; -} - - -void kio_videodvdProtocol::get(const KURL& url ) -{ - kdDebug() << "kio_videodvd::get(const KURL& url)" << endl ; - - TQString isoPath; - if( K3bIso9660* iso = openIso( url, isoPath ) ) - { - const K3bIso9660Entry* e = iso->firstIsoDirEntry()->entry( isoPath ); - if( e && e->isFile() ) - { - const K3bIso9660File* file = static_cast<const K3bIso9660File*>( e ); - totalSize( file->size() ); - TQByteArray buffer( 10*2048 ); - int read = 0; - int cnt = 0; - TDEIO::filesize_t totalRead = 0; - while( (read = file->read( totalRead, buffer.data(), buffer.size() )) > 0 ) - { - buffer.resize( read ); - data(buffer); - ++cnt; - totalRead += read; - if( cnt == 10 ) - { - cnt = 0; - processedSize( totalRead ); - } - } - - delete iso; - - data(TQByteArray()); // empty array means we're done sending the data - - if( read == 0 ) - finished(); - else - error( ERR_SLAVE_DEFINED, i18n("Read error.") ); - } - else - error( ERR_DOES_NOT_EXIST, url.path() ); - } -} - - -void kio_videodvdProtocol::listDir( const KURL& url ) -{ - if( url.path() == "/" ) { - listVideoDVDs(); - } - else { - TQString isoPath; - K3bIso9660* iso = openIso( url, isoPath ); - if( iso ) { - const K3bIso9660Directory* mainDir = iso->firstIsoDirEntry(); - const K3bIso9660Entry* e = mainDir->entry( isoPath ); - if( e ) { - if( e->isDirectory() ) { - const K3bIso9660Directory* dir = static_cast<const K3bIso9660Directory*>(e); - TQStringList el = dir->entries(); - el.remove( "." ); - el.remove( ".." ); - UDSEntryList udsl; - for( TQStringList::const_iterator it = el.begin(); it != el.end(); ++it ) - udsl.append( createUDSEntry( dir->entry( *it ) ) ); - listEntries( udsl ); - finished(); - } - else { - error( ERR_CANNOT_ENTER_DIRECTORY, url.path() ); - } - } - else { - error( ERR_CANNOT_ENTER_DIRECTORY, url.path() ); - } - - // for testing we always do the whole thing - delete iso; - } - } -} - - -void kio_videodvdProtocol::listVideoDVDs() -{ - int cnt = 0; - - for( TQPtrListIterator<K3bDevice::Device> it( s_deviceManager->dvdReader() ); *it; ++it ) { - K3bDevice::Device* dev = *it; - K3bDevice::DiskInfo di = dev->diskInfo(); - - // we search for a DVD with a single track. - if( di.isDvdMedia() && di.numTracks() == 1 ) { - // - // now do a quick check for VideoDVD. - // - no dvdcss for speed - // - only a check for the VIDEO_TS dir - // - K3bIso9660 iso( new K3bIso9660DeviceBackend(dev) ); - iso.setPlainIso9660( true ); - if( iso.open() && iso.firstIsoDirEntry()->entry( "VIDEO_TS" ) ) { - // FIXME: cache the entry for speedup - - UDSEntryList udsl; - TDEIO::UDSEntry uds; - TDEIO::UDSAtom a; - - a.m_uds = TDEIO::UDS_NAME; - a.m_str = iso.primaryDescriptor().volumeId; - uds.append( a ); - - a.m_uds = TDEIO::UDS_FILE_TYPE; - a.m_long = S_IFDIR; - uds.append( a ); - - a.m_uds = TDEIO::UDS_MIME_TYPE; - a.m_str = "inode/directory"; - uds.append( a ); - - a.m_uds = TDEIO::UDS_ICON_NAME; - a.m_str = "dvd_unmount"; - uds.append( a ); - - udsl.append( uds ); - - listEntries( udsl ); - - ++cnt; - } - } - } - - if( cnt ) - finished(); - else - error( ERR_SLAVE_DEFINED, i18n("No VideoDVD found") ); -} - - -void kio_videodvdProtocol::stat( const KURL& url ) -{ - if( url.path() == "/" ) { - // - // stat the root path - // - TDEIO::UDSEntry uds; - TDEIO::UDSAtom a; - - a.m_uds = TDEIO::UDS_NAME; - a.m_str = "/"; - uds.append( a ); - - a.m_uds = TDEIO::UDS_FILE_TYPE; - a.m_long = S_IFDIR; - uds.append( a ); - - a.m_uds = TDEIO::UDS_MIME_TYPE; - a.m_str = "inode/directory"; - uds.append( a ); - - statEntry( uds ); - finished(); - } - else { - TQString isoPath; - K3bIso9660* iso = openIso( url, isoPath ); - if( iso ) { - const K3bIso9660Entry* e = iso->firstIsoDirEntry()->entry( isoPath ); - if( e ) { - statEntry( createUDSEntry( e ) ); - finished(); - } - else - error( ERR_DOES_NOT_EXIST, url.path() ); - - delete iso; - } - } -} - - -// FIXME: when does this get called? It seems not to be used for the files. -void kio_videodvdProtocol::mimetype( const KURL& url ) -{ - if( url.path() == "/" ) { - error( ERR_UNSUPPORTED_ACTION, "mimetype(/)" ); - return; - } - - TQString isoPath; - K3bIso9660* iso = openIso( url, isoPath ); - if( iso ) - { - const K3bIso9660Entry* e = iso->firstIsoDirEntry()->entry( isoPath ); - if( e ) - { - if( e->isDirectory() ) - mimeType( "inode/directory" ); - else if( e->name().endsWith( ".VOB" ) ) - { - mimetype( "video/mpeg" ); - } - else - { - // send some data - const K3bIso9660File* file = static_cast<const K3bIso9660File*>( e ); - TQByteArray buffer( 10*2048 ); - int read = file->read( 0, buffer.data(), buffer.size() ); - if( read > 0 ) - { - buffer.resize( read ); - data(buffer); - data(TQByteArray()); - finished(); - // FIXME: do we need to emit finished() after emitting the end of data()? - } - else - error( ERR_SLAVE_DEFINED, i18n("Read error.") ); - } - } - delete iso; - } -} diff --git a/kioslaves/videodvd/videodvd.desktop b/kioslaves/videodvd/videodvd.desktop deleted file mode 100644 index 1454f40..0000000 --- a/kioslaves/videodvd/videodvd.desktop +++ /dev/null @@ -1,48 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=Link -URL=videodvd:/ -Icon=dvd_unmount -Name=Video DVD Browser -Name[af]=Video DVD Blaaier -Name[ar]= قارىء القرص المدمج المرئي الرقمي DVD -Name[bg]=Браузър за видео DVD -Name[br]=Furcher DVD Video -Name[ca]=Navegador de DVDs de vídeo -Name[cs]=Prohlížeč Video DVD -Name[da]=Video-dvd browser -Name[de]=Video-DVD-Browser -Name[el]=Περιηγητής Video DVD -Name[eo]=Videa DVD foliumilo -Name[es]=Navegador de DVD de vídeo -Name[et]=Video DVD sirvija -Name[fa]= مرورگر دی وی دی ویدئویی -Name[fi]=Video-dvd selain -Name[fr]=Navigateur de DVD -Name[gl]=Explorador de Vídeo DVD -Name[hu]=Video DVD-böngésző -Name[is]=Vídeó DVD flakkari -Name[it]=Navigatore DVD video -Name[ja]=ビデオ DVD ブラウザ -Name[ka]=ვიდეო DVD-ის ბროუზერი -Name[km]=កម្មវិធីរុករកឌីវីឌីវីដេអូ -Name[lt]=Video DVD naršyklė -Name[nds]=Video-DVD-Kieker -Name[nn]=Film-DVD-lesar -Name[pa]=ਵੀਡਿਓ DVD ਝਲਕਾਰਾ -Name[pl]=Przeglądarka płyt DVD Video -Name[pt]=Navegador de DVD de Vídeo -Name[pt_BR]=Navegador de DVD de Vídeo -Name[sk]=Video DVD prehliadač -Name[sr]=Прегледач видео DVD-а -Name[sr@Latn]=Pregledač video DVD-a -Name[sv]=Video-dvd bläddrare -Name[tr]=Görüntü DVD'si Gezgini -Name[uk]=Навігатор відео-DVD -Name[uz]=Video-DVD brauzeri -Name[uz@cyrillic]=Видео-DVD браузери -Name[zh_CN]=视频 DVD 浏览器 -Name[zh_TW]=Video DVD 瀏覽器 -Open=false -X-TDE-TreeModule=Directory -X-TDE-KonqSidebarModule=konqsidebar_tree diff --git a/kioslaves/videodvd/videodvd.h b/kioslaves/videodvd/videodvd.h deleted file mode 100644 index d408931..0000000 --- a/kioslaves/videodvd/videodvd.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * $Id: sourceheader 380067 2005-01-19 13:03:46Z trueg $ - * Copyright (C) 2005 Sebastian Trueg <trueg@k3b.org> - * - * This file is part of the K3b project. - * Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * See the file "COPYING" for the exact licensing terms. - */ - - -#ifndef _videodvd_H_ -#define _videodvd_H_ - -#include <tqstring.h> -#include <tqcstring.h> - -#include <kurl.h> -#include <kio/global.h> -#include <kio/slavebase.h> - -class TQCString; -class K3bIso9660Entry; -class K3bIso9660; -namespace K3bDevice -{ - class DeviceManager; -} - -class kio_videodvdProtocol : public TDEIO::SlaveBase -{ -public: - kio_videodvdProtocol(const TQCString &pool_socket, const TQCString &app_socket); - ~kio_videodvdProtocol(); - - void mimetype( const KURL& url ); - void stat( const KURL& url ); - void get( const KURL& url ); - void listDir( const KURL& url ); - -private: - K3bIso9660* openIso( const KURL&, TQString& plainIsoPath ); - TDEIO::UDSEntry createUDSEntry( const K3bIso9660Entry* e ) const; - void listVideoDVDs(); - - static K3bDevice::DeviceManager* s_deviceManager; - static int s_instanceCnt; -}; - -#endif diff --git a/kioslaves/videodvd/videodvd.protocol b/kioslaves/videodvd/videodvd.protocol deleted file mode 100644 index 6337443..0000000 --- a/kioslaves/videodvd/videodvd.protocol +++ /dev/null @@ -1,52 +0,0 @@ -[Protocol] -exec=kio_videodvd -protocol=videodvd -input=none -output=filesystem -reading=true -listing=Name,Type,Size,Date -Icon=dvd_unmount -Class=:local -Description=A kioslave that allows files to be copied from a Video DVD (including decryption) -Description[af]='n 'Kioslave' wat jou toelaat om lêers vanaf 'n Video DVD te kopiëer. Dit doen ook die nodige dekripsie. -Description[ar]= يسمح هذا ال-kioslave بنسخ الملفات من قرص مدمج مرئي رقمي DVD ( بما فيه فك التشفير ) -Description[bg]=kioslave, позволяващ ви да копирате файлове от видео DVD (включително разшифроването) -Description[bn]=একটি কে-আই-ও স্লেভ যেটি একটি ভিডিও ডিভিডি থেকে ফাইল কপি করতে অনুমতিদেয় (ডিক্রিপশন সহ) -Description[ca]=Un kioslave que permet que es copiïn fitxers des d'un DVD de vídeo (incloent el desxifrat) -Description[cs]=Kioslave umožňující kopírování video DVD (včetně dekódování) -Description[da]=En kioslave som gør det muligt at kopiere filer fra en video-dvd (inklusive afkodning) -Description[de]=Ein-/Ausgabemodul, mit dem man Dateien von einer Video-DVD kopieren kann (inkl. Entschlüsselung) -Description[el]=Ένα kioslave που επιτρέπει την αντιγραφή αρχείων από ένα DVD βίντεο (δυνατότητα αποκρυπτογράφησης) -Description[eo]=Kioslave kiu permesas kopii dosierojn el videa DVD (inklude malĉifro) -Description[es]=Un kioslave que permite copiar archivos de un DVD de vídeo (incluye descifrado) -Description[et]=KIO-moodul, mis võimaldab kopeerida faile video DVD-lt (vajadusel dekrüpteerib) -Description[fa]=یک kioslave که اجازه میدهد پروندهها از یک دی وی دی ویدئویی )شامل سرگشایی( رونوشت شوند -Description[fi]=Kioslave-palvelu, joka mahdollistaa tiedostojen purkamisen dvd-levyltä. -Description[fr]=Un kioslave qui permet de copier des fichiers depuis un DVD Vidéo (incluant le déchiffrement) -Description[gl]=Un kioslave que permite copiar ficheiros dun Video DVD (incluindo descifrar) -Description[he]=עבד קלט/פלט של KDE המאפשר לקבצים להיות מועתקים מתקליטור וידאו של DVD (כולל פענוח) -Description[hu]=Kioslave, amellyel fájlokat lehet másolni Video DVD-ről (dekódolással együtt) -Description[is]=Kioslave sem leyfir afritun af skrám frá vídeó DVD (með afkóðun) -Description[it]=Un kioslave che permette ai file di essere copiati da un DVD video (incluso decifrazione) -Description[ja]=ビデオ DVD からファイルをコピーすることを可能にする kioslave (暗号解除も含む) -Description[ka]=Kioslave, რომელიც იძლევა Video DVD-დან ასლის ფაილების მიღების საშუელებას (გაშიფრვასთან ერთად) -Description[km]=kioslave ដែលអនុញ្ញាតឲ្យចម្លងឯកសារពីឌីវីឌីវីដេអូ(រួមទាំងការឌិគ្រីប) -Description[lt]=Priedas (kioslave) leidžiantis kopijuoti bylas iš Video DVD (taip pat ir atšifruoti) -Description[ms]=kioslave yang membenarkan fail untuk disalin dari DVD Video (termasuk nyahenkripsi) -Description[nb]=En kioslave som gjør det mulig å kopiere filer fra en Video-DVD (medregnet dekryptering) -Description[nds]=En In-/Utgaavmoduul, mit dat sik Dateien vun en Video-DVD koperen laat (ok mit Opslöteln) -Description[nl]=Een kioslave waarmee u bestanden van een video-dvd kunt kopiëren (inclusief versleuteling) -Description[nn]=Ein kioslave som gjer det mogleg å kopiera filer frå ein film-DVD (inkludert kryptering) -Description[pa]=ਇੱਕ kioslave ਹੈ, ਜੋ ਕਿ ਫਾਇਲਾਂ ਨੂੰ ਇੱਕ DVD (ਡਿਸਕਰਿਪਸ਼ਨ ਸਮੇ) ਤੋਂ ਨਕਲ ਕਰਨ ਲਈ ਸਹਾਇਕ ਹੈ -Description[pl]=Wtyczka protokołu pozwalająca kopiować pliki z płyt DVD Video (łącznie z odszyfrowywaniem) -Description[pt]=Um 'kioslave' que permite copiar ficheiros de um DVD Vídeo (incluindo decifrar) -Description[pt_BR]=Um kioslave que permite que arquivos sejam copiados de um DVD de Vídeo (incluindo a quebra da proteção) -Description[ru]=Позволяет копировать файлы с Video DVD (с дешифровкой) -Description[sk]=kioslave, ktorý umožňuje kopírovať súbory z Video DVD (vrátane dešifrovania) -Description[sr]=kioslave који омогућава копирање фајлова са видео DVD-а (укључујући дешифровање) -Description[sr@Latn]=kioslave koji omogućava kopiranje fajlova sa video DVD-a (uključujući dešifrovanje) -Description[sv]=En I/O-slav som gör det möjligt att kopiera filer från en video-dvd (inklusive avkodning) -Description[tr]= Bir Görüntü DVD'sinden dosyaların kopyalanmasını (ve kodunun çözülmesini) sağlayan kioslave -Description[uk]=Підлеглий В/В, який дає змогу копіювати файли з Відео DVD (включаючи розшифрування) -Description[zh_CN]=允许从视频 DVD(包括加密影碟)中复制文件的 kioslave -Description[zh_TW]=允許直接從 Video DVD 複製檔案的 kioslave(會自動解密) |