From ac0730bf6a27e647e2f2a2633640407533bdfb91 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 3 Aug 2009 14:48:46 -0600 Subject: [PATCH] Fix detection of BeBook on windows when no storage card is present. Fixes #2974 (BeBook not reconized) --- src/calibre/devices/bebook/driver.py | 5 +++++ src/calibre/devices/usbms/device.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/calibre/devices/bebook/driver.py b/src/calibre/devices/bebook/driver.py index e490cabf21..5aba34e879 100644 --- a/src/calibre/devices/bebook/driver.py +++ b/src/calibre/devices/bebook/driver.py @@ -51,6 +51,11 @@ class BEBOOK(USBMS): return drives + def windows_open_callback(self, drives): + if 'main' not in drives and 'carda' in drives: + drives['main'] = drives.pop('carda') + return drives + def osx_sort_names(self, names): main = names.get('main', None) card = names.get('carda', None) diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index 6feac22cb3..24ad929cbd 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -272,6 +272,8 @@ class Device(DeviceConfig, DevicePlugin): 'cardb' in drives.keys(): break + drives = self.windows_open_callback(drives) + if 'main' not in drives: raise DeviceError( _('Unable to detect the %s disk drive. Try rebooting.') % @@ -282,6 +284,9 @@ class Device(DeviceConfig, DevicePlugin): self._card_a_prefix = drives.get('carda', None) self._card_b_prefix = drives.get('cardb', None) + def windows_open_callback(self, drives): + return drives + @classmethod def run_ioreg(cls, raw=None): if raw is not None: