409 lines
30 KiB
HTML
409 lines
30 KiB
HTML
<!DOCTYPE HTML>
|
|
<!--
|
|
|
|
This file is part of OpenWebRX,
|
|
an open-source SDR receiver software with a web UI.
|
|
Copyright (c) 2013-2015 by Andras Retzler <randras@sdr.hu>
|
|
Copyright (c) 2019-2024 by Jakob Ketterl <dd5jfk@darc.de>
|
|
Copyright (c) 2022-2024 by Marat Fayzullin <luarvique@gmail.com>
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as
|
|
published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
-->
|
|
<html>
|
|
<head>
|
|
<title>OpenWebRX+ | Open Source SDR Web App for Everyone!</title>
|
|
<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" sizes="16x16 32x32" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="static/gfx/favicon32.png" />
|
|
<link rel="icon" type="image/png" sizes="44x44" href="static/gfx/favicon44.png" />
|
|
<link rel="icon" type="image/png" sizes="64x64" href="static/gfx/favicon64.png" />
|
|
<link rel="icon" type="image/png" sizes="96x96" href="static/gfx/favicon96.png" />
|
|
<link rel="icon" type="image/png" sizes="128x128" href="static/gfx/favicon128.png" />
|
|
<link rel="apple-touch-icon" href="apple-touch-icon.png">
|
|
<meta name="msapplication-TileImage" content="mstile-144x144.png">
|
|
<script src="compiled/receiver.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="static/lib/nanoscroller.css" />
|
|
<link rel="stylesheet" type="text/css" href="static/css/openwebrx.css" />
|
|
<link rel="stylesheet" type="text/css" href="static/css/shortcuts.css" />
|
|
<link rel="stylesheet" type="text/css" href="static/css/themes.css" />
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9, minimum-scale=0.9, shrink-to-fit=no, user-scalable=no, interactive-widget=overlays-content" />
|
|
<meta name="theme-color" content="#222" />
|
|
<script src="static/plugins.js"></script>
|
|
</head>
|
|
<body onload="openwebrx_init();">
|
|
|
|
<div id="webrx-page-container">
|
|
${header}
|
|
<div class="openwebrx-waterfall-container">
|
|
<div id="openwebrx-frequency-container">
|
|
<div class="openwebrx-bandplan-container" style="z-index:1;">
|
|
<canvas id="openwebrx-bandplan-canvas" width="0" height="0"></canvas>
|
|
</div>
|
|
<div id="openwebrx-bookmarks-container" style="z-index:2;">
|
|
<div class="openwebrx-button openwebrx-round-button openwebrx-tune-button" style="position:absolute;top:30%;left:0;z-index:3;" title="Tune down" onclick="tuneBySteps(-1);" oncontextmenu="jumpBySteps(-1);return false;">
|
|
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#left"></use></svg>
|
|
</div>
|
|
<div class="openwebrx-button openwebrx-round-button openwebrx-tune-button" style="position:absolute;top:30%;right:0;z-index:3;" title="Tune up" onclick="tuneBySteps(1);" oncontextmenu="jumpBySteps(1);return false;">
|
|
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#right"></use></svg>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-spectrum-container" style="z-index:1;">
|
|
<canvas id="openwebrx-spectrum-canvas" width="0" height="0"></canvas>
|
|
</div>
|
|
<div id="openwebrx-scale-container" style="z-index:1;">
|
|
<canvas id="openwebrx-scale-canvas" width="0" height="0"></canvas>
|
|
</div>
|
|
</div>
|
|
<div id="webrx-canvas-background">
|
|
<div id="webrx-canvas-container">
|
|
<!-- add canvas here by javascript -->
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-panels-container">
|
|
<div id="openwebrx-panels-container-left">
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-sstv-message" style="display: none; width: 619px;" data-panel-name="sstv-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-fax-message" style="display: none; width: 619px;" data-panel-name="fax-message"></div>
|
|
<div class="openwebrx-panel" id="openwebrx-panel-digimodes" style="display: none; width: 92%; max-width: 619px;" data-panel-name="digimodes">
|
|
<div id="openwebrx-digimode-canvas-container">
|
|
<div id="openwebrx-digimode-select-channel"></div>
|
|
</div>
|
|
<div id="openwebrx-digimode-content-container">
|
|
<div class="gradient"></div>
|
|
<div id="openwebrx-digimode-content" class="nano">
|
|
<div class="nano-content">
|
|
<hr style="border-top: none;border-bottom: 2px dotted;" />
|
|
<span id="openwebrx-cursor-blink"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-wsjt-message" style="display: none; width: 619px;" data-panel-name="wsjt-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-js8-message" style="display:none; width: 619px;" data-panel-name="js8-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-packet-message" style="display: none; width: 619px;" data-panel-name="aprs-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-pocsag-message" style="display: none; width: 619px;" data-panel-name="pocsag-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-page-message" style="display: none; width: 619px;" data-panel-name="page-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-hfdl-message" style="display: none; width: 619px;" data-panel-name="hfdl-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-adsb-message" style="display: none; width: 619px;" data-panel-name="adsb-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-ism-message" style="display: none; width: 619px;" data-panel-name="ism-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-dsc-message" style="display: none; width: 619px;" data-panel-name="dsc-message"></div>
|
|
<div class="openwebrx-panel openwebrx-message-panel" id="openwebrx-panel-cwskimmer-message" style="display: none; width: 619px;" data-panel-name="cwskimmer-message"></div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-m17" style="display: none;" data-panel-name="metadata-m17">
|
|
<div class="openwebrx-meta-slot">
|
|
<div class="openwebrx-meta-user-image">
|
|
<img class="directcall" src="static/gfx/openwebrx-directcall.svg">
|
|
</div>
|
|
<div class="openwebrx-m17-source"></div>
|
|
<div class="openwebrx-m17-destination"></div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-ysf" style="display: none;" data-panel-name="metadata-ysf">
|
|
<div class="openwebrx-meta-slot">
|
|
<div class="openwebrx-ysf-mode"></div>
|
|
<div class="openwebrx-meta-user-image">
|
|
<img class="directcall" src="static/gfx/openwebrx-directcall.svg">
|
|
</div>
|
|
<div class="openwebrx-ysf-source"><span class="location"></span><span class="callsign"></span></div>
|
|
<div class="openwebrx-ysf-up"></div>
|
|
<div class="openwebrx-ysf-down"></div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-dstar" style="display: none;" data-panel-name="metadata-dstar">
|
|
<div class="openwebrx-meta-slot">
|
|
<div class="openwebrx-meta-user-image">
|
|
<img class="directcall" src="static/gfx/openwebrx-directcall.svg">
|
|
</div>
|
|
<div class="openwebrx-dstar-ourcall"><span class="location"></span><span class="callsign"></span></div>
|
|
<div class="openwebrx-dstar-message"></div>
|
|
<div class="openwebrx-dstar-yourcall"></div>
|
|
<div class="openwebrx-dstar-departure"></div>
|
|
<div class="openwebrx-dstar-destination"></div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-nxdn" style="display: none;" data-panel-name="metadata-nxdn">
|
|
<div class="openwebrx-meta-slot">
|
|
<div class="openwebrx-meta-user-image">
|
|
<img class="directcall" src="static/gfx/openwebrx-directcall.svg">
|
|
<img class="groupcall" src="static/gfx/openwebrx-groupcall.svg">
|
|
</div>
|
|
<div class="openwebrx-nxdn-source"></div>
|
|
<div class="openwebrx-nxdn-name"></div>
|
|
<div class="openwebrx-nxdn-destination"></div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-dmr" style="display: none;" data-panel-name="metadata-dmr">
|
|
<div class="openwebrx-meta-slot openwebrx-dmr-timeslot-panel">
|
|
<div class="openwebrx-dmr-slot">Timeslot 1</div>
|
|
<div class="openwebrx-meta-user-image">
|
|
<img class="directcall" src="static/gfx/openwebrx-directcall.svg">
|
|
<img class="groupcall" src="static/gfx/openwebrx-groupcall.svg">
|
|
</div>
|
|
<div class="openwebrx-dmr-id"><span class="location"></span><span class="dmr-id"></span></div>
|
|
<div class="openwebrx-dmr-name"></div>
|
|
<div class="openwebrx-dmr-target"></div>
|
|
<div class="mute">
|
|
<svg viewBox="0 0 400 400"><use xlink:href="static/gfx/svg-defs.svg#meta-mute"></use></svg>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-meta-slot openwebrx-dmr-timeslot-panel">
|
|
<div class="openwebrx-dmr-slot">Timeslot 2</div>
|
|
<div class="openwebrx-meta-user-image">
|
|
<img class="directcall" src="static/gfx/openwebrx-directcall.svg">
|
|
<img class="groupcall" src="static/gfx/openwebrx-groupcall.svg">
|
|
</div>
|
|
<div class="openwebrx-dmr-id"><span class="location"></span><span class="dmr-id"></span></div>
|
|
<div class="openwebrx-dmr-name"></div>
|
|
<div class="openwebrx-dmr-target"></div>
|
|
<div class="mute">
|
|
<svg viewBox="0 0 400 400"><use xlink:href="static/gfx/svg-defs.svg#meta-mute"></use></svg>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel disabled" id="openwebrx-panel-metadata-wfm" style="display: none;" data-panel-name="metadata-wfm"></div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-hdr" style="display: none;" data-panel-name="metadata-hdr"></div>
|
|
<div class="openwebrx-panel openwebrx-meta-panel" id="openwebrx-panel-metadata-dab" style="display: none;" data-panel-name="metadata-dab"></div>
|
|
<div class="openwebrx-panel" id="openwebrx-panel-log" data-panel-name="debug" style="width: 92%; max-width: 619px;">
|
|
<div style="position: relative; height: 100%">
|
|
<div class="openwebrx-panel-inner nano" id="openwebrx-log-scroll">
|
|
<div class="nano-content">
|
|
<div id="openwebrx-client-log-title">OpenWebRX+ message log</div>
|
|
<div>
|
|
Author: <a href="http://fms.komkon.org/" target="_blank">Marat Fayzullin</a> |
|
|
<a href="https://www.openwebrx.de" target="_blank">OpenWebRX</a>
|
|
<a href="https://fms.komkon.org/OWRX" target="_blank">documentation</a> and
|
|
<a href="https://groups.io/g/openwebrx" target="_blank">support</a>
|
|
</div>
|
|
<hr />
|
|
<div id="openwebrx-messages"></div>
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-chat-inputs">
|
|
<div class="input-group" style="display: flex; justify-content: space-between;">
|
|
<input id="openwebrx-chat-name" style="width:15%; margin-right: 0.2rem" placeholder="Name" />
|
|
<input id="openwebrx-chat-message" style="width:99%; margin-right: 0.2rem" placeholder="Message" onkeydown="Chat.keyPress(event);" />
|
|
<div class="openwebrx-button" onclick="Chat.send();">Send</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel" id="openwebrx-panel-status" data-panel-name="status" style="width: 100%; max-width: 615px;" data-panel-transparent="true">
|
|
<div class="openwebrx-progressbar" id="openwebrx-bar-audio-buffer" data-type="audiobuffer"></div>
|
|
<div class="openwebrx-progressbar" id="openwebrx-bar-audio-output" data-type="audiooutput"></div>
|
|
<div class="openwebrx-progressbar" id="openwebrx-bar-audio-speed" data-type="audiospeed"></div>
|
|
<div class="openwebrx-progressbar" id="openwebrx-bar-network-speed" data-type="networkspeed"></div>
|
|
<div class="openwebrx-progressbar" id="openwebrx-bar-server-cpu" data-type="cpu"></div>
|
|
<div class="openwebrx-progressbar" id="openwebrx-bar-clients" data-type="clients"></div>
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-panels-container-right">
|
|
<div class="openwebrx-panel" id="openwebrx-panel-receiver" data-panel-name="client-params" style="width: 259px;">
|
|
<div class="openwebrx-panel-line frequencies-container">
|
|
<div class="frequencies">
|
|
<div class="webrx-actual-freq"></div>
|
|
<div class="webrx-mouse-freq"></div>
|
|
</div>
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-bookmark-button" style="display:none;" title="Add bookmark...">
|
|
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#bookmark"></use></svg>
|
|
</div>
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<select id="openwebrx-sdr-profiles-listbox" onchange="sdr_profile_changed();">
|
|
</select>
|
|
</div>
|
|
<div id="openwebrx-section-modes" class="openwebrx-section-divider" onclick="UI.toggleSection(this);">▾ Modes</div>
|
|
<div class="openwebrx-section">
|
|
<div class="openwebrx-modes openwebrx-panel-line"></div>
|
|
</div>
|
|
<div id="openwebrx-section-controls" class="openwebrx-section-divider" onclick="UI.toggleSection(this);">▾ Controls</div>
|
|
<div class="openwebrx-section">
|
|
<div class="openwebrx-panel-line">
|
|
<div title="Mute on/off" class="openwebrx-button openwebrx-slider-button openwebrx-mute-button" onclick="UI.toggleMute();">
|
|
<svg class="unmuted" viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#speaker"></use></svg>
|
|
<svg class="muted" viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#speaker-muted"></use></svg>
|
|
</div>
|
|
<input title="Volume" id="openwebrx-panel-volume" class="openwebrx-panel-slider" type="range" min="0" max="150" value="100" step="1" onchange="UI.setVolume(this.value);" oninput="UI.setVolume(this.value);">
|
|
<div title="Tuning step" class="openwebrx-button openwebrx-slider-button" onclick="tuning_step_reset();">
|
|
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#tuning-step"></use></svg>
|
|
</div>
|
|
<select id="openwebrx-tuning-step-listbox" class="openwebrx-panel-listbox" onchange="tuning_step_changed();">
|
|
<option value="1">1Hz</option>
|
|
<option value="10">10Hz</option>
|
|
<option value="20">20Hz</option>
|
|
<option value="50">50Hz</option>
|
|
<option value="100">100Hz</option>
|
|
<option value="500">500Hz</option>
|
|
<option value="1000">1kHz</option>
|
|
<option value="2500">2.5kHz</option>
|
|
<option value="3000">3kHz</option>
|
|
<option value="5000">5kHz</option>
|
|
<option value="6000">6kHz</option>
|
|
<option value="6250">6.25kHz</option>
|
|
<option value="8330">8.33kHz</option>
|
|
<option value="9000">9kHz</option>
|
|
<option value="10000">10kHz</option>
|
|
<option value="12000">12kHz</option>
|
|
<option value="12500">12.5kHz</option>
|
|
<option value="25000">25kHz</option>
|
|
<option value="50000">50kHz</option>
|
|
</select>
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<div title="Auto-set squelch level (right-click for scanner)" class="openwebrx-squelch-auto openwebrx-button openwebrx-slider-button">
|
|
<svg class="squelch" viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#squelch"></use></svg>
|
|
<svg class="scanner" viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#scanner-running"></use></svg>
|
|
</div>
|
|
<input title="Squelch" class="openwebrx-squelch-slider openwebrx-panel-slider" type="range" min="-150" max="0" value="-150" step="1">
|
|
<div title="Auto-adjust waterfall colors (right-click for continuous)" id="openwebrx-waterfall-colors-auto" class="openwebrx-button openwebrx-slider-button" onclick="Waterfall.setAutoRange();">
|
|
<svg class="auto" viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#waterfall-auto"></use></svg>
|
|
<svg class="continuous" viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#waterfall-continuous"></use></svg>
|
|
</div>
|
|
<input title="Waterfall minimum level" id="openwebrx-waterfall-color-min" class="openwebrx-panel-slider" type="range" min="-200" max="100" value="50" step="1" onchange="Waterfall.updateColors(0);">
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<div title="Noise reduction on/off" class="openwebrx-nr-toggle openwebrx-button openwebrx-slider-button" onclick="UI.toggleNR();">
|
|
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#noise-reduce"></use></svg>
|
|
</div>
|
|
<input title="Noise reduction level" disabled id="openwebrx-panel-nr" class="openwebrx-panel-slider" type="range" min="-10" max="10" value="0" step="1" onchange="UI.setNR(this.value)" oninput="UI.setNR(this.value)">
|
|
<div title="Set waterfall colors to default" id="openwebrx-waterfall-colors-default" class="openwebrx-button openwebrx-slider-button" onclick="Waterfall.setDefaultRange();">
|
|
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#waterfall-default"></use></svg>
|
|
</div>
|
|
<input title="Waterfall maximum level" id="openwebrx-waterfall-color-max" class="openwebrx-panel-slider" type="range" min="-200" max="100" value="50" step="1" onchange="Waterfall.updateColors(1);">
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-section-settings" class="openwebrx-section-divider" onclick="UI.toggleSection(this);">▴ Settings</div>
|
|
<div class="openwebrx-section">
|
|
<div class="openwebrx-panel-line">
|
|
<div title="Reset theme" class="openwebrx-button openwebrx-slider-button" onclick="UI.setTheme('default');">
|
|
<svg viewBox="56 -900 835 835" style="overflow: visible"><use xlink:href="static/gfx/svg-defs.svg#theme-chooser"></use></svg>
|
|
</div>
|
|
<select title="Theme" id="openwebrx-themes-listbox" class="openwebrx-panel-listbox" onchange="UI.setTheme(this.value);">
|
|
<option value="default">Default</option>
|
|
<option value="brown">Brown</option>
|
|
<option value="red">Red</option>
|
|
<option value="green">Green</option>
|
|
<option value="khaki">Khaki</option>
|
|
<option value="blue">Blue</option>
|
|
<option value="navy">Navy</option>
|
|
<option value="black">Black</option>
|
|
<option value="night">Night</option>
|
|
</select>
|
|
<div title="Reset opacity" id="openwebrx-opacity-reset" class="openwebrx-button openwebrx-slider-button" onclick="UI.setOpacity(100);">
|
|
<svg viewBox="56 -900 835 835"><use xlink:href="static/gfx/svg-defs.svg#opacity"></use></svg>
|
|
</div>
|
|
<input title="Opacity" id="openwebrx-opacity-slider" class="openwebrx-panel-slider" type="range" min="20" max="100" value="100" step="1" oninput="UI.setOpacity(this.value);">
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<div title="Reset waterfall theme" class="openwebrx-button openwebrx-slider-button" onclick="UI.setWfTheme('default');">
|
|
<svg viewBox="56 -900 835 835" style="overflow: visible"><use xlink:href="static/gfx/svg-defs.svg#wf-theme-chooser"></use></svg>
|
|
</div>
|
|
<select title="Waterfall theme" id="openwebrx-wf-themes-listbox" class="openwebrx-panel-listbox" onchange="UI.setWfTheme(this.value);">
|
|
<option value="default">Default</option>
|
|
<option value="turbo">Turbo</option>
|
|
<option value="ha7ilm">Legacy</option>
|
|
<option value="teejeez">Teejeez</option>
|
|
<option value="ocean">Ocean</option>
|
|
<option value="eclipse">Eclipse</option>
|
|
</select>
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<label class="openwebrx-checkbox">
|
|
<input id="openwebrx-frame-checkbox" type="checkbox" onchange="UI.toggleFrame(this.checked);" />
|
|
Draw white frame around panels
|
|
</label>
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<label class="openwebrx-checkbox">
|
|
<input id="openwebrx-wheel-checkbox" type="checkbox" onchange="UI.toggleWheelSwap(this.checked);" />
|
|
Hold mouse wheel down to tune
|
|
</label>
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<label class="openwebrx-checkbox">
|
|
<input id="openwebrx-bandplan-checkbox" type="checkbox" onchange="UI.toggleBandplan(this.checked);" />
|
|
Show band plan ribbon
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-section-display" class="openwebrx-section-divider" onclick="UI.toggleSection(this);">▾ Display</div>
|
|
<div class="openwebrx-section">
|
|
<div class="openwebrx-panel-line">
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-zoom-button" onclick="zoomInOneStep();" title="Zoom in one step"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#zoom-in"></use></svg></div>
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-zoom-button" onclick="zoomOutOneStep();" title="Zoom out one step"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#zoom-out"></use></svg></div>
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-zoom-button" onclick="zoomInTotal();" title="Zoom in totally"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#zoom-in-total"></use></svg></div>
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-zoom-button" onclick="zoomOutTotal();" title="Zoom out totally"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#zoom-out-total"></use></svg></div>
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-zoom-button" onclick="UI.toggleSpectrum();" title="Toggle spectrum display"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#spectrum"></use></svg></div>
|
|
<div class="openwebrx-button openwebrx-square-button openwebrx-record-button" onclick="UI.toggleRecording();" title="Record audio">REC</div>
|
|
</div>
|
|
<div class="openwebrx-panel-line">
|
|
<div id="openwebrx-smeter">
|
|
<div class="openwebrx-smeter-bar"></div>
|
|
</div>
|
|
<div id="openwebrx-clock-utc">00:00 UTC</div>
|
|
<div id="openwebrx-smeter-db">0 dB</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-error-overlay" class="openwebrx-overlay" style="display:none;">
|
|
<div class="overlay-content">
|
|
<div>This receiver is currently unavailable due to technical issues.</div>
|
|
<div>Error Message:</div>
|
|
<div class="errormessage"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-autoplay-overlay" class="openwebrx-overlay" style="display:none;">
|
|
<div class="overlay-content">
|
|
<svg viewBox="0 0 700 700"><use xlink:href="static/gfx/svg-defs.svg#play-button"></use></svg>
|
|
<div>Start OpenWebRX+</div>
|
|
</div>
|
|
</div>
|
|
<div id="openwebrx-dialog-bookmark" class="openwebrx-dialog" style="display:none;">
|
|
<form>
|
|
<div class="form-field">
|
|
<label for="name">Name:</label>
|
|
<input type="text" id="name" name="name" required="required">
|
|
</div>
|
|
<div class="form-field">
|
|
<label for="frequency">Frequency:</label>
|
|
<input type="number" id="frequency" name="frequency" min="1">
|
|
</div>
|
|
<div class="form-field">
|
|
<label for="modulation">Modulation:</label>
|
|
<select name="modulation" id="modulation"></select>
|
|
</div>
|
|
<div class="form-field">
|
|
<label for="underlying">Underlying:</label>
|
|
<select name="underlying" id="underlying"></select>
|
|
</div>
|
|
<div class="form-field">
|
|
<label for="name">Description:</label>
|
|
<input type="text" id="description" name="description">
|
|
</div>
|
|
<div class="form-field">
|
|
<label for="name">Scannable</label>
|
|
<input type="checkbox" id="scannable" name="scannable" checked>
|
|
</div>
|
|
<div class="buttons">
|
|
<div class="openwebrx-button" data-action="cancel">Cancel</div>
|
|
<div class="openwebrx-button" data-action="submit">Ok</div>
|
|
</div>
|
|
<input type="submit" style="display:none;">
|
|
</form>
|
|
</div>
|
|
</body>
|
|
</html>
|