Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-08-13 20:35:27 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-08-13 20:35:27 (GMT)
commit18a7e870d44a212135dba53efc6ac53041e94707 (patch)
tree5fe2f1ffd3724d691122d429029973ae480ee967
parentc997728796565c70117f5d616db69f19f0712838 (diff)
move record buttons to slides
-rw-r--r--PortfolioActivity.py96
1 files changed, 91 insertions, 5 deletions
diff --git a/PortfolioActivity.py b/PortfolioActivity.py
index a076feb..b57bd9d 100644
--- a/PortfolioActivity.py
+++ b/PortfolioActivity.py
@@ -261,6 +261,33 @@ class PortfolioActivity(activity.Activity):
os.path.join(activity.get_bundle_path(), 'icons',
'favorite-off.svg'), star_size, star_size)
+ self.record_pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
+ os.path.join(activity.get_bundle_path(), 'icons',
+ 'media-audio.svg'), 55, 55)
+ self.recording_pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
+ os.path.join(activity.get_bundle_path(), 'icons',
+ 'media-audio-recording.svg'), 55, 55)
+ self.playback_pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
+ os.path.join(activity.get_bundle_path(), 'icons',
+ 'speaker-100.svg'), 55, 55)
+ self.playing_pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
+ os.path.join(activity.get_bundle_path(), 'icons',
+ 'speaker-0.svg'), 55, 55)
+
+ self._record_button = Sprite(self._sprites,
+ self._width - 55,
+ int(TITLEH * self._scale),
+ self.record_pixbuf)
+ self._record_button.set_layer(DRAG)
+ self._record_button.type = 'record'
+
+ self._playback_button = Sprite(self._sprites,
+ self._width - 55,
+ int(TITLEH * self._scale) + 55,
+ self.playback_pixbuf)
+ self._playback_button.type = 'noplay'
+ self._playback_button.hide()
+
self.prev_pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
os.path.join(activity.get_bundle_path(), 'icons',
'go-previous.svg'), 55, 55)
@@ -278,6 +305,7 @@ class PortfolioActivity(activity.Activity):
self.prev_off_pixbuf)
self._prev.set_layer(DRAG)
self._prev.type = 'prev'
+
self._next = Sprite(self._sprites, self._width - 55,
int((self._height - 55)/ 2), self.next_pixbuf)
self._next.set_layer(DRAG)
@@ -331,7 +359,7 @@ class PortfolioActivity(activity.Activity):
def _setup_toolbars(self):
''' Setup the toolbars. '''
- self.max_participants = 2 # sharing
+ self.max_participants = 5 # sharing
if HAVE_TOOLBOX:
toolbox = ToolbarBox()
@@ -354,6 +382,7 @@ class PortfolioActivity(activity.Activity):
adjust_toolbar.show_all()
adjust_toolbar_button.show()
+ '''
record_toolbar = gtk.Toolbar()
record_toolbar_button = ToolbarButton(
label=_('Record a sound'),
@@ -361,6 +390,7 @@ class PortfolioActivity(activity.Activity):
icon_name='media-audio')
record_toolbar.show_all()
record_toolbar_button.show()
+ '''
else:
# Use pre-0.86 toolbar design
primary_toolbar = gtk.Toolbar()
@@ -369,14 +399,16 @@ class PortfolioActivity(activity.Activity):
toolbox.add_toolbar(_('Page'), primary_toolbar)
adjust_toolbar = gtk.Toolbar()
toolbox.add_toolbar(_('Adjust'), adjust_toolbar)
+ '''
record_toolbar = gtk.Toolbar()
toolbox.add_toolbar(_('Record'), record_toolbar)
+ '''
toolbox.show()
toolbox.set_current_toolbar(1)
self.toolbar = primary_toolbar
if HAVE_TOOLBOX:
- toolbox.toolbar.insert(record_toolbar_button, -1)
+ # toolbox.toolbar.insert(record_toolbar_button, -1)
toolbox.toolbar.insert(adjust_toolbar_button, -1)
button_factory('view-fullscreen', self.toolbar,
@@ -415,6 +447,7 @@ class PortfolioActivity(activity.Activity):
tooltip=_('Thumbnail view'),
group=self._slide_button)
+ '''
label_factory(record_toolbar, _('Record a sound') + ':')
self._record_button = button_factory(
'media-record', record_toolbar,
@@ -429,6 +462,7 @@ class PortfolioActivity(activity.Activity):
self._save_recording_button = button_factory(
'sound-save-insensitive', record_toolbar,
self._wait_for_transcoding_to_finish, tooltip=_('Nothing to save'))
+ '''
if HAVE_TOOLBOX:
separator_factory(activity_button_toolbar)
@@ -687,14 +721,26 @@ class PortfolioActivity(activity.Activity):
if slide.sound is None:
slide.sound = self._search_for_audio_note(slide.uid)
if slide.sound is not None:
- _logger.debug('Playing audio note')
- gobject.idle_add(play_audio_from_file, slide.sound.file_path)
+ if self._playing:
+ _logger.debug('Playing audio note')
+ gobject.idle_add(play_audio_from_file,
+ slide.sound.file_path)
+ '''
self._playback_button.set_icon('media-playback-start')
self._playback_button.set_tooltip(_('Play recording'))
+ '''
+ self._playback_button.set_image(self.playback_pixbuf)
+ self._playback_button.type = 'play'
+ self._playback_button.set_layer(DRAG)
else:
+ '''
self._playback_button.set_icon(
'media-playback-start-insensitive')
self._playback_button.set_tooltip(_('Nothing to play'))
+ '''
+ self._playback_button.hide()
+ self._playback_button.type = 'noplay'
+ self._record_button.set_image(self.record_pixbuf)
def _slides_cb(self, button=None):
if self._thumbnail_mode:
@@ -709,6 +755,8 @@ class PortfolioActivity(activity.Activity):
else:
self._prev.set_layer(DRAG)
self._next.set_layer(DRAG)
+ self._record_button.set_layer(DRAG)
+ self._playback_button.set_layer(DRAG)
return False
def _count_active(self):
@@ -724,6 +772,8 @@ class PortfolioActivity(activity.Activity):
self._thumbnail_mode = True
self._clear_screen()
+ self._record_button.hide()
+ self._playback_button.hide()
self._prev.hide()
self._next.hide()
@@ -850,12 +900,22 @@ class PortfolioActivity(activity.Activity):
self._unselect()
# Are we clicking on a button?
+ _logger.debug(spr.type)
if spr.type == 'next':
self._next_cb()
return True
elif spr.type == 'prev':
self._prev_cb()
return True
+ elif spr.type == 'record':
+ self._record_cb()
+ return True
+ elif spr.type == 'recording':
+ self._record_cb()
+ return True
+ elif spr.type == 'play':
+ self._playback_recording_cb()
+ return True
# Are we clicking on a star?
if spr.type == 'star':
@@ -973,26 +1033,44 @@ class PortfolioActivity(activity.Activity):
_logger.debug('recording...True. Preparing to save.')
self._grecord.stop_recording_audio()
self._recording = False
+ self._record_button.set_image(self.record_pixbuf)
+ self._record_button.type = 'record'
+ self._record_button.set_layer(DRAG)
+ self._playback_button.set_image(self.playback_pixbuf)
+ self._playback_button.type = 'play'
+ self._playback_button.set_layer(DRAG)
+ '''
self._record_button.set_icon('media-record')
self._record_button.set_tooltip(_('Start recording'))
self._playback_button.set_icon('media-playback-start')
self._playback_button.set_tooltip(_('Play recording'))
self._save_recording_button.set_icon('sound-save')
self._save_recording_button.set_tooltip(_('Save recording'))
+ '''
# 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)
+ '''
if self._search_for_audio_note(slide.uid) is None:
_logger.debug('Autosaving recording')
self._notify_successful_save(title=_('Save recording'))
gobject.timeout_add(100, self._wait_for_transcoding_to_finish)
else:
_logger.debug('Waiting for manual save.')
+ '''
else: # Wasn't recording, so start
_logger.debug('recording...False. Start recording.')
+ self._record_button.set_image(self.recording_pixbuf)
+ self._record_button.type = 'recording'
+ self._record_button.set_layer(DRAG)
self._grecord.record_audio()
self._recording = True
+ '''
self._record_button.set_icon('media-recording')
self._record_button.set_tooltip(_('Stop recording'))
+ '''
def _wait_for_transcoding_to_finish(self, button=None):
while not self._grecord.transcoding_complete():
@@ -1005,8 +1083,16 @@ class PortfolioActivity(activity.Activity):
def _playback_recording_cb(self, button=None):
''' Play back current recording '''
_logger.debug('Playback current recording from output.ogg...')
+ self._playback_button.set_image(self.playing_pixbuf)
+ self._playback_button.set_layer(DRAG)
+ self._playback_button.type = 'playing'
+ gobject.timeout_add(1000, self._playback_button_reset)
play_audio_from_file(os.path.join(self.datapath, 'output.ogg'))
- return
+
+ def _playback_button_reset(self):
+ self._playback_button.set_image(self.playback_pixbuf)
+ self._playback_button.set_layer(DRAG)
+ self._playback_button.type = 'play'
def _save_recording(self):
if os.path.exists(os.path.join(self.datapath, 'output.ogg')):