callbacks that are added upon hotplug events can be added to a hotplugNotifier list...
[enigma2.git] / lib / python / Plugins / SystemPlugins / Hotplug / plugin.py
index 469b1dd0a948af1b5da4ba4c4ab474e937a15979..97ddf4a1c44999a08e206b41212417043f827154 100644 (file)
@@ -8,6 +8,8 @@ DEVICEDB =  \
          "/devices/pci0000:00/0000:00:14.2/usb1/1-1/1-1:1.0/host0/target1:0:0/0:0:0:0": "SD Slot"
        }
 
+hotplugNotifier = [ ]
+
 class Hotplug(Protocol):
        def getUserfriendlyDeviceName(self, phys):
                return DEVICEDB.get(phys, "USB Storage")
@@ -48,6 +50,12 @@ class Hotplug(Protocol):
                                harddiskmanager.addHotplugPartition(dev, self.getUserfriendlyDeviceName(physdevpath))
                        elif media_state == '0':
                                harddiskmanager.removeHotplugPartition(dev)
+               
+               for callback in hotplugNotifier:
+                       try:
+                               callback(dev, media_state)
+                       except AttributeError:
+                               hotplugNotifier.remove(callback)
 
 def autostart(reason, **kwargs):
        if reason == 0: