reduced filter dialog size
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sat, 1 Dec 2012 07:46:36 +0000 (07:46 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sat, 1 Dec 2012 07:46:36 +0000 (07:46 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1105 01035d8c-6547-0410-b346-abe4f91aad63

fdmdv2/src/dlg_filter.cpp
fdmdv2/src/dlg_filter.h

index 088fecf6f40ed0a09d83bd31ed325057a8888773..f81dc4e9b9c34b3ff1f88b15bfdd69eeccf9890e 100644 (file)
@@ -52,7 +52,24 @@ FilterDlg::FilterDlg(wxWindow* parent, bool running, wxWindowID id, const wxStri
 
     wxStaticBoxSizer* lpcpfs = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("LPC Post Filter")), wxHORIZONTAL);
 
-    wxBoxSizer* left = new wxBoxSizer(wxVERTICAL);
+#define GRID
+#ifdef GRID
+   wxGridSizer* gs = new wxGridSizer(2,2,0,0);
+
+    m_codec2LPCPostFilterEnable = new wxCheckBox(this, wxID_ANY, _("Enable"), wxDefaultPosition,wxDefaultSize, wxCHK_2STATE);
+    gs->Add(m_codec2LPCPostFilterEnable);
+
+    newLPCPFControl(&m_codec2LPCPostFilterBeta, &m_staticTextBeta, gs, "Beta");
+
+    m_codec2LPCPostFilterBassBoost = new wxCheckBox(this, wxID_ANY, _("0-1 kHz 3dB Boost"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
+    gs->Add(m_codec2LPCPostFilterBassBoost);
+
+    newLPCPFControl(&m_codec2LPCPostFilterGamma, &m_staticTextGamma, gs, "Gamma");
+
+    lpcpfs->Add(gs, 0, wxALL, 0);
+
+#else
+   wxBoxSizer* left = new wxBoxSizer(wxVERTICAL);
 
     m_codec2LPCPostFilterEnable = new wxCheckBox(this, wxID_ANY, _("Enable"), wxDefaultPosition,wxDefaultSize, wxCHK_2STATE);
     left->Add(m_codec2LPCPostFilterEnable);
@@ -66,25 +83,30 @@ FilterDlg::FilterDlg(wxWindow* parent, bool running, wxWindowID id, const wxStri
     newLPCPFControl(&m_codec2LPCPostFilterBeta, &m_staticTextBeta, right, "Beta");
     newLPCPFControl(&m_codec2LPCPostFilterGamma, &m_staticTextGamma, right, "Gamma");
     lpcpfs->Add(right, 0, wxALL, 5);
+#endif
 
-    bSizer30->Add(lpcpfs, 0, wxALL, 3);
+    bSizer30->Add(lpcpfs, 0, wxALL, 0);
 
     // EQ Filters -----------------------------------------------------------
 
     wxStaticBoxSizer* eqMicInSizer = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Mic In Equaliser")), wxVERTICAL);
+    wxBoxSizer* eqMicInSizer1 = new wxBoxSizer(wxHORIZONTAL);
 
-    m_MicInBass   = newEQ(eqMicInSizer, "Bass"  , MAX_FREQ_BASS, disableQ);
+    m_MicInBass   = newEQ(eqMicInSizer1, "Bass"  , MAX_FREQ_BASS, disableQ);
+    m_MicInTreble = newEQ(eqMicInSizer1, "Treble", MAX_FREQ_DEF, disableQ);
+    eqMicInSizer->Add(eqMicInSizer1);
     m_MicInMid    = newEQ(eqMicInSizer, "Mid"   , MAX_FREQ_DEF, enableQ);
-    m_MicInTreble = newEQ(eqMicInSizer, "Treble", MAX_FREQ_DEF, disableQ);
 
     wxStaticBoxSizer* eqSpkOutSizer = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Speaker Out Equaliser")), wxVERTICAL);
+    wxBoxSizer* eqSpkOutSizer1 = new wxBoxSizer(wxHORIZONTAL);
 
-    m_SpkOutBass   = newEQ(eqSpkOutSizer, "Bass"  , MAX_FREQ_BASS, disableQ);
+    m_SpkOutBass   = newEQ(eqSpkOutSizer1, "Bass"  , MAX_FREQ_BASS, disableQ);
+    m_SpkOutTreble = newEQ(eqSpkOutSizer1, "Treble", MAX_FREQ_DEF, disableQ);
+    eqSpkOutSizer->Add(eqSpkOutSizer1);
     m_SpkOutMid    = newEQ(eqSpkOutSizer, "Mid"   , MAX_FREQ_DEF, enableQ);
-    m_SpkOutTreble = newEQ(eqSpkOutSizer, "Treble", MAX_FREQ_DEF, disableQ);
     
-    bSizer30->Add(eqMicInSizer, 0, wxALL|wxEXPAND, 3);
-    bSizer30->Add(eqSpkOutSizer, 0, wxALL, 3);
+    bSizer30->Add(eqMicInSizer, 0, wxALL, 0);
+    bSizer30->Add(eqSpkOutSizer, 0, wxALL, 0);
 
     // Spectrum Plots -----------------------------------------------------------
 
@@ -171,30 +193,30 @@ void FilterDlg::newLPCPFControl(wxSlider **slider, wxStaticText **stValue, wxSiz
     wxBoxSizer *bs = new wxBoxSizer(wxHORIZONTAL);
 
     wxStaticText* st = new wxStaticText(this, wxID_ANY, controlName, wxDefaultPosition, wxSize(70,-1), wxALIGN_RIGHT);
-    bs->Add(st, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);
+    bs->Add(st, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 0);
 
     *slider = new wxSlider(this, wxID_ANY, 0, 0, SLIDER_MAX, wxDefaultPosition, wxSize(SLIDER_LENGTH,wxDefaultCoord));
-    bs->Add(*slider, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);
+    bs->Add(*slider, 1, wxALIGN_CENTER_VERTICAL|wxALL, 0);
 
     *stValue = new wxStaticText(this, wxID_ANY, wxT("0.0"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
-    bs->Add(*stValue, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL, 2);
+    bs->Add(*stValue, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL, 0);
 
-    s->Add(bs, 1);
+    s->Add(bs, 0);
 }
 
 void FilterDlg::newEQControl(wxSlider** slider, wxStaticText** value, wxStaticBoxSizer *bs, wxString controlName)
 {
     wxStaticText* label = new wxStaticText(this, wxID_ANY, controlName, wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
-    bs->Add(label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);
+    bs->Add(label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 0);
 
     *slider = new wxSlider(this, wxID_ANY, 0, 0, SLIDER_MAX, wxDefaultPosition, wxSize(SLIDER_LENGTH,wxDefaultCoord));
-    bs->Add(*slider, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);
+    bs->Add(*slider, 1, wxALIGN_CENTER_VERTICAL|wxALL, 0);
 
-    *value = new wxStaticText(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
-    bs->Add(*value, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 4);
+    *value = new wxStaticText(this, wxID_ANY, wxT("100"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
+    bs->Add(*value, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 0);
 }
 
-EQ FilterDlg::newEQ(wxStaticBoxSizer *bs, wxString eqName, float maxFreqHz, bool enableQ)
+EQ FilterDlg::newEQ(wxSizer *bs, wxString eqName, float maxFreqHz, bool enableQ)
 {
     EQ eq;
 
@@ -233,10 +255,11 @@ void FilterDlg::ExchangeData(int inout)
         // Mic In Equaliser
 
         m_MicInBass.freqHz = wxGetApp().m_MicInBassFreqHz; setFreq(&m_MicInBass);
+        m_MicInBass.freqHz = limit(m_MicInBass.freqHz, 1.0, MAX_FREQ_BASS);
 
+        calcFilterSpectrum(&m_MicInBass, m_MicInMagdB);
         m_MicInFreqRespPlot->m_newdata = true;
         m_MicInFreqRespPlot->Refresh();
-        calcFilterSpectrum(&m_MicInBass, m_MicInMagdB);
     }
     if(inout == EXCHANGE_DATA_OUT)
     {
@@ -262,6 +285,12 @@ void FilterDlg::ExchangeData(int inout)
     delete wxConfigBase::Set((wxConfigBase *) NULL);
 }
 
+float FilterDlg::limit(float value, float min, float max) {
+    if (value < min) return min;
+    if (value > max) return max;
+    return value;
+}
+
 //-------------------------------------------------------------------------
 // OnCancel()
 //-------------------------------------------------------------------------
index bb61279f47dad935dcffa83f136076097aad8a9d..dd6e4a0b75bcb065b37224e17253c0a7d051a01c 100644 (file)
@@ -53,7 +53,7 @@ class FilterDlg : public wxDialog
 {
     public:
         FilterDlg( wxWindow* parent, bool running, wxWindowID id = wxID_ANY, const wxString& title = _("Filter"), 
-                   const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,800 ), 
+                   const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800, 700 ), 
                    long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
         ~FilterDlg();
 
@@ -104,7 +104,7 @@ class FilterDlg : public wxDialog
         void          setCodec2(void);
  
         void          newEQControl(wxSlider** slider, wxStaticText** value, wxStaticBoxSizer *bs, wxString controlName);
-        EQ            newEQ(wxStaticBoxSizer *bs, wxString eqName, float maxFreqHz, bool enableQ);
+        EQ            newEQ(wxSizer *bs, wxString eqName, float maxFreqHz, bool enableQ);
         void          newLPCPFControl(wxSlider **slider, wxStaticText **stValue, wxSizer *sbs, wxString controlName);
         wxAuiNotebook *m_auiNotebook;
         void          setFreq(EQ *eq);
@@ -119,6 +119,8 @@ class FilterDlg : public wxDialog
         EQ            m_SpkOutMid;
         EQ            m_SpkOutTreble;
 
+        float         limit(float value, float min, float max);
+
 };
 
 #endif // __FILTER_DIALOG__