diff options
Diffstat (limited to 'TamTamJam.activity/Jam/Toolbars.py')
-rw-r--r-- | TamTamJam.activity/Jam/Toolbars.py | 242 |
1 files changed, 156 insertions, 86 deletions
diff --git a/TamTamJam.activity/Jam/Toolbars.py b/TamTamJam.activity/Jam/Toolbars.py index a60d2b5..b1db5e2 100644 --- a/TamTamJam.activity/Jam/Toolbars.py +++ b/TamTamJam.activity/Jam/Toolbars.py @@ -31,17 +31,7 @@ class JamToolbar( gtk.Toolbar ): self.volumeImg = gtk.Image() - self.stopButton = ToolButton('media-playback-stop') - self.stopButton.connect('clicked',self.handleStopButton) - self.insert(self.stopButton, -1) - self.stopButton.show() - self.stopButton.set_tooltip(_('Stop')) - - self.pauseButton = ToggleToolButton('media-playback-pause') - self.pauseButton.connect('clicked',self.handlePauseButton) - self.insert(self.pauseButton, -1) - self.pauseButton.show() - self.pauseButton.set_tooltip(_('pause')) + self._insert_separator( True ) self.volumeAdjustment = gtk.Adjustment( 0.0, 0, 1.0, 0.1, 0.1, 0 ) self.volumeAdjustment.connect( 'value-changed', self.handleVolume ) @@ -72,29 +62,6 @@ class JamToolbar( gtk.Toolbar ): self._insert_separator( True ) - label = gtk.Label( _("Sync to:") ) - self.syncLabel = gtk.ToolItem() - self.syncLabel.add( label ) - self.insert( self.syncLabel, -1 ) - - self.comboBox = ComboBox() - self.comboBox.append_item( 1, _("1 Beat") ) - self.comboBox.append_item( 2, _("2 Beats") ) - self.comboBox.append_item( 3, _("3 Beats") ) - self.comboBox.append_item( 4, _("4 Beats") ) - self.comboBox.append_item( 5, _("5 Beats") ) - self.comboBox.append_item( 6, _("6 Beats") ) - self.comboBox.append_item( 7, _("7 Beats") ) - self.comboBox.append_item( 8, _("8 Beats") ) - self.comboBox.append_item( 9, _("9 Beats") ) - self.comboBox.append_item( 10, _("10 Beats") ) - self.comboBox.append_item( 11, _("11 Beats") ) - self.comboBox.append_item( 12, _("12 Beats") ) - self.comboBox.set_active( 4 - 1 ) # default 4 beats - self.comboBox.connect( "changed", self.changeSync ) - self.syncBox = ToolComboBox( self.comboBox ) - self.insert( self.syncBox, -1 ) - self.show_all() #def _add_palette( self, widget, palette, position = Palette.DEFAULT ): @@ -118,26 +85,11 @@ class JamToolbar( gtk.Toolbar ): separator.set_expand( expand ) self.insert( separator, -1 ) - def setSyncBeats( self, beats ): - self.comboBox.set_active( beats - 1 ) - - def changeSync( self, widget ): - self.owner._setSyncBeats( widget.get_active() + 1 ) - def mapRange( self, value, ilower, iupper, olower, oupper ): if value == iupper: return oupper return olower + int( (oupper-olower+1)*(value-ilower)/float(iupper-ilower) ) - def handleStopButton( self, widget ): - self.owner.setStopped() - - def handlePauseButton (self, widget ): - if widget.get_active(): - self.owner.setPaused(True) - else: - self.owner.setPaused(False) - def handleVolume( self, widget ): self.owner._setVolume( widget.get_value() ) @@ -178,55 +130,123 @@ class JamToolbar( gtk.Toolbar ): self.delayedTempo = 0 self.owner.sendSyncQuery() +class PlaybackToolbar( gtk.Toolbar ): -class recordToolbar(gtk.Toolbar): - def __init__(self, jam): - gtk.Toolbar.__init__(self) + def __init__( self, owner ): + gtk.Toolbar.__init__( self ) - def _insertSeparator(x = 1): - for i in range(x): - self.separator = gtk.SeparatorToolItem() - self.separator.set_draw(True) - self.insert(self.separator,-1) - self.separator.show() + self.owner = owner - #self.toolbox = toolbox - self.jam = jam + self.toolItem = {} - self.micRec1Button = ToolButton('rec1') - self.micRec1Button.connect('clicked',self.jam.micRec,'mic1') - self.insert(self.micRec1Button, -1) - self.micRec1Button.show() - self.micRec1Button.set_tooltip(_('Record microphone into slot 1')) + self.stopButton = ToolButton('media-playback-stop') + self.stopButton.connect('clicked',self.handleStopButton) + self.insert(self.stopButton, -1) + self.stopButton.show() + self.stopButton.set_tooltip(_('Stop')) - self.micRec2Button = ToolButton('rec2') - self.micRec2Button.connect('clicked',self.jam.micRec,'mic2') - self.insert(self.micRec2Button, -1) - self.micRec2Button.show() - self.micRec2Button.set_tooltip(_('Record microphone into slot 2')) + self.pauseButton = ToggleToolButton('media-playback-pause') + self.pauseButton.connect('clicked',self.handlePauseButton) + self.insert(self.pauseButton, -1) + self.pauseButton.show() + self.pauseButton.set_tooltip(_('Pause')) - self.micRec3Button = ToolButton('rec3') - self.micRec3Button.connect('clicked',self.jam.micRec,'mic3') - self.insert(self.micRec3Button, -1) - self.micRec3Button.show() - self.micRec3Button.set_tooltip(_('Record microphone into slot 3')) + self._insert_separator( True ) - self.micRec4Button = ToolButton('rec4') - self.micRec4Button.connect('clicked',self.jam.micRec,'mic4') - self.insert(self.micRec4Button, -1) - self.micRec4Button.show() - self.micRec4Button.set_tooltip(('Record microphone into slot 4')) + self.blockBeat = False + self.beatWheel = [] - _insertSeparator() + btn = RadioToolButton( 'media-playback-pause', group = None ) + btn.connect( 'toggled', self.setBeat, 0 ) + btn.set_tooltip( _('Jump To Beat') ) + self.insert( btn, -1 ) + self.beatWheel.append( btn ) - self._loopSettingsPalette = LoopSettingsPalette(_('Add new Sound'), self.jam) - self.loopSetButton = ToggleToolButton('loop') - self.loopSetButton.set_palette(self._loopSettingsPalette) - self.insert(self.loopSetButton, -1) - self.loopSetButton.show() + for i in range(1,12): + btn = RadioToolButton( 'media-playback-pause', group = self.beatWheel[0] ) + btn.connect( 'toggled', self.setBeat, i ) + btn.set_tooltip( _('Jump To Beat') ) + self.insert( btn, -1 ) + self.beatWheel.append( btn ) + + + label = gtk.Label( _("Sync to:") ) + self.syncLabel = gtk.ToolItem() + self.syncLabel.add( label ) + self.insert( self.syncLabel, -1 ) + + self.comboBox = ComboBox() + self.comboBox.append_item( 1, _("1 Beat") ) + self.comboBox.append_item( 2, _("2 Beats") ) + self.comboBox.append_item( 3, _("3 Beats") ) + self.comboBox.append_item( 4, _("4 Beats") ) + self.comboBox.append_item( 5, _("5 Beats") ) + self.comboBox.append_item( 6, _("6 Beats") ) + self.comboBox.append_item( 7, _("7 Beats") ) + self.comboBox.append_item( 8, _("8 Beats") ) + self.comboBox.append_item( 9, _("9 Beats") ) + self.comboBox.append_item( 10, _("10 Beats") ) + self.comboBox.append_item( 11, _("11 Beats") ) + self.comboBox.append_item( 12, _("12 Beats") ) + self.comboBox.set_active( 4 - 1 ) # default 4 beats + self.comboBox.connect( "changed", self.changeSync ) + self.syncBox = ToolComboBox( self.comboBox ) + self.insert( self.syncBox, -1 ) self.show_all() + #def _add_palette( self, widget, palette, position = Palette.DEFAULT ): + def _add_palette( self, widget, palette ): + widget._palette = palette + widget._palette.props.invoker = WidgetInvoker( widget ) + #widget._palette.set_property( "position", position ) + + def _add_tooltip( self, widget, tooltip ): + #self._add_palette( widget, Palette( tooltip ), Palette.DEFAULT ) + self._add_palette( widget, Palette( tooltip ) ) + + def _insert_widget( self, widget, pos ): + self.toolItem[ widget ] = gtk.ToolItem() + self.toolItem[ widget ].add( widget ) + self.insert( self.toolItem[ widget ], pos ) + + def _insert_separator( self, expand = False ): + separator = gtk.SeparatorToolItem() + separator.set_draw( False ) + separator.set_expand( expand ) + self.insert( separator, -1 ) + + def setBeat( self, widget, beat ): + if not self.blockBeat and widget.get_active(): + self.owner._setBeat( beat ) + + def updateBeatWheel( self, beat ): + self.blockBeat = True + self.beatWheel[ beat ].set_active( True ) + self.blockBeat = False + + def setSyncBeats( self, beats ): + self.comboBox.set_active( beats - 1 ) + + def changeSync( self, widget ): + beats = widget.get_active() + 1 + for i in range(beats): + self.beatWheel[i].show() + for i in range(beats,12): + self.beatWheel[i].hide() + + self.owner._setSyncBeats( beats ) + + def handleStopButton( self, widget ): + self.owner.setStopped() + + def handlePauseButton( self, widget ): + if widget.get_active(): + self.owner.setPaused( True ) + else: + self.owner.setPaused( False ) + + class DesktopToolbar( gtk.Toolbar ): def __init__( self, owner ): @@ -267,6 +287,55 @@ class DesktopToolbar( gtk.Toolbar ): def setDesktop( self, widget, which ): if widget.get_active(): self.owner._setDesktop( which ) + +class RecordToolbar(gtk.Toolbar): + def __init__(self, jam): + gtk.Toolbar.__init__(self) + + def _insertSeparator(x = 1): + for i in range(x): + self.separator = gtk.SeparatorToolItem() + self.separator.set_draw(True) + self.insert(self.separator,-1) + self.separator.show() + + #self.toolbox = toolbox + self.jam = jam + + self.micRec1Button = ToolButton('rec1') + self.micRec1Button.connect('clicked',self.jam.micRec,'mic1') + self.insert(self.micRec1Button, -1) + self.micRec1Button.show() + self.micRec1Button.set_tooltip(_('Record microphone into slot 1')) + + self.micRec2Button = ToolButton('rec2') + self.micRec2Button.connect('clicked',self.jam.micRec,'mic2') + self.insert(self.micRec2Button, -1) + self.micRec2Button.show() + self.micRec2Button.set_tooltip(_('Record microphone into slot 2')) + + self.micRec3Button = ToolButton('rec3') + self.micRec3Button.connect('clicked',self.jam.micRec,'mic3') + self.insert(self.micRec3Button, -1) + self.micRec3Button.show() + self.micRec3Button.set_tooltip(_('Record microphone into slot 3')) + + self.micRec4Button = ToolButton('rec4') + self.micRec4Button.connect('clicked',self.jam.micRec,'mic4') + self.insert(self.micRec4Button, -1) + self.micRec4Button.show() + self.micRec4Button.set_tooltip(('Record microphone into slot 4')) + + _insertSeparator() + + self._loopSettingsPalette = LoopSettingsPalette(_('Add new Sound'), self.jam) + self.loopSetButton = ToggleToolButton('loop') + self.loopSetButton.set_palette(self._loopSettingsPalette) + self.insert(self.loopSetButton, -1) + self.loopSetButton.show() + + self.show_all() + class LoopSettingsPalette( Palette ): def __init__( self, label, jam ): Palette.__init__( self, label ) @@ -505,3 +574,4 @@ class LoopSettingsPalette( Palette ): self.playStopButton.set_active(False) gobject.source_remove(self.timeoutStop) self.ok = True + |