Check-in [71b6a7785e]
Overview
| Comment: | New plugin: Vorbis and Opus icons for OGG streams |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
71b6a7785ea8d05825b9acdd5bacb1e0 |
| User & Date: | mario on 2017-02-13 21:55:08 |
| Other Links: | manifest | tags |
Context
|
2017-02-14
| ||
| 16:33 | Shorten format comparison in postprocess_filter, remove original *gtkrc* stock item binding. check-in: 9933677f41 user: mario tags: trunk | |
|
2017-02-13
| ||
| 21:55 | New plugin: Vorbis and Opus icons for OGG streams check-in: 71b6a7785e user: mario tags: trunk | |
| 16:51 | Move -verbose flag into category:verbose. check-in: bdae219b88 user: mario tags: trunk | |
Changes
Added c/plugins/oggicon.py version [7236873b7f].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# encoding: UTF-8
# api: streamtuner2
# title: OGG icon
# description: highlights OGG Vorbis and Opus stations with icons
# version: 0.1
# depends: uikit
# type: feature
# category: ui
# priority: extra
#
# Adds a Gtk icon for OGG Vorbis and Opus streams, which get displayed
# leftmost (to the genre) as state icon.
#
# Instantiates the icons right away as pixbufs in an IconFactory, assigns
# each to a short stock_id: `ogg` and `opus`.
import uikit
from config import *
from channels import *
# oggicon
class oggicon (FeaturePlugin):
# icons
png = {
"ogg": """
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAJFBMVEUAAAAVJCtCRRsdUnc5Vls2
b5qLhjZTjrBqkpOqmhmWz9fu1CObwCzQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ
cwAACxMAAAsTAQCanBgAAAAHdElNRQfhAg0VAAsUWVEpAAAA10lEQVQY02NgAAGuAgYEWB6OYHNV
hSKklleFwqW4yqtC4VLLy11cnM0hbHaXwq5Vq4QhUktWCal0rVoCluKqaOnenbJqlaMISIfGKu+d
27yWSHQ4MDA67WyavXPmRI9VqxwYOpbM3g0E2VmrVpgzFHp57k7SnLZt1xJHUwb2wGW7V2jvzpy1
aoUDA4NI57YmoLpVq1YATRMR2r17m5Kix6olIItKBQVFVgkbCgqCnRMaGixobBwAcVxpaKixsSnU
1ewgTgDMQ6WhcAmQFEICKGWKFDrsEAkAzOpE42DS7YsAAAAASUVORK5CYII=""",
"opus": """
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAGFBMVEVhcACTlZKYmpeeoJ2ipKGp
q6isrquytLF6/PABAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCa
nBgAAAAHdElNRQfhAg0UOTZDd/q1AAAAYUlEQVQY02NgoAYoBwJ2CJMdxC4AIiCbLQ0EEkCYgSEN
DhIYWENBgBVMQTgMUMoFCBwYGFhANIwDoYyBwICBGUIZIwADgxICMDAwIbEZGAWhAOw0ICUAdzKj
ILIHBEn1MQBjViBd1YYkTgAAAABJRU5ErkJggg=="""
}
# hook filter, set gtk icons
def init2(self, parent):
GenericChannel.postprocess_filters.append(self.row_icon)
#uikit.gtk.rc_parse_string(gtkrc)
#uikit.gtk.rc_reset_styles(uikit.gtk.settings_get_for_screen(uikit.gtk.gdk.screen_get_default()))
self.add_icons()
# adds gtk.IconFactory and one IconSet/Pixbuf each
def add_icons(self):
fact = uikit.gtk.IconFactory()
for stock_id, b64_png in self.png.items():
img = uikit.gtk.IconSet(uikit.uikit.pixbuf(b64_png))
fact.add(stock_id, img)
fact.add_default()
# filter: add `state` icon name depending on audio format
def row_icon(self, row, channel):
if row.get("format") == "audio/ogg":
row["state"] = "ogg"
if row.get("format") == "audio/opus":
row["state"] = "opus"
return True
|