]> code.bitgloo.com Git - clyne/stmdsp.git/commitdiff
ui: toolbar fixes, disable elements on run
authorClyne Sullivan <clyne@bitgloo.com>
Sun, 18 Apr 2021 19:10:51 +0000 (15:10 -0400)
committerClyne Sullivan <clyne@bitgloo.com>
Sun, 18 Apr 2021 19:10:51 +0000 (15:10 -0400)
gui/Makefile
gui/demos/2_iir_echo.cpp
gui/wxmain.cpp
gui/wxmain_mrun.cpp

index 25b1872562210194d0299c9e0414f4e1e8621182..e06a740fb957d630e13a2ce39626cdd13ac6d70e 100644 (file)
@@ -10,13 +10,12 @@ CXX = g++-10
 CXXFLAGS = --std=c++20 -ggdb -O0 \
            -Wall -Wextra -pedantic \
            -Wno-deprecated-copy \
-           -Iserial/include -IMETL/include -IMETL/dependencies/PEGTL/include \
-                  -Wa,-mbig-obj
+           -Iserial/include -IMETL/include -IMETL/dependencies/PEGTL/include
 
 ifeq ($(UNAME), Linux)
 CXXFLAGS += $(shell wx-config --cxxflags)
 else
-CXXFLAGS += -IC:\wx\include -DSTMDSP_WIN32
+CXXFLAGS += -IC:\wx\include -DSTMDSP_WIN32 -Wa,-mbig-obj
 endif
 
 ifeq ($(UNAME), Linux)
index 0bd7e9d0c404ec41f15a08cc3c6f46ca516cc2ee..acb5c5da1f38110ee724746ec5d278c058990694 100644 (file)
@@ -1,10 +1,12 @@
-adcsample_t *process_data(adcsample_t *samples, unsigned int size)
+Sample *process_data(Samples samples)
 {
-       constexpr float alpha = 0.7;
+       constexpr unsigned int size = samples.size();
        constexpr unsigned int D = 2000;
 
-       static adcsample_t output[SIZE];
-       static adcsample_t prev[D]; // prev[0] = output[0 - D]
+       float alpha = readalt() / 4095.;
+
+       static Sample output[size];
+       static Sample prev[D]; // prev[0] = output[0 - D]
 
        // Do calculations with previous output
        for (unsigned int i = 0; i < D; i++)
index 98c08ff7f0b3591955d7cb4fdd6d594635ea7491..ba352e41283d5cbfb3867763758a0e58d77a9b75 100644 (file)
@@ -88,7 +88,7 @@ MainFrame::MainFrame() :
                                       wxTE_READONLY | wxTE_MULTILINE | wxHSCROLL | wxTE_RICH2);
     m_measure_timer  = new wxTimer(this, Id::MeasureTimer);
     m_menu_bar       = new wxMenuBar;
-    m_rate_select    = new wxComboBox(panelToolbar, wxID_ANY,
+    m_rate_select    = new wxComboBox(this, wxID_ANY,
                                       wxEmptyString,
                                       wxDefaultPosition, wxDefaultSize,
                                       srateValues.size(), srateValues.data(),
@@ -111,14 +111,14 @@ MainFrame::MainFrame() :
     SetMenuBar(m_menu_bar);
 
     // Toolbar initialization
-    auto comp = new wxButton(this, wxID_ANY, "Compile", {10, 10});
-    sizerToolbar->Add(comp, 0, wxLEFT, 4);
-    sizerToolbar->Add(m_rate_select, 0, wxLEFT, 12);
+    auto comp = new wxButton(this, wxID_ANY, "Compile");
+    sizerToolbar->Add(comp, 0, wxLEFT | wxTOP, 4);
+    sizerToolbar->Add(m_rate_select, 0, wxLEFT | wxTOP, 4);
     panelToolbar->SetSizer(sizerToolbar);
 
     // Code panel init.
     prepareEditor();
-    sizerCode->Add(panelToolbar, 0, wxTOP | wxBOTTOM, 4);
+    sizerCode->Add(panelToolbar, 0, wxBOTTOM, 4);
     sizerCode->Add(m_text_editor, 1, wxEXPAND, 0);
     panelCode->SetSizer(sizerCode);
 
@@ -446,11 +446,16 @@ void MainFrame::updateMenuOptions()
 {
     bool connected = m_device != nullptr;
     m_menu_bar->Enable(MRunStart, connected);
-    m_menu_bar->Enable(MRunUpload, connected);
-    m_menu_bar->Enable(MRunUnload, connected);
-    m_menu_bar->Enable(MRunEditBSize, connected);
     m_menu_bar->Enable(MRunGenUpload, connected);
     m_menu_bar->Enable(MRunGenStart, connected);
-    m_rate_select->Enable(connected);
+
+    bool nrunning = connected && !m_is_running;
+    m_menu_bar->Enable(MRunUpload, nrunning);
+    m_menu_bar->Enable(MRunUnload, nrunning);
+    m_menu_bar->Enable(MRunEditBSize, nrunning);
+    m_menu_bar->Enable(MRunMeasure, nrunning);
+    m_menu_bar->Enable(MRunDrawSamples, nrunning);
+    m_menu_bar->Enable(MRunLogResults, nrunning);
+    m_rate_select->Enable(nrunning);
 }
 
index 72836571d19663d5cb22ef8d96141458c7e30be8..5661832d79dec8cb664fa2eb8294b76158bf62e7 100644 (file)
@@ -76,6 +76,8 @@ void MainFrame::onRunStart(wxCommandEvent& ce)
         if (m_run_draw_samples->IsChecked())
             m_compile_output->Refresh();
     }
+
+    updateMenuOptions();
 }
 
 void MainFrame::onRunLogResults(wxCommandEvent& ce)