Commit Graph
243 Commits
Author SHA1 Message Date
evgeny 1e9264735b Fix desktop hover and emoji playback; share Android chat background 2026-10-02 23:19:13 +03:00
evgeny 35648a19ce Avoid Windows poll macro collision in PTT hotkey manager 2026-10-02 17:32:46 +03:00
evgeny 23368a5bbe Add Android boot startup, lazy settings, emoji and DM calls
Add battery optimization controls and configurable boot startup. Keep message sounds in the application and render general settings lazily to avoid ANRs. Add animated emoji controls and live BGP availability for direct-message calls on Android and desktop.
2026-10-02 17:18:24 +03:00
evgeny bd082a26bf Раздели аудиопотоки и привяжи AEC к фактическому общему выходу 2026-10-02 10:22:34 +03:00
evgeny 217e5795bf Раздели PCM-сессии и исправь частоту и перемотку звука 2026-10-02 02:00:50 +03:00
evgeny 40b974b29c Исправь потоковый AGC и применяй mute после AEC 2026-10-02 01:56:10 +03:00
evgeny bdcf8b5634 Сохрани накопленные исправления аудио, async и диагностики 2026-10-02 01:49:32 +03:00
evgeny 203ae61eda Share bounded thumbnail workers and keep PM downloads in DM transport 2026-10-01 19:12:25 +03:00
evgeny 3b0609fe76 Reject corrupt voice containers and remove unused synchronous playback 2026-10-01 18:51:44 +03:00
evgeny 20322e7ecb Show PM voice and video delivery status in both shared renderers 2026-10-01 18:49:59 +03:00
evgeny be8dbcf25e Remove duplicate GUI voice encoding and keep shared worker codec 2026-10-01 18:48:09 +03:00
evgeny 225e11265f Connect Qt preparation notifications to the conversation view 2026-10-01 18:39:31 +03:00
evgeny 6da6471204 Apply task-scoped media preparation events to the shared Qt composer 2026-10-01 18:39:31 +03:00
evgeny e4a57970f0 Show preparation state for the current Qt conversation only 2026-10-01 18:39:31 +03:00
evgeny 318d72708c Preserve voice autoplay ordering while decoding in a worker 2026-10-01 18:29:43 +03:00
evgeny 172cc3a649 Update shared Qt playback controls after background decoding 2026-10-01 18:29:07 +03:00
evgeny d4a27d1975 Decode voice files asynchronously before starting Qt playback 2026-10-01 18:27:44 +03:00
evgeny c77cb9bb0a Adopt decoded voice buffers without large copies on the Qt thread 2026-10-01 18:27:44 +03:00
evgeny c58b92ecd7 Render typed PM media using shared Qt message roles 2026-10-01 17:57:43 +03:00
evgeny a281165450 Keep channel download commands out of the shared message delegate 2026-10-01 17:56:29 +03:00
evgeny 4f76b4d765 Dispatch Qt attachments using the target captured by the composer 2026-10-01 17:54:48 +03:00
evgeny d1f03f2f80 Enable shared Qt voice and video composition for PM 2026-10-01 17:53:41 +03:00
evgeny 0d3f2952c1 Move Qt recording buffers to background preparation without copies 2026-10-01 17:52:38 +03:00
evgeny 934f1ccd1f Use the existing diagnostic macros for desktop PM errors 2026-10-01 16:32:14 +03:00
evgeny 7fee3ec551 Render asynchronous PM history and submit desktop file sends 2026-10-01 16:24:09 +03:00
evgeny 1ceb09062f Show PM file delivery state without invoking group downloads 2026-10-01 16:22:54 +03:00
evgeny 570f3dfab3 Enable original file attachments in the desktop PM composer 2026-10-01 16:22:32 +03:00
evgeny 72b5a9887f chatgui: measure duplex audio stalls and record SM call evidence 2026-10-01 01:36:34 +03:00
evgeny 111432aa64 conn_mgr: race connection probes and report call path with correct RTT 2026-10-01 00:42:47 +03:00
evgeny 2d21c53b4b Improve call buffering, CM handle lifecycle and radio PTT controls 2026-09-30 17:31:53 +03:00
evgeny f12f61d7ee call: add SpeexDSP AEC (acoustic echo cancellation) for desktop + Android 2026-09-29 17:01:30 +03:00
evgeny 1176411b79 radio: Silero VAD + auto-PTT; chatgui/android: app icon and background 2026-09-29 16:19:25 +03:00
evgeny ce1f23fe46 Radio: stereo capture/playback with mono fallback; CAMCORDER source; bump RADIO_MAX_OPUS
- stereo capture: Android AudioRecord stereo (CAMCORDER source for stereo,
  voice sources fall back to CAMCORDER) + desktop separate miniaudio
  capture/playback devices (no asymmetric duplex)
