f5175e1388
* Music player: cli tool and new worker * Music player cli: flush message * Music player: fix note calculation * MusicPlayer: fix # parsing and add magic * FuriHal: improve speaker volume handling. MusicPlayer: minor sustain improvements * MusicPlayer: fix buffer overseek * FuriHal: drop unused variables * MusicPlayer: LFO 4 magic * MusicPlayer: add RTTTL parser * MusicPlayer: refactoring and add file open dialog on start * MusicPlayer: fix memcpy issue and more * FuriHal: force disconnect USB on early init and then leave usb line alone for some time. * FuriHal: switch speaker to old volume. MusicPlayer: fix incorrect note history, and drop lfo from worker. Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
typedef void (*MusicPlayerWorkerCallback)(
|
|
uint8_t semitone,
|
|
uint8_t dots,
|
|
uint8_t duration,
|
|
float position,
|
|
void* context);
|
|
|
|
typedef struct MusicPlayerWorker MusicPlayerWorker;
|
|
|
|
MusicPlayerWorker* music_player_worker_alloc();
|
|
|
|
void music_player_worker_free(MusicPlayerWorker* instance);
|
|
|
|
bool music_player_worker_load(MusicPlayerWorker* instance, const char* file_path);
|
|
|
|
bool music_player_worker_load_fmf_from_file(MusicPlayerWorker* instance, const char* file_path);
|
|
|
|
bool music_player_worker_load_rtttl_from_file(MusicPlayerWorker* instance, const char* file_path);
|
|
|
|
bool music_player_worker_load_rtttl_from_string(MusicPlayerWorker* instance, const char* string);
|
|
|
|
void music_player_worker_set_callback(
|
|
MusicPlayerWorker* instance,
|
|
MusicPlayerWorkerCallback callback,
|
|
void* context);
|
|
|
|
void music_player_worker_set_volume(MusicPlayerWorker* instance, float volume);
|
|
|
|
void music_player_worker_start(MusicPlayerWorker* instance);
|
|
|
|
void music_player_worker_stop(MusicPlayerWorker* instance);
|