00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _MEDIAMANAGER_H_
00020 #define _MEDIAMANAGER_H_
00021
00022 #include <kdedmodule.h>
00023 #include <tqstring.h>
00024 #include <tqstringlist.h>
00025
00026 #include "medialist.h"
00027 #include "backendbase.h"
00028 #include "removablebackend.h"
00029 #include "mediadirnotify.h"
00030
00031 class HALBackend;
00032 class FstabBackend;
00033
00034 class MediaManager : public KDEDModule
00035 {
00036 Q_OBJECT
00037 K_DCOP
00038 public:
00039 MediaManager(const TQCString &obj);
00040 ~MediaManager();
00041
00042 k_dcop:
00043 TQStringList fullList();
00044 TQStringList properties(const TQString &name);
00045 TQStringList mountoptions(const TQString &name);
00046 bool setMountoptions(const TQString &name, const TQStringList &options);
00047
00048 TQString mount(const TQString &uid);
00049 TQString unmount(const TQString &uid);
00050 TQString decrypt(const TQString &uid, const TQString &password);
00051 TQString undecrypt(const TQString &uid);
00052
00053 TQString nameForLabel(const TQString &label);
00054 ASYNC setUserLabel(const TQString &name, const TQString &label);
00055
00056 ASYNC reloadBackends();
00057
00058
00059 bool removablePlug(const TQString &devNode, const TQString &label);
00060 bool removableUnplug(const TQString &devNode);
00061 bool removableCamera(const TQString &devNode);
00062
00063 k_dcop_signals:
00064 void mediumAdded(const TQString &name, bool allowNotification);
00065 void mediumRemoved(const TQString &name, bool allowNotification);
00066 void mediumChanged(const TQString &name, bool allowNotification);
00067
00068
00069 void mediumAdded(const TQString &name);
00070 void mediumRemoved(const TQString &name);
00071 void mediumChanged(const TQString &name);
00072
00073 private slots:
00074 void loadBackends();
00075
00076 void slotMediumAdded(const TQString &id, const TQString &name,
00077 bool allowNotification);
00078 void slotMediumRemoved(const TQString &id, const TQString &name,
00079 bool allowNotification);
00080 void slotMediumChanged(const TQString &id, const TQString &name,
00081 bool mounted, bool allowNotification);
00082
00083 private:
00084 MediaList m_mediaList;
00085 TQValueList<BackendBase*> m_backends;
00086 RemovableBackend *mp_removableBackend;
00087 HALBackend *m_halbackend;
00088 MediaDirNotify m_dirNotify;
00089 FstabBackend *m_fstabbackend;
00090 };
00091
00092 #endif