#ifndef WXMAIN_HPP_ #define WXMAIN_HPP_ #include "stmdsp.hpp" #include #include #include #include #include #include #include #include #include #include #include #include class MainFrame : public wxFrame { public: MainFrame(); void onPaint(wxPaintEvent& pe); void onRenderTimer(wxTimerEvent& te); void onFileNew(wxCommandEvent&); void onFileOpen(wxCommandEvent&); void onFileSave(wxCommandEvent&); void onFileSaveAs(wxCommandEvent&); void onFileQuit(wxCommandEvent&); void onRunConnect(wxCommandEvent&); void onRunStart(wxCommandEvent&); void onRunCompile(wxCommandEvent&); void onRunUpload(wxCommandEvent&); void onRunUnload(wxCommandEvent&); void requestSamples(); void updateDrawing(); private: bool m_is_rendering = false; wxTimer *m_render_timer = nullptr; wxComboBox *m_device_combo = nullptr; wxStyledTextCtrl *m_text_editor = nullptr; wxControl *m_signal_area = nullptr; wxMenuItem *m_run_measure = nullptr; wxMenuItem *m_run_measure_value = nullptr; wxString m_open_file_path; stmdsp::device *m_device = nullptr; std::future> m_device_samples_future; std::vector m_device_samples; bool tryDevice(); void prepareEditor(); wxString compileEditorCode(); }; #endif // WXMAIN_HPP_