Delete local conversations atomically, retain replay protection and sequence counters, and guard asynchronous media work by history generation. Add Android avatar menu and confirmation, persistent file cleanup, and regression coverage. Fix unnamed member wire padding and compact Android member action spacing. Validation: 158 core tests passed; targeted DM tests, desktop build, Android unit tests and debug APK build passed.
40 lines
1.8 KiB
C
40 lines
1.8 KiB
C
/* Android-накопитель голосового: init → start(target,48000,1) → feed PCM int16 → stop либо cancel.
|
|
* target — channel_id либо dm:conv_id. feed копирует count mono-сэмплов; управление защищено mutex.
|
|
* stop отсоединяет PCM/компрессор и ставит attachment_send в uasync: encode/file работа идёт в worker.
|
|
* stop=0 означает постановку подготовки либо отбрасывание записи короче 500мс, не доставку сообщения.
|
|
* deinit освобождает текущую запись; завершение сетевой отправки отслеживается событиями ядра. */
|
|
#ifndef VOICE_RECORDER_H
|
|
#define VOICE_RECORDER_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct voice_recorder;
|
|
|
|
int voice_recorder_init(const char* db_path);
|
|
void voice_recorder_deinit(void);
|
|
|
|
int voice_recorder_start(const char* channel_id, int sample_rate, int channels, const uint8_t reply_to[32], uint64_t request_id, uint64_t generation);
|
|
int voice_recorder_feed(const int16_t* samples, int count);
|
|
int voice_recorder_stop(int* out_duration_ms);
|
|
void voice_recorder_cancel(void);
|
|
int voice_recorder_is_active(void);
|
|
|
|
void voice_recorder_set_preset(int preset);
|
|
int voice_recorder_get_preset(void);
|
|
void voice_recorder_set_compressor_enabled(int enabled);
|
|
int voice_recorder_is_compressor_enabled(void);
|
|
void voice_recorder_set_compressor_config(int max_gain_db, int lookback_ms, int lookahead_ms,
|
|
float rise_rate_per_sec, float target_level_db);
|
|
float voice_recorder_get_peak_level(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|