diff options
author | Lars Hanisch <dvb@flensrocker.de> | 2011-10-26 23:02:06 +0200 |
---|---|---|
committer | Lars Hanisch <dvb@flensrocker.de> | 2011-10-26 23:02:06 +0200 |
commit | 6842192298a8c1cf38db4c51d62598b704256933 (patch) | |
tree | 7181fb99a2d9b7cb7a6a457855fe6ab9c2731869 /monitor.h | |
parent | 6e1064dca6de162e199b4687612d3f5f72c7c0c4 (diff) | |
download | vdr-plugin-dynamite-6842192298a8c1cf38db4c51d62598b704256933.tar.gz vdr-plugin-dynamite-6842192298a8c1cf38db4c51d62598b704256933.tar.bz2 |
add udev monitor for remove events of usb hardware so devices can be detached on unplugging
Diffstat (limited to 'monitor.h')
-rw-r--r-- | monitor.h | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -27,6 +27,7 @@ protected: public: static cUdevMonitor *Get(const char *Subsystem); static bool AddFilter(const char *Subsystem, cUdevFilter *Filter); + static bool DelFilter(const char *Subsystem, cUdevFilter *Filter); static void ShutdownAllMonitors(void); virtual ~cUdevMonitor(void); @@ -55,6 +56,27 @@ protected: virtual void Process(cUdevDevice &Device); }; +class cUdevUsbRemoveFilter : public cUdevFilter { +private: + class cItem : public cListObject { + public: + cString *item; + cString *devpath; + cItem(const char *i, const char *d); + virtual ~cItem(void); + }; + + static cMutex mutexFilter; + static cUdevUsbRemoveFilter *filter; + cMutex mutexItems; + cList<cItem> items; +protected: + virtual void Process(cUdevDevice &Device); +public: + static void AddItem(const char *item, const char *devpath); + static void RemoveItem(const char *item, const char *devpath); + }; + class cUdevPatternFilter : public cUdevFilter { public: static bool AddFilter(const char *Subsystem, const char *Pattern); |