{ Copyright (C) 2026 - Uladzimir Karpenka, EW8BAK This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. } unit WebPageHtml; { WebPageHtml.pas — Встроенный HTML/CSS/JS интерфейс веб-пульта HPSDR. Содержит единственную функцию GetIndexHtml, которая возвращает полную HTML-страницу (одним файлом) для отправки клиенту по HTTP GET /. ИСПРАВЛЕНИЯ: - Device-overlay (DEV): discovery/connect/saved-CRUD, паритет с десктоп-диалогом. START теперь открывает overlay (если не подключены); STOP шлёт disconnect. - Кнопка START/STOP добавлена в тулбар 1 (зелёная/красная) - Кнопка RX/TX удалена из тулбара 2 - NR/NB/ANF: cur обновляется локально сразу при клике (иначе повторный клик инвертировал уже отправленное значение) - Opus: decodeFrame() правильный метод, async/await - Opus: opQueue буферизует пакеты пока WASM не готов - Opus: AudioContext создаётся только по user gesture (оверлей) - SPANS: строятся из state.rate_presets (HPSDR/Pluto разные наборы) - (Mode fix) modTglBtn теперь отображает ТЕКУЩИЙ активный режим (LSB/USB, CWL/CWU, AM/SAM, FM), а не следующий. При клике переключает на парный режим внутри группы. - (Mode fix) cwBtn удалён — его роль выполняет modTglBtn при CW группе. - (Mode fix) syncModGrp + updModTglLabel корректно синхронизируют UI из server state: выпадающий список и кнопка отражают десктоп. - (Mode fix) modGrpSel.onchange при смене группы сразу отправляет команду mode с дефолтным режимом группы (LSB, CWL, FM, AM). } {$IFDEF FPC} {$MODE Delphi} {$LONGSTRINGS ON} {$ENDIF} interface function GetIndexHtml: string; implementation function GetIndexHtml: string; begin Result := '
' + '' + '' + '