~ubuntu-branches/debian/sid/jokosher/sid

« back to all changes in this revision

Viewing changes to MixerStrip.py

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2006-07-19 18:49:10 UTC
  • Revision ID: james.westby@ubuntu.com-20060719184910-0av4ghk8vsjvcij3
Tags: upstream-0.1
ImportĀ upstreamĀ versionĀ 0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
import pygtk
 
3
pygtk.require("2.0")
 
4
import gtk
 
5
import os
 
6
import Globals
 
7
 
 
8
from VUWidget import *
 
9
 
 
10
#=========================================================================
 
11
 
 
12
class MixerStrip(gtk.Frame):
 
13
        
 
14
        __gtype_name__ = 'MixerStrip'
 
15
        
 
16
        #_____________________________________________________________________
 
17
        
 
18
        def __init__(self, project, instrument, mixview, mainview):
 
19
                gtk.Container.__init__(self)
 
20
                self.project = project
 
21
                self.instrument = instrument
 
22
                self.mixview = mixview
 
23
                self.mainview = mainview
 
24
                self.Updating = False
 
25
                
 
26
                self.vbox = gtk.VBox()
 
27
                self.add(self.vbox)
 
28
 
 
29
                self.minbutt = gtk.Button()
 
30
                img = gtk.image_new_from_stock(gtk.STOCK_GOTO_BOTTOM, gtk.ICON_SIZE_MENU)
 
31
                self.minbutt.set_image(img)
 
32
                self.minbutt.connect("clicked", self.EmitMinimise)
 
33
                                
 
34
                self.vbox.pack_start(self.minbutt, False)
 
35
                
 
36
                # VU Meter
 
37
                self.vu = VUWidget(self, self.mainview)
 
38
                self.vbox.pack_start(self.vu, True, True)
 
39
                
 
40
                #Control Buttons
 
41
                hb = gtk.HBox()
 
42
                        
 
43
                img = gtk.image_new_from_stock(gtk.STOCK_MEDIA_RECORD, gtk.ICON_SIZE_BUTTON)
 
44
                self.recButton = gtk.ToggleButton("")
 
45
                self.recButton.set_property("image", img)
 
46
                self.recButton.connect("toggled", self.OnArm)
 
47
 
 
48
                self.muteButton = gtk.ToggleButton("")
 
49
                self.muteButton.connect("toggled", self.OnMute)
 
50
                
 
51
                soloimg = gtk.Image()
 
52
                soloimg.set_from_file(os.path.join(Globals.JOKOSHER_PATH, "images", "solo.png"))
 
53
                self.soloButton = gtk.ToggleButton("")
 
54
                self.soloButton.set_image(soloimg)
 
55
                self.soloButton.connect("toggled", self.OnSolo)
 
56
                
 
57
                hb.add(self.recButton)
 
58
                hb.add(self.muteButton)
 
59
                hb.add(self.soloButton)
 
60
                self.vbox.pack_start(hb, False, False)
 
61
                
 
62
                # Label and icon
 
63
                hb = gtk.HBox()
 
64
                imgsize = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)[0]
 
65
                pixbuf = self.instrument.pixbuf.scale_simple(imgsize, imgsize, gtk.gdk.INTERP_BILINEAR)
 
66
                image = gtk.Image()
 
67
                image.set_from_pixbuf(pixbuf)
 
68
                hb.pack_start(image, False, False)
 
69
                
 
70
                self.label = gtk.Label(instrument.name)
 
71
                self.label.set_max_width_chars(6)
 
72
                hb.pack_start(self.label, True, True)
 
73
                
 
74
                self.vbox.pack_end(hb, False, False)
 
75
                self.vbox.show_all()
 
76
                self.show_all()
 
77
                
 
78
                self.Update()
 
79
                
 
80
        #_____________________________________________________________________
 
81
 
 
82
        def OnMute(self, widget):
 
83
                if not self.Updating:
 
84
                        self.instrument.ToggleMuted(False)
 
85
        
 
86
        #_____________________________________________________________________
 
87
 
 
88
        def OnArm(self, widget):
 
89
                if not self.Updating:
 
90
                        self.instrument.ToggleArmed()
 
91
                
 
92
        #_____________________________________________________________________
 
93
        
 
94
        def OnSolo(self, widget):
 
95
                if not self.Updating:
 
96
                        self.instrument.ToggleSolo(False)
 
97
                
 
98
        #_____________________________________________________________________
 
99
        
 
100
        def EmitMinimise(self, widget):
 
101
                self.emit("minimise")
 
102
        
 
103
        #_____________________________________________________________________
 
104
        
 
105
        def Update(self):
 
106
                self.Updating = True
 
107
                
 
108
                self.label.set_text(self.instrument.name)
 
109
                self.recButton.set_active(self.instrument.isArmed)
 
110
                
 
111
                self.muteButton.set_active(self.instrument.actuallyIsMuted)
 
112
                if self.instrument.actuallyIsMuted:
 
113
                        self.muteButton.set_image(gtk.image_new_from_icon_name("stock_volume-mute", gtk.ICON_SIZE_BUTTON))
 
114
                else:
 
115
                        self.muteButton.set_image(gtk.image_new_from_icon_name("stock_volume", gtk.ICON_SIZE_BUTTON))
 
116
                
 
117
                
 
118
                self.soloButton.set_active(self.instrument.isSolo)
 
119
                
 
120
                self.Updating = False
 
121
        
 
122
        #_____________________________________________________________________
 
123
 
 
124
        def GetLevel(self):
 
125
                return self.instrument.level
 
126
                
 
127
        #_____________________________________________________________________
 
128
 
 
129
        def GetVolume(self):
 
130
                return self.instrument.volume
 
131
                
 
132
        #_____________________________________________________________________
 
133
 
 
134
        def SetVolume(self, vol):
 
135
                self.instrument.SetVolume(vol)
 
136
                
 
137
        #_____________________________________________________________________
 
138
        
 
139
#=========================================================================
 
140