Changeset 8631 for branches/gajim_0.11.1/src/music_track_listener.py
- Timestamp:
- 08/30/07 22:33:19 (15 months ago)
- Files:
-
- 1 modified
-
branches/gajim_0.11.1/src/music_track_listener.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/gajim_0.11.1/src/music_track_listener.py
r7940 r8631 25 25 26 26 class MusicTrackInfo(object): 27 __slots__ = ['title', 'album', 'artist', 'duration', 'track_number'] 27 __slots__ = ['title', 'album', 'artist', 'duration', 'track_number', 28 'paused'] 28 29 29 30 … … 64 65 ## Banshee 65 66 banshee_bus = dbus.SessionBus() 66 dubus = banshee_bus.get_object('org.freedesktop.DBus', '/org/freedesktop/dbus') 67 dubus = banshee_bus.get_object('org.freedesktop.DBus', 68 '/org/freedesktop/dbus') 67 69 self.dubus_methods = dbus.Interface(dubus, 'org.freedesktop.DBus') 70 self.current_banshee_title = '' 71 self.banshee_paused_before = False 72 self.banshee_is_here = False 73 gobject.timeout_add(10000, self._check_if_banshee_bus) 68 74 if self.dubus_methods.NameHasOwner('org.gnome.Banshee'): 69 75 self._get_banshee_bus() 76 self.banshee_is_here = True 70 77 # Otherwise, it opens Banshee! 71 78 self.banshee_props ={} 72 self.current_banshee_title = ''73 79 gobject.timeout_add(1000, self._banshee_check_track_status) 74 80 81 def _check_if_banshee_bus(self): 82 if self.dubus_methods.NameHasOwner('org.gnome.Banshee'): 83 self._get_banshee_bus() 84 self.banshee_is_here = True 85 else: 86 self.banshee_is_here = False 87 return True 88 89 75 90 def _get_banshee_bus(self): 76 91 bus = dbus.SessionBus() … … 130 145 self._get_banshee_bus() 131 146 132 if self.dubus_methods.NameHasOwner('org.gnome.Banshee'): 133 self.banshee_props['title'] = self.banshee_methods.GetPlayingTitle() 134 self.banshee_props['album'] = self.banshee_methods.GetPlayingAlbum() 135 self.banshee_props['artist'] = self.banshee_methods.GetPlayingArtist() 136 self.banshee_props['duration'] = \ 147 if self.dubus_methods.NameHasOwner('org.gnome.Banshee') and self.banshee_is_here: 148 try: 149 self.banshee_props['title'] = self.banshee_methods.GetPlayingTitle() 150 self.banshee_props['album'] = self.banshee_methods.GetPlayingAlbum() 151 self.banshee_props['artist'] = self.banshee_methods.\ 152 GetPlayingArtist() 153 self.banshee_props['duration'] = \ 137 154 self.banshee_methods.GetPlayingDuration() 138 info = self._banshee_properties_extract(self.banshee_props) 155 self.banshee_props['paused'] = self.banshee_methods.\ 156 GetPlayingStatus() 157 info = self._banshee_properties_extract(self.banshee_props) 158 except dbus.DBusException, err: 159 info = None 160 161 for key in self.banshee_props.keys(): 162 self.banshee_props[key] = '' 163 self.banshee_is_here = False 164 139 165 if self.current_banshee_title != self.banshee_props['title']: 140 166 self.emit('music-track-changed', info) 167 self.banshee_paused_before = False 168 if self.banshee_props['paused'] == 0 and self.banshee_paused_before ==\ 169 False: 170 self.emit('music-track-changed', info) 171 self.banshee_paused_before = True 172 else: 173 if self.banshee_paused_before and self.banshee_props['paused'] == 1: 174 self.emit('music-track-changed', info) 175 self.banshee_paused_before = False 141 176 self.current_banshee_title = self.banshee_props['title'] 142 177 return 1 … … 152 187 info.artist = props['artist'] 153 188 info.duration = int(props['duration']) 189 info.paused = props['paused'] 154 190 return info 155 191
