From 136010e8e55b7147a038fa6bf6c0db075347eb32 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 13 Dec 2013 19:12:28 +1100 Subject: [PATCH] plato: add gsm-mode, offmode, and rotate controls: gsm-mode choose 2G 3G or some combination. offmode enables or disables off-mode, assuming kernel support rotate will xrandr rotate screen, assuming kernel support --- plato/plato_settings.py | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/plato/plato_settings.py b/plato/plato_settings.py index 4a1e819..8fe7cac 100644 --- a/plato/plato_settings.py +++ b/plato/plato_settings.py @@ -1,4 +1,5 @@ import os, stat +from subprocess import Popen class alert: def __init__(self, name, owner): @@ -32,3 +33,94 @@ class alert: def get_name(self): return 'mode: ' + self.mode + +class gsmmode: + def __init__(self, name, owner): + self.embedded = lambda:None + self.format = 'cmd' + self.timeout = None + self.owner = owner + try: + fd = open("/var/lib/misc/gsm/mode") + self.mode = fd.read(1) + fd.close() + except IOError: + self.mode = '3' + + def get_name(self): + if self.mode == '0': + return "GSM: 2G" + if self.mode == '1': + return "GSM: 3G" + if self.mode == '2': + return "GSM: 2/3G" + if self.mode == '3': + return "GSM: 3/2G" + return "GSM: ??" + def buttons(self): + return ['2g','3g','2/3g','3/2g'] + def press(self,ind): + try: + fd = open("/var/lib/misc/gsm/mode.tmp","w") + self.mode = "%d" % ind + fd.write(self.mode) + fd.close() + os.rename("/var/lib/misc/gsm/mode.tmp", + "/var/lib/misc/gsm/mode") + except IOError: + self.mode = "??" + self.owner.queue_draw() + +class rotate: + def __init__(self,name, owner): + self.embedded = lambda:None + self.format = 'cmd' + self.timeout = None + self.owner = owner + self.mode = '??' + self.names = ['Normal','Left','Invert','Right'] + + def get_name(self): + return "Rotate(%s)" % self.mode + def buttons(self): + return self.names + def press(self, ind): + Popen('xrandr -o %d; xset dpms force on' % ind, + shell = True, close_fds = True).wait() + self.mode = self.names[ind] + self.owner.queue_draw() + +class off_mode: + def __init__(self, name, owner): + self.embedded = lambda:None + self.format = 'cmd' + self.timeout = None + self.owner = owner + try: + fd = open("/sys/kernel/debug/pm_debug/enable_off_mode") + self.mode = fd.read(1) + fd.close() + except IOError: + self.mode = '0' + + def get_name(self): + if self.mode == '0': + return 'Off Mode (no)' + return 'Off Mode (Yes)' + + def buttons(self): + return ['Yes','no'] + + def press(self, ind): + try: + fd = open("/sys/kernel/debug/pm_debug/enable_off_mode","w") + if ind: + fd.write("0\n") + self.mode = '0' + else: + fd.write("1\n") + self.mode = '1' + fd.close() + except iOError: + self.mode = '??' + self.owner.queue_draw() -- 2.39.5