X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/226cd38475ed94cb9f412d9d16e249a85fa40b67..f7d4b3e46c34d1ed7983c20577da833405f541f8:/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py b/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py index 882668f7..469b1dd0 100644 --- a/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py @@ -21,20 +21,33 @@ class Hotplug(Protocol): def connectionLost(self, reason): data = self.received.split('\0')[:-1] - print "hotplug:", data + v = {} - if len(data) < 4: - return + for x in data: + i = x.find('=') + var, val = x[:i], x[i+1:] + v[var] = val - (action, device, physdev, driver) = data[:4] + print "hotplug:", v + + action = v.get("ACTION") + device = v.get("DEVPATH") + physdevpath = v.get("PHYSDEVPATH") + media_state = v.get("X_E2_MEDIA_STATUS") dev = device.split('/')[-1] - if action == "add": + if action is not None and action == "add": print "Medium found in", self.getUserfriendlyDeviceName(dev) - harddiskmanager.addHotplugPartition(dev, self.getUserfriendlyDeviceName(dev)) - elif action == "remove": + harddiskmanager.addHotplugPartition(dev, self.getUserfriendlyDeviceName(physdevpath)) + elif action is not None and action == "remove": harddiskmanager.removeHotplugPartition(dev) + elif media_state is not None: + if media_state == '1': + harddiskmanager.removeHotplugPartition(dev) + harddiskmanager.addHotplugPartition(dev, self.getUserfriendlyDeviceName(physdevpath)) + elif media_state == '0': + harddiskmanager.removeHotplugPartition(dev) def autostart(reason, **kwargs): if reason == 0: