Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Diff

Differences From Artifact [8c09094d97]:

To Artifact [9776e658be]:


232
233
234
235
236
237
238

239


240
241
242
243
244
245
246
232
233
234
235
236
237
238
239

240
241
242
243
244
245
246
247
248







+
-
+
+







    # Notebook tab has been clicked (receives numeric page_num), but *NOT* yet changed (visually).
    def channel_switch(self, notebook, page, page_num=0, *args):
        self.current_channel = notebook.get_menu_label_text(notebook.get_nth_page(page_num))
        log.UI("main.channel_switch() :=", self.current_channel)
        self.update_title()
        # if first selected, load current category
        # (run in thread, to make it look speedy on first startup)
        self.thread( 
        self.thread( self.channel().first_show )
        self.channel().first_show
        )

    # Invoked from the menu instead, uses module name instead of numeric tab id
    def channel_switch_by_name(self, name):
        self.notebook_channels.set_current_page(self.channel_names.index(name))

    # Mirror selected channel tab into main window title
    def update_title(self):
357
358
359
360
361
362
363
364

365
366
367
368

369

370

371
372

373
374
375
376

377
378
379
380
381
382
383
359
360
361
362
363
364
365

366
367
368
369

370
371
372

373
374

375
376
377
378

379
380
381
382
383
384
385
386







-
+



-
+

+
-
+

-
+



-
+







    # (hacked to work from within threads, circumvents the statusbar msg pool actually)
    def status(self, text="", sbar_msg=[]):
        # init
        sbar_cid = self.get_widget("statusbar").get_context_id("messages")
        # remove text
        while ((not text) and (type(text)==str) and len(sbar_msg)):
            sbar_msg.pop()
            uikit.do(lambda:self.statusbar.pop(sbar_cid))
            uikit.do(self.statusbar.pop, sbar_cid, immediate=1)
        # progressbar
        if (type(text)==float):
            if text >= 0.999 or text < 0.0:  # completed
                uikit.do(lambda:self.progress.hide())
                uikit.do(self.progress.hide)
            else:  # show percentage
                uikit.do(self.progress.show, immediate=1)
                uikit.do(lambda:self.progress.show() or self.progress.set_fraction(text))
                uikit.do(self.progress.set_fraction, text, immediate=1)
                if (text <= 0):  # unknown state
                    uikit.do(lambda:self.progress.pulse())
                    uikit.do(self.progress.pulse, immediate=1)
        # add text
        elif (type(text)==str):
            sbar_msg.append(1)
            uikit.do(lambda:self.statusbar.push(sbar_cid, text))
            uikit.do(self.statusbar.push, sbar_cid, text, immediate=1)
        pass


    # load plugins from /usr/share/streamtuner2/channels/
    def load_plugin_channels(self):

        # initialize plugin modules (pre-ordered)