|
@@ -3,21 +3,51 @@ import wx |
|
|
|
|
|
|
|
|
class OSCSlider(wx.Panel): |
|
|
class OSCSlider(wx.Panel): |
|
|
''' A GUI slider ''' |
|
|
''' A GUI slider ''' |
|
|
def __init__(self, parent, label, min_value=0, max_value=100, default_value=0): |
|
|
|
|
|
|
|
|
def __init__(self, parent, label, min_value=0, max_value=1, default_value=0, show_value=True, align=True): |
|
|
''' Constructor ''' |
|
|
''' Constructor ''' |
|
|
|
|
|
self.show_value=show_value |
|
|
wx.Panel.__init__(self, parent) |
|
|
wx.Panel.__init__(self, parent) |
|
|
sizer=wx.BoxSizer(wx.HORIZONTAL) |
|
|
sizer=wx.BoxSizer(wx.HORIZONTAL) |
|
|
self.indicator=wx.StaticText(self, label=label) |
|
|
|
|
|
sizer.Add(self.indicator, 0, wx.RIGHT, 10) |
|
|
|
|
|
self.slider=wx.Slider(self, value=default_value, minValue=min_value, maxValue=max_value) |
|
|
|
|
|
|
|
|
label=wx.StaticText(self, label=label, size=(100,15) if align else None) |
|
|
|
|
|
sizer.Add(label, 0, wx.RIGHT, 10) |
|
|
|
|
|
self.slider=wx.Slider(self, value=default_value*100, minValue=min_value*100, maxValue=max_value*100) |
|
|
sizer.Add(self.slider, 1, wx.EXPAND) |
|
|
sizer.Add(self.slider, 1, wx.EXPAND) |
|
|
|
|
|
if show_value: |
|
|
|
|
|
self.indicator=wx.StaticText(self, label="--", size=(50,15)) |
|
|
|
|
|
sizer.Add(self.indicator, 0, wx.LEFT, 10) |
|
|
self.SetSizerAndFit(sizer) |
|
|
self.SetSizerAndFit(sizer) |
|
|
self.slider.Bind(wx.EVT_SCROLL, self.update) |
|
|
self.slider.Bind(wx.EVT_SCROLL, self.update) |
|
|
|
|
|
self.update(None) |
|
|
|
|
|
|
|
|
def update(self, evt): |
|
|
def update(self, evt): |
|
|
""" Send OSC messages """ |
|
|
""" Send OSC messages """ |
|
|
value=float(self.slider.GetValue()) |
|
|
|
|
|
sendOSCMsg("/test", [value]) |
|
|
|
|
|
|
|
|
value=self.slider.GetValue()/100. |
|
|
|
|
|
if self.show_value: |
|
|
|
|
|
self.indicator.SetLabel("%s" % value) |
|
|
|
|
|
try: |
|
|
|
|
|
sendOSCMsg("/test", [value]) |
|
|
|
|
|
except OSCClientError: |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
class InputPanel(wx.Panel): |
|
|
|
|
|
''' Handle the ADC input settings ''' |
|
|
|
|
|
def __init__(self, parent): |
|
|
|
|
|
''' Constructor ''' |
|
|
|
|
|
wx.Panel.__init__(self, parent) |
|
|
|
|
|
sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
|
|
|
|
|
|
|
|
|
|
label = wx.StaticText(self, label="Line In:") |
|
|
|
|
|
font = label.GetFont(); font.SetWeight(wx.BOLD); label.SetFont(font) |
|
|
|
|
|
sizer.Add(label, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5) |
|
|
|
|
|
|
|
|
|
|
|
self.gain=OSCSlider(self, "Gain", default_value=.5, show_value=False, align=False) |
|
|
|
|
|
sizer.Add(self.gain, 1, wx.ALL, 5) |
|
|
|
|
|
self.thru=OSCSlider(self, "Thru", default_value=.5, show_value=False, align=False) |
|
|
|
|
|
sizer.Add(self.thru, 1, wx.ALL, 5) |
|
|
|
|
|
|
|
|
|
|
|
self.button=wx.Button(self, 1, "Kill input") |
|
|
|
|
|
sizer.Add(self.button, 0) |
|
|
|
|
|
self.SetSizerAndFit(sizer) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MainGUI(wx.Frame): |
|
|
class MainGUI(wx.Frame): |
|
@@ -31,19 +61,28 @@ class MainGUI(wx.Frame): |
|
|
|
|
|
|
|
|
def build(self): |
|
|
def build(self): |
|
|
""" Builds the various pieces of the GUI """ |
|
|
""" Builds the various pieces of the GUI """ |
|
|
wx.Frame.__init__(self, None, title="Controls", size=(500,100)) |
|
|
|
|
|
|
|
|
wx.Frame.__init__(self, None, title="DELAY LORD") |
|
|
self.Bind(wx.EVT_CLOSE, self.quit) |
|
|
self.Bind(wx.EVT_CLOSE, self.quit) |
|
|
|
|
|
|
|
|
# The main sizer |
|
|
# The main sizer |
|
|
self.mainsizer = wx.BoxSizer(wx.HORIZONTAL) |
|
|
|
|
|
|
|
|
self.mainsizer = wx.BoxSizer(wx.VERTICAL) |
|
|
|
|
|
|
|
|
|
|
|
self.inputPanel = InputPanel(self) |
|
|
|
|
|
self.mainsizer.Add(self.inputPanel, 0, wx.EXPAND|wx.ALL, 5) |
|
|
|
|
|
|
|
|
|
|
|
line=wx.StaticLine(self) |
|
|
|
|
|
self.mainsizer.Add(line, 0, wx.EXPAND|wx.ALL, 5) |
|
|
|
|
|
|
|
|
|
|
|
self.delayTime=OSCSlider(self, "Delay time (s)", default_value=5, max_value=10) |
|
|
|
|
|
self.mainsizer.Add(self.delayTime, 0, wx.EXPAND|wx.ALL, 5) |
|
|
|
|
|
|
|
|
self.slider=OSCSlider(self, "Input gain", default_value=50) |
|
|
|
|
|
self.mainsizer.Add(self.slider, 1, wx.ALL, 5) |
|
|
|
|
|
|
|
|
self.feedback=OSCSlider(self, "Feedback", default_value=.95) |
|
|
|
|
|
self.mainsizer.Add(self.feedback, 0, wx.EXPAND|wx.ALL, 5) |
|
|
|
|
|
|
|
|
# Put things together |
|
|
# Put things together |
|
|
self.SetSizerAndFit(self.mainsizer) |
|
|
self.SetSizerAndFit(self.mainsizer) |
|
|
self.Show() |
|
|
self.Show() |
|
|
self.SetSize((700,500)) |
|
|
|
|
|
|
|
|
self.SetSize((400,500)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def populate_left_panel(self): |
|
|
def populate_left_panel(self): |
|
|