call: P2P аудиозвонки — сигналинг, релей медиа, аудио-контур, headless/desktop/android
- 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
This commit is contained in:
1 parent
0157f7f96b
commit
b11e77e4c0
78 files changed
+7053
-70
No files matched your search
+2
-2
@@ -269,7 +269,7 @@ void dm_mailbox_destroy(struct UTUN_INSTANCE* inst) {
|
||||
|
||||
/* ── Публичные операции ── */
|
||||
|
||||
/* Собрать storage-узлы (dm_storage=yes) из общих групп без дублей. */
|
||||
/* Собрать storage-узлы (storage=yes в adm_tags) из общих групп без дублей. */
|
||||
int dm_mailbox_get_storage_nodes(struct UTUN_INSTANCE* inst, uint64_t* out, int max) {
|
||||
struct dm_mb_state* mb = mb_of(inst);
|
||||
if (!inst || !out || max <= 0 || !mb || !mb->db) return 0;
|
||||
@@ -291,7 +291,7 @@ int dm_mailbox_get_storage_nodes(struct UTUN_INSTANCE* inst, uint64_t* out, int
|
||||
uint64_t nid = (uint64_t)sqlite3_column_int64(st, 0);
|
||||
if (nid == my_id) continue;
|
||||
const char* tags = (const char*)sqlite3_column_text(st, 1);
|
||||
if (tags && json_flat_get(tags, "dm_storage", buf, sizeof(buf)) == 0
|
||||
if (tags && json_flat_get(tags, "storage", buf, sizeof(buf)) == 0
|
||||
&& strcmp(buf, "yes") == 0) {
|
||||
int dup = 0;
|
||||
for (int i = 0; i < found; i++) if (out[i] == nid) { dup = 1; break; }
|
||||
|
||||
Reference in new issue
Block a user