Changeset 548

Show
Ignore:
Timestamp:
02/13/07 20:39:28 (2 years ago)
Author:
nicfit
Message:

Added enqueue dbus interface (fixes #278)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/launch.sh

    r538 r548  
    2323cd src > /dev/null 
    2424export PYTHONPATH=${PYTHONPATH}:./mmkeys 
    25 exec python -OO main.py ${profile} $@ 
     25exec python -OO main.py ${profile} "$@" 
  • trunk/scripts/mesk.in

    r102 r548  
    2424cd @libdir@/mesk 
    2525export PYTHONPATH="${PYTHONPATH}:${prefix}/lib/python2.4/site-packages" 
    26 exec python -OO main.py $@ 
     26exec python -OO main.py "$@" 
  • trunk/src/dbus_service.py

    r545 r548  
    158158    @dbus.service.method(INTERFACE, in_signature='', out_signature='s') 
    159159    def get_active_playlist(self): 
    160         open_playlists = \ 
    161           self._main_win.get_controls_by_type(playlist_control.PlaylistControl) 
    162         for ctrl in open_playlists: 
    163             if ctrl.is_active(): 
    164                 return ctrl.name 
    165         return '' 
     160        ctrl = self._get_active_playlist_ctrl() 
     161        if ctrl: 
     162            return ctrl.name 
     163        else: 
     164            return '' 
    166165 
    167166    @dbus.service.method(INTERFACE, in_signature='s', out_signature='b') 
     
    175174        return dbus.Boolean(False) 
    176175 
    177     # FIXME 
    178176    @dbus.service.method(INTERFACE, in_signature='s', out_signature='b') 
    179177    def enqueue(self, uri): 
    180         pl_ctrl = _select_playlist() 
    181  
    182         # FIXME 
    183         uri = mesk.uri.make_uri(uri) 
    184         print "enqueue_uri:", uri, pl_ctrl 
    185         # FIXME: To open a playlist 
    186         #self.add_control(PlaylistControl, pl_name) 
     178        pl_ctrl = self._select_playlist() 
     179        if not pl_ctrl: 
     180            return dbus.Boolean(False) 
     181 
     182        pl_ctrl.add_uris([uri]) 
    187183        return dbus.Boolean(True) 
    188184 
    189     # FIXME 
    190     @dbus.service.signal(INTERFACE) 
    191     def audio_source_changed(self, src): 
    192         # FIXME: testing needed, gajim music plugin 
    193         pass 
     185    def _get_active_playlist_ctrl(self): 
     186        open_playlists = \ 
     187          self._main_win.get_controls_by_type(playlist_control.PlaylistControl) 
     188        for ctrl in open_playlists: 
     189            if ctrl.is_active(): 
     190                return ctrl 
     191        return None 
    194192 
    195193    def _select_playlist(self): 
    196194        '''This method is used to select a playlist for enqueueing URIs.  It  
    197195        may return None''' 
    198         active_pl = self.get_active_playlist() 
     196        active_pl = self._get_active_playlist_ctrl() 
    199197        if active_pl: 
    200198            return active_pl 
     
    208206 
    209207    def _on_audio_source_changed(self, ctrl, old, new): 
    210         # FIXME: This will never work 
    211         if new is None and new[1]: 
     208        if new is None: 
    212209            return 
    213210        self.current_src = new[1] 
    214         # FIXME: decompose src into an array of strings 
    215         # emit signal 
    216         self.audio_source_changed("FIXME") 
    217211 
    218212    def _on_audio_source_tag_update(self, ctrl, src): 
  • trunk/src/main.py

    r546 r548  
    189189 
    190190    def _remote_control(self, interface, cmd, arg): 
     191        from mesk import MeskException 
    191192        cmd_method = cmd[2:].replace('-', '_') 
    192193        cmd_method = getattr(interface, cmd_method) 
     
    219220                self._output(_('Playlist \'%s\' is now active\n') % arg) 
    220221            else: 
    221                 raise mesk.MeskException('Invalid playlist', 
    222                                          'Playlist %s does not exist.' % arg) 
     222                raise MeskException('Invalid playlist', 
     223                                    'Playlist %s does not exist.' % arg) 
     224        elif cmd == '--enqueue': 
     225            if not interface.enqueue(arg): 
     226                raise MeskException('No playlist found to enqueue URI') 
    223227        else: 
    224             assert(False) # This should not happen 
    225             return -1 
     228            raise mesk.MeskException("Unknown command \'%s\'" % cmd) 
    226229 
    227230        return 0 
     
    322325                           metavar='NAME', type=str, 
    323326                           help=_('Set the active playlist.')) 
     327        rc_opts.add_option('--enqueue', action='callback', 
     328                           callback=self._remote_option_cb, 
     329                           metavar='URI', type=str, 
     330                           help=_('Enqueue URI to the active playlist.')) 
    324331        self.add_option_group(rc_opts) 
    325332 
  • trunk/src/playlist_control.py

    r547 r548  
    977977 
    978978            uris.sort() 
    979             self._add_uris(uris, drop_pos, drop_row) 
     979            self.add_uris(uris, drop_pos, drop_row) 
    980980 
    981981            context.finish(True, False, timestamp) 
     
    992992            mesk.log.debug(msg) 
    993993 
    994     def _add_uris(self, uris, drop_pos, drop_row): 
     994    def add_uris(self, uris, drop_pos=gtk.TREE_VIEW_DROP_AFTER, drop_row=None): 
    995995        orig_size = self._playlist.get_length() 
     996        if drop_row is None: 
     997            drop_row = orig_size 
    996998        count = 0 
    997999 
     
    11331135        uris = self._browse_for_uris() 
    11341136        if uris: 
    1135             self._add_uris(uris, gtk.TREE_VIEW_DROP_AFTER, len(self._playlist)) 
     1137            self.add_uris(uris, gtk.TREE_VIEW_DROP_AFTER, len(self._playlist)) 
    11361138            self._save_playlist() 
    11371139 
     
    13431345 
    13441346        add_row = self._get_last_select_row() 
    1345         self._add_uris(uris, gtk.TREE_VIEW_DROP_AFTER, add_row) 
     1347        self.add_uris(uris, gtk.TREE_VIEW_DROP_AFTER, add_row) 
    13461348        self._save_playlist() 
    13471349 
     
    13911393 
    13921394            paste_row = self._get_last_select_row() 
    1393             self._add_uris(uris, gtk.TREE_VIEW_DROP_AFTER, paste_row) 
     1395            self.add_uris(uris, gtk.TREE_VIEW_DROP_AFTER, paste_row) 
    13941396            self._save_playlist() 
    13951397