From 4389b511bf318bd6dc4a81dadf0be7583e95befa Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 27 Oct 2026 14:28:02 +0100 Subject: [PATCH] Align audio ownership comments with lease and recovery behavior --- tools/chatgui/src/audio_capture.h | 2 +- tools/chatgui/src/call_audio_engine.h | 2 +- tools/chatgui/src/radio_audio_engine.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/chatgui/src/audio_capture.h b/tools/chatgui/src/audio_capture.h index bb030cab3..309f6a56f 100644 --- a/tools/chatgui/src/audio_capture.h +++ b/tools/chatgui/src/audio_capture.h @@ -57,7 +57,7 @@ private: std::atomic m_closeDone{true}; // Worker отпустил Session; thread может ещё требовать join. Ready m_ready; // GUI-подготовка потребителя при открытии/восстановлении. std::function m_stopped; // GUI-остановка подготовленного потребителя после завершения callback. - Callback m_callback; // Аппаратная доставка PCM после successful ready. + Callback m_callback; // Аппаратная доставка PCM после успешного ready. Role m_role = Role::Radio; // Выбранный слот текущей подписки. bool m_prepared = false; // ready успешно выполнен и должен быть уравновешен stopped. }; diff --git a/tools/chatgui/src/call_audio_engine.h b/tools/chatgui/src/call_audio_engine.h index 610142642..ed45062fa 100644 --- a/tools/chatgui/src/call_audio_engine.h +++ b/tools/chatgui/src/call_audio_engine.h @@ -75,7 +75,7 @@ private: QString m_captureId; // Запрошенный backend ID, только GUI. QString m_captureError; // Fatal отсутствие PCM; цифровая тишина считается рабочим входом. AudioDevice m_capture; // Единственное устройство захвата, без собственного playback device. - AudioCaptureLease m_microphone; // Исключительное владение микрофоном, включая асинхронное закрытие. + AudioCaptureLease m_microphone; // Shared-допуск: исключает publisher до завершения capture/асинхронного закрытия. VoiceAudioIo m_voice; // Capture/RX workers и ограниченные очереди PCM/команд. bool m_outputAttached = false; // Источник зарегистрирован в микшере, устройство может ещё восстанавливаться. QTimer m_recoveryTimer; // Опрос устройств/PCM каждые200мс, после stop также ждёт close worker. diff --git a/tools/chatgui/src/radio_audio_engine.h b/tools/chatgui/src/radio_audio_engine.h index 0e5e6382f..7d4986266 100644 --- a/tools/chatgui/src/radio_audio_engine.h +++ b/tools/chatgui/src/radio_audio_engine.h @@ -83,7 +83,7 @@ private: void updateTalking(); // Объединяет два ручных флага, посылает упорядоченную PTT-команду и talkingChanged при изменении. bool m_buttonTalking = false, m_hotkeyTalking = false; // GUI-поток void pauseDevices(); // Перед reset контекста SoundManager закрывает capture, отсоединяет output, сбрасывает playback. - void recoverDevices(); // При активной сессии восстанавливает устройства/AEC; отсутствие PCM 1с блокирует capture до смены входа/start. + void recoverDevices(); // Восстанавливает устройства/AEC; отсутствие PCM 1с блокирует capture до смены входа/новой сессии. void openCapture(); // Подписка Role::Radio; ready/stopped запускают/останавливают core capture и его worker. void updateState(); // Снимает статус ядра и готовность устройств, уведомляет GUI при изменениях. void reconfigureCapture(); // Переоткрывает только capture, сохраняя RX/output и ручной запрос PTT.