#include "init_deinit.h" FlizzerTrackerApp* init_tracker(uint32_t sample_rate, uint8_t rate, bool external_audio_output, uint32_t audio_buffer_size) { FlizzerTrackerApp* tracker = malloc(sizeof(FlizzerTrackerApp)); memset(tracker, 0, sizeof(FlizzerTrackerApp)); sound_engine_init(&tracker->sound_engine, sample_rate, external_audio_output, audio_buffer_size); tracker_engine_init(&tracker->tracker_engine, rate, &tracker->sound_engine); tracker->tracker_engine.song = &tracker->song; tracker->current_note = MIDDLE_C; return tracker; } void deinit_tracker(FlizzerTrackerApp* tracker) { sound_engine_deinit(&tracker->sound_engine); tracker_engine_deinit(&tracker->tracker_engine, false); FURI_CRITICAL_ENTER(); LL_TIM_DeInit(TRACKER_ENGINE_TIMER); LL_TIM_DeInit(SAMPLE_RATE_TIMER); LL_TIM_DeInit(SPEAKER_PWM_TIMER); FURI_CRITICAL_EXIT(); free(tracker); }