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

⌈⌋ ⎇ branch:  streamtuner2


Check-in [199ac60b55]

Overview
Comment:Implement a status message for URN: resolving, shorten code back (- row[] object gets implicitly updated.)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 199ac60b559dfe713359c3f5933297ef7a0fbcc4
User & Date: mario on 2016-11-06 12:13:37
Other Links: manifest | tags
Context
2016-11-06
12:42
Document row placeholders, such as %title or $playing check-in: 0fb24c100c user: mario tags: trunk
12:13
Implement a status message for URN: resolving, shorten code back (- row[] object gets implicitly updated.) check-in: 199ac60b55 user: mario tags: trunk
12:12
Less debug messages for reciva.resolve_urn check-in: f249524147 user: mario tags: trunk
Changes

Modified channels/__init__.py from [0838ff195b] to [b27eefc5db].

73
74
75
76
77
78
79

80
81
82
83
84
85
86
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87







+







    gtk_list = None   # Gtk widget for station treeview
    gtk_cat = None    # Gtk widget for category columns
    ls = None         # ListStore for station treeview
    rowmap = None     # Preserve streams-datamap
    pix_entry = None  # ListStore entry that contains favicon
    img_resize = None  # Rescale `img` references to icon size
    fixed_size = [24,24]  # Default height+width for favicons
    parent = None     # reference to main window

    # mapping of stream{} data into gtk treeview/treestore representation
    datamap = [
       # coltitle   width	[ datasrc key, type, renderer, attrs ]	[cellrenderer2], ...
       ["",		20,	["state",	str,  "pixbuf",	{}],	],
       ["Genre",	65,	['genre',	str,	"t",	{}],	],
       ["Station Title",275,	["title",	str,    "text",	{"strikethrough":11, "cell-background":12, "cell-background-set":13}],  ["favicon", gtk.gdk.Pixbuf, "pixbuf", {}], ],
254
255
256
257
258
259
260
261
262

263
264
265
266



267
268
269
270
271
272
273
274
255
256
257
258
259
260
261


262

263


264
265
266

267
268
269
270
271
272
273







-
-
+
-

-
-
+
+
+
-








    # Return ListStore object and Iterator for currently selected row in gtk.TreeView station list
    def model_iter(self):
        return self.gtk_list.get_selection().get_selected()

    # Currently selected entry in stations list, return complete data dict
    def row(self):
        no = self.rowno()
        ls = self.stations()
        row = self.stations() [ self.rowno() ]
        row = ls[no]
        # resolve stream url for some plugins
        if row["url"].startswith("urn:"):
            row = action.resolve_urn(row)
        if row.get("url", "urn:x-streamtuner2:no").startswith("urn:"):
            self.status("Resolving actual stream URL for `%s`" % row["url"], timeout=2)
            action.resolve_urn(row)
            ls[no] = row
        return row
        
    # Fetches a single varname from currently selected station entry
    def selected(self, name="url"):
        return self.row().get(name)
    
    # Inject status icon into currently selected row (used by main.bookmark() call)