summaryrefslogtreecommitdiff
path: root/monitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'monitor.h')
-rw-r--r--monitor.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/monitor.h b/monitor.h
index 79634c0..09d01ec 100644
--- a/monitor.h
+++ b/monitor.h
@@ -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);