From d9abbb87c9d5431a7ab8e49c1ba4e01bcc1ce01e Mon Sep 17 00:00:00 2001 From: Kushal Das Date: Tue, 17 Mar 2009 04:23:25 +0000 Subject: Open object/file button added, now one can add more songs to listen any time --- diff --git a/ControlToolbar.py b/ControlToolbar.py index 12edc51..b9b80e1 100644 --- a/ControlToolbar.py +++ b/ControlToolbar.py @@ -43,6 +43,11 @@ class ControlToolbar(gtk.Toolbar): self.toolbox = toolbox self.jukebox = jukebox + self.open_button = gtk.ToolButton(gtk.STOCK_FILE) + self.open_button.show() + self.open_button.connect('clicked', jukebox.open_button_clicked_cb) + self.insert(self.open_button, -1) + self.prev_button = gtk.ToolButton(gtk.STOCK_MEDIA_PREVIOUS) self.prev_button.show() self.prev_button.connect('clicked', self.prev_button_clicked_cb) diff --git a/jukeboxactivity.py b/jukeboxactivity.py index 202275b..23773c6 100644 --- a/jukeboxactivity.py +++ b/jukeboxactivity.py @@ -90,6 +90,7 @@ class JukeboxActivity(activity.Activity): self.player = None self.uri = None self.playlist = [] + self.jobjectlist = [] self.playpath = None self.currentplaying = None self.playflag = False @@ -116,7 +117,18 @@ class JukeboxActivity(activity.Activity): self.toolbox.connect("key_press_event", self._key_press_event_cb) - + def open_button_clicked_cb(self, widget): + """ To open the dialog to select a new file""" + #self.player.seek(0L) + #self.player.stop() + #self.playlist = [] + #self.playpath = None + #self.currentplaying = None + #self.playflag = False + self._want_document = True + self._show_object_picker = gobject.timeout_add(1, self._show_picker_cb) + + def _key_press_event_cb(self, widget, event): keyname = gtk.gdk.keyval_name(event.keyval) logging.info ("Keyname Press: %s, time: %s", keyname, event.time) @@ -240,16 +252,18 @@ class JukeboxActivity(activity.Activity): if result == gtk.RESPONSE_ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: + self.jobjectlist.append(jobject) self._start(jobject.file_path) finally: - chooser.destroy() - del chooser + #chooser.destroy() + #del chooser + pass def read_file(self, file_path): self.uri = os.path.abspath(file_path) if os.path.islink(self.uri): self.uri = os.path.realpath(self.uri) - gobject.idle_add(self._start, self.uri) + #gobject.idle_add(self._start, self.uri) def getplaylist(self, links): result = [] @@ -269,8 +283,8 @@ class JukeboxActivity(activity.Activity): if not uri: return False # FIXME: parse m3u files and extract actual URL - if uri.endswith(".m3u"): - self.playlist = self.getplaylist([line.strip() for line in open(uri).readlines()]) + if uri.endswith(".m3u") or uri.endswith(".m3u8"): + self.playlist.extend(self.getplaylist([line.strip() for line in open(uri).readlines()])) elif uri.endswith('.pls'): try: cf.readfp(open(uri)) @@ -293,13 +307,20 @@ class JukeboxActivity(activity.Activity): self.player.connect("stream-info", self._player_stream_info_cb) try: - logging.info("Playing: " + self.playlist[0]) - self.player.set_uri(self.playlist[0]) - self.currentplaying = 0 + if not self.currentplaying: + logging.info("Playing: " + self.playlist[0]) + self.player.set_uri(self.playlist[0]) + self.currentplaying = 0 + self.play_toggled() + self.show_all() + else: + self.player.seek(0L) + self.player.stop() + self.currentplaying += 1 + self.player.set_uri(self.playlist[self.currentplaying]) + self.play_toggled() except: pass - self.play_toggled() - self.show_all() self.check_if_next_prev() return False -- cgit v0.9.1