From 7f4ac2fadfbc22b608332daefcb4f6105e53ea9b Mon Sep 17 00:00:00 2001 From: evgeny Date: Mon, 19 Oct 2026 13:56:17 +0200 Subject: [PATCH] Register radio invitation service and shared core events --- src/chat/chat_event.h | 1 + src/transport_layer/etcp_api.h | 3 ++- src/utun_instance.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/chat/chat_event.h b/src/chat/chat_event.h index bf61027f..11f2dd60 100644 --- a/src/chat/chat_event.h +++ b/src/chat/chat_event.h @@ -87,6 +87,7 @@ extern "C" { #define CHAT_EVT_LOCAL_INVITE 62 /* [node:8BE][name_len:1][name:UTF8][invite_link:UTF8], без NUL */ #define CHAT_EVT_LOCAL_DELIVERY 63 /* [request:8BE][node:8BE][status:1], local_delivery_status, не результат JOIN */ #define CHAT_EVT_LOCAL_DISCOVERY_ACTIVE 64 /* [active:1], Android MulticastLock */ +#define CHAT_EVT_RADIO_CALL 65 /* [id:8LE][group:8LE][peer:8LE][state:1][reason:1][incoming:1], radio_call.h */ typedef void (*chat_event_handler_fn)(struct UTUN_INSTANCE* inst, int type, const uint8_t* data, int len); diff --git a/src/transport_layer/etcp_api.h b/src/transport_layer/etcp_api.h index 7a867a36..d2d15cfd 100644 --- a/src/transport_layer/etcp_api.h +++ b/src/transport_layer/etcp_api.h @@ -45,7 +45,7 @@ extern "C" { // 0x11 CONN_MGR, 0x32 ADMIN_KEY, 0x33 JOIN, 0x34 DM, // 0x35 DM_MAILBOX, 0x36 CALL, 0x37 FILE_TRANSFER, 0x38 DM_MEDIA, 0x39 MEMBER_FILES, // 0x3A GROUP_AVATAR, 0x3B NAT_DETECTION, 0x3C STREAM, -// 0x3D CALL_VIDEO_CONTROL, 0x3E CALL_VIDEO, 0x3F CALL_AUDIO +// 0x3D CALL_VIDEO_CONTROL, 0x3E CALL_VIDEO, 0x3F CALL_AUDIO, 0x40 RADIO_CALL // // !!! Новый ID: впиши его в нужный реестр выше и убедись, что значение // не занято в том же пространстве. @@ -85,6 +85,7 @@ extern "C" { #define ETCP_RT_ID_CALL_VIDEO_CONTROL 0x3D // возможности и восстановление видеотрека #define ETCP_RT_ID_CALL_VIDEO 0x3E // видео, отдельный ACK/debt/backpressure #define ETCP_RT_ID_CALL_AUDIO 0x3F // аудио, независимо от сигналинга/видео +#define ETCP_RT_ID_RADIO_CALL 0x40 // адресное приглашение участника в рацию CHAT-канала #define ETCP_RT_ID_FILE_TRANSFER 0x37 // file_transfer — передача неизменяемых файлов #define ETCP_RT_ID_DM_MEDIA 0x38 // dm_media — custody, location и подтверждения медиа #define ETCP_RT_ID_MEMBER_FILES 0x39 // member_files — каталоги и файлы участников группы diff --git a/src/utun_instance.h b/src/utun_instance.h index dca94fe1..958fd6a7 100644 --- a/src/utun_instance.h +++ b/src/utun_instance.h @@ -51,6 +51,7 @@ struct dm_media_state; struct file_transfer; struct call_ctx; /* call/call.c */ struct radio_instance; /* radio/radio.c */ +struct radio_call_context; /* radio/radio_call.c */ struct radio_headless; /* radio/radio_headless.c */ struct stream_service; /* stream/stream.c — подписки и публикация данных */ struct uasync_s; @@ -241,6 +242,7 @@ struct UTUN_INSTANCE { struct file_transfer* file_transfer; // общий движок передачи файлов с CM-владением struct member_files* member_files; // файловый сервис участников CHAT-групп struct call_ctx* call; // call/call.c — P2P audio call + struct radio_call_context* radio_call; // адресные приглашения в рацию, принадлежит чат-сервису void* call_audio; // call/call_headless.c — audio stream socket struct radio_instance* radio; // radio/radio.c — PTT walkie-talkie (frame cb + counters) struct radio_headless* radio_headless; // radio/radio_headless.c — audio stream socket