removed ipod-dbus support (has now its extra branch in svn)

don't depend on python2.4, but run on system's default python (2.3 or 2.4)


git-svn-id: svn://svn.berlios.de/gpodder/trunk@116 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
Thomas Perl 2006-06-13 18:23:09 +00:00
parent 4d909d2d7a
commit ead82b5a26
5 changed files with 22 additions and 193 deletions

View File

@ -1,3 +1,8 @@
Tue, 13 Jun 2006 20:20:07 +0200 <thp@perli.net>
* Removed ipod-dbus support (has now its extra branch in svn)
* Bumped version date + release date
* You can run gPodder on python2.3 again (instead of 2.4 only)
Fri, 09 Jun 2006 12:37:54 +0200 <thp@perli.net>
* Applied a modified version of Camille's patch to get videos
(mov, mp4, m4v) working with iPod video devices on sync -

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2.4
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
@ -26,8 +26,8 @@
# PLEASE DO NOT CHANGE FORMAT OF __version__ LINE (setup.py reads this)
__author__ = "Thomas Perl <thp@perli.net>"
__version__ = "0.7+svn20060609"
__date__ = "2006-06-09"
__version__ = "0.7+svn20060613"
__date__ = "2006-06-13"
__copyright__ = "Copyright (c) 2005-2006 %s. All rights reserved." % __author__
__licence__ = "GPL"

View File

@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
.TH GPODDER "1" "April 2006" "gpodder 0.7+svn20060409 2006-04-09" "User Commands"
.TH GPODDER "1" "June 2006" "gpodder 0.7+svn20060613 2006-06-13" "User Commands"
.SH NAME
gpodder \- manual page for gpodder 0.7+svn20060409 2006-04-09
gpodder \- manual page for gpodder 0.7+svn20060613 2006-06-13
.SH DESCRIPTION
usage: gpodder [options] arg1 arg2
.PP
@ -29,8 +29,8 @@ Update channel list, download new podcasts
\fB\-u\fR, \fB\-\-update\fR
Update channel list and exit
.TP
\fB\-a\fR FEEDURL, \fB\-\-add\fR=\fIFEEDURL\fR
\fB\-aFEEDURL\fR, \fB\-\-add\fR=\fIFEEDURL\fR
Subscribe to channel from FEEDURL
.TP
\fB\-d\fR n, \fB\-\-delete\fR=\fIn\fR
\fB\-dn\fR, \fB\-\-delete\fR=\fIn\fR
Delete channel with ID n

View File

