#pragma once #include "scenes/signal_gen_scene.h" #include <furi_hal_clock.h> #include <furi_hal_pwm.h> #include <gui/gui.h> #include <gui/view_dispatcher.h> #include <gui/scene_manager.h> #include <gui/modules/submenu.h> #include <gui/modules/variable_item_list.h> #include <gui/modules/submenu.h> #include "views/signal_gen_pwm.h" typedef struct SignalGenApp SignalGenApp; struct SignalGenApp { Gui* gui; ViewDispatcher* view_dispatcher; SceneManager* scene_manager; VariableItemList* var_item_list; Submenu* submenu; SignalGenPwm* pwm_view; FuriHalClockMcoSourceId mco_src; FuriHalClockMcoDivisorId mco_div; FuriHalPwmOutputId pwm_ch_prev; FuriHalPwmOutputId pwm_ch; uint32_t pwm_freq; uint8_t pwm_duty; }; typedef enum { SignalGenViewVarItemList, SignalGenViewSubmenu, SignalGenViewPwm, } SignalGenAppView; typedef enum { SignalGenMcoEventUpdate, SignalGenPwmEventUpdate, SignalGenPwmEventChannelChange, } SignalGenCustomEvent;