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

⌈⌋ ⎇ branch:  streamtuner2


Tech-note 7db4235fc6

Tech-note [c520d9b307] at [2015-03-30 21:11:14] entered by user mario on [2015-04-05 16:57:32]:

Restructuring (plugin scheme, pyz package, gtk state properties)

The upcoming release 2.1.5 will be slightly restructured.

  • Plugin meta data is now utilized fully.

    • Configuration data and built-in .title attributes will no longer reside in plugins as code.
    • Plugin priority: fields are used for defaults on first startup.
  • Channel/plugin lookup code will use introspect/pkgutil.

    • ST2 no longer depends on a fixed global path. The /usr/bin loader is now just a slim wrapper.
    • Long term ST2 may become a proper Python package in itself even.
    • And this opens up the possibility to use local plugins in ~/.config/streamtuner2/plugins/ later.
  • It's planned to package it up as standalone PYZ (Python ZIP) application. (As alternative to DEB/RPM builds).

    • Works pretty well already.
    • Also the GtkBuilder UI file is now compressed.
    • The logo/banner is now builtin. Channel icons are embedded in meta comment blocks (albeit that wasn't necessary, just looks tidier.)
  • State variables (.current_channel, .channel_names, .channel().current, .default, .row()) will partly be replaced by direct Gtk properties or lookups. In particular after initialization the mapping hasn't always be reliable.

    • For now only the channel enumeration is dynamic. (Allowed the reordering per GUI already).
    • The initialization woes, namely .first_show(), still need some rework. (State variables are not completely avoidable, as Gtk events usually fire before the widget state properties become usable.)