| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #pragma once
- #include <gui/view.h>
- #include <furi.h>
- #include <furi_hal.h>
- #include <cli/cli.h>
- #include <gui/gui.h>
- #include <stm32wbxx_ll_dma.h>
- #include <dialogs/dialogs.h>
- #include <notification/notification_messages.h>
- #include <gui/view_dispatcher.h>
- #include <toolbox/stream/file_stream.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct WavPlayerView WavPlayerView;
- typedef enum {
- WavPlayerCtrlVolUp,
- WavPlayerCtrlVolDn,
- WavPlayerCtrlMoveL,
- WavPlayerCtrlMoveR,
- WavPlayerCtrlOk,
- WavPlayerCtrlBack,
- } WavPlayerCtrl;
- typedef void (*WavPlayerCtrlCallback)(WavPlayerCtrl ctrl, void* context);
- #define DATA_COUNT 116
- struct WavPlayerView {
- View* view;
- WavPlayerCtrlCallback callback;
- void* context;
- };
- typedef struct {
- bool play;
- float volume;
- size_t start;
- size_t end;
- size_t current;
- uint8_t data[DATA_COUNT];
- uint16_t bits_per_sample;
- uint16_t num_channels;
- } WavPlayerViewModel;
- WavPlayerView* wav_player_view_alloc();
- void wav_player_view_free(WavPlayerView* wav_view);
- View* wav_player_view_get_view(WavPlayerView* wav_view);
- void wav_player_view_set_volume(WavPlayerView* wav_view, float volume);
- void wav_player_view_set_start(WavPlayerView* wav_view, size_t start);
- void wav_player_view_set_end(WavPlayerView* wav_view, size_t end);
- void wav_player_view_set_current(WavPlayerView* wav_view, size_t current);
- void wav_player_view_set_play(WavPlayerView* wav_view, bool play);
- void wav_player_view_set_data(WavPlayerView* wav_view, uint16_t* data, size_t data_count);
- void wav_player_view_set_bits(WavPlayerView* wav_view, uint16_t bit);
- void wav_player_view_set_chans(WavPlayerView* wav_view, uint16_t chn);
- void wav_player_view_set_ctrl_callback(WavPlayerView* wav_view, WavPlayerCtrlCallback callback);
- void wav_player_view_set_context(WavPlayerView* wav_view, void* context);
- #ifdef __cplusplus
- }
- #endif
|