diff options
author | Walter Bender <walter.bender@gmail.com> | 2013-02-27 17:37:28 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2013-02-27 17:37:28 (GMT) |
commit | ef4ba245d877c7a319d0d11ad94e2ff362ab0953 (patch) | |
tree | 34714e1e898959f355b0e2bb16dcad35b3e52578 | |
parent | 84072542a3d2dd6c2b2acb49bff2bbcbc5ee01ea (diff) |
check validity of slide index before recording/playing back audio
-rw-r--r-- | PortfolioActivity.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/PortfolioActivity.py b/PortfolioActivity.py index 219ab18..60f9d9b 100644 --- a/PortfolioActivity.py +++ b/PortfolioActivity.py @@ -1205,6 +1205,11 @@ class PortfolioActivity(activity.Activity): if self._grecord is None: _logger.debug('setting up grecord') self._grecord = Grecord(self) + if self.i < 0 or self.i > len(self._slides) - 1: + _logger.debug('bad slide index %d' % (self.i)) + return + else: + _logger.debug('slide #%d' % (self.i)) if self._recording: # Was recording, so stop (and save?) _logger.debug('recording...True. Preparing to save.') self._grecord.stop_recording_audio() @@ -1216,7 +1221,6 @@ class PortfolioActivity(activity.Activity): self._playback_button.type = 'play' self._playback_button.set_layer(DRAG) # Autosave if there was not already a recording - slide = self._slides[self.i] _logger.debug('Autosaving recording') self._notify_successful_save(title=_('Save recording')) GObject.timeout_add(100, self._wait_for_transcoding_to_finish) @@ -1239,6 +1243,12 @@ class PortfolioActivity(activity.Activity): def _playback_recording_cb(self, button=None): ''' Play back current recording ''' _logger.debug('Playback current recording from output.ogg...') + if self.i < 0 or self.i > len(self._slides) - 1: + _logger.debug('bad slide index %d' % (self.i)) + return + if self._slides[self.i].sound is None: + _logger.debug('slide %d has no sound' % (self.i)) + return self._playback_button.set_image(self.playing_pixbuf) self._playback_button.set_layer(DRAG) self._playback_button.type = 'playing' |