diff options
author | Walter Bender <walter@walter-laptop.(none)> | 2009-11-20 18:09:38 (GMT) |
---|---|---|
committer | Walter Bender <walter@walter-laptop.(none)> | 2009-11-20 18:09:38 (GMT) |
commit | 5ceb1e9a6271e02e0bcb277eeaf2da5f8f071dfb (patch) | |
tree | dcd12069af563ee4e542a48869d873e07718d29b /measure.py | |
parent | bade750a91fb15b316817d34ef405171d6e864c8 (diff) | |
parent | 4b66632eabd7e341fd83c253dd850455158b61cc (diff) |
Merge branch 'master' of git://git.sugarlabs.org/measure/XO_1_5_support
Diffstat (limited to 'measure.py')
-rw-r--r-- | measure.py | 41 |
1 files changed, 38 insertions, 3 deletions
@@ -26,6 +26,7 @@ import pygtk import gtk import gobject import time +import dbus import config #This has all the globals import os, sys import tempfile @@ -33,16 +34,40 @@ from os import environ from os.path import join from journal import JournalInteraction -from audiograb import AudioGrab +import audiograb from drawwaveform import DrawWaveform from toolbar_side import SideToolbar from toolbar_top import Toolbar from textbox import TextBox -import logging from sugar.activity import activity from sugar.datastore import datastore +# Initialize logging. +import logging +log = logging.getLogger('Measure') +log.setLevel(logging.DEBUG) +logging.basicConfig() + +def _get_hardware(): + # This is so horribly convoluted :-( + 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 'xo1.5' + elif dev.GetProperty('system.hardware.version') == '1.0': + return 'xo1' + elif 'olpc' in dev.GetProperty('system.kernel.version'): # this is not good + return 'xo1' + else: + return 'unknown' + class MeasureActivity(activity.Activity): def __init__(self, handle): @@ -74,7 +99,17 @@ class MeasureActivity(activity.Activity): self.ji = JournalInteraction(self._jobject.file_path, self.existing) self.wave = DrawWaveform() - self.audiograb = AudioGrab(self.wave.new_buffer, self.ji) + + hw = _get_hardware() + if hw == 'xo1.5': + self.audiograb = \ + audiograb.AudioGrab_XO_1_5(self.wave.new_buffer, self.ji) + elif hw == 'xo1': + self.audiograb = \ + audiograb.AudioGrab_XO_1(self.wave.new_buffer, self.ji) + else: + log.error('Sorry, we do not support your hardware yet.') + self.side_toolbar = SideToolbar(self.wave) self.text_box = TextBox() |