init_deinit.c 833 B

12345678910111213141516171819202122232425262728
  1. #include "init_deinit.h"
  2. FlizzerTrackerApp* init_tracker(uint32_t sample_rate, uint8_t rate, bool external_audio_output, uint32_t audio_buffer_size)
  3. {
  4. FlizzerTrackerApp* tracker = malloc(sizeof(FlizzerTrackerApp));
  5. memset(tracker, 0, sizeof(FlizzerTrackerApp));
  6. sound_engine_init(&tracker->sound_engine, sample_rate, external_audio_output, audio_buffer_size);
  7. tracker_engine_init(&tracker->tracker_engine, rate, &tracker->sound_engine);
  8. tracker->tracker_engine.song = &tracker->song;
  9. return tracker;
  10. }
  11. void deinit_tracker(FlizzerTrackerApp* tracker)
  12. {
  13. sound_engine_deinit(&tracker->sound_engine);
  14. tracker_engine_deinit(&tracker->tracker_engine);
  15. FURI_CRITICAL_ENTER();
  16. LL_TIM_DeInit(TRACKER_ENGINE_TIMER);
  17. LL_TIM_DeInit(SAMPLE_RATE_TIMER);
  18. LL_TIM_DeInit(SPEAKER_PWM_TIMER);
  19. FURI_CRITICAL_EXIT();
  20. free(tracker);
  21. }