mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add support for MTP devices on FreeBSD
Merge branch 'master' of https://github.com/cemeyer/calibre
This commit is contained in:
commit
80fd071521
@ -34,8 +34,7 @@ APPLE = 0x05ac
|
|||||||
|
|
||||||
class MTP_DEVICE(MTPDeviceBase):
|
class MTP_DEVICE(MTPDeviceBase):
|
||||||
|
|
||||||
# libusb(x) does not work on OS X. So no MTP support for OS X
|
supported_platforms = ['freebsd', 'linux', 'osx']
|
||||||
supported_platforms = ['linux', 'osx']
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
MTPDeviceBase.__init__(self, *args, **kwargs)
|
MTPDeviceBase.__init__(self, *args, **kwargs)
|
||||||
|
@ -166,60 +166,6 @@ class LinuxScanner(object):
|
|||||||
return ans
|
return ans
|
||||||
|
|
||||||
|
|
||||||
class FreeBSDScanner(object):
|
|
||||||
|
|
||||||
def __call__(self):
|
|
||||||
ans = set([])
|
|
||||||
import dbus
|
|
||||||
|
|
||||||
try:
|
|
||||||
bus = dbus.SystemBus()
|
|
||||||
manager = dbus.Interface(bus.get_object('org.freedesktop.Hal',
|
|
||||||
'/org/freedesktop/Hal/Manager'), 'org.freedesktop.Hal.Manager')
|
|
||||||
paths = manager.FindDeviceStringMatch('freebsd.driver','da')
|
|
||||||
for path in paths:
|
|
||||||
obj = bus.get_object('org.freedesktop.Hal', path)
|
|
||||||
objif = dbus.Interface(obj, 'org.freedesktop.Hal.Device')
|
|
||||||
parentdriver = None
|
|
||||||
while parentdriver != 'umass':
|
|
||||||
try:
|
|
||||||
obj = bus.get_object('org.freedesktop.Hal',
|
|
||||||
objif.GetProperty('info.parent'))
|
|
||||||
objif = dbus.Interface(obj, 'org.freedesktop.Hal.Device')
|
|
||||||
try:
|
|
||||||
parentdriver = objif.GetProperty('freebsd.driver')
|
|
||||||
except dbus.exceptions.DBusException as e:
|
|
||||||
continue
|
|
||||||
except dbus.exceptions.DBusException as e:
|
|
||||||
break
|
|
||||||
if parentdriver != 'umass':
|
|
||||||
continue
|
|
||||||
dev = []
|
|
||||||
try:
|
|
||||||
dev.append(objif.GetProperty('usb.vendor_id'))
|
|
||||||
dev.append(objif.GetProperty('usb.product_id'))
|
|
||||||
dev.append(objif.GetProperty('usb.device_revision_bcd'))
|
|
||||||
except dbus.exceptions.DBusException as e:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
dev.append(objif.GetProperty('info.vendor'))
|
|
||||||
except:
|
|
||||||
dev.append('')
|
|
||||||
try:
|
|
||||||
dev.append(objif.GetProperty('info.product'))
|
|
||||||
except:
|
|
||||||
dev.append('')
|
|
||||||
try:
|
|
||||||
dev.append(objif.GetProperty('usb.serial'))
|
|
||||||
except:
|
|
||||||
dev.append('')
|
|
||||||
dev.append(path)
|
|
||||||
ans.add(tuple(dev))
|
|
||||||
except dbus.exceptions.DBusException as e:
|
|
||||||
print >>sys.stderr, "Execution failed:", e
|
|
||||||
return ans
|
|
||||||
|
|
||||||
|
|
||||||
if islinux:
|
if islinux:
|
||||||
linux_scanner = LinuxScanner()
|
linux_scanner = LinuxScanner()
|
||||||
|
|
||||||
@ -236,7 +182,7 @@ if False and isosx:
|
|||||||
osx_scanner = usbobserver.get_usb_devices
|
osx_scanner = usbobserver.get_usb_devices
|
||||||
|
|
||||||
if isfreebsd:
|
if isfreebsd:
|
||||||
freebsd_scanner = FreeBSDScanner()
|
freebsd_scanner = libusb_scanner
|
||||||
|
|
||||||
''' NetBSD support currently not written yet '''
|
''' NetBSD support currently not written yet '''
|
||||||
if isnetbsd:
|
if isnetbsd:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user