Carry voice PM receipts and document shared media completion semantics
This commit is contained in:
1 parent
e943879c50
commit
31e461dca2
3 files changed
+5
-4
No files matched your search
@@ -1,6 +1,6 @@
|
||||
/* Отправка подготовленного изображения: JPEG/PNG в канал/PM через attachment_send, другие форматы — только в канал.
|
||||
* MIME и размеры с учётом EXIF определяет Android по содержимому. JPEG/PNG забирает собственный cache-файл caller.
|
||||
* 0 = запрос поставлен в uasync, -1 = отказ (cache остаётся caller); для канала результат — CHAT_EVT_MSG_SUBMITTED.
|
||||
* 0 = запрос поставлен в uasync, -1 = отказ (cache остаётся caller); результат — CHAT_EVT_MSG_SUBMITTED.
|
||||
* Вызовы сериализовать со stop/restart; для дополнительных форматов источник живёт до результата и удаляется caller. */
|
||||
#ifndef PHOTO_SENDER_H
|
||||
#define PHOTO_SENDER_H
|
||||
@@ -12,7 +12,7 @@ extern "C" {
|
||||
|
||||
/* channel_id — ID канала либо dm:<conv>, generation — зафиксированное поколение PM (для канала 0).
|
||||
* db_path нужен только дополнительным форматам канала; content_type — проверенный MIME.
|
||||
* reply_to — обязательные 32 байта (нули = без ответа), request_id — корреляция канального результата с UI. */
|
||||
* reply_to — обязательные 32 байта (нули = без ответа), request_id — корреляция результата локального commit с UI. */
|
||||
int photo_send(const char* channel_id, const char* src_file_path, const char* db_path,
|
||||
int width, int height, const uint8_t reply_to[32], uint64_t request_id,
|
||||
const char* content_type, uint64_t generation);
|
||||
|
||||
@@ -13,7 +13,7 @@ extern "C" {
|
||||
|
||||
/* target — десятичный ID канала либо dm:conv_id; source — NUL-путь короче 1024 байтов.
|
||||
* duration_ms=1..86400000, width/height=1..16384. Для канала reply_to — обязательные 32 байта
|
||||
* (нули = без ответа), request_id → CHAT_EVT_MSG_SUBMITTED. В DM эти поля игнорируются;
|
||||
* (нули = без ответа), request_id → CHAT_EVT_MSG_SUBMITTED для канала и DM. В DM reply_to игнорируется;
|
||||
* generation фиксирует поколение беседы, 0 захватывает его в trampoline. */
|
||||
int video_send(const char* channel_id, const char* src_file_path, const char* db_path,
|
||||
int duration_ms, int width, int height, const uint8_t reply_to[32], uint64_t request_id, uint64_t generation);
|
||||
|
||||
@@ -219,7 +219,8 @@ int voice_recorder_stop(int* out_duration_ms) {
|
||||
req->inst = instance_lite_get_instance(); req->info.kind = ATTACHMENT_VOICE; req->preset = g_rec->preset;
|
||||
req->is_dm = !strncmp(g_rec->channel_id, "dm:", 3);
|
||||
req->dm_generation = g_rec->generation;
|
||||
if (!req->is_dm) { memcpy(req->reply_to, g_rec->reply_to, sizeof(req->reply_to)); req->request_id = g_rec->request_id; }
|
||||
req->request_id = g_rec->request_id;
|
||||
if (!req->is_dm) memcpy(req->reply_to, g_rec->reply_to, sizeof(req->reply_to));
|
||||
snprintf(req->target, sizeof(req->target), "%s", g_rec->channel_id + (req->is_dm ? 3 : 0));
|
||||
if (g_rec->compressor && g_rec->compressor_enabled) {
|
||||
struct audio_compressor* replacement = audio_compressor_clone_config(g_rec->compressor);
|
||||
|
||||
Reference in new issue
Block a user