Fix SONY driver in linux

This commit is contained in:
Kovid Goyal 2010-06-05 16:27:31 -06:00
parent 6a11da64cc
commit 85f21f629c

View File

@ -6,8 +6,7 @@ __docformat__ = 'restructuredtext en'
Device driver for the SONY devices Device driver for the SONY devices
''' '''
import os import os, time, re
import re
from calibre.devices.usbms.driver import USBMS from calibre.devices.usbms.driver import USBMS
from calibre.devices.prs505 import MEDIA_XML from calibre.devices.prs505 import MEDIA_XML
@ -66,6 +65,40 @@ class PRS505(USBMS):
def windows_filter_pnp_id(self, pnp_id): def windows_filter_pnp_id(self, pnp_id):
return '_LAUNCHER' in pnp_id return '_LAUNCHER' in pnp_id
def open(self):
self.report_progress = lambda x, y: x
USBMS.open(self)
def write_cache(prefix):
try:
cachep = os.path.join(prefix, *(self.CACHE_XML.split('/')))
if not os.path.exists(cachep):
dname = os.path.dirname(cachep)
if not os.path.exists(dname):
try:
os.makedirs(dname, mode=0777)
except:
time.sleep(5)
os.makedirs(dname, mode=0777)
with open(cachep, 'wb') as f:
f.write(u'''<?xml version="1.0" encoding="UTF-8"?>
<cache xmlns="http://www.kinoma.com/FskCache/1">
</cache>
'''.encode('utf8'))
return True
except:
import traceback
traceback.print_exc()
return False
if self._card_a_prefix is not None:
if not write_cache(self._card_a_prefix):
self._card_a_prefix = None
if self._card_b_prefix is not None:
if not write_cache(self._card_b_prefix):
self._card_b_prefix = None
def get_device_information(self, end_session=True): def get_device_information(self, end_session=True):
return (self.gui_name, '', '', '') return (self.gui_name, '', '', '')