#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# generated by wxGlade 0.3.5.1 on Tue May 31 17:23:37 2005

import wx, sys
from gnuradio.wxgui import powermate
from gnuradio import gr
from gnuradio import audio

ID_BUTTON_1 = wx.NewId()
ID_BUTTON_2 = wx.NewId()
ID_BUTTON_3 = wx.NewId()
ID_BUTTON_4 = wx.NewId()
ID_BUTTON_5 = wx.NewId()
ID_BUTTON_6 = wx.NewId()
ID_BUTTON_7 = wx.NewId()
ID_BUTTON_8 = wx.NewId()
ID_BUTTON_9 = wx.NewId()
ID_BUTTON_10 = wx.NewId()
ID_BUTTON_11 = wx.NewId()
ID_SLIDER_1 = wx.NewId()
ID_SLIDER_2 = wx.NewId()
ID_SLIDER_3 = wx.NewId()


class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.button_1 = wx.ToggleButton(self, ID_BUTTON_1, "Frequency")
        self.slider_1 = wx.Slider(self, ID_SLIDER_1, 0, 0, 4000)
        self.button_2 = wx.ToggleButton(self, ID_BUTTON_2, "Volume")
        self.slider_2 = wx.Slider(self, ID_SLIDER_2, 0, 0, 100)
        self.panel_1 = wx.Panel(self, -1)
        self.button_7 = wx.ToggleButton(self, ID_BUTTON_7, "LSB")
        self.button_8 = wx.ToggleButton(self, ID_BUTTON_8, "USB")
        self.button_9 = wx.ToggleButton(self, ID_BUTTON_9, "AM")
        self.button_3 = wx.ToggleButton(self, ID_BUTTON_3, "Filter")
        self.slider_3 = wx.Slider(self, ID_SLIDER_3, 0, 0, 30)
        self.panel_2 = wx.Panel(self, -1)
        self.panel_3 = wx.Panel(self, -1)
        self.button_10 = wx.ToggleButton(self, ID_BUTTON_10, "ISB1")
        self.button_11 = wx.ToggleButton(self, ID_BUTTON_11, "ISB2")
        self.button_4 = wx.ToggleButton(self, ID_BUTTON_4, "Time")
        self.button_5 = wx.Button(self, ID_BUTTON_5, "Rewind")
        self.button_6 = wx.Button(self, ID_BUTTON_6, "Fast Fwd")
        self.panel_4 = wx.Panel(self, -1)
        self.panel_5 = wx.Panel(self, -1)
        self.panel_6 = wx.Panel(self, -1)

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

	self.active_button = 1
	self.button_1.SetValue(True)
	# radio variables
	self.frequency = 3.938e6
	self.slider_1.SetValue(3938)
	self.volume = 0.01
	self.filter = 24
	self.slider_3.SetValue(24)
	# 0=usb, 1=lsb, 2=am, 3=isb1, 4=isb2
	self.mode = 1
	self.button_7.SetValue(True)

	wx.EVT_SLIDER(self,ID_SLIDER_1,self.slide_event)
	wx.EVT_SLIDER(self,ID_SLIDER_2,self.slide_event)
	wx.EVT_SLIDER(self,ID_SLIDER_3,self.slide_event)

        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_1, self.on_button)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_2, self.on_button)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_3, self.on_button)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_4, self.on_button)

        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_5, self.on_tbutton)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_6, self.on_tbutton)

        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_7, self.on_mbutton)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_8, self.on_mbutton)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_9, self.on_mbutton)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_10, self.on_mbutton)
        wx.EVT_TOGGLEBUTTON(self, ID_BUTTON_11, self.on_mbutton)

        try:
            self.pm = powermate.powermate(self)
        except:
            sys.stderr.write("Unable to find PowerMate or Contour Shuttle\n")
            sys.exit(1)

        self.brightness = 0
        powermate.EVT_POWERMATE_ROTATE(self, self.on_rotate)
        powermate.EVT_POWERMATE_BUTTON(self, self.on_pmButton)


    def __set_properties(self):
        # begin wxGlade: MyFrame.__set_properties
        self.SetTitle("GNU Radio HF Explorer")
        self.SetSize((600, 300))
        self.slider_1.SetSize((500, 25))
        self.slider_2.SetSize((200, 25))
        self.slider_3.SetSize((200, 25))
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_8 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_7 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_3.Add(self.button_1, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_3.Add(self.slider_1, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_2.Add(sizer_3, 1, wx.EXPAND, 0)
        sizer_5.Add(self.button_2, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_5.Add(self.slider_2, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_5.Add(self.panel_1, 1, wx.EXPAND, 0)
        sizer_5.Add(self.button_7, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_5.Add(self.button_8, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_5.Add(self.button_9, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_2.Add(sizer_5, 1, wx.EXPAND, 0)
        sizer_7.Add(self.button_3, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_7.Add(self.slider_3, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_7.Add(self.panel_2, 1, wx.EXPAND, 0)
        sizer_7.Add(self.panel_3, 1, wx.EXPAND, 0)
        sizer_7.Add(self.button_10, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_7.Add(self.button_11, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_2.Add(sizer_7, 1, wx.EXPAND, 0)
        sizer_8.Add(self.button_4, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_8.Add(self.button_5, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_8.Add(self.button_6, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0)
        sizer_8.Add(self.panel_4, 1, wx.EXPAND, 0)
        sizer_8.Add(self.panel_5, 1, wx.EXPAND, 0)
        sizer_8.Add(self.panel_6, 1, wx.EXPAND, 0)
        sizer_2.Add(sizer_8, 1, wx.EXPAND, 0)
        sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
        self.SetAutoLayout(True)
        self.SetSizer(sizer_1)
        self.Layout()
        # end wxGlade

    def slide_event(self,evt):
        value = evt.GetInt()
        id = evt.GetId()
        if id == ID_SLIDER_1: pass
        elif id == ID_SLIDER_2: pass
        elif id == ID_SLIDER_3: pass


    def on_button(self, evt):
        id = evt.GetId()
        if id == ID_BUTTON_1:
            self.active_button = 1
            self.button_2.SetValue(False)
            self.button_3.SetValue(False)
	    self.button_4.SetValue(False)
        elif id == ID_BUTTON_2:
            self.active_button = 2
            self.button_1.SetValue(False)
            self.button_3.SetValue(False)
	    self.button_4.SetValue(False)
        elif id == ID_BUTTON_3:
            self.active_button = 3
            self.button_1.SetValue(False)
            self.button_2.SetValue(False)
	    self.button_4.SetValue(False)
	elif id == ID_BUTTON_4:
	    self.active_button = 4
	    self.button_1.SetValue(False)
	    self.button_2.SetValue(False)
	    self.button_3.SetValue(False)

    def on_tbutton(self, evt):
	id = evt.GetId()
	if id == ID_BUTTON_5: pass
	elif id == ID_BUTTON_6: pass

    def on_mbutton(self, evt):
	id = evt.GetId()
	if id == ID_BUTTON_7:
	  self.mode = 1
	  self.button_8.SetValue(False)
	  self.button_9.SetValue(False)
	  self.button_10.SetValue(False)
	  self.button_11.SetValue(False)
	elif id == ID_BUTTON_8:
	  self.mode = 0
	  self.button_7.SetValue(False)
	  self.button_9.SetValue(False)
	  self.button_10.SetValue(False)
	  self.button_11.SetValue(False)
	elif id == ID_BUTTON_9:
	  self.mode = 2
	  self.button_7.SetValue(False)
	  self.button_8.SetValue(False)
	  self.button_10.SetValue(False)
	  self.button_11.SetValue(False)
	elif id == ID_BUTTON_10:
	  self.mode = 3
	  self.button_7.SetValue(False)
	  self.button_8.SetValue(False)
	  self.button_9.SetValue(False)
	  self.button_11.SetValue(False)
	elif id == ID_BUTTON_11:
	  self.mode = 4
	  self.button_7.SetValue(False)
	  self.button_8.SetValue(False)
	  self.button_9.SetValue(False)
	  self.button_10.SetValue(False)

    def on_rotate(self, evt):
        if self.active_button == 1:
            new = max(0, min(4000, self.slider_1.GetValue() + evt.delta))
            self.slider_1.SetValue(new)
        elif self.active_button == 2:
            new = max(0, min(100, self.slider_2.GetValue() + evt.delta))
            self.slider_2.SetValue(new)
        elif self.active_button == 3:
            new = max(0, min(30, self.slider_3.GetValue() + evt.delta))
            self.slider_3.SetValue(new)
	elif self.active_button == 4:
	    pass

    def on_pmButton(self, evt):
        if evt.value == 0:
          if self.active_button == 1:
            self.active_button = 2
            self.button_1.SetValue(False)
            self.button_2.SetValue(True)
            self.button_3.SetValue(False)
	    self.button_4.SetValue(False)
          elif self.active_button == 2:
            self.active_button = 3
            self.button_1.SetValue(False)
            self.button_2.SetValue(False)
            self.button_3.SetValue(True)
	    self.button_4.SetValue(False)
          elif self.active_button == 3:
            self.active_button = 4
            self.button_1.SetValue(False)
            self.button_2.SetValue(False)
            self.button_3.SetValue(False)
	    self.button_4.SetValue(True)
	  elif self.active_button == 4:
	    self.active_button = 1
	    self.button_1.SetValue(True)
	    self.button_2.SetValue(False)
	    self.button_3.SetValue(False)
	    self.button_4.SetValue(False)


# end of class MyFrame

class MyApp(wx.App):
  def OnInit(self):
    frame = MyFrame(None, -1, "HF Explorer")
    frame.Show(True)
    self.SetTopWindow(frame)
    return True

app = MyApp(0)
app.MainLoop()

