diff options
author | Walter Bender <walter@sugarlabs.org> | 2014-04-03 20:12:30 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2014-04-03 20:12:30 (GMT) |
commit | 6dbb00de5d3fb96764a01ffc1f358a007ae9e648 (patch) | |
tree | 355db8460ad6b2128341ac39aeabb09f5112ce4e | |
parent | 0c2bb4763b68ae5aab7e522996e9469259afb950 (diff) |
fix problem with starting plugins from Python export
-rw-r--r-- | plugins/audio_sensors/audio_sensors.py | 21 | ||||
-rw-r--r-- | plugins/camera_sensor/camera_sensor.py | 5 |
2 files changed, 18 insertions, 8 deletions
diff --git a/plugins/audio_sensors/audio_sensors.py b/plugins/audio_sensors/audio_sensors.py index d62ca65..22c8d6d 100644 --- a/plugins/audio_sensors/audio_sensors.py +++ b/plugins/audio_sensors/audio_sensors.py @@ -235,30 +235,39 @@ class Audio_sensors(Plugin): ''' Start grabbing audio if there is an audio block in use ''' if not self._status: return + self._sound = [0, 0] self._volume = [0, 0] self._pitch = [0, 0] self._resistance = [0, 0] self._voltage = [0, 0] + if self.audio_started: self.audiograb.stop_grabbing() - if len(self._parent.block_list.get_similar_blocks( - 'block', ['volume', 'sound', 'pitch'])) > 0: + + volume_blocks = len(self._parent.block_list.get_similar_blocks( + 'block', ['volume', 'sound', 'pitch'])) + resistance_blocks = len(self._parent.block_list.get_similar_blocks( + 'block', ['resistance', 'resistance2'])) + voltage_blocks = len(self._parent.block_list.get_similar_blocks( + 'block', ['voltage', 'voltage2'])) + # FIXME: assume Python code is using a volume block + if not self._parent.running_turtleart or volume_blocks > 0: mode, bias, gain, boost = self.PARAMETERS[SENSOR_AC_BIAS] - elif len(self._parent.block_list.get_similar_blocks( - 'block', ['resistance', 'resistance2'])) > 0: + elif resistance_blocks > 0: mode, bias, gain, boost = self.PARAMETERS[SENSOR_DC_BIAS] - elif len(self._parent.block_list.get_similar_blocks( - 'block', ['voltage', 'voltage2'])) > 0: + elif voltage_blocks > 0: mode, bias, gain, boost = self.PARAMETERS[SENSOR_DC_NO_BIAS] else: return # No audio blocks in use. + self.audiograb = AudioGrab(self.new_buffer, self, mode, bias, gain, boost) self._channels = self.audiograb.channels for i in range(self._channels): self.ringbuffer.append(RingBuffer1d(self.max_samples, dtype='int16')) + self.audiograb.start_grabbing() self.audio_started = True diff --git a/plugins/camera_sensor/camera_sensor.py b/plugins/camera_sensor/camera_sensor.py index 5f79d15..7006ce2 100644 --- a/plugins/camera_sensor/camera_sensor.py +++ b/plugins/camera_sensor/camera_sensor.py @@ -188,8 +188,9 @@ is pushed to the stack'), def start(self): ''' Initialize the camera if there is an camera block in use ''' - if len(self._parent.block_list.get_similar_blocks('block', - ['camera', 'camera1', 'read_camera', 'luminance'])) > 0: + camera_blocks = len(self._parent.block_list.get_similar_blocks( + 'block', ['camera', 'camera1', 'read_camera', 'luminance'])) + if not self._parent.running_turtleart or camera_blocks > 0: if self._status and len(self.cameras) == 0: for device in self.devices: self.cameras.append(Camera(device)) |