diff --git a/osctest.py b/osctest.py index 087275f..281814f 100644 --- a/osctest.py +++ b/osctest.py @@ -1,15 +1,26 @@ from libs.simpleosc import * import wx -def testosc(): - server = OSCServer (("127.0.0.1", 9000)) - server.addDefaultHandlers() - - initOSCClient(port=9000) - sendOSCMsg("/test", [.1]) - closeOSC() - -class gui_head(wx.Frame): +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 """ @@ -26,12 +37,8 @@ class gui_head(wx.Frame): # The main sizer self.mainsizer = wx.BoxSizer(wx.HORIZONTAL) - # Bits and pieces - self.status=wx.StaticText(self, label="Parameter", style=wx.ST_NO_AUTORESIZE) - self.mainsizer.Add(self.status, 0) - - self.slider=wx.Slider(self, value=0, minValue=0, maxValue=100) - self.mainsizer.Add(self.slider, 1) + 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) @@ -49,4 +56,6 @@ class gui_head(wx.Frame): if __name__ == "__main__": - gui_head() + initOSCClient(ip="127.0.0.1", port=9000) + g=MainGUI() + closeOSC()