コード例 #1
0
ファイル: menu.py プロジェクト: dderichs/piradio
    def __init__(self, title, path):
        MenuItem.__init__(self, title)
        self.path = path

        for root, dirs, files in os.walk(path):
            for dir in dirs:
                self.add_child(DirectoryMenuItem(dir + "...", os.path.join(root, dir)))
            for file in files:
                self.add_child(FileMenuItem(file, file))
コード例 #2
0
ファイル: __init__.py プロジェクト: dderichs/piradio
class SettingsPlugin(Plugin):
    def __init__(self, app, settings):
        Plugin.__init__(self, app, settings)

        self._plugin_raspilcd = None
        self.app.add_listener("load:plcd", self._load_raspilcd)
        self.app.add_listener("unload:plcd", self._unload_raspilcd)

        self.app.console.add_command("set", self._cmd_set)
        self.app.console.add_command("get", self._cmd_get)
        self.app.console.add_command("save", self._cmd_save)

    def shutdown(self):
        if self._plugin_raspilcd is None:
            return
        self._plugin_raspilcd.remove_menu_item(self.menu_root)

    # hooks
    def _load_raspilcd(self, plugin):
        self._plugin_raspilcd = plugin
        from menu import BooleanItem
        from plugins.plcd.lcdapp import MenuItem
        self.menu_root = MenuItem("Einstellungen")
        self.menu_root.add_child(BooleanItem("Beleuchtung", plugin))
        plugin.add_menu_item(self.menu_root)

    def _unload_raspilcd(self, plugin):
        self._plugin_raspilcd = None

    # cmd proxies
    def _cmd_set(self, prm):
        (plugin, key, value) = prm.split(" ")
        self.set(plugin, key, value)

    def _cmd_get(self, prm):
        try:
            (plugin, key) = prm.split(" ")
            print self.get(plugin, key)
        except KeyError:
            self.app.console.echo("key not found")

    def _cmd_save(self, prm):
        self.save()

    # api
    def set(self, plugin, key, value):
        s = self.app.get_plugin_settings(plugin)
        s[key] = value

    def get(self, plugin, key):
        s = self.app.get_plugin_settings(plugin)
        return s[key]

    def save(self):
        with file("settings.yaml", "w") as stream:
            dump(self.app.settings, stream, Dumper=Dumper)
コード例 #3
0
ファイル: __init__.py プロジェクト: dderichs/piradio
 def _load_raspilcd(self, plugin):
     self._plugin_raspilcd = plugin
     from menu import BooleanItem
     from plugins.plcd.lcdapp import MenuItem
     self.menu_root = MenuItem("Einstellungen")
     self.menu_root.add_child(BooleanItem("Beleuchtung", plugin))
     plugin.add_menu_item(self.menu_root)
コード例 #4
0
ファイル: __init__.py プロジェクト: dderichs/piradio
    def _add_menu(self):
        self.plugin_pmpd = self.app.get_plugin("pmpd")
        self.plugin_plcd = self.app.get_plugin("plcd")
        if self.plugin_plcd is None:
            return
        from plugins.plcd.lcdapp import MenuItem
        root = MenuItem("SHOUTcast")

        for genre in self._sc.genres():
            if not genre in self.settings["whitelist"]:
                continue
            mi_genre = MenuItem(genre)
            for (name, identifier, br, ct, lc) in self._sc.stations(genre):
                mi_station = MenuItem(name, self._select_station)
                mi_station.identifier = identifier
                mi_genre.add_child(mi_station)
            root.add_child(mi_genre)
        self.plugin_plcd.add_menu_item(root)
コード例 #5
0
ファイル: menu.py プロジェクト: dderichs/piradio
 def __init__(self, title, filename):
     MenuItem.__init__(self, title)
     self.filename = filename
コード例 #6
0
ファイル: menu.py プロジェクト: dderichs/piradio
 def __init__(self, title, plugin):
     MenuItem.__init__(self, title)
     self.plugin = plugin