@ -59,7 +59,6 @@ from libplayers import UserAppsReader
from libipodsync import gPodder_iPodSync
from libipodsync import ipod_supported
from libipodsync import iPodManagerSingleton
# for isDebugging:
import libgpodder
@ -102,9 +101,6 @@ class Gpodder(SimpleGladeApp):
# User Apps Reader
uar = None
# D-BUSified iPod Manager
ipod_mgr = None
def __init__(self, path="gpodder.glade",
root="gPodder",
domain=app_name, **kwargs):
@ -202,8 +198,7 @@ class Gpodder(SimpleGladeApp):
if not ipod_supported():
self.ipod_functions( False)
else:
self.ipod_mgr = iPodManagerSingleton()
self.ipod_mgr.register( self.ipod_changed_callback)
self.ipod_functions( True)
# if we are running a SVN-based version, notify the user :)
if app_version.rfind( "svn") != -1:
@ -218,20 +213,6 @@ class Gpodder(SimpleGladeApp):
self.cleanup_ipod.set_sensitive( enable)
self.sync_to_ipod.set_sensitive( enable)
def ipod_changed_callback( self, ipod):
if ipod != None:
if libgpodder.isDebugging():
print '(ipod) iPod attached / modified'
connected = ipod.mount_point != None
self.ipod_functions( connected)
if connected:
if self.showConfirmation( _('iPod connected. Do you want to sync now?')):
self.on_sync_to_ipod_activate( self.gPodder)
else:
if libgpodder.isDebugging():
print '(ipod) iPod removed / not attached'
self.ipod_functions( False)
def updateComboBox( self):
self.channels_model = channelsToModel( self.channels)
@ -365,9 +346,11 @@ class Gpodder(SimpleGladeApp):
return self.comboDownloaded.get_model().get_value( iter, 0)
def sync_to_ipod_proc( self, sync_win):
sync = gPodder_iPodSync( callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
gpl = gPodderLib()
gpl.loadConfig()
sync = gPodder_iPodSync( ipod_mount = gpl.ipod_mount, callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
if not sync.open():
gobject.idle_add( self.showMessage, _('Cannot access iPod.\nMake sure your iPod is connected.'))
gobject.idle_add( self.showMessage, _('Cannot access iPod.\nMake sure your iPod is connected and mounted.'))
sync.close()
return False
for channel in self.downloaded_channels:
@ -376,7 +359,9 @@ class Gpodder(SimpleGladeApp):
sync.close()
def ipod_cleanup_proc( self, sync_win):
sync = gPodder_iPodSync( callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
gpl = gPodderLib()
gpl.loadConfig()
sync = gPodder_iPodSync( ipod_mount = gpl.ipod_mount, callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
if not sync.open():
gobject.idle_add( self.showMessage, _('Cannot access iPod.\nMake sure your iPod is connected.'))
sync.close()
@ -455,9 +440,6 @@ class Gpodder(SimpleGladeApp):
self.uar.read()
prop = Gpodderproperties()
prop.set_uar( self.uar)
#if self.ipod_mgr != None:
# self.ipod_mgr.register( prop.update_mountpoint)
# prop.on_close = lambda: self.ipod_mgr.unregister( prop.update_mountpoint)
#-- Gpodder.on_itemPreferences_activate }
#-- Gpodder.on_itemAddChannel_activate {

View File

@ -34,10 +34,6 @@ enable_ipod_functions = True
try:
import gpod
import eyeD3
import dbus
# the following is taken from hal-device-manager source
if getattr( dbus, 'version', (0,0,0)) >= (0,41,0):
import dbus.glib
except:
enable_ipod_functions = False
@ -60,17 +56,6 @@ def ipod_supported():
video_extensions = [ "mov", "mp4", "m4v" ]
__ipodmanager = None
def iPodManagerSingleton():
global __ipodmanager
if __ipodmanager == None:
__ipodmanager = iPodManager()
return __ipodmanager
class gPodder_iPodSync(object):
itdb = None
ipod_mount = '' # mountpoint for ipod
@ -80,14 +65,12 @@ class gPodder_iPodSync(object):
callback_progress = None
callback_status = None
callback_done = None
ipod_mgr = None
def __init__( self, callback_progress = None, callback_status = None, callback_done = None):
def __init__( self, ipod_mount = '/media/ipod/', callback_progress = None, callback_status = None, callback_done = None):
if not ipod_supported():
if libgpodder.isDebugging():
print '(ipodsync) iPod functions not supported. (libgpod + eyed3 needed)'
self.ipod_mgr = iPodManagerSingleton()
self.ipod_mount = self.ipod_mgr.ipod.mount_point
self.ipod_mount = ipod_mount
self.callback_progress = callback_progress
self.callback_status = callback_status
self.callback_done = callback_done
@ -118,11 +101,6 @@ class gPodder_iPodSync(object):
if self.callback_done != None:
time.sleep(1)
gobject.idle_add( self.callback_done)
if self.ipod_mgr != None:
if self.ipod_mgr.ipod != None:
# there has to be a better way.. ;)
# os.system( 'sudo eject %s' % ( self.ipod_mgr.ipod.device ))
pass
return True
def remove_from_ipod( self, track, playlists):
@ -286,139 +264,3 @@ class gPodder_iPodSync(object):
# silently ignore :)
pass
class iPod(object):
__mountpoint = None
def __init__( self, udi):
self.is_connected = False
self.device = None # /dev/sda
self.children = []
self.udi = udi
if libgpodder.isDebugging():
print '(iPod) new with udi: %s' % udi
def has( self, udi):
return udi in self.children
def add( self, udi):
if libgpodder.isDebugging():
print '(iPod) adding: %s' % udi
self.children.append( udi)
def remove( self, udi):
if libgpodder.isDebugging():
print '(iPod) removing: %s' % udi
self.children.remove( udi)
def get_mount_point( self):
return self.__mountpoint
def set_mount_point( self, mount_point):
if libgpodder.isDebugging():
print '(iPod) mountpoint: %s' % mount_point
self.__mountpoint = mount_point
if self.__mountpoint[-1] != '/':
self.__mountpoint = self.__mountpoint + '/'
mount_point = property( fget = get_mount_point, fset = set_mount_point )
def blowup( self):
if libgpodder.isDebugging():
print '(iPod) blown up!'
class iPodManager(object):
mgr = 'org.freedesktop.Hal.Manager'
mgr_path = '/org/freedesktop/Hal/Manager'
service = 'org.freedesktop.Hal'
interface = 'org.freedesktop.Hal.Device'
ipod_key = 'portable_audio_player.storage_device'
ipod_value = '/org/freedesktop/Hal/devices/storage_model_iPod'
ipod_parent_key = 'info.parent'
bus = None
__ipod = None
listeners = []
def __init__( self):
self.dbus_connect()
def dbus_connect( self):
self.bus = dbus.SystemBus()
self.bus.add_signal_receiver( self.device_added, 'DeviceAdded', self.mgr, self.service, self.mgr_path)
self.bus.add_signal_receiver( self.device_removed, 'DeviceRemoved', self.mgr, self.service, self.mgr_path)
def device_added( self, udi):
if libgpodder.isDebugging():
print '(iPodManager) device_added: %s' % udi
self.notify_me( udi)
props = self.get_properties( udi)
# add new iPod if connected
if props.has_key( self.ipod_key):
if props[self.ipod_key] == self.ipod_value:
if libgpodder.isDebugging():
print '(iPodManager) received device_added'
self.ipod = iPod( udi)
self.ipod.device = props['block.device']
self.notify_all()
# iPod-related
if self.ipod != None and props.has_key( self.ipod_parent_key) and props[self.ipod_parent_key] == self.ipod_value:
self.ipod.add( udi)
def notify_me( self, udi):
callback = lambda *args: self.device_modified( udi, *args)
self.bus.add_signal_receiver( callback, 'PropertyModified', self.interface, self.service, udi)
def device_removed( self, udi):
if libgpodder.isDebugging():
print '(iPodManager) device_removed: %s' % udi
# iPod-related
if self.ipod != None and self.ipod.has( udi):
self.ipod.remove( udi)
if self.ipod != None and self.ipod.udi == udi:
if libgpodder.isDebugging():
print '(iPodManager) received device_removed'
self.ipod.blowup()
self.ipod = None
self.notify_all()
def device_modified( self, udi, num_changes, list):
props = self.get_properties( udi)
for item in list:
key = item[0]
if self.ipod != None:
if key == 'volume.mount_point':
self.ipod.mount_point = props[key]
self.notify_all()
def get_properties( self, udi):
object = self.bus.get_object( self.service, udi)
return object.GetAllProperties( dbus_interface = self.interface)
def get_ipod( self):
return self.__ipod
def notify_all( self):
for listener in self.listeners:
listener( self.ipod)
def set_ipod( self, ipod):
self.__ipod = ipod
ipod = property( fget = get_ipod, fset = set_ipod )
def register( self, callback):
if not callback in self.listeners:
self.listeners.append( callback)
callback( self.ipod)
def unregister( self, callback):
if callback in self.listeners:
self.listeners.remove( callback)