- Opus stereo encode/decode, voice_jitter stereo (per-channel frame_size,
  slot-based SoundTouch)
- radio_audio_start takes explicit capture_channels (stereo->mono fallback)
- RADIO_MAX_OPUS 256->512 (128kbps stereo frames up to 320B)
- radio_capture_stereo setting + desktop radio settings UI (opus mode/bitrate,
  capture stereo)
- radio_send_to send stats logging (etcp_send ok/fail per second)
2026-09-29 02:31:41 +03:00
evgeny 3131dcbb7c Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing 2026-09-27 02:51:47 +03:00
evgeny b90dc752d2 call: две фазы исходящего вызова — индикация + разные гудки (desktop/Android) 2026-09-23 19:16:53 +03:00
evgeny 7198154106 chatgui: клик по медиа с отсутствующим файлом — сброс пометки и перекачка 2026-09-22 21:59:59 +03:00
evgeny 0e625da109 call: ретрансмит INVITE каждые 2с + fail-fast при отсутствии маршрута (6с) 2026-09-22 16:06:52 +03:00
evgeny cc0dcb071e chat: UI настройки звука канала (Android toggle + JNI, desktop через C API) + trampoline 2026-09-22 01:25:55 +03:00
evgeny 845af9200d Stop call ring sound immediately on accept 2026-09-21 19:41:21 +03:00
evgeny 9793733cd5 chatgui: диагностика воспроизведения голосовых сообщений (Windows)
- sound_manager: ma_engine_init/playRawPcm логируют через DEBUG_* (qWarning/qDebug терялись в GUI-приложении без консоли); детальный результат старта PCM (rc/is_playing/cursor)
- main: ранняя инициализация лога в GUI-потоке до SoundManager::init, чтобы диагностика инициализации попала в файл
- messagedelegate: лог клика по Play/timeline (filePath/dlState/существует ли файл)
- voiceplayback: лог заголовка opus (sr/ch/frameSamples)

Попутные правки:
- u_async: фикс двойного close wakeup_pipe (eventfd/Windows)
- chat_core: NULL-guard в get_db/is_initialized
- android: sqlite открывается в utun_instance_init, cleanup stale-потока без утечки fd
- android SettingsScreen: компактная раскладка имени интерфейса
2026-09-21 18:59:04 +03:00
evgeny 6a0373ee73 call: диагностика ставок TX/RX и детект сталла аудио-девайса с хард-ресинком 2026-09-21 16:54:14 +03:00
evgeny e885fe30f5 chatgui: remove universal black background from video window (fix black boxes around controls) 2026-09-21 12:50:06 +03:00
evgeny cd0757e272 chatgui: declare metatype for shared_ptr<vector<int16_t>> (Qt5 build fix) 2026-09-21 12:42:21 +03:00
evgeny f5fece4959 chatgui: fix video playback on Windows (metatype registration + swscale YUVJ range) 2026-09-21 12:39:18 +03:00
evgeny 2f1545de38 chatgui: fix Qt5 build — QMouseEvent/QWheelEvent position() -> localPos()/posF() 2026-09-21 00:51:48 +03:00
evgeny 738cfe7835 radio: адаптивный джиттер-буфер (pre-roll, симметричный темп, reorder) + AGC-компрессор микрофона
- voice_jitter: vj_create_cfg (target_ms/min_tempo/max_tempo/pre_roll), pre-roll
  с таймаутом, vj_end для дренажа остатка, глубина учитывает внутренний буфер SoundTouch
- radio_audio: reorder по seq (mesh, out-of-order через соседей), force-flush pending
  по таймауту и FIN, компрессор микрофона (AGC, конфиг [chatserver]), статистика буфера
- audio_compressor: clear_output для потокового слива без потери gain_smoothed
- chatgui messagelist: fromUtf8 для emoji-строк
- тесты: pre-roll/симметричный темп, reorder, late-drop
2026-09-20 14:39:25 +03:00
evgeny b96ed8bd00 radio: PTT-радио в каналах (src/radio + chatgui + chatgui-android)
Новый модуль src/radio (radio/radio_audio/radio_headless) — push-to-talk
радио поверх topo-групп, доставка аудио в канал, headless-режим и тесты.
Интеграция в chatgui (ptt_hotkey_manager, radio_audio_engine, радионастройки,
вызовы) и chatgui-android (RadioAudioEngine, RadioOverlayService, UI).
2026-09-19 17:09:00 +03:00
evgeny e4557b0473 dm: маршрутизация через общую группу (group_id), JSON-эскейпинг; звонки: иконки/UI в desktop и android 2026-09-16 15:05:48 +03:00
evgeny b483335c06 bgp/ncd: владение conn через NCD-handle в senders_list; call audio route persist + incoming call sound 2026-09-16 13:29:28 +03:00
evgeny b11e77e4c0 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
2026-09-16 10:17:57 +03:00