- src/call/: сигналинг (call.c, call_proto.h, ETCP_RT_ID_CALL 0x36) + релей медиа + headless аудио-сокет (call_headless.c, call_audio_bind) + Opus/jitter/тоны - chat: события CHAT_EVT_CALL_* (34–40), CHAT_EVT_DM_MESSAGES (41), DM-трамплины - chatgui: call window, miniaudio I/O, audio_frame_ring, test_audio_jitter - chatgui-android: CallScreen/IncomingCallDialog, аудио-роутинг, JNI, рингтон - tests: test_call, test_call_headless
33 lines
1.2 KiB
C
33 lines
1.2 KiB
C
#ifndef CALL_TONES_H
|
|
#define CALL_TONES_H
|
|
|
|
// call_tones.h — генератор тонов звонка (48kHz mono int16): глитч при сталле
|
|
// и тон завершения. Используется только аудио-потоком (single-writer).
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct call_tones;
|
|
|
|
struct call_tones* call_tones_create(void);
|
|
void call_tones_destroy(struct call_tones* t);
|
|
void call_tones_reset(struct call_tones* t); /* в тишину */
|
|
|
|
void call_tones_glitch_start(struct call_tones* t); /* запустить/продолжить цикл глитча */
|
|
void call_tones_glitch_stop(struct call_tones* t); /* прекратить глитч (тишина) */
|
|
|
|
void call_tones_ended_start(struct call_tones* t); /* 3 нисходящих тона, один раз */
|
|
int call_tones_ended_pending(struct call_tones* t); /* 1 = тон завершения ещё звучит */
|
|
|
|
/* Выдать до max_samples сэмплов (тон или тишина). Возвращает записанное число. */
|
|
int call_tones_render(struct call_tones* t, int16_t* out, int max_samples);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CALL_TONES_H */
|