summaryrefslogtreecommitdiffstats
path: root/kioslave/media/mediamanager/mediamanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kioslave/media/mediamanager/mediamanager.cpp')
-rw-r--r--kioslave/media/mediamanager/mediamanager.cpp423
1 files changed, 0 insertions, 423 deletions
diff --git a/kioslave/media/mediamanager/mediamanager.cpp b/kioslave/media/mediamanager/mediamanager.cpp
deleted file mode 100644
index db2c12a71..000000000
--- a/kioslave/media/mediamanager/mediamanager.cpp
+++ /dev/null
@@ -1,423 +0,0 @@
-/* This file is part of the KDE Project
- Copyright (c) 2004 Kévin Ottens <ervin ipsquad net>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "mediamanager.h"
-
-#include <config.h>
-#include <tqtimer.h>
-
-#include <kdebug.h>
-#include <kglobal.h>
-#include <klocale.h>
-
-#include <kdirnotify_stub.h>
-#include <kstandarddirs.h>
-
-#include "mediamanagersettings.h"
-
-#include "fstabbackend.h"
-
-#ifdef COMPILE_TDEHARDWAREBACKEND
-#include "tdehardwarebackend.h"
-#endif // COMPILE_TDEHARDWAREBACKEND
-
-#ifdef COMPILE_HALBACKEND
-#include "halbackend.h"
-#endif //COMPILE_HALBACKEND
-
-#ifdef COMPILE_LINUXCDPOLLING
-#include "linuxcdpolling.h"
-#endif //COMPILE_LINUXCDPOLLING
-
-
-MediaManager::MediaManager(const TQCString &obj)
- : KDEDModule(obj), m_dirNotify(m_mediaList)
-{
- connect( &m_mediaList, TQT_SIGNAL(mediumAdded(const TQString&, const TQString&, bool)),
- TQT_SLOT(slotMediumAdded(const TQString&, const TQString&, bool)) );
- connect( &m_mediaList, TQT_SIGNAL(mediumRemoved(const TQString&, const TQString&, bool)),
- TQT_SLOT(slotMediumRemoved(const TQString&, const TQString&, bool)) );
- connect( &m_mediaList,
- TQT_SIGNAL(mediumStateChanged(const TQString&, const TQString&, bool, bool)),
- TQT_SLOT(slotMediumChanged(const TQString&, const TQString&, bool, bool)) );
-
- TQTimer::singleShot( 10, this, TQT_SLOT( loadBackends() ) );
-}
-
-MediaManager::~MediaManager()
-{
- while ( !m_backends.isEmpty() )
- {
- BackendBase *b = m_backends.first();
- m_backends.remove( b );
- delete b;
- }
-}
-
-void MediaManager::loadBackends()
-{
- m_mediaList.blockSignals(true);
-
- while ( !m_backends.isEmpty() )
- {
- BackendBase *b = m_backends.first();
- m_backends.remove( b );
- delete b;
- }
-
- mp_removableBackend = 0L;
- m_halbackend = 0L;
- m_tdebackend = 0L;
- m_fstabbackend = 0L;
-
-#ifdef COMPILE_HALBACKEND
- if ( MediaManagerSettings::self()->halBackendEnabled() )
- {
- m_mediaList.blockSignals(false);
- m_halbackend = new HALBackend(m_mediaList, this);
- if (m_halbackend->InitHal())
- {
- m_backends.append( m_halbackend );
- m_fstabbackend = new FstabBackend(m_mediaList, true);
- m_backends.append( m_fstabbackend );
- // No need to load something else...
- m_mediaList.blockSignals(false);
- return;
- }
- else
- {
- delete m_halbackend;
- m_halbackend = 0;
- m_mediaList.blockSignals(true);
- }
- }
-#endif // COMPILE_HALBACKEND
-
-#ifdef COMPILE_TDEHARDWAREBACKEND
- if ( MediaManagerSettings::self()->tdeHardwareBackendEnabled() )
- {
- m_mediaList.blockSignals(false);
- m_tdebackend = new TDEBackend(m_mediaList, this);
- m_backends.append( m_tdebackend );
- m_fstabbackend = new FstabBackend(m_mediaList, true);
- m_backends.append( m_fstabbackend );
- // No need to load something else...
- m_mediaList.blockSignals(false);
- return;
- }
-#endif // COMPILE_TDEHARDWAREBACKEND
-
- mp_removableBackend = new RemovableBackend(m_mediaList);
- m_backends.append( mp_removableBackend );
-
-#ifdef COMPILE_LINUXCDPOLLING
- if ( MediaManagerSettings::self()->cdPollingEnabled() )
- {
- m_backends.append( new LinuxCDPolling(m_mediaList) );
- }
-#endif //COMPILE_LINUXCDPOLLING
-
- m_fstabbackend = new FstabBackend(m_mediaList);
- m_backends.append( m_fstabbackend );
- m_mediaList.blockSignals(false);
-}
-
-
-TQStringList MediaManager::fullList()
-{
- TQPtrList<Medium> list = m_mediaList.list();
-
- TQStringList result;
-
- TQPtrList<Medium>::const_iterator it = list.begin();
- TQPtrList<Medium>::const_iterator end = list.end();
- for (; it!=end; ++it)
- {
- result+= (*it)->properties();
- result+= Medium::SEPARATOR;
- }
-
- return result;
-}
-
-TQStringList MediaManager::properties(const TQString &name)
-{
- const Medium *m = m_mediaList.findByName(name);
-
- if (!m)
- {
- KURL u(name);
- kdDebug() << "Media::prop " << name << " " << u.isValid() << endl;
- if (u.isValid())
- {
- if (u.protocol() == "system")
- {
- TQString path = u.path();
- if (path.startsWith("/media/"))
- path = path.mid(strlen("/media/"));
- m = m_mediaList.findByName(path);
- kdDebug() << "findByName " << path << m << endl;
- }
- else if (u.protocol() == "media")
- {
- m = m_mediaList.findByName(u.filename());
- kdDebug() << "findByName " << u.filename() << m << endl;
- }
- else if (u.protocol() == "file")
- {
- // look for the mount point
- TQPtrList<Medium> list = m_mediaList.list();
- TQPtrList<Medium>::const_iterator it = list.begin();
- TQPtrList<Medium>::const_iterator end = list.end();
- TQString path;
-
- for (; it!=end; ++it)
- {
- path = KStandardDirs::realFilePath(u.path());
- kdDebug() << "comparing " << (*it)->mountPoint() << " " << path << " " << (*it)->deviceNode() << endl;
- if ((*it)->mountPoint() == path || (*it)->deviceNode() == path) {
- m = *it;
- break;
- }
- }
- }
- }
- }
-
- if (m) {
- return m->properties();
- }
- else {
- return TQStringList();
- }
-}
-
-TQStringList MediaManager::mountoptions(const TQString &name)
-{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return TQStringList();
- return m_halbackend->mountoptions(name);
-#else // COMPILE_HALBACKEND
- #ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend)
- return TQStringList();
- return m_tdebackend->mountoptions(name);
- #else // COMPILE_TDEHARDWAREBACKEND
- return TQStringList();
- #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
-}
-
-bool MediaManager::setMountoptions(const TQString &name, const TQStringList &options)
-{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return false;
- return m_halbackend->setMountoptions(name, options);
-#else // COMPILE_HALBACKEND
- #ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend)
- return false;
- return m_tdebackend->setMountoptions(name, options);
- #else // COMPILE_TDEHARDWAREBACKEND
- return false;
- #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
-}
-
-TQString MediaManager::mount(const TQString &name)
-{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return i18n("Feature only available with HAL");
- return m_halbackend->mount(name);
-#else // COMPILE_HALBACKEND
- #ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend)
- return i18n("Feature only available with the TDE hardware backend");
- return m_tdebackend->mount(name);
- #else // COMPILE_TDEHARDWAREBACKEND
- if ( !m_fstabbackend ) // lying :)
- return i18n("Feature only available with HAL or TDE hardware backend");
- return m_fstabbackend->mount( name );
- #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
-}
-
-TQString MediaManager::unmount(const TQString &name)
-{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return i18n("Feature only available with HAL");
- return m_halbackend->unmount(name);
-#else // COMPILE_HALBACKEND
- #ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend)
- return i18n("Feature only available with HAL or TDE hardware backend");
- return m_tdebackend->unmount(name);
- #else // COMPILE_TDEHARDWAREBACKEND
- if ( !m_fstabbackend ) // lying :)
- return i18n("Feature only available with HAL or TDE hardware backend");
- return m_fstabbackend->unmount( name );
- #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
-}
-
-TQString MediaManager::decrypt(const TQString &name, const TQString &password)
-{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return i18n("Feature only available with HAL");
- return m_halbackend->decrypt(name, password);
-#else // COMPILE_HALBACKEND
-// #ifdef COMPILE_TDEHARDWAREBACKEND
-// if (!m_tdebackend)
-// return i18n("Feature only available with HAL or TDE hardware backend");
-// return m_tdebackend->decrypt(name, password);
-// #else // COMPILE_TDEHARDWAREBACKEND
- return i18n("Feature only available with HAL");
-// #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
-}
-
-TQString MediaManager::undecrypt(const TQString &name)
-{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return i18n("Feature only available with HAL");
- return m_halbackend->undecrypt(name);
-#else // COMPILE_HALBACKEND
-// #ifdef COMPILE_TDEHARDWAREBACKEND
-// if (!m_tdebackend)
-// return i18n("Feature only available with HAL or TDE hardware backend");
-// return m_tdebackend->undecrypt(name);
-// #else // COMPILE_TDEHARDWAREBACKEND
- return i18n("Feature only available with HAL");
-// #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
-}
-
-TQString MediaManager::nameForLabel(const TQString &label)
-{
- const TQPtrList<Medium> media = m_mediaList.list();
-
- TQPtrList<Medium>::const_iterator it = media.begin();
- TQPtrList<Medium>::const_iterator end = media.end();
- for (; it!=end; ++it)
- {
- const Medium *m = *it;
-
- if (m->prettyLabel()==label)
- {
- return m->name();
- }
- }
-
- return TQString::null;
-}
-
-ASYNC MediaManager::setUserLabel(const TQString &name, const TQString &label)
-{
- m_mediaList.setUserLabel(name, label);
-}
-
-ASYNC MediaManager::reloadBackends()
-{
- MediaManagerSettings::self()->readConfig();
- loadBackends();
-}
-
-bool MediaManager::removablePlug(const TQString &devNode, const TQString &label)
-{
- if (mp_removableBackend)
- {
- return mp_removableBackend->plug(devNode, label);
- }
- return false;
-}
-
-bool MediaManager::removableUnplug(const TQString &devNode)
-{
- if (mp_removableBackend)
- {
- return mp_removableBackend->unplug(devNode);
- }
- return false;
-}
-
-bool MediaManager::removableCamera(const TQString &devNode)
-{
- if (mp_removableBackend)
- {
- return mp_removableBackend->camera(devNode);
- }
- return false;
-}
-
-
-void MediaManager::slotMediumAdded(const TQString &/*id*/, const TQString &name,
- bool allowNotification)
-{
- kdDebug(1219) << "MediaManager::slotMediumAdded: " << name << endl;
-
- KDirNotify_stub notifier("*", "*");
- notifier.FilesAdded( KURL("media:/") );
-
- emit mediumAdded(name, allowNotification);
- emit mediumAdded(name);
-}
-
-void MediaManager::slotMediumRemoved(const TQString &/*id*/, const TQString &name,
- bool allowNotification)
-{
- kdDebug(1219) << "MediaManager::slotMediumRemoved: " << name << endl;
-
- KDirNotify_stub notifier("*", "*");
- notifier.FilesRemoved( KURL("media:/"+name) );
-
- emit mediumRemoved(name, allowNotification);
- emit mediumRemoved(name);
-}
-
-void MediaManager::slotMediumChanged(const TQString &/*id*/, const TQString &name,
- bool mounted, bool allowNotification)
-{
- kdDebug(1219) << "MediaManager::slotMediumChanged: " << name << endl;
-
- KDirNotify_stub notifier("*", "*");
- if (!mounted)
- {
- notifier.FilesRemoved( KURL("media:/"+name) );
- }
- notifier.FilesChanged( KURL("media:/"+name) );
-
- emit mediumChanged(name, allowNotification);
- emit mediumChanged(name);
-}
-
-
-extern "C" {
- KDE_EXPORT KDEDModule *create_mediamanager(const TQCString &obj)
- {
- TDEGlobal::locale()->insertCatalogue("kio_media");
- return new MediaManager(obj);
- }
-}
-
-#include "mediamanager.moc"