]> git.neil.brown.name Git - plato.git/commitdiff
plato: add gsm-mode, offmode, and rotate controls:
authorNeilBrown <neilb@suse.de>
Fri, 13 Dec 2013 08:12:28 +0000 (19:12 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 13 Dec 2013 08:12:28 +0000 (19:12 +1100)
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

index 4a1e819a710a18088596f1e9b7e3f5b53b5c3bd4..8fe7cacc2c1576d79305ba0c84001d54e9598475 100644 (file)
@@ -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()