|
- from libs.simpleosc import *
- import wx
-
- class OSCSlider(wx.Panel):
- ''' A GUI slider '''
- def __init__(self, parent, label, min_value=0, max_value=100, default_value=0):
- ''' Constructor '''
- wx.Panel.__init__(self, parent)
- 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)
- sizer.Add(self.slider, 1, wx.EXPAND)
- self.SetSizerAndFit(sizer)
- self.slider.Bind(wx.EVT_SCROLL, self.update)
-
- def update(self, evt):
- """ Send OSC messages """
- value=float(self.slider.GetValue())
- sendOSCMsg("/test", [value])
-
-
- class MainGUI(wx.Frame):
- """ A simple GUI to talk to Chuck """
- def __init__(self):
- """ Constructor """
- # Build the interface
- self.app = wx.App(False)
- self.build()
- self.app.MainLoop()
-
- def build(self):
- """ Builds the various pieces of the GUI """
- wx.Frame.__init__(self, None, title="Controls", size=(500,100))
- self.Bind(wx.EVT_CLOSE, self.quit)
-
- # The main sizer
- self.mainsizer = wx.BoxSizer(wx.HORIZONTAL)
-
- self.slider=OSCSlider(self, "Input gain", default_value=50)
- self.mainsizer.Add(self.slider, 1, wx.ALL, 5)
-
- # Put things together
- self.SetSizerAndFit(self.mainsizer)
- self.Show()
- self.SetSize((700,500))
-
-
- def populate_left_panel(self):
- """ Populate the left panel """
- # Status boxes
-
- def quit(self, *args):
- """ Close down gracefully, and then destroy the window """
- self.Destroy()
-
-
- if __name__ == "__main__":
- initOSCClient(ip="127.0.0.1", port=9000)
- g=MainGUI()
- closeOSC()
|