Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/tautils.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-10-29 00:52:50 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-10-29 00:52:50 (GMT)
commit554d6fd62c516ba5131e6d5da5c46e5472a15c94 (patch)
tree24bd311081adafea7bab718c7eb13de154aa1698 /TurtleArt/tautils.py
parent557ac7b9e4a3973dc744b334e41d14b4071ab6b5 (diff)
adding sensor blocks
Diffstat (limited to 'TurtleArt/tautils.py')
-rw-r--r--TurtleArt/tautils.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py
index 025c4f4..6d530af 100644
--- a/TurtleArt/tautils.py
+++ b/TurtleArt/tautils.py
@@ -22,6 +22,8 @@
import gtk
import pickle
import subprocess
+import dbus
+
try:
OLD_SUGAR_SYSTEM = False
import json
@@ -35,9 +37,10 @@ except (ImportError, AttributeError):
from simplejson import dump as jdump
except:
OLD_SUGAR_SYSTEM = True
+
from taconstants import STRING_OR_NUMBER_ARGS, HIDE_LAYER, CONTENT_ARGS, \
COLLAPSIBLE, BLOCK_LAYER, CONTENT_BLOCKS, HIT_HIDE, \
- HIT_SHOW
+ HIT_SHOW, XO1, XO15, UNKNOWN
from StringIO import StringIO
import os.path
from gettext import gettext as _
@@ -785,10 +788,27 @@ def find_blk_below(blk, name):
return None
-def olpc_xo_1():
- """ Is the an OLPC XO-1 or XO-1.5? """
- return os.path.exists('/etc/olpc-release') or \
- os.path.exists('/sys/power/olpc-pm')
+def get_hardware():
+ """ Determine whether we are using XO 1.0, 1.5, or "unknown" hardware """
+ bus = dbus.SystemBus()
+
+ comp_obj = bus.get_object('org.freedesktop.Hal',
+ '/org/freedesktop/Hal/devices/computer')
+ dev = dbus.Interface(comp_obj, 'org.freedesktop.Hal.Device')
+ if dev.PropertyExists('system.hardware.vendor') and \
+ dev.PropertyExists('system.hardware.version'):
+ if dev.GetProperty('system.hardware.vendor') == 'OLPC':
+ if dev.GetProperty('system.hardware.version') == '1.5':
+ return XO15
+ else:
+ return XO1
+ else:
+ return UNKNOWN
+ elif path.exists('/etc/olpc-release') or \
+ path.exists('/sys/power/olpc-pm'):
+ return XO1
+ else:
+ return UNKNOWN
def walk_stack(tw, blk):