Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/plugins/audio_sensors/audio_sensors.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-11-04 12:54:41 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-11-04 12:54:41 (GMT)
commit18982e892f67b2ddae0b8420ff93969a14e9e223 (patch)
treeea0e1f400c9da8938b7217b34730152bddc62518 /plugins/audio_sensors/audio_sensors.py
parentfefbdbc1aee9878b1f8f2a518b9bb335fe47662c (diff)
workaround for #3675: sum both channels when measuring resistance or voltage on XO175
Diffstat (limited to 'plugins/audio_sensors/audio_sensors.py')
-rw-r--r--plugins/audio_sensors/audio_sensors.py35
1 files changed, 28 insertions, 7 deletions
diff --git a/plugins/audio_sensors/audio_sensors.py b/plugins/audio_sensors/audio_sensors.py
index 7cc42ba..5a2a001 100644
--- a/plugins/audio_sensors/audio_sensors.py
+++ b/plugins/audio_sensors/audio_sensors.py
@@ -172,7 +172,8 @@ class Audio_sensors(Plugin):
help_string=_('microphone input voltage'),
prim_name='voltage')
- if self.hw in [XO15, XO175, XO30] and self._status:
+ # FIXME: Only add stereo capture for XO15 (broken on ARM #3675)
+ if self.hw in [XO15] and self._status:
palette.add_block('resistance2',
style='box-style',
label=_('resistance') + '2',
@@ -340,11 +341,21 @@ class Audio_sensors(Plugin):
return 0
def prim_resistance(self, channel):
- ''' return resistance sensor value '''
if not self.hw in [XO1, XO15, XO175, XO30] or not self._status:
return 0
- if self.hw == XO1 and channel != 0:
- return 0
+ if self.hw == XO1:
+ return self._prim_resistance(0)
+ elif self.hw == XO15:
+ return self._prim_resistance(channel)
+ # FIXME: For ARM (XO175, XO4) channel assignment is seemingly
+ # random (#3675), so sum both channels
+ else:
+ chan0 = self._prim_resistance(0)
+ chan1 = self._prim_resistance(1)
+ return chan0 + chan1
+
+ def _prim_resistance(self, channel):
+ ''' return resistance sensor value '''
buf = self.ringbuffer[channel].read(None, self.input_step)
if len(buf) > 0:
# See <http://bugs.sugarlabs.org/ticket/552#comment:7>
@@ -378,11 +389,21 @@ class Audio_sensors(Plugin):
return 0
def prim_voltage(self, channel):
- ''' return voltage sensor value '''
if not self.hw in [XO1, XO15, XO175, XO30] or not self._status:
return 0
- if self.hw == XO1 and channel != 0:
- return 0
+ if self.hw == XO1:
+ return self._prim_voltage(0)
+ elif self.hw == XO15:
+ return self._prim_voltage(channel)
+ # FIXME: For ARM (XO175, XO4) channel assignment is seemingly
+ # random (#3675), so sum both channels
+ else:
+ chan0 = self._prim_voltage(0)
+ chan1 = self._prim_voltage(1)
+ return chan0 + chan1
+
+ def _prim_voltage(self, channel):
+ ''' return voltage sensor value '''
buf = self.ringbuffer[channel].read(None, self.input_step)
if len(buf) > 0:
# See <http://bugs.sugarlabs.org/ticket/552#comment:7>