131 Commits

Author SHA1 Message Date
72aad99d20 Merge branch 'develop' into csdr++ 2021-08-03 22:22:43 +02:00
ad59b1b3b7 add codecserver help text 2021-08-03 19:52:49 +02:00
5256409ddf update m17-cxx-demod to 2.2 in docker 2021-08-03 19:51:03 +02:00
65950565b6 bump develop to next version (1.2.0) 2021-08-03 15:57:36 +02:00
66492ff40a make sure we send all the data 2021-08-03 15:03:20 +02:00
52df289230 update tools to release tags 2021-08-02 21:54:11 +02:00
1845fa3f39 prepare release 1.1.0 2021-08-02 18:26:16 +02:00
fa49e59200 increase required connector version to 0.5 (0.4 would work but cannot be
parsed)
2021-08-02 18:11:45 +02:00
d0d3e67174 add missing digiham components 2021-08-02 17:39:18 +02:00
de14fa4b93 don't compile the tests (they're optional by now) 2021-07-23 11:44:14 +02:00
355b47760c update m17 in docker to v2.0 2021-07-23 10:52:21 +02:00
ad396fa970 remove "unvoiced quality" setting 2021-07-20 13:33:26 +02:00
38cc900b1c Merge branch 'develop' into csdr++ 2021-07-15 12:55:43 +02:00
e6dd1e0fde disable squelch for DRM, too 2021-07-15 12:54:21 +02:00
0277ae8722 fix plutosdr soapy module url 2021-07-15 12:53:48 +02:00
db0efc14f5 use csdr++ timingrecovery 2021-07-10 23:03:14 +02:00
72e05f5276 use csdr++ bpsk & varicode 2021-07-09 22:00:01 +02:00
e088006b4d use new csdr++ bandpass filters 2021-07-09 20:25:07 +02:00
483d954b95 Merge branch 'develop' into csdr++ 2021-07-09 13:53:25 +02:00
12c032112b handle errors caused by values that don't fit into json 2021-07-09 13:52:59 +02:00
4e61ed3645 handle errors while parsing dprs data 2021-07-09 13:52:33 +02:00
a92f587734 use csdr++ gain 2021-07-06 21:42:29 +02:00
8f0b33eb83 activate adpcm sync flag 2021-07-06 21:20:33 +02:00
14eb71c8de implement adpcdm synchronization, refs #203 2021-07-06 19:40:06 +02:00
1a9bcdeb07 use new csdr++ deemphasis filters 2021-07-06 16:26:16 +02:00
6cce1ccdaa use new csdr++ squelch and power; disable squelch when unused 2021-07-06 00:05:24 +02:00
f0933472c9 use cxdr++ limit 2021-07-05 17:41:11 +02:00
fc5fb9166e use new adpcm methods in csdr++ 2021-07-05 17:20:57 +02:00
59de2628c3 Merge branch 'develop' into csdr++ 2021-07-05 13:06:06 +02:00
6a59369c62 update remote device input field behaviour 2021-07-05 12:58:16 +02:00
44c1e00509 use csdr++ fractionaldecimator 2021-07-05 12:42:35 +02:00
0039d5fdcb update codecserver in docker 2021-07-04 16:13:45 +02:00
4a68c9d3da use new csdr++ firdecimate 2021-07-02 19:15:10 +02:00
2d183ffeac use new csdr++ shift 2021-07-01 15:52:30 +02:00
808418c723 use csdr++ realpart 2021-06-30 23:17:37 +02:00
c3cac092bd use new fft functions in csdr++ 2021-06-30 23:06:28 +02:00
8797615720 use new fft 2021-06-30 21:23:25 +02:00
b3cdc568d9 use new csdr++ converter 2021-06-30 14:22:26 +02:00
666c286485 use new dcblock 2021-06-30 13:53:56 +02:00
d431e37d7b use am and fm demodulator 2021-06-29 11:52:17 +02:00
566b747928 Merge branch 'develop' into csdr++ 2021-06-28 15:14:24 +02:00
40075c1adb check if id contained in radioid data matches request 2021-06-28 13:04:47 +02:00
22f0d90896 use new agc in all the spots 2021-06-28 13:01:26 +02:00
6b4432982e use new csdr++; first stage: agc 2021-06-25 00:29:56 +02:00
7a4ed3b383 update path accordingly 2021-06-19 20:23:26 +02:00
2479c2207a update soapysdrplay3 2021-06-19 20:16:21 +02:00
48eb754170 collapse empty meta lines 2021-06-18 09:31:02 +02:00
ddcdd550fd update dependencies 2021-06-17 15:01:10 +02:00
a48a5e366b improve variable usage 2021-06-17 14:58:16 +02:00
8b34e6c689 remove dsd 2021-06-17 14:57:59 +02:00
e71cd01522 always update to ensure removal of old state 2021-06-17 14:57:24 +02:00
2ecefcecd5 update dependency handling for nxdn 2021-06-17 14:13:17 +02:00
5d8fd9ae95 update codecserver and digiham in docker 2021-06-15 23:09:32 +02:00
f5c2525f22 switch NXDN to use digiham decoder; add meta panel 2021-06-15 22:50:30 +02:00
34065e455f parse NMEA coordinates from metadata 2021-06-14 23:39:18 +02:00
b142233d4e report as DPRS on the map 2021-06-11 16:43:28 +02:00
e9b2007863 fix DPRS parsing and display 2021-06-11 14:36:11 +02:00
455b2ce1f1 adapt D-Star terminology in the labels 2021-06-09 23:28:07 +02:00
d0ee6f7d3e update changelogs 2021-06-08 23:08:06 +02:00
5b0aa274eb increase required digiham version to 0.5 2021-06-08 23:06:25 +02:00
234cbf0fa8 update dependency system to use digiham for d-star 2021-06-08 23:01:49 +02:00
4fd5a62980 fix flexbox display of metadata panels 2021-06-08 23:01:03 +02:00
ba97f76737 add parsing of DPMR data 2021-06-08 18:38:53 +02:00
f3d1084b60 make the location icon less jumpy 2021-06-08 17:55:56 +02:00
6c2ba7bc1d only work with header field if sync is available 2021-06-08 14:05:17 +02:00
2be58503c6 adapt protocol / mode string 2021-06-08 14:04:54 +02:00
17a78ffa79 fix typo 2021-06-08 14:04:28 +02:00
322582d29b add dstar metadata panel 2021-06-08 13:37:13 +02:00
5fd303f4a2 replace dsd with dstar_decoder from the digiham package 2021-06-08 13:36:08 +02:00
46d7fa7347 improve error message 2021-06-03 15:23:28 +02:00
845f937fa3 make property deletions evaluate to false for convenience 2021-06-01 11:37:51 +02:00
85a58eefa9 update codecserver and digiham 2021-05-31 21:06:13 +02:00
8923b90b3e check if AMBE is available at codecserver 2021-05-31 20:41:37 +02:00
a9d9206d2e update WSJT-X to 2.4.0 2021-05-31 19:54:11 +02:00
a374e93ee8 replace mbelib with codecserver in docker 2021-05-31 18:40:45 +02:00
bcf05e00f7 actually, digiham should recommend the codecserver 2021-05-31 00:44:52 +02:00
b35d1908c7 fix user in postinst script 2021-05-31 00:44:28 +02:00
d824cc375e add codecserver as a recommended dependency 2021-05-30 23:38:58 +02:00
d04ab43977 add ability to configure codecserver 2021-05-29 18:50:17 +02:00
9cd730dc9a allow digiham binaries to return their own name 2021-05-28 00:02:20 +02:00
a16ad952c4 change digiham / ambe integration 2021-05-27 21:35:55 +02:00
3f7a93acfc drop the scheduler from the config if it's empty 2021-05-19 16:02:44 +02:00
bdf1ed4709 update changelogs 2021-05-19 15:41:04 +02:00
ebc935c1a9 improve message 2021-05-18 20:46:33 +02:00
5b92c317c1 improve connection timeout handling 2021-05-18 20:44:05 +02:00
48dc75c728 improve handshake handling 2021-05-18 16:00:15 +02:00
3e7eb09f3e introduce a websocket handler interface 2021-05-18 15:42:30 +02:00
9baebf444d update connectors in docker 2021-05-18 00:34:06 +02:00
83feb2c0e0 parse individual connector versions 2021-05-17 23:57:37 +02:00
33a942707c allow slots to be off in the daylight scheduler 2021-05-17 23:23:25 +02:00
e206b83e74 move the error overlay so it doesn't block the title menu buttons 2021-05-17 21:14:00 +02:00
970be58e9c invent a new icon for continuous auto waterfall mode 2021-05-17 20:25:25 +02:00
2e326573d0 sync favicons 2021-05-17 17:19:12 +02:00
49a069f0ee add more icon options for other weird browsers 2021-05-17 17:14:14 +02:00
a580989639 update favicon 2021-05-17 16:47:00 +02:00
c46b3275a9 allow negative frequencies in exponential display, closes #247 2021-05-17 15:08:44 +02:00
0258a75650 replace meta panel images with svg (inlining does not work due to
filters)
2021-05-16 22:47:35 +02:00
979f11f40a move play button to svg-defs 2021-05-16 17:47:02 +02:00
a04f198ade inline the google maps pin svg 2021-05-16 17:30:34 +02:00
8a54ef4cd0 clean up
* remove sprites and corresponding styles
* remove base pngs
* remove other unused images
2021-05-16 16:10:00 +02:00
7ec592ce3d replace up and down arrows with svgs 2021-05-16 15:59:21 +02:00
6e0e271294 replace bookmark button with svg 2021-05-16 01:06:57 +02:00
7427a65f18 replace edit icon with svg 2021-05-16 00:56:50 +02:00
39d49ca991 replace trashcan icon with svg 2021-05-16 00:39:53 +02:00
31a30532a7 replace waterfall default button with svg 2021-05-16 00:22:11 +02:00
2190fd7c5a modified inkscape, too 2021-05-16 00:08:21 +02:00
981053a7c7 correct opacity 2021-05-16 00:07:30 +02:00
2d8ae33542 replace squelch button with svg 2021-05-15 23:57:24 +02:00
ced6153aa7 replace waterfall auto button with svg 2021-05-15 23:40:53 +02:00
4a1676bb81 replace speaker icons with svg 2021-05-15 23:02:06 +02:00
6af115f4f0 replace top logo with svg 2021-05-15 21:42:04 +02:00
8550f10d88 allow svg to be gzipped 2021-05-14 23:10:17 +02:00
3b8961c8c6 replace zoom in / out total with svg 2021-05-14 23:01:27 +02:00
eb55167add remove the prefix 2021-05-14 22:31:23 +02:00
ae8061ee77 replace zoom in and out icons with svg 2021-05-14 20:00:07 +02:00
4f0d4983ca introduce http timeout; single router instance 2021-05-14 18:36:30 +02:00
d34ac58e73 use placeholder for device and profile in tabs as well 2021-05-14 16:00:29 +02:00
ee8688345e display a placeholder if device name is empty 2021-05-14 15:52:18 +02:00
4aba612760 replace settings icon with svg 2021-05-14 01:30:59 +02:00
e709ca0e77 replace map icon with svg 2021-05-13 18:38:02 +02:00
6bd3fdf6f4 replace receiver icon with svg 2021-05-13 15:46:55 +02:00
4b969fa3b2 Merge pull request #235 from jancona/hpsdr_config
Set proper config options for HPSDR connector
2021-05-12 21:13:37 +02:00
1020c9bac9 improve form validation
* don't ingore errors in optional fields
* don't attempt parsing if key is not present in upload
* force display of fields with errors
2021-05-12 16:22:45 +02:00
002827cbf4 move openwebrx-panel-status to svg 2021-05-12 00:43:01 +02:00
a676e203c7 first svg for openwebrx-panel-log 2021-05-11 23:36:30 +02:00
87b9a52fcb Don't filter inputs, add a validator for RF Gain 2021-05-11 11:21:52 -04:00
2d2f9bed40 add empty __init__.py (PEP420 doesn't always work...) 2021-05-11 14:28:35 +02:00
e37bc0573d Set proper config options for HPSDR connector 2021-05-10 20:35:49 -04:00
301b3b59a5 fix linter issues 2021-05-10 23:02:43 +02:00
40c78940ef don't close twice 2021-05-10 21:27:40 +02:00
a006d8c125 bumb develop to the next minor version 2021-05-09 16:06:03 +02:00
120 changed files with 6832 additions and 638 deletions

View File

@ -1,3 +1,11 @@
**unreleased**
**1.1.0**
- Reworked most graphical elements as SVGs for faster loadtimes and crispier display on hi-dpi displays
- Updated pipelines to match changes in digiham
- Changed D-Star and NXDN integrations to use new decoders from digiham
- Added D-Star and NXDN metadata display
**1.0.0**
- Introduced `squelch_auto_margin` config option that allows configuring the auto squelch level
- Removed `port` configuration option; `rtltcp_compat` takes the port number with the new connectors

View File

@ -13,8 +13,7 @@ It has the following features:
- it works in Google Chrome, Chromium and Mozilla Firefox
- supports a wide range of [SDR hardware](https://github.com/jketterl/openwebrx/wiki/Supported-Hardware#sdr-devices)
- Multiple SDR devices can be used simultaneously
- [digiham](https://github.com/jketterl/digiham) based demodularors (DMR, YSF, Pocsag)
- [dsd](https://github.com/f4exb/dsdcc) based demodulators (D-Star, NXDN)
- [digiham](https://github.com/jketterl/digiham) based demodularors (DMR, YSF, Pocsag, D-Star, NXDN)
- [wsjt-x](https://physics.princeton.edu/pulsar/k1jt/wsjtx.html) based demodulators (FT8, FT4, WSPR, JT65, JT9, FST4,
FST4W)
- [direwolf](https://github.com/wb2osz/direwolf) based demodulation of APRS packets

View File

@ -104,9 +104,6 @@ version = 7
#digimodes_fft_size = 2048
# determines the quality, and thus the cpu usage, for the ambe codec used by digital voice modes
# if you're running on a Raspi (up to 3B+) you'll want to leave this on 1
#digital_voice_unvoiced_quality = 1
# enables lookup of DMR ids using the radioid api
#digital_voice_dmr_id_lookup = True

View File

@ -59,7 +59,6 @@ class Dsp(DirewolfConfigSubscriber):
self.fft_compression = "none"
self.demodulator = "nfm"
self.name = "csdr"
self.base_bufsize = 512
self.decimation = None
self.last_decimation = None
self.nc_port = None
@ -85,7 +84,7 @@ class Dsp(DirewolfConfigSubscriber):
self.pipes = {}
self.secondary_pipe_names = {"secondary_shift_pipe": Pipe.WRITE}
self.secondary_offset_freq = 1000
self.unvoiced_quality = 1
self.codecserver = None
self.modification_lock = threading.Lock()
self.output = output
@ -109,23 +108,24 @@ class Dsp(DirewolfConfigSubscriber):
chain = ["nc -v 127.0.0.1 {nc_port}"]
if which == "fft":
chain += [
"csdr fft_cc {fft_size} {fft_block_size}",
"csdr logpower_cf -70"
"csdr++ fft {fft_size} {fft_block_size}",
"csdr++ logpower -70"
if self.fft_averages == 0
else "csdr logaveragepower_cf -70 {fft_size} {fft_averages}",
"csdr fft_exchange_sides_ff {fft_size}",
else "csdr++ logaveragepower {fft_size} {fft_averages} --add -70",
"csdr++ fftswap {fft_size}",
]
if self.fft_compression == "adpcm":
chain += ["csdr compress_fft_adpcm_f_u8 {fft_size}"]
chain += ["csdr++ fftadpcm {fft_size}"]
return chain
chain += ["csdr shift_addfast_cc --fifo {shift_pipe}"]
chain += ["csdr++ shift --fifo {shift_pipe}"]
if self.decimation > 1:
chain += ["csdr fir_decimate_cc {decimation} {ddc_transition_bw} HAMMING"]
chain += ["csdr bandpass_fir_fft_cc --fifo {bpf_pipe} {bpf_transition_bw} HAMMING"]
chain += ["csdr++ firdecimate {decimation} {ddc_transition_bw} --window hamming"]
chain += ["csdr++ bandpass --fft --fifo {bpf_pipe} {bpf_transition_bw} --window hamming"]
if self.output.supports_type("smeter"):
chain += [
"csdr squelch_and_smeter_cc --fifo {squelch_pipe} --outfifo {smeter_pipe} 5 {smeter_report_every}"
]
if self.isSquelchActive():
chain += ["csdr++ squelch --fifo {squelch_pipe} --outfifo {smeter_pipe} 5 {smeter_report_every}"]
else:
chain += ["csdr++ power --outfifo {smeter_pipe} 5 {smeter_report_every}"]
if self.secondary_demodulator:
if self.output.supports_type("secondary_fft"):
chain += ["csdr tee {iqtee_pipe}"]
@ -137,148 +137,147 @@ class Dsp(DirewolfConfigSubscriber):
last_decimation_block = []
if self.last_decimation >= 2.0:
# activate prefilter if signal has been oversampled, e.g. WFM
last_decimation_block = ["csdr fractional_decimator_ff {last_decimation} 12 --prefilter"]
last_decimation_block = ["csdr++ fractionaldecimator --format float {last_decimation} --prefilter"]
elif self.last_decimation != 1.0:
last_decimation_block = ["csdr fractional_decimator_ff {last_decimation}"]
last_decimation_block = ["csdr++ fractionaldecimator --format float {last_decimation}"]
if which == "nfm":
chain += ["csdr fmdemod_quadri_cf", "csdr limit_ff"]
chain += ["csdr++ fmdemod", "csdr++ limit"]
chain += last_decimation_block
chain += [
"csdr deemphasis_nfm_ff {audio_rate}",
"csdr agc_ff --profile slow --max 3",
"csdr++ deemphasis --nfm {audio_rate}",
"csdr++ agc --format float --profile slow --max 3",
]
if self.get_audio_rate() != self.get_output_rate():
chain += [
"sox -t raw -r {audio_rate} -e floating-point -b 32 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - "
]
else:
chain += ["csdr convert_f_s16"]
chain += ["csdr++ convert -i float -o s16"]
elif which == "wfm":
chain += [
"csdr fmdemod_quadri_cf",
"csdr limit_ff",
"csdr++ fmdemod",
"csdr++ limit",
]
chain += last_decimation_block
chain += ["csdr deemphasis_wfm_ff {audio_rate} {wfm_deemphasis_tau}", "csdr convert_f_s16"]
chain += ["csdr++ deemphasis --wfm {audio_rate} {wfm_deemphasis_tau}", "csdr++ convert -i float -o s16"]
elif self.isDigitalVoice(which):
chain += ["csdr fmdemod_quadri_cf"]
chain += ["csdr++ fmdemod"]
chain += last_decimation_block
# dsd modes
if which in ["dstar", "nxdn"]:
chain += ["dc_block", "csdr limit_ff", "csdr convert_f_s16"]
if which == "dstar":
chain += ["dsd -fd -i - -o - -u {unvoiced_quality} -g -1 "]
elif which == "nxdn":
chain += ["dsd -fi -i - -o - -u {unvoiced_quality} -g -1 "]
chain += [
"digitalvoice_filter",
"CSDR_FIXED_BUFSIZE=32 csdr agc_s16 --max 30 --initial 3",
"sox -t raw -r 8000 -e signed-integer -b 16 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ",
]
chain += ["dc_block"]
# m17
elif which == "m17":
if which == "m17":
chain += [
"dc_block",
"csdr limit_ff",
"csdr convert_f_s16",
"csdr++ limit",
"csdr++ convert -i float -o s16",
"m17-demod",
"CSDR_FIXED_BUFSIZE=32 csdr agc_s16 --max 30 --initial 3",
"sox -t raw -r 8000 -e signed-integer -b 16 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ",
]
# digiham modes
else:
chain += ["dc_block", "rrc_filter", "gfsk_demodulator"]
if which == "dmr":
# digiham modes
if which == "dstar":
chain += [
"dmr_decoder --fifo {meta_pipe} --control-fifo {dmr_control_pipe}",
"mbe_synthesizer -f -u {unvoiced_quality}",
"fsk_demodulator -s 10",
"dstar_decoder --fifo {meta_pipe}",
"mbe_synthesizer -d {codecserver_arg}",
]
elif which == "ysf":
chain += ["ysf_decoder --fifo {meta_pipe}", "mbe_synthesizer -y -f -u {unvoiced_quality}"]
max_gain = 0.005
chain += [
"digitalvoice_filter -f",
"CSDR_FIXED_BUFSIZE=32 csdr agc_ff --max 0.005 --initial 0.0005",
"sox -t raw -r 8000 -e floating-point -b 32 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ",
]
elif which == "nxdn":
chain += [
"rrc_filter --narrow",
"gfsk_demodulator --samples 20",
"nxdn_decoder --fifo {meta_pipe}",
"mbe_synthesizer {codecserver_arg}",
]
else:
chain += ["rrc_filter", "gfsk_demodulator"]
if which == "dmr":
chain += [
"dmr_decoder --fifo {meta_pipe} --control-fifo {dmr_control_pipe}",
"mbe_synthesizer {codecserver_arg}",
]
elif which == "ysf":
chain += ["ysf_decoder --fifo {meta_pipe}", "mbe_synthesizer -y {codecserver_arg}"]
chain += ["digitalvoice_filter"]
chain += [
"csdr++ agc --format s16 --max 30 --initial 3",
"sox --buffer 320 -t raw -r 8000 -e signed-integer -b 16 -c 1 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ",
]
elif which == "am":
chain += ["csdr amdemod_cf", "csdr fastdcblock_ff"]
chain += ["csdr++ amdemod", "csdr++ dcblock"]
chain += last_decimation_block
chain += [
"csdr agc_ff --profile slow --initial 200",
"csdr convert_f_s16",
"csdr++ agc --format float --profile slow --initial 200",
"csdr++ convert -i float -o s16",
]
elif self.isFreeDV(which):
chain += ["csdr realpart_cf"]
chain += ["csdr++ realpart"]
chain += last_decimation_block
chain += [
"csdr agc_ff",
"csdr convert_f_s16",
"csdr++ agc --format float",
"csdr++ convert -i float -o s16",
"freedv_rx 1600 - -",
"csdr agc_s16 --max 30 --initial 3",
"csdr++ agc --format s16 --max 30 --initial 3",
"sox -t raw -r 8000 -e signed-integer -b 16 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ",
]
elif self.isDrm(which):
if self.last_decimation != 1.0:
# we are still dealing with complex samples here, so the regular last_decimation_block doesn't fit
chain += ["csdr fractional_decimator_cc {last_decimation}"]
chain += ["csdr++ fractionaldecimator --format complex {last_decimation}"]
chain += [
"csdr convert_f_s16",
"csdr++ convert -i float -o s16",
"dream -c 6 --sigsrate 48000 --audsrate 48000 -I - -O -",
"sox -t raw -r 48000 -e signed-integer -b 16 -c 2 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ",
]
elif which == "ssb":
chain += ["csdr realpart_cf"]
chain += ["csdr++ realpart"]
chain += last_decimation_block
chain += ["csdr agc_ff"]
chain += ["csdr++ agc --format float"]
# fixed sample rate necessary for the wsjt-x tools. fix with sox...
if self.get_audio_rate() != self.get_output_rate():
chain += [
"sox -t raw -r {audio_rate} -e floating-point -b 32 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - "
]
else:
chain += ["csdr convert_f_s16"]
chain += ["csdr++ convert -i float -o s16"]
if self.audio_compression == "adpcm":
chain += ["csdr encode_ima_adpcm_i16_u8"]
chain += ["csdr++ adpcm -e --sync"]
return chain
def secondary_chain(self, which):
chain = ["cat {input_pipe}"]
if which == "fft":
chain += [
"csdr fft_cc {secondary_fft_input_size} {secondary_fft_block_size}",
"csdr logpower_cf -70"
"csdr++ fft {secondary_fft_input_size} {secondary_fft_block_size}",
"csdr++ logpower -70"
if self.fft_averages == 0
else "csdr logaveragepower_cf -70 {secondary_fft_size} {fft_averages}",
"csdr fft_exchange_sides_ff {secondary_fft_input_size}",
else "csdr++ logaveragepower {secondary_fft_size} {fft_averages} --add -70",
"csdr++ fftswap {secondary_fft_input_size}",
]
if self.fft_compression == "adpcm":
chain += ["csdr compress_fft_adpcm_f_u8 {secondary_fft_size}"]
chain += ["csdr++ fftadpcm {secondary_fft_size}"]
return chain
elif which == "bpsk31" or which == "bpsk63":
return chain + [
"csdr shift_addfast_cc --fifo {secondary_shift_pipe}",
"csdr bandpass_fir_fft_cc -{secondary_bpf_cutoff} {secondary_bpf_cutoff} {secondary_bpf_cutoff}",
"csdr simple_agc_cc 0.001 0.5",
"csdr timing_recovery_cc GARDNER {secondary_samples_per_bits} 0.5 2 --add_q",
"CSDR_FIXED_BUFSIZE=1 csdr dbpsk_decoder_c_u8",
"CSDR_FIXED_BUFSIZE=1 csdr psk31_varicode_decoder_u8_u8",
"csdr++ shift --fifo {secondary_shift_pipe}",
"csdr++ bandpass --low -{secondary_bpf_cutoff} --high {secondary_bpf_cutoff} {secondary_bpf_cutoff}",
"csdr++ agc --format complex",
"csdr++ timingrecovery --algorithm gardner {secondary_samples_per_bits} 0.5 2 --add_q",
"csdr++ dbpskdecode",
"csdr++ varicodedecode",
]
elif self.isWsjtMode(which) or self.isJs8(which):
chain += ["csdr realpart_cf"]
chain += ["csdr++ realpart"]
if self.last_decimation != 1.0:
chain += ["csdr fractional_decimator_ff {last_decimation}"]
return chain + ["csdr agc_ff", "csdr convert_f_s16"]
chain += ["csdr++ fractionaldecimator --format float {last_decimation}"]
return chain + ["csdr++ agc --format float", "csdr++ convert -i float -o s16"]
elif which == "packet":
chain += ["csdr fmdemod_quadri_cf"]
chain += ["csdr++ fmdemod"]
if self.last_decimation != 1.0:
chain += ["csdr fractional_decimator_ff {last_decimation}"]
return chain + ["csdr convert_f_s16", "direwolf -c {direwolf_config} -r {audio_rate} -t 0 -q d -q h 1>&2"]
chain += ["csdr++ fractionaldecimator --format float {last_decimation}"]
return chain + ["csdr++ convert -i float -o s16", "direwolf -c {direwolf_config} -r {audio_rate} -t 0 -q d -q h 1>&2"]
elif which == "pocsag":
chain += ["csdr fmdemod_quadri_cf"]
chain += ["csdr++ fmdemod"]
if self.last_decimation != 1.0:
chain += ["csdr fractional_decimator_ff {last_decimation}"]
chain += ["csdr++ fractionaldecimator --format float {last_decimation}"]
return chain + ["fsk_demodulator -i", "pocsag_decoder"]
def set_secondary_demodulator(self, what):
@ -291,8 +290,8 @@ class Dsp(DirewolfConfigSubscriber):
def secondary_fft_block_size(self):
base = (self.samp_rate / self.decimation) / (self.fft_fps * 2)
if self.fft_averages == 0:
return base
return base / self.fft_averages
return round(base)
return round(base / self.fft_averages)
def secondary_decimation(self):
return 1 # currently unused
@ -595,9 +594,9 @@ class Dsp(DirewolfConfigSubscriber):
def fft_block_size(self):
if self.fft_averages == 0:
return self.samp_rate / self.fft_fps
return round(self.samp_rate / self.fft_fps)
else:
return self.samp_rate / self.fft_fps / self.fft_averages
return round(self.samp_rate / self.fft_fps / self.fft_averages)
def set_offset_freq(self, offset_freq):
if offset_freq is None:
@ -630,23 +629,24 @@ class Dsp(DirewolfConfigSubscriber):
def convertToLinear(self, db):
return float(math.pow(10, db / 10))
def isSquelchActive(self):
return not self.isDigitalVoice() and not self.isPacket() and not self.isPocsag() and not self.isFreeDV() and not self.isDrm()
def set_squelch_level(self, squelch_level):
self.squelch_level = squelch_level
# no squelch required on digital voice modes
actual_squelch = (
-150
if self.isDigitalVoice() or self.isPacket() or self.isPocsag() or self.isFreeDV()
else self.squelch_level
)
if self.running:
actual_squelch = self.squelch_level if self.isSquelchActive() else -150
if self.running and "squelch_pipe" in self.pipes:
self.pipes["squelch_pipe"].write("%g\n" % (self.convertToLinear(actual_squelch)))
def set_unvoiced_quality(self, q):
self.unvoiced_quality = q
def set_codecserver(self, s):
if self.codecserver == s:
return
self.codecserver = s
self.restart()
def get_unvoiced_quality(self):
return self.unvoiced_quality
def get_codecserver_arg(self):
return "-s {}".format(self.codecserver) if self.codecserver else ""
def set_dmr_filter(self, filter):
if self.has_pipe("dmr_control_pipe"):
@ -756,11 +756,10 @@ class Dsp(DirewolfConfigSubscriber):
bpf_transition_bw=float(self.bpf_transition_bw) / self.if_samp_rate(),
ddc_transition_bw=self.ddc_transition_bw(),
flowcontrol=int(self.samp_rate * 2),
start_bufsize=self.base_bufsize * self.decimation,
nc_port=self.nc_port,
output_rate=self.get_output_rate(),
smeter_report_every=int(self.if_samp_rate() / 6000),
unvoiced_quality=self.get_unvoiced_quality(),
codecserver_arg=self.get_codecserver_arg(),
audio_rate=self.get_audio_rate(),
wfm_deemphasis_tau=self.wfm_deemphasis_tau,
)
@ -768,7 +767,7 @@ class Dsp(DirewolfConfigSubscriber):
logger.debug("Command = %s", command)
out = subprocess.PIPE if self.output.supports_type("audio") else subprocess.DEVNULL
self.process = subprocess.Popen(command, stdout=out, shell=True, start_new_session=True)
self.process = subprocess.Popen(command, stdout=out, shell=True, start_new_session=True, bufsize=128)
def watch_thread():
rc = self.process.wait()

14
debian/changelog vendored
View File

@ -1,3 +1,17 @@
openwebrx (1.2.0) UNRELEASED; urgency=low
-- Jakob Ketterl <jakob.ketterl@gmx.de> Tue, 03 Aug 2021 13:54:00 +0000
openwebrx (1.1.0) buster hirsute; urgency=low
* Reworked most graphical elements as SVGs for faster loadtimes and crispier
display on hi-dpi displays
* Updated pipelines to match changes in digiham
* Changed D-Star and NXDN integrations to use new decoder from digiham
* Added D-Star and NXDN metadata display
-- Jakob Ketterl <jakob.ketterl@gmx.de> Mon, 02 Aug 2021 16:24:00 +0000
openwebrx (1.0.0) buster hirsute; urgency=low
* Introduced `squelch_auto_margin` config option that allows configuring the
auto squelch level

4
debian/control vendored
View File

@ -10,7 +10,7 @@ Vcs-Git: https://github.com/jketterl/openwebrx.git
Package: openwebrx
Architecture: all
Depends: adduser, python3 (>= 3.5), python3-pkg-resources, csdr (>= 0.17), netcat, owrx-connector (>= 0.4), soapysdr-tools, python3-js8py (>= 0.1), ${python3:Depends}, ${misc:Depends}
Recommends: digiham (>= 0.4), dsd (>= 1.7), sox, direwolf (>= 1.4), wsjtx, runds-connector, hpsdrconnector, aprs-symbols, m17-demod, js8call
Depends: adduser, python3 (>= 3.5), python3-pkg-resources, csdr (>= 0.17), netcat, owrx-connector (>= 0.5), soapysdr-tools, python3-js8py (>= 0.1), ${python3:Depends}, ${misc:Depends}
Recommends: digiham (>= 0.5), sox, direwolf (>= 1.4), wsjtx, runds-connector (>= 0.2), hpsdrconnector, aprs-symbols, m17-demod, js8call
Description: multi-user web sdr
Open source, multi-user SDR receiver with a web interface

View File

@ -12,7 +12,7 @@ OWRX_BOOKMARKS_FILE="${OWRX_DATADIR}/bookmarks.json"
case "$1" in
configure|reconfigure)
adduser --system --group --no-create-home --home /nonexistent --quiet "${OWRX_USER}"
usermod -aG plugdev openwebrx
usermod -aG plugdev "${OWRX_USER}"
# create OpenWebRX data directory and set the correct permissions
if [ ! -d "${OWRX_DATADIR}" ] && [ ! -L "${OWRX_DATADIR}" ]; then mkdir "${OWRX_DATADIR}"; fi

View File

@ -5,7 +5,7 @@ ARCH=$(uname -m)
IMAGES="openwebrx-rtlsdr openwebrx-sdrplay openwebrx-hackrf openwebrx-airspy openwebrx-rtlsdr-soapy openwebrx-plutosdr openwebrx-limesdr openwebrx-soapyremote openwebrx-perseus openwebrx-fcdpp openwebrx-radioberry openwebrx-uhd openwebrx-rtltcp openwebrx-runds openwebrx-hpsdr openwebrx-full openwebrx"
ALL_ARCHS="x86_64 armv7l aarch64"
TAG=${TAG:-"latest"}
ARCHTAG="$TAG-$ARCH"
ARCHTAG="${TAG}-${ARCH}"
usage () {
echo "Usage: ${0} [command]"
@ -36,7 +36,7 @@ build () {
push () {
for image in ${IMAGES}; do
docker push jketterl/$image:$ARCHTAG
docker push jketterl/${image}:${ARCHTAG}
done
}
@ -45,11 +45,11 @@ manifest () {
# there's no docker manifest rm command, and the create --amend does not work, so we have to clean up manually
rm -rf "${HOME}/.docker/manifests/docker.io_jketterl_${image}-${TAG}"
IMAGE_LIST=""
for a in $ALL_ARCHS; do
IMAGE_LIST="$IMAGE_LIST jketterl/$image:$TAG-$a"
for a in ${ALL_ARCHS}; do
IMAGE_LIST="${IMAGE_LIST} jketterl/${image}:${TAG}-${a}"
done
docker manifest create jketterl/$image:$TAG $IMAGE_LIST
docker manifest push --purge jketterl/$image:$TAG
docker manifest create jketterl/${image}:${TAG} ${IMAGE_LIST}
docker manifest push --purge jketterl/${image}:${TAG}
done
}

View File

@ -13,6 +13,8 @@ COPY docker/scripts/install-owrx-tools.sh /
RUN /install-owrx-tools.sh && \
rm /install-owrx-tools.sh
COPY docker/files/services/codecserver /etc/services.d/codecserver
ENTRYPOINT ["/init"]
WORKDIR /opt/openwebrx

View File

@ -0,0 +1,2 @@
#!/usr/bin/execlineb -P
/usr/local/bin/codecserver

View File

@ -1,6 +1,6 @@
diff -ur wsjtx-orig/CMake/Modules/Findhamlib.cmake wsjtx/CMake/Modules/Findhamlib.cmake
--- wsjtx-orig/CMake/Modules/Findhamlib.cmake 2021-02-01 20:38:00.947536514 +0100
+++ wsjtx/CMake/Modules/Findhamlib.cmake 2021-02-01 20:39:06.273680932 +0100
--- wsjtx-orig/CMake/Modules/Findhamlib.cmake 2021-05-31 18:56:20.657682124 +0200
+++ wsjtx/CMake/Modules/Findhamlib.cmake 2021-05-31 18:57:03.963994898 +0200
@@ -85,4 +85,4 @@
# Handle the QUIETLY and REQUIRED arguments and set HAMLIB_FOUND to
# TRUE if all listed variables are TRUE
@ -8,8 +8,8 @@ diff -ur wsjtx-orig/CMake/Modules/Findhamlib.cmake wsjtx/CMake/Modules/Findhamli
-find_package_handle_standard_args (hamlib DEFAULT_MSG hamlib_INCLUDE_DIRS hamlib_LIBRARIES hamlib_LIBRARY_DIRS)
+find_package_handle_standard_args (hamlib DEFAULT_MSG hamlib_INCLUDE_DIRS hamlib_LIBRARIES)
diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
--- wsjtx-orig/CMakeLists.txt 2021-02-01 20:38:00.947536514 +0100
+++ wsjtx/CMakeLists.txt 2021-02-01 23:02:22.503027275 +0100
--- wsjtx-orig/CMakeLists.txt 2021-05-31 18:56:20.657682124 +0200
+++ wsjtx/CMakeLists.txt 2021-05-31 19:08:02.768474060 +0200
@@ -122,7 +122,7 @@
option (WSJT_QDEBUG_TO_FILE "Redirect Qt debuging messages to a trace file.")
option (WSJT_SOFT_KEYING "Apply a ramp to CW keying envelope to reduce transients." ON)
@ -19,7 +19,82 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
option (WSJT_RIG_NONE_CAN_SPLIT "Allow split operation with \"None\" as rig.")
option (WSJT_TRACE_UDP "Debugging option that turns on UDP message protocol diagnostics.")
option (WSJT_BUILD_UTILS "Build simulators and code demonstrators." ON)
@@ -856,7 +856,7 @@
@@ -169,74 +169,7 @@
)
set (wsjt_qt_CXXSRCS
- qt_helpers.cpp
- widgets/MessageBox.cpp
- MetaDataRegistry.cpp
- Network/NetworkServerLookup.cpp
revision_utils.cpp
- L10nLoader.cpp
- WFPalette.cpp
- Radio.cpp
- RadioMetaType.cpp
- NonInheritingProcess.cpp
- models/IARURegions.cpp
- models/Bands.cpp
- models/Modes.cpp
- models/FrequencyList.cpp
- models/StationList.cpp
- widgets/FrequencyLineEdit.cpp
- widgets/FrequencyDeltaLineEdit.cpp
- item_delegates/CandidateKeyFilter.cpp
- item_delegates/ForeignKeyDelegate.cpp
- validators/LiveFrequencyValidator.cpp
- GetUserId.cpp
- Audio/AudioDevice.cpp
- Transceiver/Transceiver.cpp
- Transceiver/TransceiverBase.cpp
- Transceiver/EmulateSplitTransceiver.cpp
- Transceiver/TransceiverFactory.cpp
- Transceiver/PollingTransceiver.cpp
- Transceiver/HamlibTransceiver.cpp
- Transceiver/HRDTransceiver.cpp
- Transceiver/DXLabSuiteCommanderTransceiver.cpp
- Network/NetworkMessage.cpp
- Network/MessageClient.cpp
- widgets/LettersSpinBox.cpp
- widgets/HintedSpinBox.cpp
- widgets/RestrictedSpinBox.cpp
- widgets/HelpTextWindow.cpp
- SampleDownloader.cpp
- SampleDownloader/DirectoryDelegate.cpp
- SampleDownloader/Directory.cpp
- SampleDownloader/FileNode.cpp
- SampleDownloader/RemoteFile.cpp
- DisplayManual.cpp
- MultiSettings.cpp
- validators/MaidenheadLocatorValidator.cpp
- validators/CallsignValidator.cpp
- widgets/SplashScreen.cpp
- EqualizationToolsDialog.cpp
- widgets/DoubleClickablePushButton.cpp
- widgets/DoubleClickableRadioButton.cpp
- Network/LotWUsers.cpp
- models/DecodeHighlightingModel.cpp
- widgets/DecodeHighlightingListView.cpp
- models/FoxLog.cpp
- widgets/AbstractLogWindow.cpp
- widgets/FoxLogWindow.cpp
- widgets/CabrilloLogWindow.cpp
- item_delegates/CallsignDelegate.cpp
- item_delegates/MaidenheadLocatorDelegate.cpp
- item_delegates/FrequencyDelegate.cpp
- item_delegates/FrequencyDeltaDelegate.cpp
- item_delegates/SQLiteDateTimeDelegate.cpp
- models/CabrilloLog.cpp
- logbook/AD1CCty.cpp
- logbook/WorkedBefore.cpp
- logbook/Multiplier.cpp
- Network/NetworkAccessManager.cpp
- widgets/LazyFillComboBox.cpp
- widgets/CheckableItemComboBox.cpp
)
set (wsjt_qtmm_CXXSRCS
@@ -857,7 +790,7 @@
#
# libhamlib setup
#
@ -28,7 +103,17 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
find_package (hamlib 3 REQUIRED)
find_program (RIGCTL_EXE rigctl)
find_program (RIGCTLD_EXE rigctld)
@@ -1376,60 +1376,6 @@
@@ -895,9 +828,6 @@
if (WSJT_GENERATE_DOCS)
add_subdirectory (doc)
endif (WSJT_GENERATE_DOCS)
-if (EXISTS ${CMAKE_SOURCE_DIR}/tests AND IS_DIRECTORY ${CMAKE_SOURCE_DIR}/tests)
- add_subdirectory (tests)
-endif ()
#
# Library building setup
@@ -1380,60 +1310,6 @@
target_link_libraries (jt9 wsjt_fort wsjt_cxx fort_qt)
endif (${OPENMP_FOUND} OR APPLE)
@ -89,10 +174,33 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
# make a library for WSJT-X UDP servers
# add_library (wsjtx_udp SHARED ${UDP_library_CXXSRCS})
add_library (wsjtx_udp-static STATIC ${UDP_library_CXXSRCS})
@@ -1492,24 +1438,9 @@
set_target_properties (message_aggregator PROPERTIES WIN32_EXECUTABLE ON)
endif (WSJT_CREATE_WINMAIN)
@@ -1473,47 +1349,9 @@
add_executable (wsjtx_app_version AppVersion/AppVersion.cpp ${wsjtx_app_version_VERSION_RESOURCES})
target_link_libraries (wsjtx_app_version wsjt_qt)
-generate_version_info (message_aggregator_VERSION_RESOURCES
- NAME message_aggregator
- BUNDLE ${PROJECT_BUNDLE_NAME}
- ICON ${WSJTX_ICON_FILE}
- FILE_DESCRIPTION "Example WSJT-X UDP Message Protocol application"
- )
-add_resources (message_aggregator_RESOURCES /qss ${message_aggregator_STYLESHEETS})
-configure_file (UDPExamples/message_aggregator.qrc.in message_aggregator.qrc @ONLY)
-qt5_add_resources (message_aggregator_RESOURCES_RCC
- ${CMAKE_CURRENT_BINARY_DIR}/message_aggregator.qrc
- contrib/QDarkStyleSheet/qdarkstyle/style.qrc
- )
-add_executable (message_aggregator
- ${message_aggregator_CXXSRCS}
- ${message_aggregator_RESOURCES_RCC}
- ${message_aggregator_VERSION_RESOURCES}
- )
-target_link_libraries (message_aggregator wsjt_qt Qt5::Widgets wsjtx_udp-static)
-
-if (WSJT_CREATE_WINMAIN)
- set_target_properties (message_aggregator PROPERTIES WIN32_EXECUTABLE ON)
-endif (WSJT_CREATE_WINMAIN)
-
-if (UNIX)
- if (NOT WSJT_SKIP_MANPAGES)
- add_subdirectory (manpages)
@ -114,7 +222,7 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
# install (TARGETS wsjtx_udp EXPORT udp
# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
@@ -1528,12 +1459,7 @@
@@ -1532,12 +1370,7 @@
# DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wsjtx
# )
@ -128,7 +236,7 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
)
@@ -1546,38 +1472,6 @@
@@ -1549,38 +1382,6 @@
)
endif(WSJT_BUILD_UTILS)
@ -167,7 +275,7 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
install (FILES
cty.dat
cty.dat_copyright.txt
@@ -1586,13 +1480,6 @@
@@ -1589,13 +1390,6 @@
#COMPONENT runtime
)
@ -181,3 +289,28 @@ diff -ur wsjtx-orig/CMakeLists.txt wsjtx/CMakeLists.txt
#
# Mac installer files
#
@@ -1648,22 +1442,6 @@
)
-if (NOT WIN32 AND NOT APPLE)
- # install a desktop file so wsjtx appears in the application start
- # menu with an icon
- install (
- FILES wsjtx.desktop message_aggregator.desktop
- DESTINATION share/applications
- #COMPONENT runtime
- )
- install (
- FILES icons/Unix/wsjtx_icon.png
- DESTINATION share/pixmaps
- #COMPONENT runtime
- )
-endif (NOT WIN32 AND NOT APPLE)
-
-
#
# bundle fixup only done in non-Debug configurations
#
Only in wsjtx/: CMakeLists.txt.orig
Only in wsjtx/: .idea

View File

@ -24,7 +24,7 @@ apt-get update
apt-get -y install --no-install-recommends $BUILD_PACKAGES
git clone https://github.com/jketterl/owrx_connector.git
cmakebuild owrx_connector 0.4.0
cmakebuild owrx_connector 0.5.0
apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean

View File

@ -25,7 +25,7 @@ apt-get update
apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES
git clone https://github.com/jketterl/runds_connector.git
cmakebuild runds_connector 0.1.0
cmakebuild runds_connector 0.2.0
apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean

View File

@ -48,9 +48,9 @@ cd ..
rm -rf sdrplay
rm $BINARY
git clone https://github.com/SDRplay/SoapySDRPlay.git
# latest from master as of 2020-09-04
cmakebuild SoapySDRPlay 105f8a6b3d449982d7ef860790c201aa066b8fa9
git clone https://github.com/pothosware/SoapySDRPlay3.git
# latest from master as of 2021-06-19 (reliability fixes)
cmakebuild SoapySDRPlay3 a869f25364a1f0d5b16169ff908aa21a2ace475d
SUDO_FORCE_REMOVE=yes apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean

View File

@ -19,7 +19,7 @@ function cmakebuild() {
cd /tmp
STATIC_PACKAGES="sox libfftw3-bin python3 python3-setuptools netcat-openbsd libsndfile1 liblapack3 libusb-1.0-0 libqt5core5a libreadline7 libgfortran4 libgomp1 libasound2 libudev1 ca-certificates libqt5gui5 libqt5sql5 libqt5printsupport5 libpulse0 libfaad2 libopus0 libboost-program-options1.67.0 libboost-log1.67.0"
BUILD_PACKAGES="wget git libsndfile1-dev libfftw3-dev cmake make gcc g++ liblapack-dev texinfo gfortran libusb-1.0-0-dev qtbase5-dev qtmultimedia5-dev qttools5-dev libqt5serialport5-dev qttools5-dev-tools asciidoctor asciidoc libasound2-dev libudev-dev libhamlib-dev patch xsltproc qt5-default libfaad-dev libopus-dev libgtest-dev libboost-dev libboost-program-options-dev libboost-log-dev libboost-regex-dev"
BUILD_PACKAGES="wget git libsndfile1-dev libfftw3-dev cmake make gcc g++ liblapack-dev texinfo gfortran libusb-1.0-0-dev qtbase5-dev qtmultimedia5-dev qttools5-dev libqt5serialport5-dev qttools5-dev-tools asciidoctor asciidoc libasound2-dev libudev-dev libhamlib-dev patch xsltproc qt5-default libfaad-dev libopus-dev libboost-dev libboost-program-options-dev libboost-log-dev libboost-regex-dev"
apt-get update
apt-get -y install auto-apt-proxy
apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES
@ -40,15 +40,6 @@ wget https://github.com/just-containers/s6-overlay/releases/download/v1.21.8.0/s
tar xzf s6-overlay-${PLATFORM}.tar.gz -C /
rm s6-overlay-${PLATFORM}.tar.gz
git clone https://git.code.sf.net/p/itpp/git itpp
cmakebuild itpp bb5c7e95f40e8fdb5c3f3d01a84bcbaf76f3676d
git clone https://github.com/szechyjs/mbelib.git
cmakebuild mbelib 9a04ed5c78176a9965f3d43f7aa1b1f5330e771f
git clone https://github.com/f4exb/dsd.git
cmakebuild dsd f6939f9edbbc6f66261833616391a4e59cb2b3d7
JS8CALL_VERSION=2.2.0
JS8CALL_DIR=js8call
JS8CALL_TGZ=js8call-${JS8CALL_VERSION}.tgz
@ -60,7 +51,7 @@ rm /js8call-hamlib.patch
CMAKE_ARGS="-D CMAKE_CXX_FLAGS=-DJS8_USE_HAMLIB_THREE" cmakebuild ${JS8CALL_DIR}
rm ${JS8CALL_TGZ}
WSJT_DIR=wsjtx-2.3.1
WSJT_DIR=wsjtx-2.4.0
WSJT_TGZ=${WSJT_DIR}.tgz
wget http://physics.princeton.edu/pulsar/k1jt/${WSJT_TGZ}
tar xfz ${WSJT_TGZ}
@ -111,8 +102,7 @@ rm -rf dream
rm dream-2.1.1-svn808.tar.gz
git clone https://github.com/mobilinkd/m17-cxx-demod.git
# latest master as of 2021-04-20
cmakebuild m17-cxx-demod c1d954fd5e5c53d28a2524e99484f832f9dcb826
cmakebuild m17-cxx-demod v2.2
git clone https://github.com/hessu/aprs-symbols /usr/share/aprs-symbols
pushd /usr/share/aprs-symbols

View File

@ -18,8 +18,8 @@ function cmakebuild() {
cd /tmp
STATIC_PACKAGES="libfftw3-bin"
BUILD_PACKAGES="git autoconf automake libtool libfftw3-dev pkg-config cmake make gcc g++"
STATIC_PACKAGES="libfftw3-bin libprotobuf17"
BUILD_PACKAGES="git autoconf automake libtool libfftw3-dev pkg-config cmake make gcc g++ libprotobuf-dev protobuf-compiler"
apt-get update
apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES
@ -40,8 +40,13 @@ make install
cd ..
rm -rf csdr
git clone https://github.com/jketterl/codecserver.git
mkdir -p /usr/local/etc/codecserver
cp codecserver/conf/codecserver.conf /usr/local/etc/codecserver
cmakebuild codecserver 0.1.0
git clone https://github.com/jketterl/digiham.git
cmakebuild digiham 0.4.0
cmakebuild digiham 0.5.0
apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean

BIN
htdocs/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -5,21 +5,3 @@ html, body
height: 100%;
font-family: "DejaVu Sans", Verdana, Geneva, sans-serif;
}
.sprite {
background-image: url(../gfx/openwebrx-sprites.png);
display: inline-block;
}
.openwebrx-button.highlighted .sprite {
background-image: linear-gradient(rgba(255,127,0,0.5), rgba(255,127,0,0.5)), url(../gfx/openwebrx-sprites.png);
background-blend-mode: overlay;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-device-pixel-ratio: 2) {
.sprite {
background-image: url(../gfx/openwebrx-sprites-2x.png);
background-size: 198px 77px;
}
}

View File

@ -56,7 +56,9 @@
}
.webrx-top-logo {
width: 261px;
padding: 12px;
filter: drop-shadow(0 0 2.5px rgba(0, 0, 0, .9));
/* overwritten by media queries */
display: none;
}
@ -100,18 +102,6 @@
font-size: 10pt;
}
.openwebrx-rx-details-arrow {
position: absolute;
bottom: 0;
left: 50%;
transform: translate(-50%, 0);
margin: 0;
padding: 0;
line-height: 0;
display: block;
}
.openwebrx-main-buttons .button {
display: block;
width: 55px;
@ -123,8 +113,10 @@
display: none;
}
.openwebrx-main-buttons .button img {
.openwebrx-main-buttons .button img,
.openwebrx-main-buttons .button svg {
height: 38px;
filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.5));
}
.openwebrx-main-buttons a {
@ -203,47 +195,33 @@
}
/*
* Sprites (images)
* RX details arrow up/down switching
*/
.sprite-panel-status {
background-position: 0 0;
width: 44px;
height: 38px;
.openwebrx-rx-details-arrow {
position: absolute;
bottom: 0;
left: 50%;
transform: translate(-50%, 0);
margin: 0;
padding: 0;
line-height: 0;
display: block;
}
.sprite-panel-log {
background-position: -44px 0;
width: 38px;
height: 38px;
}
.sprite-panel-receiver {
background-position: -82px 0;
width: 40px;
height: 38px;
}
.sprite-panel-map {
background-position: -122px 0;
width: 38px;
height: 38px;
}
.sprite-panel-settings {
background-position: -160px 0;
width: 38px;
height: 38px;
}
.openwebrx-rx-details-arrow--down .sprite-rx-details-arrow {
background-position: 0 -65px;
width: 43px;
.openwebrx-rx-details-arrow svg {
height: 12px;
}
.openwebrx-rx-details-arrow--up .sprite-rx-details-arrow {
background-position: -43px -65px;
width: 43px;
height: 12px;
.openwebrx-rx-details-arrow .up {
display: none;
}
.openwebrx-rx-details-arrow--up .down {
display: none;
}
.openwebrx-rx-details-arrow--up .up {
display: initial;
}

View File

@ -667,16 +667,6 @@ img.openwebrx-mirror-img
text-align: center;
}
#openwebrx-mute-on
{
color: lime;
}
#openwebrx-mute-off
{
color: white;
}
.openwebrx-panel-slider
{
position: relative;
@ -684,13 +674,6 @@ img.openwebrx-mirror-img
width: 95px;
}
.openwebrx-sliderbtn-img
{
width: 14px;
position:relative;
top: 1px;
}
.openwebrx-panel-line
{
padding-top: 5px;
@ -767,19 +750,19 @@ img.openwebrx-mirror-img
}
.openwebrx-overlay {
position: fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
opacity: 0.8;
background-color: #777;
left: 0;
top: 0;
z-index: 1001;
color: white;
font-weight: bold;
font-size: 20pt;
position: absolute;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
opacity: 0.8;
background-color: #777;
left: 0;
top: 0;
z-index: 1001;
color: white;
font-weight: bold;
font-size: 20pt;
}
#openwebrx-autoplay-overlay
@ -788,8 +771,7 @@ img.openwebrx-mirror-img
transition: opacity 0.3s linear;
}
#openwebrx-autoplay-overlay img
{
#openwebrx-autoplay-overlay svg {
width: 150px;
}
@ -1001,26 +983,22 @@ img.openwebrx-mirror-img
display: flex;
flex-direction: column;
position: relative;
overflow: hidden;
}
.openwebrx-meta-slot > * {
flex: 0;
flex-basis: 1.2em;
flex: 1 0 0;
line-height: 1.2em;
}
.openwebrx-meta-slot, .openwebrx-meta-slot.muted:before {
.openwebrx-meta-slot, .openwebrx-meta-slot .mute {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.openwebrx-meta-slot.muted:before {
display: block;
content: "";
background-image: url("../gfx/openwebrx-mute.png");
background-position: center;
background-repeat: no-repeat;
.openwebrx-meta-slot .mute {
display: none;
cursor: pointer;
position: absolute;
@ -1031,6 +1009,17 @@ img.openwebrx-mirror-img
background-color: rgba(0,0,0,.3);
}
.openwebrx-meta-slot .mute svg {
position: absolute;
top: 50%;
left: 0;
transform: translate(0, -50%);
}
.openwebrx-meta-slot.muted .mute {
display: block;
}
.openwebrx-meta-slot.active {
background-color: #95bbdf;
}
@ -1047,18 +1036,29 @@ img.openwebrx-mirror-img
}
.openwebrx-meta-slot .openwebrx-meta-user-image {
flex: 1;
flex: 0 1 100%;
background-position: center;
background-repeat: no-repeat;
line-height: 0;
overflow: hidden;
}
.openwebrx-meta-slot.active.direct .openwebrx-meta-user-image,
#openwebrx-panel-metadata-ysf .openwebrx-meta-slot.active .openwebrx-meta-user-image {
background-image: url("../gfx/openwebrx-directcall.png");
.openwebrx-meta-slot .openwebrx-meta-user-image img {
max-width: 100%;
max-height: 100%;
display: none;
}
.openwebrx-meta-slot.active.group .openwebrx-meta-user-image {
background-image: url("../gfx/openwebrx-groupcall.png");
.openwebrx-meta-slot.active.direct .openwebrx-meta-user-image .directcall,
.openwebrx-meta-slot.active.individual .openwebrx-meta-user-image .directcall,
#openwebrx-panel-metadata-ysf .openwebrx-meta-slot.active .openwebrx-meta-user-image .directcall,
#openwebrx-panel-metadata-dstar .openwebrx-meta-slot.active .openwebrx-meta-user-image .directcall {
display: initial;
}
.openwebrx-meta-slot.active.group .openwebrx-meta-user-image .groupcall,
.openwebrx-meta-slot.active.conference .openwebrx-meta-user-image .groupcall {
display: initial;
}
.openwebrx-meta-slot.group .openwebrx-dmr-target:not(:empty):before {
@ -1086,14 +1086,30 @@ img.openwebrx-mirror-img
content: "Down: ";
}
.openwebrx-maps-pin {
background-image: url("../gfx/google_maps_pin.svg");
background-position: center;
background-repeat: no-repeat;
.openwebrx-dstar-yourcall:not(:empty):before {
content: "UR: ";
}
.openwebrx-dstar-departure:not(:empty):before {
content: "RPT1: ";
}
.openwebrx-dstar-destination:not(:empty):before {
content: "RPT2: ";
}
.openwebrx-meta-slot.individual .openwebrx-nxdn-destination:not(:empty):before {
content: "Direct: ";
}
.openwebrx-meta-slot.conference .openwebrx-nxdn-destination:not(:empty):before {
content: "Conference: ";
}
.openwebrx-maps-pin svg {
width: 15px;
height: 15px;
background-size: contain;
display: inline-block;
vertical-align: middle;
}
.openwebrx-message-panel {
@ -1298,75 +1314,51 @@ img.openwebrx-mirror-img
margin: -10px;
}
.sprite-zoom-in {
background-position: 0 -38px;
width: 27px;
.openwebrx-zoom-button svg {
height: 27px;
}
.sprite-zoom-out {
background-position: -27px -38px;
width: 27px;
height: 27px;
}
.sprite-zoom-in-total {
background-position: -54px -38px;
width: 24px;
height: 27px;
}
.sprite-zoom-out-total {
background-position: -78px -38px;
width: 25px;
height: 27px;
}
.sprite-edit {
background-position: -131px -51px;
width: 14px;
.openwebrx-slider-button svg {
position:relative;
top: 1px;
height: 14px;
}
.sprite-trashcan {
background-position: -145px -38px;
width: 14px;
.openwebrx-mute-button svg.muted {
display: none;
}
.openwebrx-mute-button.muted svg.muted {
display: initial;
}
.openwebrx-mute-button.muted svg.unmuted {
display: none;
}
.bookmark .bookmark-actions .openwebrx-button svg {
height: 14px;
}
.sprite-speaker {
width: 14px;
height: 15px;
#openwebrx-waterfall-colors-auto .continuous {
display: none;
}
.openwebrx-mute-button .sprite-speaker {
background-position: -103px -38px;
#openwebrx-waterfall-colors-auto.highlighted .continuous {
display: initial;
}
.openwebrx-mute-button.muted .sprite-speaker {
background-position: -117px -38px;
#openwebrx-waterfall-colors-auto.highlighted .auto {
display: none;
}
.sprite-squelch {
background-position: -131px -38px;
width: 14px;
height: 13px;
.openwebrx-waterfall-container {
flex-grow: 1;
display: flex;
flex-direction: column;
position: relative;
}
.sprite-waterfall-auto {
background-position: -103px -53px;
width: 14px;
height: 11px;
}
.sprite-waterfall-default {
background-position: -117px -53px;
width: 14px;
height: 12px;
}
.sprite-bookmark {
background-position: -159px -38px;
width: 21px;
height: 27px;
.openwebrx-waterfall-container > * {
flex: 0 0 auto;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
htdocs/gfx/favicon128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
htdocs/gfx/favicon32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
htdocs/gfx/favicon44.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
htdocs/gfx/favicon64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
htdocs/gfx/favicon96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1 @@
<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"><defs><filter id="a" x="-.25" y="-.25" width="1.5" height="1.5" color-interpolation-filters="sRGB"><feFlood flood-color="#000" flood-opacity=".4" result="flood"/><feComposite in="flood" in2="SourceGraphic" operator="in" result="composite1"/><feGaussianBlur in="composite1" result="blur" stdDeviation="66.6"/><feOffset result="offset"/><feComposite in="SourceGraphic" in2="offset" result="composite2"/></filter></defs><path d="M550.98 541.91c-.99-28.904-4.377-57.939-9.421-86.393-6.111-34.469-13.889-85.002-43.983-107.46-17.404-12.988-39.941-17.249-59.865-25.081-9.697-3.81-18.384-7.594-26.537-11.901-27.518 30.176-63.4 45.962-105.19 45.964-41.774 0-77.652-15.786-105.17-45.964-8.153 4.308-16.84 8.093-26.537 11.901-19.924 7.832-42.461 12.092-59.863 25.081-30.096 22.463-37.873 72.996-43.983 107.46-5.045 28.454-8.433 57.489-9.422 86.393-.766 22.387 10.288 25.525 29.017 32.284 23.453 8.458 47.666 14.737 72.041 19.884 47.077 9.941 95.603 17.582 143.92 17.924 48.318-.343 96.844-7.983 143.92-17.924 24.375-5.145 48.59-11.424 72.041-19.884 18.736-6.757 29.789-9.895 29.023-32.284zM306 325.99c90.56-.01 123.15-90.68 131.68-165.17C448.19 69.06 404.8 0 306 0c-98.78 0-142.19 69.055-131.68 160.82C182.86 235.304 215.434 326 306 325.99z" filter="url(#a)" transform="matrix(.42446 0 0 .42484 70.12 69)" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1 @@
<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"><defs><filter id="a" x="-.25" y="-.25" width="1.5" height="1.5" color-interpolation-filters="sRGB"><feFlood flood-color="#000" flood-opacity=".4" result="flood"/><feComposite in="flood" in2="SourceGraphic" operator="in" result="composite1"/><feGaussianBlur in="composite1" result="blur" stdDeviation="66.6"/><feOffset result="offset"/><feComposite in="SourceGraphic" in2="offset" result="composite2"/></filter></defs><g fill="#fff"><g transform="matrix(.42446 0 0 .42484 129.12 42)" filter="url(#a)"><path d="M27.982.002c-98.778 0-142.188 69.056-131.678 160.823 8.54 74.484 41.112 165.183 131.678 165.173 90.558-.01 123.148-90.682 131.678-165.173C170.17 69.063 126.781.002 27.982.002zm277.996 0C207.2.002 163.79 69.058 174.3 160.825c8.54 74.484 41.113 165.183 131.678 165.173 90.559-.01 123.148-90.682 131.678-165.173C448.166 69.063 404.777.002 305.978.002zM-77.209 311.093c-8.153 4.308-16.84 8.09-26.537 11.898-19.924 7.833-42.463 12.095-59.863 25.084-30.095 22.463-37.871 72.996-43.98 107.46-5.045 28.454-8.435 57.492-9.424 86.395-.766 22.388 10.288 25.523 29.015 32.284 23.453 8.458 47.665 14.737 72.04 19.884 47.075 9.941 95.6 17.583 143.916 17.925 46.64-.33 93.461-7.487 138.998-16.923 45.538 9.437 92.359 16.593 138.999 16.923 48.317-.343 96.841-7.984 143.917-17.925 24.374-5.145 48.593-11.424 72.043-19.884 18.736-6.757 29.786-9.894 29.02-32.284h.01c-.99-28.903-4.38-57.941-9.424-86.395-6.111-34.47-13.886-85.002-43.98-107.46-17.404-12.989-39.94-17.252-59.863-25.084-9.697-3.81-18.384-7.59-26.537-11.898-27.517 30.177-63.398 45.962-105.186 45.965-41.773 0-77.65-15.787-105.17-45.965-8.153 4.308-16.84 8.09-26.537 11.898-2.394.941-4.828 1.826-7.284 2.685-2.456-.859-4.89-1.744-7.284-2.685-9.697-3.81-18.383-7.59-26.537-11.898-27.517 30.177-63.397 45.962-105.186 45.965-41.773 0-77.65-15.787-105.17-45.965z"/></g><g transform="matrix(.42446 0 0 .42484 70.12 102)" filter="url(#a)"><path d="M550.98 541.91c-.99-28.904-4.377-57.939-9.421-86.393-6.111-34.469-13.889-85.002-43.983-107.46-17.404-12.988-39.941-17.249-59.865-25.081-9.697-3.81-18.384-7.594-26.537-11.901-27.518 30.176-63.4 45.962-105.19 45.964-41.774 0-77.652-15.786-105.17-45.964-8.153 4.308-16.84 8.093-26.537 11.901-19.924 7.832-42.461 12.092-59.863 25.081-30.096 22.463-37.873 72.996-43.983 107.46-5.045 28.454-8.433 57.489-9.422 86.393-.766 22.387 10.288 25.525 29.017 32.284 23.453 8.458 47.666 14.737 72.041 19.884 47.077 9.941 95.603 17.582 143.92 17.924 48.318-.343 96.844-7.983 143.92-17.924 24.375-5.145 48.59-11.424 72.041-19.884 18.736-6.757 29.789-9.895 29.023-32.284zM306 325.99c90.56-.01 123.15-90.68 131.68-165.17C448.19 69.06 404.8 0 306 0c-98.78 0-142.19 69.055-131.68 160.82C182.86 235.304 215.434 326 306 325.99z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1 +0,0 @@
<svg width="700" height="700" xmlns="http://www.w3.org/2000/svg"><g class="layer"><circle cx="350" cy="350" r="330" stroke="#fff" stroke-width="36" fill="none"/><path d="M195 211v278l366-139-366-139z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

28
htdocs/gfx/svg-defs.svg Normal file
View File

@ -0,0 +1,28 @@
<svg width="80" height="80" xmlns="http://www.w3.org/2000/svg">
<defs>
<g id="top-logo"><g fill="none" stroke="#fff" stroke-linecap="square" stroke-linejoin="round" stroke-width="6"><path d="M517.23 68.215a35.5 33.2 0 0 1-11.936-26.458 35.5 33.2 0 0 1 14.593-25.266M561.62 16.49a35.5 33.2 0 0 1 14.593 25.266 35.5 33.2 0 0 1-11.936 26.458M551.57 29.079a18.4 19 0 0 1 7.564 14.46 18.4 19 0 0 1-6.187 15.142M528.56 58.681a18.4 19 0 0 1-6.187-15.142 18.4 19 0 0 1 7.564-14.46"/></g><g fill="none"><path d="M540.75 40.25v41.5h-322v-.5h322" stroke="#fff" stroke-width="4.5"/><path d="M13 81.5h58zm76 0h128z" stroke="#ccc" stroke-width="5"/></g><g aria-label="OpenWebRX"><path d="M207.85 45.906c0-11.755-5.104-17.787-14.771-17.787-5.877 0-10.363 2.475-13.688 7.579v-6.574h-6.96v42.301h6.96V47.53c0-8.352 4.717-13.379 12.141-13.379 6.264 0 9.357 4.022 9.357 11.987v25.288h6.96zm-53.515.619h-24.747c.696-7.966 5.645-12.528 13.301-12.528 6.805 0 11.368 4.794 11.445 12.528zm6.96 2.01c0-12.683-7.192-20.416-18.483-20.416-12.605 0-20.725 8.662-20.725 22.581 0 13.301 8.352 21.808 21.963 21.808 5.336 0 10.595-1.082 15.621-3.248v-6.573c-4.872 2.63-9.821 3.944-15.235 3.944-9.203 0-14.461-5.104-15.08-14.693h31.939zm-54.907 1.78c0 10.44-4.64 16.394-11.832 16.394-7.192 0-11.832-5.955-11.832-16.395s4.64-16.395 11.832-16.395c7.192 0 11.832 5.955 11.832 16.395zm-23.664 14.77c2.939 5.027 7.347 7.424 13.533 7.424 10.053 0 17.323-8.661 17.323-22.195S106.31 28.12 96.257 28.12c-6.187 0-10.595 2.397-13.533 7.424v-6.419h-6.96v58.387h6.96zm-44.389-51.04c-15.699 0-26.139 11.291-26.139 29.232 0 18.02 10.44 29.232 26.139 29.232s26.061-11.29 26.061-29.232-10.363-29.232-26.061-29.232zm0 6.187c10.827 0 18.019 8.506 18.019 23.045s-7.192 23.045-18.019 23.045-18.096-8.507-18.096-23.045 7.27-23.045 18.096-23.045z" fill="#ccc"/><path d="m480.99 42.658 18.792-27.608h-15.235l-12.296 18.173-12.373-18.173h-15.157l18.792 27.608-19.565 28.768h15.235l13.069-19.256 13.147 19.256h15.157zm-76.405 7.424h4.099c5.026 0 7.269 2.01 9.898 7.347l6.883 13.997h15.467l-7.888-16.008c-2.939-5.955-5.8-9.358-10.13-10.363 7.268-2.243 10.826-7.038 10.826-14.461 0-10.904-6.883-15.544-21.499-15.544h-22.195v56.376h14.54zm6.11-10.053h-6.11V25.568h6.11c5.954 0 8.506 1.933 8.506 7.192s-2.552 7.27-8.507 7.27zm-62.873-4.485V12.653h-6.96v58.773h6.96v-6.342c2.939 5.027 7.347 7.424 13.533 7.424 10.053 0 17.323-8.66 17.323-22.195s-7.269-22.195-17.323-22.195c-6.186 0-10.595 2.398-13.533 7.424zm23.664 14.77c0 10.44-4.64 16.396-11.832 16.396s-11.832-5.955-11.832-16.395 4.64-16.395 11.832-16.395 11.832 5.954 11.832 16.395zm-48.72-3.789H298.02c.696-7.965 5.646-12.528 13.301-12.528 6.806 0 11.368 4.795 11.445 12.528zm6.96 2.011c0-12.683-7.192-20.416-18.483-20.416-12.605 0-20.725 8.661-20.725 22.581 0 13.301 8.352 21.808 21.963 21.808 5.336 0 10.595-1.083 15.621-3.248v-6.573c-4.872 2.63-9.821 3.944-15.235 3.944-9.202 0-14.46-5.104-15.08-14.693h31.94zm-112.75-33.485 14.152 56.376h9.59l11.987-48.952 11.909 48.952h9.589l14.152-56.376h-7.733L268.79 62.688l-11.832-47.637h-8.584l-11.832 47.637-11.832-47.637z" fill="#fff"/></g></g>
<g id="panel-log" stroke="#fff"><g fill="none" stroke-linecap="round" stroke-width="3.5"><path d="M21 57h39M21 48.5h39M21 40h34M21 31.5h39M21 23h39"/></g><g fill="#fff" stroke-linejoin="round" stroke-width="2.1"><path d="M13.5 63.5c0 2.5 2.5 5 5 5h45c2.5 0 5-2.5 5-5v-46c0-2.5-2.5-5-5-5H25l-11.5 16z" fill-opacity=".35" style="mix-blend-mode:normal"/><path d="M25 12.5s-1.323 7.847 4 15c-9.294-1.268-15.5 1-15.5 1"/></g></g>
<g id="panel-status" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="2.1"><g fill-opacity=".35"><path d="M9.683 26.483c-3.13 0-5.666-2.455-5.666-5.483 0-3.029 2.536-5.484 5.666-5.484h48.634c3.13 0 5.666 2.455 5.666 5.484 0 3.028-2.537 5.483-5.666 5.483zM19.113 44.913c-3.13 0-5.666-2.455-5.666-5.483s2.537-5.484 5.666-5.484h48.634c3.13 0 5.666 2.455 5.666 5.484s-2.537 5.483-5.666 5.483zM9.683 63.483c-3.13 0-5.666-2.455-5.666-5.483s2.536-5.484 5.666-5.484h48.634c3.13 0 5.666 2.455 5.666 5.484s-2.537 5.483-5.666 5.483z"/></g><path d="M10.06 26.456c-3.322 0-6.016-2.443-6.016-5.456 0-3.013 2.694-5.456 6.016-5.456h5.932c3.322 0 6.016 2.443 6.016 5.456 0 3.013-2.694 5.456-6.016 5.456zM19.48 44.886c-3.317 0-6.007-2.443-6.007-5.456 0-3.013 2.69-5.456 6.007-5.456h32.516c3.317 0 6.007 2.443 6.007 5.456 0 3.014-2.69 5.456-6.007 5.456zM10.052 63.456c-3.318 0-6.008-2.443-6.008-5.456 0-3.013 2.69-5.456 6.008-5.456h24.944c3.318 0 6.008 2.443 6.008 5.456 0 3.013-2.69 5.456-6.008 5.456z"/></g>
<g id="panel-receiver" stroke="#fff" stroke-width="2.1"><path d="M66 29.05 12 10" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="6.8" y="29.05" width="67.5" height="38.5" rx="5" ry="5" fill="#fff" fill-opacity=".35"/><g fill="#fff" stroke-linecap="round" stroke-linejoin="round" fill-opacity=".35"><rect x="12.3" y="34.05" width="28.5" height="9.5" rx="2" ry="2"/><circle cx="56.55" cy="48.55" r="13.5"/><g transform="translate(0 -.5)"><circle cx="17.05" cy="50.55" r="3"/><circle cx="26.3" cy="50.55" r="3"/><circle cx="35.55" cy="50.55" r="3"/><circle cx="17.05" cy="57.05" r="3"/><circle cx="26.3" cy="57.05" r="3"/><circle cx="35.55" cy="57.05" r="3"/></g></g></g>
<g id="panel-map" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.1"><g stroke-opacity=".989"><path d="m30 11-19 8v50l19-5 19 5 20-5V11l-10.844 4.879a11.93 11.93 0 0 1 2.394 7.172c0 2.111-.55 4.09-1.507 5.814h.004L49 47 38.279 29.256h.013a11.922 11.922 0 0 1-1.742-6.205c0-2.905 1.034-5.568 2.752-7.644z" fill="#fff" fill-opacity=".35"/><g fill="none"><path d="M30 11v53M49 47v22M11 59l19-25 19 18 20-6"/></g></g><circle cx="48.55" cy="23.05" r="6.5" fill="none" stroke-opacity=".989"/><path d="M48.551 11.051c-6.627 0-12 5.373-12 12 0 2.274.643 4.393 1.742 6.205h-.013L49 47l10.048-18.135h-.004a11.935 11.935 0 0 0 1.507-5.814c0-6.628-5.372-12-12-12z" fill="#fff" fill-opacity=".2"/></g>
<g id="panel-settings" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.6"><path d="m39.855 10-1 .021c-1.041.04-2.078.134-3.11.282-.546.078-.853.587-.78 1.135a7.876 7.876 0 0 1-.022 1.841 6.504 6.504 0 0 1-5.428 5.428 7.889 7.889 0 0 1-1.992 0 6.501 6.501 0 0 1-4.156-2.463c-.336-.437-.916-.581-1.358-.25a29.998 29.998 0 0 0-6.017 6.016c-.331.442-.188 1.02.25 1.355a6.505 6.505 0 0 1 2.465 4.158 7.885 7.885 0 0 1 0 1.993 6.504 6.504 0 0 1-5.428 5.427 7.862 7.862 0 0 1-1.992-.002c-.461-.072-.904.256-.983.803a30.012 30.012 0 0 0-.002 8.51c.079.547.588.853 1.135.781a7.876 7.876 0 0 1 1.842.022 6.504 6.504 0 0 1 5.428 5.427 7.889 7.889 0 0 1 0 1.992 6.501 6.501 0 0 1-2.463 4.157c-.438.336-.581.915-.25 1.357a29.998 29.998 0 0 0 6.015 6.018c.442.33 1.02.187 1.356-.25a6.505 6.505 0 0 1 4.158-2.465 7.885 7.885 0 0 1 1.992 0 6.504 6.504 0 0 1 5.428 5.428 7.862 7.862 0 0 1-.002 1.992c-.072.46.256.904.803.982a30.012 30.012 0 0 0 8.51.002c.546-.078.853-.59.78-1.136a7.859 7.859 0 0 1 .022-1.84 6.504 6.504 0 0 1 5.428-5.428 7.889 7.889 0 0 1 1.992 0 6.501 6.501 0 0 1 4.156 2.463c.336.437.916.581 1.358.25a29.998 29.998 0 0 0 6.017-6.016c.331-.442.188-1.02-.25-1.355a6.505 6.505 0 0 1-2.465-4.158 7.885 7.885 0 0 1 0-1.993 6.504 6.504 0 0 1 5.428-5.427 7.862 7.862 0 0 1 1.992.002c.461.072.904-.258.983-.805a29.977 29.977 0 0 0 .002-8.508c-.079-.546-.59-.853-1.137-.781a7.859 7.859 0 0 1-1.84-.022 6.504 6.504 0 0 1-5.427-5.427 7.889 7.889 0 0 1 0-1.992 6.501 6.501 0 0 1 2.462-4.157c.438-.336.582-.915.25-1.357a29.998 29.998 0 0 0-6.015-6.018c-.442-.33-1.02-.187-1.356.25a6.505 6.505 0 0 1-4.158 2.465 7.885 7.885 0 0 1-1.992 0 6.504 6.504 0 0 1-5.428-5.428 7.862 7.862 0 0 1 .002-1.992c.072-.46-.256-.904-.803-.982a30.002 30.002 0 0 0-4.4-.305zM40 26.5A13.5 13.5 0 0 1 53.5 40 13.5 13.5 0 0 1 40 53.5 13.5 13.5 0 0 1 26.5 40 13.5 13.5 0 0 1 40 26.5z" fill="#fff" fill-opacity=".35"/><circle cx="40" cy="40" r="13.5" fill="#fff" fill-opacity=".2"/><circle cx="40" cy="40" r="8" fill="none"/></g>
<g id="zoom-in" stroke="#fff"><circle cx="31.75" cy="32" r="27.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="m57.147 47.242 20.644 20.645a4 4 90 0 1 0 5.657l-3.748 3.748a4 4 180 0 1-5.656 0L47.743 56.647" fill="#fff" stroke-width="2.1"/><path d="M31.75 18.5v27M18.25 32h27" fill="none" stroke-linecap="round" stroke-width="10"/></g>
<g id="zoom-out" stroke="#fff"><circle cx="31.75" cy="32" r="27.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="m57.147 47.242 20.644 20.645a4 4 90 0 1 0 5.657l-3.748 3.748a4 4 180 0 1-5.656 0L47.743 56.647" fill="#fff" stroke-width="2.1"/><path d="M18.25 32h27" fill="none" stroke-linecap="round" stroke-width="10"/></g>
<g id="zoom-out-total" stroke="#fff"><circle cx="44.001" cy="51.307" r="16.326" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="4.75"/><path d="M59.079 60.356 71.6 72.877a2 2 90 0 1 0 2.829l-2.755 2.754a2 2 180 0 1-2.828 0L53.496 65.94" fill="#fff" stroke-width="1.247"/><path d="m20.893 1.244-16.199 16.9 16.199 16.9V21.698H59.5v13.346l16.199-16.9L59.5 1.244V14.7H20.893z" fill="#fff"/></g>
<g id="zoom-in-total" stroke="#fff"><circle cx="44.701" cy="51.307" r="16.326" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="4.75"/><path d="M59.779 60.356 72.3 72.877a2 2 90 0 1 0 2.829l-2.755 2.754a2 2-180 0 1-2.828 0L54.196 65.94" fill="#fff" stroke-width="1.247"/><path d="M4.8 1.244v33.801L17.595 21.7H62.4l12.793 13.346v-33.8L62.296 14.698H17.698z" fill="#fff"/></g>
<g id="speaker" stroke="#fff"><path d="M33.5 7.15 16.74 25.201H2.65v31.7h16.041L33.5 72.848z" fill="#fff" stroke-width="2.1"/><g fill="none"><path d="M46.336 16.041A20 30 0 0 1 54.3 40a20 30 0 0 1-7.964 23.959" stroke-width="3"/><path d="M52.716 9.652A30.6 38 0 0 1 64.9 40a30.6 38 0 0 1-12.184 30.348" stroke-width="4.2"/><path d="M59.035 2.065A41.1 47.5 0 0 1 75.4 40a41.1 47.5 0 0 1-16.365 37.935" stroke-width="5.4"/></g></g>
<g id="speaker-muted"><path d="M33.5 7.15 16.74 25.201H2.65v31.7h16.041L33.5 72.848z" fill="#fff" stroke="#fff" stroke-width="2.1"/></g>
<g id="waterfall-auto"><path d="M33.512 72.05s3.393-64.129 8.24-64.093c4.48.034 4.392 28.286 9.98 28.198 4.775-.074 5.279-13.721 6.33-17.88 1.013-4.004 2.915-5.172 5.321-4.894 2.993.346 8.205 5.925 10.588 13.761 4.16 13.677 5.53 44.907 5.53 44.907z" fill="#ccc" stroke="#ccc"/><path d="M29.3 68.8 18.4 54 7.5 68.8zM7.5 11.2 18.4 26l10.9-14.8zM18.4 26v28" fill="#fff" stroke="#fff" stroke-width="7.5"/></g>
<g id="waterfall-default"><path d="M36.356 75.295s3.187-34.502 7.74-34.482c4.207.018 4.125 15.218 9.374 15.171 4.485-.04 4.958-7.382 5.945-9.62.951-2.154 2.738-2.782 4.998-2.632 2.812.186 7.707 3.187 9.945 7.403 3.906 7.358 5.193 24.16 5.193 24.16z" fill="#ccc" stroke="#ccc" stroke-width=".711"/><path d="M18.4 25.424v29.075m-10.9 0L18.4 69.3l10.9-14.801zm10.9-43.875L7.5 25.425h21.801z" fill="#fff" stroke="#fff" stroke-width="7.5"/></g>
<g id="squelch" fill="#fff" stroke-width=".767"><path d="M33.333 24.7c-.058-14.132-5.913-21.9-16.58-21.9-10.145 0-16 7.673-16 20.963 0 10.575 3.305 15.722 11.884 18.343l5.913 1.872c5.797 1.778 7.942 4.399 7.942 9.92 0 5.71-3.246 9.172-8.521 9.172-5.913 0-9.218-4.024-9.508-11.324H0C.521 66.345 6.724 74.3 17.506 74.3c10.899 0 17.333-8.142 17.333-22.087 0-10.762-3.362-16.378-11.188-18.81l-6.609-2.06c-6.203-1.965-8-3.93-8-8.89 0-5.148 2.782-8.423 7.304-8.423 5.507 0 8.58 3.743 8.87 10.669zM75.362 62.508C78.202 56.893 80 47.534 80 38.363c0-10.014-2.203-19.653-5.913-26.11C70.435 5.887 65.681 2.8 59.653 2.8S48.87 5.888 45.218 12.252C41.45 18.71 39.305 28.35 39.305 38.55s2.203 19.84 5.913 26.298c3.652 6.364 8.406 9.452 14.435 9.452 4.405 0 7.594-1.404 10.956-4.68l4.986 7.581L80 69.621zM64.638 46.13l-4.406 7.58 4.464 6.833c-1.391 1.123-3.246 1.778-5.101 1.778C52.638 62.321 48 52.869 48 38.549c0-14.412 4.58-23.771 11.652-23.771s11.652 9.358 11.652 23.864c0 5.615-.638 10.67-1.913 14.787z"/></g>
<g id="trashcan"><path d="M56.667 13.333V6.666A6.67 6.67 0 0 0 50 0H30a6.67 6.67 0 0 0-6.666 6.666v6.667H6.667V20h6.666v53.333A6.67 6.67 0 0 0 20 79.999h40a6.67 6.67 0 0 0 6.667-6.666V20h6.666v-6.667zM30 6.666h20v6.667H30zm30 66.667H20V20h40zM36.667 26.666H30v40h6.667zm13.333 0h-6.667v40H50z" fill="#fff"/></g>
<g id="edit"><path d="m52.5 7.5-45 45v20h20l45-45zm12.93 20-4.697 4.697-12.93-12.93L52.5 14.57zM15.302 51.768l4.06-4.06c1.533 1.125 3.575 2.002 5.81 2.002 2.148 0 4.453-.8 6.595-2.942l10-10c2.52-2.52 4.622-7.728.968-12.43l1.535-1.535 12.93 12.93L28.23 64.698zm22.93-18.535-10 10c-2.062 2.058-4.007 1.595-5.27.875L39.14 27.93c1.465 2.485-.27 4.643-.907 5.303zM12.5 56.035 23.965 67.5H12.5z" fill="#fff"/></g>
<g id="bookmark"><path d="M62.5 0h-45A7.5 7.5 0 0 0 10 7.5V80l30-17.5L70 80V7.5A7.5 7.5 0 0 0 62.5 0zm0 66.942L40 53.817 17.5 66.942V8.437a.938.938 0 0 1 .938-.938h43.124c.518 0 .938.42.938.937z" fill="#fff"/></g>
<g id="rx-details-arrow-down"><path d="M5 0C2.5 0 0 2.5 0 5v7h43V5c0-2.5-2.5-5-5-5zm8 4h17l-8.5 6.5z" fill="#999" fill-opacity=".196"/><path d="M13 4h17l-8.5 6.5z" fill="#848484" fill-opacity=".592"/></g>
<g id="rx-details-arrow-up"><path d="M5 0C2.5 0 0 2.5 0 5v7h43V5c0-2.5-2.5-5-5-5zm16.5 3L30 9.5H13z" fill="#999" fill-opacity=".196"/><path d="M30 9.5H13L21.5 3z" fill="#848484" fill-opacity=".592"/></g>
<g id="maps-pin" transform="translate(-965.78 -331.788) scale(1.1856)"><path d="M817.11 282.97c-1.258 1.343-2.046 3.299-2.016 5.139.064 3.845 1.797 5.3 4.569 10.592.998 2.328 2.04 4.792 3.031 8.873.138.602.272 1.16.334 1.21.062.048.197-.513.334-1.115.991-4.081 2.033-6.543 3.032-8.872 2.77-5.291 4.504-6.747 4.568-10.592.03-1.84-.76-3.797-2.018-5.14-1.437-1.534-3.605-2.67-5.916-2.717-2.311-.047-4.48 1.088-5.918 2.622z" fill="#ff4646" stroke="#d73534"/><circle cx="823.03" cy="288.25" r="3.035" fill="#590000"/></g>
<g id="play-button"><circle cx="350" cy="350" r="330" fill="none" stroke="#fff" stroke-width="36"/><path d="M195 211v278l366-139z" fill="#fff"/></g>
<g id="meta-mute" stroke="#fff" stroke-width="5"><path stroke-linejoin="round" style="paint-order:fill" fill="none" d="m21.989 47.699 17.4 15.051V13.769L22.235 28.606H6v19.093z" transform="matrix(5.3513 0 0 5.3723 -.73 -1.542)"/><path d="m48.652 50.27 20.743-24.299M69.395 50.27 48.652 25.971" stroke-linecap="round" transform="matrix(5.3513 0 0 5.3723 -.73 -1.542)"/></g>
<g id="waterfall-continuous"><g stroke="#fff" stroke-width="8"><path d="M5 40A35 35 0 0 1 26.606 7.664a35 35 0 0 1 38.143 7.587" fill="none"/><path d="m68.284 11.716 2.828 9.9-9.899-2.829z" fill="#fff"/></g><path d="m48.008 48.144 2.816 8.624h9.035L45.075 14h-9.739L20.141 56.768h8.976l2.875-8.624zm-2.405-7.333H34.456l5.573-16.72z" fill="#fff" aria-label="A"/><g stroke="#fff" stroke-width="8"><path d="M75 40a35 35 0 0 1-21.606 32.336 35 35 0 0 1-38.143-7.587" fill="none"/><path d="m11.716 68.284-2.828-9.9 9.899 2.829z" fill="#fff"/></g></g>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,22 +1,25 @@
<div class="webrx-top-container">
<div class="webrx-top-bar">
<a href="https://www.openwebrx.de/" target="_blank"><img src="${document_root}static/gfx/openwebrx-top-logo.png" class="webrx-top-logo" alt="OpenWebRX Logo"/></a>
<a href="https://www.openwebrx.de/" target="_blank"><svg viewBox="0 0 591 100" class="webrx-top-logo"><title>Visit the OpenWebRX homepage</title><use xlink:href="${document_root}static/gfx/svg-defs.svg#top-logo"></use></svg></a>
<img class="webrx-rx-avatar openwebrx-photo-trigger" src="${document_root}static/gfx/openwebrx-avatar.png" alt="Receiver avatar"/>
<div class="webrx-rx-texts openwebrx-photo-trigger">
<h1 class="webrx-rx-title">${receiver_name}</h1>
<div class="webrx-rx-desc">${receiver_location} | Loc: ${locator}, ASL: ${receiver_asl} m</div>
</div>
<section class="openwebrx-main-buttons">
<div class="button" data-toggle-panel="openwebrx-panel-status"><span class="sprite sprite-panel-status"></span><br/>Status</div>
<div class="button" data-toggle-panel="openwebrx-panel-log"><span class="sprite sprite-panel-log"></span><br/>Log</div>
<div class="button" data-toggle-panel="openwebrx-panel-receiver"><span class="sprite sprite-panel-receiver"></span><br/>Receiver</div>
<a class="button" href="${document_root}map" target="openwebrx-map"><span class="sprite sprite-panel-map"></span><br/>Map</a>
<a class="button" href="${document_root}settings" target="openwebrx-settings"><span class="sprite sprite-panel-settings"></span><br/>Settings</a>
<div class="button" data-toggle-panel="openwebrx-panel-status"><svg viewBox="0 0 80 80"><use xlink:href="${document_root}static/gfx/svg-defs.svg#panel-status"></use></svg><br/>Status</div>
<div class="button" data-toggle-panel="openwebrx-panel-log"><svg viewBox="0 0 80 80"><use xlink:href="${document_root}static/gfx/svg-defs.svg#panel-log"></use></svg><br/>Log</div>
<div class="button" data-toggle-panel="openwebrx-panel-receiver"><svg viewBox="0 0 80 80"><use xlink:href="${document_root}static/gfx/svg-defs.svg#panel-receiver"></use></svg><br/>Receiver</div>
<a class="button" href="${document_root}map" target="openwebrx-map"><svg viewBox="0 0 80 80"><use xlink:href="${document_root}static/gfx/svg-defs.svg#panel-map"></use></svg><br/>Map</a>
<a class="button" href="${document_root}settings" target="openwebrx-settings"><svg viewBox="0 0 80 80"><use xlink:href="${document_root}static/gfx/svg-defs.svg#panel-settings"></use></svg><br/>Settings</a>
</section>
</div>
<div class="openwebrx-description-container">
<div class="webrx-rx-photo-title">${photo_title}</div>
<div class="webrx-rx-photo-desc">${photo_desc}</div>
</div>
<a class="openwebrx-rx-details-arrow openwebrx-rx-details-arrow--down openwebrx-photo-trigger"><span class="sprite sprite-rx-details-arrow"></span></a>
<a class="openwebrx-rx-details-arrow openwebrx-rx-details-arrow--down openwebrx-photo-trigger">
<svg class="down" viewBox="0 0 43 12"><use xlink:href="static/gfx/svg-defs.svg#rx-details-arrow-down"></use></svg>
<svg class="up" viewBox="0 0 43 12"><use xlink:href="static/gfx/svg-defs.svg#rx-details-arrow-up"></use></svg>
</a>
</div>

View File

@ -23,7 +23,14 @@
<html>
<head>
<title>OpenWebRX | Open Source SDR Web App for Everyone!</title>
<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" />
<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" />
@ -34,130 +41,189 @@
<body onload="openwebrx_init();">
<div id="webrx-page-container">
${header}
<div id="openwebrx-frequency-container">
<div id="openwebrx-bookmarks-container"></div>
<div id="openwebrx-scale-container">
<canvas id="openwebrx-scale-canvas" width="0" height="0"></canvas>
<div class="openwebrx-waterfall-container">
<div id="openwebrx-frequency-container">
<div id="openwebrx-bookmarks-container"></div>
<div id="openwebrx-scale-container">
<canvas id="openwebrx-scale-canvas" width="0" height="0"></canvas>
</div>
</div>
</div>
<div id="webrx-canvas-background">
<div id="webrx-canvas-container">
<!-- add canvas here by javascript -->
<div id="webrx-canvas-background">
<div id="webrx-canvas-container">
<!-- add canvas here by javascript -->
</div>
</div>
</div>
<div id="openwebrx-panels-container">
<div id="openwebrx-panels-container-left">
<div class="openwebrx-panel" id="openwebrx-panel-digimodes" style="display: none; width: 619px;" data-panel-name="digimodes">
<div id="openwebrx-digimode-canvas-container">
<div id="openwebrx-digimode-select-channel"></div>
<div id="openwebrx-panels-container">
<div id="openwebrx-panels-container-left">
<div class="openwebrx-panel" data-panel-name="client-under-devel" style="width: 245px; background-color: Red;">
<span style="font-size: 15pt; font-weight: bold;">Under construction</span>
<br />We're working on the code right now, so the application might fail.
</div>
<div id="openwebrx-digimode-content-container">
<div class="gradient"></div>
<div id="openwebrx-digimode-content">
<span id="openwebrx-cursor-blink"></span>
<div class="openwebrx-panel" id="openwebrx-panel-digimodes" style="display: none; width: 619px;" data-panel-name="digimodes">
<div id="openwebrx-digimode-canvas-container">
<div id="openwebrx-digimode-select-channel"></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-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"></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-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"></div>
<div class="openwebrx-dmr-id"></div>
<div class="openwebrx-dmr-name"></div>
<div class="openwebrx-dmr-target"></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"></div>
<div class="openwebrx-dmr-id"></div>
<div class="openwebrx-dmr-name"></div>
<div class="openwebrx-dmr-target"></div>
</div>
</div>
<div class="openwebrx-panel" id="openwebrx-panel-log" data-panel-name="debug" style="width: 619px;">
<div class="openwebrx-panel-inner nano" id="openwebrx-log-scroll">
<div class="nano-content">
<div id="openwebrx-client-log-title">OpenWebRX client log</div>
<div>
Author contact: <a href="http://www.justjakob.de/" target="_blank">Jakob Ketterl, DD5JFK</a> |
<a href="https://www.openwebrx.de" target="_blank">OpenWebRX homepage</a>
<div id="openwebrx-digimode-content-container">
<div class="gradient"></div>
<div id="openwebrx-digimode-content">
<span id="openwebrx-cursor-blink"></span>
</div>
<div>Support and information: <a href="https://groups.io/g/openwebrx" target="_blank">Groups.io Mailinglist</a></div>
<div id="openwebrx-debugdiv"></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-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"></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"></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" id="openwebrx-panel-log" data-panel-name="debug" style="width: 619px;">
<div class="openwebrx-panel-inner nano" id="openwebrx-log-scroll">
<div class="nano-content">
<div id="openwebrx-client-log-title">OpenWebRX client log</div>
<div>
Author contact: <a href="http://www.justjakob.de/" target="_blank">Jakob Ketterl, DD5JFK</a> |
<a href="https://www.openwebrx.de" target="_blank">OpenWebRX homepage</a>
</div>
<div>Support and information: <a href="https://groups.io/g/openwebrx" target="_blank">Groups.io Mailinglist</a></div>
<div id="openwebrx-debugdiv"></div>
</div>
</div>
</div>
<div class="openwebrx-panel" id="openwebrx-panel-status" data-panel-name="status" style="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 class="openwebrx-panel" id="openwebrx-panel-status" data-panel-name="status" style="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 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 class="openwebrx-modes openwebrx-panel-line"></div>
<div class="openwebrx-panel-line">
<div title="Mute on/off" class="openwebrx-button openwebrx-slider-button openwebrx-mute-button" onclick="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="50" step="1" onchange="updateVolume()" oninput="updateVolume()">
<div title="Auto-adjust waterfall colors (right-click for continuous)" id="openwebrx-waterfall-colors-auto" class="openwebrx-button openwebrx-slider-button">
<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="updateWaterfallColors(0);" oninput="updateVolume()">
</div>
<div class="openwebrx-panel-line">
<div title="Auto-set squelch level" class="openwebrx-squelch-auto openwebrx-button openwebrx-slider-button">
<svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#squelch"></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="Set waterfall colors to default" id="openwebrx-waterfall-colors-default" class="openwebrx-button openwebrx-slider-button" onclick="waterfallColorsDefault()">
<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="updateWaterfallColors(1);" oninput="updateVolume()">
</div>
<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 id="openwebrx-smeter-db">0 dB</div>
</div>
<div class="openwebrx-panel-line">
<div id="openwebrx-smeter">
<div class="openwebrx-smeter-bar"></div>
</div>
</div>
</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...">
<span class="sprite sprite-bookmark"></span>
</div>
</div>
<div class="openwebrx-panel-line">
<select id="openwebrx-sdr-profiles-listbox" onchange="sdr_profile_changed();">
</select>
</div>
<div class="openwebrx-modes openwebrx-panel-line"></div>
<div class="openwebrx-panel-line">
<div title="Mute on/off" class="openwebrx-button openwebrx-mute-button" onclick="toggleMute();"><span class="sprite sprite-speaker openwebrx-sliderbtn-img"></span></div>
<input title="Volume" id="openwebrx-panel-volume" class="openwebrx-panel-slider" type="range" min="0" max="150" value="50" step="1" onchange="updateVolume()" oninput="updateVolume()">
<div title="Auto-adjust waterfall colors (right-click for continuous)" id="openwebrx-waterfall-colors-auto" class="openwebrx-button"><span class="sprite sprite-waterfall-auto openwebrx-sliderbtn-img"></span></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="updateWaterfallColors(0);" oninput="updateVolume()">
</div>
<div class="openwebrx-panel-line">
<div title="Auto-set squelch level" class="openwebrx-squelch-auto openwebrx-button"><span class="sprite sprite-squelch openwebrx-sliderbtn-img"></span></div>
<input title="Squelch" class="openwebrx-squelch-slider openwebrx-panel-slider" type="range" min="-150" max="0" value="-150" step="1">
<div title="Set waterfall colors to default" id="openwebrx-waterfall-colors-default" class="openwebrx-button" onclick="waterfallColorsDefault()"><span class="sprite sprite-waterfall-default openwebrx-sliderbtn-img"></span></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="updateWaterfallColors(1);" oninput="updateVolume()">
</div>
<div class="openwebrx-panel-line">
<div class="openwebrx-button openwebrx-square-button" onclick="zoomInOneStep();" title="Zoom in one step"><span class="sprite sprite-zoom-in"></span></div>
<div class="openwebrx-button openwebrx-square-button" onclick="zoomOutOneStep();" title="Zoom out one step"><span class="sprite sprite-zoom-out"></span></div>
<div class="openwebrx-button openwebrx-square-button" onclick="zoomInTotal();" title="Zoom in totally"><span class="sprite sprite-zoom-in-total"></span></div>
<div class="openwebrx-button openwebrx-square-button" onclick="zoomOutTotal();" title="Zoom out totally"><span class="sprite sprite-zoom-out-total"></span></div>
<div id="openwebrx-smeter-db">0 dB</div>
</div>
<div class="openwebrx-panel-line">
<div id="openwebrx-smeter">
<div class="openwebrx-smeter-bar"></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-error-overlay" class="openwebrx-overlay" style="display:none;">
<div id="openwebrx-autoplay-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>
<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;">

View File

@ -282,7 +282,7 @@ AudioEngine.prototype.processAudio = function(data, resampler) {
var buffer;
if (this.compression === "adpcm") {
//resampling & ADPCM
buffer = this.audioCodec.decode(new Uint8Array(data));
buffer = this.audioCodec.decodeWithSync(new Uint8Array(data));
} else {
buffer = new Int16Array(data);
}
@ -328,6 +328,10 @@ ImaAdpcmCodec.prototype.reset = function() {
this.stepIndex = 0;
this.predictor = 0;
this.step = 0;
this.synchronized = 0;
this.syncWord = "SYNC";
this.syncCounter = 0;
this.skip = 0;
};
ImaAdpcmCodec.imaIndexTable = [ -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8 ];
@ -353,6 +357,43 @@ ImaAdpcmCodec.prototype.decode = function(data) {
return output;
};
ImaAdpcmCodec.prototype.decodeWithSync = function(data) {
var output = new Int16Array(data.length * 2);
var index = this.skip;
var oi = 0;
while (index < data.length) {
while (this.synchronized < 4 && index < data.length) {
if (data[index] === this.syncWord.charCodeAt(this.synchronized)) {
this.synchronized++;
} else {
this.synchronized = 0;
}
index++;
if (this.synchronized === 4) {
if (index + 4 < data.length) {
var syncData = new Int16Array(data.buffer.slice(index, index + 4));
this.stepIndex = syncData[0];
this.predictor = syncData[1];
}
this.syncCounter = 1000;
index += 4;
break;
}
}
while (index < data.length) {
if (this.syncCounter-- < 0) {
this.synchronized = 0;
break;
}
output[oi++] = this.decodeNibble(data[index] & 0x0F);
output[oi++] = this.decodeNibble(data[index] >> 4);
index++;
}
}
this.skip = index - data.length;
return output.slice(0, oi);
};
ImaAdpcmCodec.prototype.decodeNibble = function(nibble) {
this.stepIndex += ImaAdpcmCodec.imaIndexTable[nibble];
this.stepIndex = Math.min(Math.max(this.stepIndex, 0), 88);

View File

@ -87,8 +87,8 @@ BookmarkBar.prototype.render = function(){
var $bookmark = $(
'<div class="bookmark" data-source="' + b.source + '"' + (b.editable?' editable="editable"':'') + '>' +
'<div class="bookmark-actions">' +
'<div class="openwebrx-button action" data-action="edit"><span class="sprite sprite-edit"></span></div>' +
'<div class="openwebrx-button action" data-action="delete"><span class="sprite sprite-trashcan"><span></div>' +
'<div class="openwebrx-button action" data-action="edit"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#edit"></use></svg></div>' +
'<div class="openwebrx-button action" data-action="delete"><svg viewBox="0 0 80 80"><use xlink:href="static/gfx/svg-defs.svg#trashcan"></use></svg></div>' +
'</div>' +
'<div class="bookmark-content">' + b.name + '</div>' +
'</div>'

View File

@ -180,6 +180,7 @@ PacketMessagePanel.prototype.pushMessage = function(msg) {
}
} else if (msg.lat && msg.lon) {
classes.push('openwebrx-maps-pin');
overlay = '<svg viewBox="0 0 20 35"><use xlink:href="static/gfx/svg-defs.svg#maps-pin"></use></svg>';
}
var attrs = [
'class="' + classes.join(' ') + '"',

View File

@ -145,7 +145,7 @@ YsfMetaPanel.prototype.setLocation = function(lat, lon, callsign) {
this.hasLocation = hasLocation; this.callsign = callsign;
var html = '';
if (hasLocation) {
html = '<a class="openwebrx-maps-pin" href="map?callsign=' + encodeURIComponent(callsign) + '" target="_blank"></a>';
html = '<a class="openwebrx-maps-pin" href="map?callsign=' + encodeURIComponent(callsign) + '" target="_blank"><svg viewBox="0 0 20 35"><use xlink:href="static/gfx/svg-defs.svg#maps-pin"></use></svg></a>';
}
this.el.find('.openwebrx-ysf-source .location').html(html);
};
@ -162,9 +162,145 @@ YsfMetaPanel.prototype.setDown = function(down) {
this.el.find('.openwebrx-ysf-down').text(down || '');
}
function DStarMetaPanel(el) {
MetaPanel.call(this, el);
this.modes = ['DSTAR'];
this.clear();
}
DStarMetaPanel.prototype = new MetaPanel();
DStarMetaPanel.prototype.update = function(data) {
if (!this.isSupported(data)) return;
if (data['sync'] && data['sync'] == 'voice') {
this.el.find(".openwebrx-meta-slot").addClass("active");
this.setOurCall(data['ourcall']);
this.setYourCall(data['yourcall']);
this.setDeparture(data['departure']);
this.setDestination(data['destination']);
this.setMessage(data['message']);
this.setLocation(data['lat'], data['lon'], data['ourcall']);
} else {
this.clear();
}
};
DStarMetaPanel.prototype.setOurCall = function(ourcall) {
if (this.ourcall === ourcall) return;
this.ourcall = ourcall;
this.el.find('.openwebrx-dstar-ourcall .callsign').text(ourcall || '');
};
DStarMetaPanel.prototype.setYourCall = function(yourcall) {
if (this.yourcall === yourcall) return;
this.yourcall = yourcall;
this.el.find('.openwebrx-dstar-yourcall').text(yourcall || '');
};
DStarMetaPanel.prototype.setDeparture = function(departure) {
if (this.departure === departure) return;
this.departure = departure;
this.el.find('.openwebrx-dstar-departure').text(departure || '');
};
DStarMetaPanel.prototype.setDestination = function(destination) {
if (this.destination === destination) return;
this.destination = destination;
this.el.find('.openwebrx-dstar-destination').text(destination || '');
};
DStarMetaPanel.prototype.setMessage = function(message) {
if (this.message === message) return;
this.message = message;
this.el.find('.openwebrx-dstar-message').text(message || '');
}
DStarMetaPanel.prototype.clear = function() {
MetaPanel.prototype.clear.call(this);
this.setOurCall();
this.setYourCall();
this.setDeparture();
this.setDestination();
this.setMessage();
this.setLocation();
};
DStarMetaPanel.prototype.setLocation = function(lat, lon, callsign) {
var hasLocation = lat && lon && callsign && callsign != '';
if (hasLocation === this.hasLocation && this.callsign === callsign) return;
this.hasLocation = hasLocation; this.callsign = callsign;
var html = '';
if (hasLocation) {
html = '<a class="openwebrx-maps-pin" href="map?callsign=' + encodeURIComponent(callsign) + '" target="_blank"><svg viewBox="0 0 20 35"><use xlink:href="static/gfx/svg-defs.svg#maps-pin"></use></svg></a>';
}
this.el.find('.openwebrx-dstar-ourcall .location').html(html);
};
function NxdnMetaPanel(el) {
MetaPanel.call(this, el);
this.modes = ['NXDN'];
this.clear();
}
NxdnMetaPanel.prototype = new MetaPanel();
NxdnMetaPanel.prototype.update = function(data) {
if (!this.isSupported(data)) return;
if (data['sync'] && data['sync'] == 'voice') {
this.el.find(".openwebrx-meta-slot").addClass("active");
this.setSource(data['additional'] && data['additional']['callsign'] || data['source']);
this.setName(data['additional'] && data['additional']['fname']);
this.setDestination(data['destination']);
this.setMode(['conference', 'individual'].includes(data['type']) ? data['type'] : undefined);
} else {
this.clear();
}
};
NxdnMetaPanel.prototype.setSource = function(source) {
if (this.source === source) return;
this.source = source;
this.el.find('.openwebrx-nxdn-source').text(source || '');
};
NxdnMetaPanel.prototype.setName = function(name) {
if (this.name === name) return;
this.name = name;
this.el.find('.openwebrx-nxdn-name').text(name || '');
};
NxdnMetaPanel.prototype.setDestination = function(destination) {
if (this.destination === destination) return;
this.destination = destination;
this.el.find('.openwebrx-nxdn-destination').text(destination || '');
};
NxdnMetaPanel.prototype.setMode = function(mode) {
if (this.mode === mode) return;
this.mode = mode;
var modes = ['individual', 'conference'];
var classes = modes.filter(function(c){
return c !== mode;
});
this.el.find('.openwebrx-meta-slot').removeClass(classes.join(' ')).addClass(mode);
};
NxdnMetaPanel.prototype.clear = function() {
MetaPanel.prototype.clear.call(this);
this.setMode();
this.setSource();
this.setName();
this.setDestination();
};
MetaPanel.types = {
dmr: DmrMetaPanel,
ysf: YsfMetaPanel
ysf: YsfMetaPanel,
dstar: DStarMetaPanel,
nxdn: NxdnMetaPanel,
};
$.fn.metaPanel = function() {

View File

@ -38,7 +38,7 @@ $.fn.exponentialInput = function() {
// calculate initial exponent
var value = parseFloat($input.val());
if (!Number.isNaN(value)) {
$exponent.val(Math.floor(Math.log10(value) / 3) * 3);
$exponent.val(Math.floor(Math.log10(Math.abs(value)) / 3) * 3);
setExponent();
}
})

BIN
htdocs/mstile-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1213,19 +1213,12 @@ var audioEngine;
function openwebrx_init() {
audioEngine = new AudioEngine(audio_buffer_maximal_length_sec, audioReporter);
$('body').on('click', '#openwebrx-autoplay-overlay', function(){
var $overlay = $('#openwebrx-autoplay-overlay');
$overlay.on('click', function(){
audioEngine.resume();
});
audioEngine.onStart(onAudioStart);
if (!audioEngine.isAllowed()) {
var $overlay = $(
'<div id="openwebrx-autoplay-overlay" class="openwebrx-overlay" style="display:none;">' +
'<div class="overlay-content">' +
'<img id="openwebrx-play-button" src="static/gfx/openwebrx-play-button.svg" />' +
'<div>Start OpenWebRX</div>' +
'</div>' +
'</div>'
);
$('body').append($overlay);
$overlay.show();
}

2388
inkscape files/favicon.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 173 KiB

View File

@ -1,6 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@ -14,8 +12,8 @@
viewBox="0 0 20 34.892337"
id="svg3455"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="Map Pin.svg">
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="google_maps_pin.svg">
<defs
id="defs3457" />
<sodipodi:namedview
@ -31,15 +29,16 @@
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1024"
inkscape:window-height="705"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
fit-margin-bottom="0"
inkscape:document-rotation="0" />
<metadata
id="metadata3460">
<rdf:RDF>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 80 80"
version="1.1"
id="svg4"
sodipodi:docname="openwebrx-bookmark.svg"
width="80"
height="80"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1381"
id="namedview6"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="11.335806"
inkscape:cx="36.739751"
inkscape:cy="44.281478"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 62.5,0 h -45 C 13.357813,0 10,3.3578125 10,7.5 V 80 L 40,62.5 70,80 V 7.5 C 70,3.3578125 66.642187,0 62.5,0 Z m 0,66.942188 -22.5,-13.125 -22.5,13.125 V 8.4375 A 0.9375,0.9375 0 0 1 18.4375,7.5 h 43.125 C 62.080313,7.5 62.5,7.9192187 62.5,8.436875 Z"
id="path2"
style="stroke-width:0.156;stroke-miterlimit:4;stroke-dasharray:none;fill:#ffffff;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="DESIGNS"
x="0px"
y="0px"
width="80"
height="80"
viewBox="0 0 80 80"
xml:space="preserve"
sodipodi:docname="openwebrx-edit.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"><defs
id="defs13" /><sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1381"
id="namedview11"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="8.015625"
inkscape:cx="50.931774"
inkscape:cy="30.97076"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:current-layer="DESIGNS" /><title
property="dc:title"
id="title2">to edit</title><path
class="linesandangles_een"
d="m 52.5,7.5 -45,45 v 20 h 20 l 45,-45 z m 12.93,20 -4.6975,4.6975 -12.93,-12.93 L 52.5,14.57 Z m -50.1275,24.2675 4.06,-4.06 c 1.5325,1.125 3.575,2.0025 5.81,2.0025 2.1475,0 4.4525,-0.8 6.595,-2.9425 l 10,-10 c 2.52,-2.52 4.6225,-7.7275 0.9675,-12.43 l 1.535,-1.535 12.93,12.93 -28.9675,28.965 z m 22.93,-18.535 -10,10 c -2.0625,2.0575 -4.0075,1.595 -5.27,0.875 L 39.14,27.93 c 1.465,2.485 -0.27,4.6425 -0.9075,5.3025 z M 12.5,56.035 23.965,67.5 H 12.5 Z"
style="fill:#ffffff;fill-opacity:1;stroke-width:2.5"
id="path6" /><metadata
id="metadata8"><work
rdf:about=""><format>image/svg+xml</format><type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><license
rdf:resource="http://creativecommons.org/licenses/by/4.0/" /><attributionname>Shannon E Thomas</attributionname><attributionurl>http://www.toicon.com/icons/lines-and-angles_edit</attributionurl></work><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title>to edit</dc:title></cc:Work></rdf:RDF></metadata></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,277 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="400"
viewBox="0 0 400 400"
version="1.1"
id="svg6073"
sodipodi:docname="openwebrx-groupcall.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<defs
id="defs6067">
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter8693"
x="-0.25"
y="-0.25"
width="1.5"
height="1.5">
<feFlood
flood-opacity="0.4"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood8683" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite8685" />
<feGaussianBlur
in="composite1"
stdDeviation="66.6"
result="blur"
id="feGaussianBlur8687" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset8689" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite8691" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="124.48089"
inkscape:cy="196.34508"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata6070">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="400"
height="400"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
fzmUE8s5xKfbAAAAAElFTkSuQmCC
"
id="image8601"
x="0"
y="0" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<g
fill="#ffffff"
id="g6985-0"
transform="matrix(0.42445796,0,0,0.42483521,129.12011,42)"
style="display:inline;filter:url(#filter8693)">
<path
id="path6983-9"
style="display:inline;stroke-width:0.424647"
d="m 141.00391,42 c -41.927961,0 -60.353635,29.337263 -55.892582,68.32227 3.624871,31.64342 17.451122,70.17417 55.892582,70.16992 38.43891,-0.004 52.27195,-38.52395 55.89257,-70.16992 C 201.35754,71.339387 182.94035,42 141.00391,42 Z m 118,0 c -41.92796,0 -60.35364,29.337263 -55.89258,68.32227 3.62487,31.64342 17.45112,70.17417 55.89258,70.16992 38.43891,-0.004 52.27195,-38.52395 55.89257,-70.16992 C 319.35754,71.339387 300.94035,42 259.00391,42 Z M 96.357422,174.15625 c -3.460606,1.83019 -7.147703,3.43692 -11.263672,5.05469 -8.4569,3.32731 -18.023739,5.13806 -25.410156,10.65625 -12.774487,9.54307 -16.074531,31.01082 -18.667969,45.65234 -2.14139,12.08826 -3.580211,24.42369 -4,36.70313 -0.325135,9.51078 4.366733,10.84338 12.316406,13.71484 9.954813,3.59326 20.231962,6.26064 30.578125,8.44727 19.982208,4.22328 40.579354,7.46994 61.087894,7.61523 19.79717,-0.14066 39.67129,-3.18071 59,-7.18945 19.32925,4.00882 39.20306,7.0492 59,7.18945 20.50896,-0.14572 41.1061,-3.39195 61.08789,-7.61523 10.34616,-2.18578 20.62611,-4.85316 30.58008,-8.44727 7.95264,-2.87061 12.64349,-4.20321 12.31836,-13.71484 h 0.004 c -0.42021,-12.27944 -1.85903,-24.61487 -4,-36.70313 -2.59386,-14.64364 -5.89433,-36.11139 -18.66797,-45.65234 -7.38726,-5.51776 -16.95325,-7.32894 -25.41015,-10.65625 -4.11597,-1.61862 -7.80307,-3.22492 -11.26368,-5.05469 -11.68023,12.81983 -26.91033,19.52649 -44.64843,19.52734 -17.73131,0 -32.96039,-6.70666 -44.64063,-19.52734 -3.4606,1.83019 -7.1477,3.43692 -11.26367,5.05469 -1.01596,0.39972 -2.04953,0.77564 -3.0918,1.14062 -1.04227,-0.36499 -2.07584,-0.7409 -3.09179,-1.14062 -4.11597,-1.61862 -7.80307,-3.22492 -11.26368,-5.05469 -11.68023,12.81983 -26.91033,19.52649 -44.64843,19.52734 -17.73131,0 -32.96039,-6.70666 -44.640628,-19.52734 z"
transform="matrix(2.3559459,0,0,2.3538539,-304.2,-98.861862)" />
</g>
<g
fill="#ffffff"
id="g6985"
transform="matrix(0.42445796,0,0,0.42483521,70.120108,102)"
style="display:inline;filter:url(#filter8693)">
<path
id="path6983"
d="m 550.98,541.91 c -0.99,-28.904 -4.377,-57.939 -9.421,-86.393 -6.111,-34.469 -13.889,-85.002 -43.983,-107.46 -17.404,-12.988 -39.941,-17.249 -59.865,-25.081 -9.697,-3.81 -18.384,-7.594 -26.537,-11.901 -27.518,30.176 -63.4,45.962 -105.19,45.964 -41.774,0 -77.652,-15.786 -105.17,-45.964 -8.153,4.308 -16.84,8.093 -26.537,11.901 -19.924,7.832 -42.461,12.092 -59.863,25.081 -30.096,22.463 -37.873,72.996 -43.983,107.46 -5.045,28.454 -8.433,57.489 -9.422,86.393 -0.766,22.387 10.288,25.525 29.017,32.284 23.453,8.458 47.666,14.737 72.041,19.884 47.077,9.941 95.603,17.582 143.92,17.924 48.318,-0.343 96.844,-7.983 143.92,-17.924 24.375,-5.145 48.59,-11.424 72.041,-19.884 18.736,-6.757 29.789,-9.895 29.023,-32.284 z M 306,325.99 C 396.56,325.98 429.15,235.31 437.68,160.82 448.19,69.06 404.8,0 306,0 207.22,0 163.81,69.055 174.32,160.82 182.86,235.304 215.434,326 306,325.99 Z"
style="display:inline" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="400"
viewBox="0 0 400 400"
version="1.1"
id="svg8719"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-mute.svg">
<defs
id="defs8713" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="328.57143"
inkscape:cy="213.08184"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata8716">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="original image"
style="display:none">
<image
width="400"
height="400"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAACFCAYAAAB12js8AAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TtSoVBwuKiGSoThZERRy1CkWoEGqFVh1MLv2CJg1Jiouj4Fpw8GOx6uDirKuDqyAI
foC4uDopukiJ/0sKLWI9OO7Hu3uPu3eAUC0yzWobBzTdNhOxqJhKr4qBV3SgC33ox7DMLGNOkuJo
Ob7u4ePrXYRntT735+hRMxYDfCLxLDNMm3iDeHrTNjjvE4dYXlaJz4nHTLog8SPXFY/fOOdcFnhm
yEwm5olDxGKuiZUmZnlTI54iDquaTvlCymOV8xZnrVhm9XvyFwYz+soy12kOIYZFLEGCCAVlFFCE
jQitOikWErQfbeEfdP0SuRRyFcDIsYASNMiuH/wPfndrZScnvKRgFGh/cZyPESCwC9QqjvN97Di1
E8D/DFzpDX+pCsx8kl5paOEjoHcbuLhuaMoecLkDDDwZsim7kp+mkM0C72f0TWmg7xboXvN6q+/j
9AFIUlfxG+DgEBjNUfZ6i3d3Nvf275l6fz9A83KTcSQGXAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlw
SFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+MGDw4xMGE9PG4AAAm3SURBVHja7Z17sFVVHcc/v3sv
gQpaGAzNHR9DZajkI2IkzGigUVFehpSjRAySmhXYS0enCBly6KXB4OgEvogAQXAYFCOMSIYLYQwN
MQOZqEmggF4SjLjgvd/+2JvmStxz1z7n3HP2Puf3+fusvddZ67PXXs/fBsdxHMdxHMdxHMdxHMdx
HMdxHMdxHMdxHMdxHMdxHMfpQCSNkLRe0lFJ70haLOk8L5nqlKFG0k91cg5K6uelVF1CnCJpiXLz
Fy+p6hGih6QGhXF+tZRLTRUL8QlgA/CZwCRnuRSVLcRAYB3w0QTJal2KyhViDPB7oIe/QF0KJP0Q
eBLo4lXfNnVVIkMdMBu41avcpUBSN2AxcLVXt0uBpHrgWeBir2rvUyDpYuBPLoRLcVyIUUADUO9V
7FIgaTLwFHCqV2+VSyGpVtJM4Jckm2jaDjzjKlSYFJJOA5YBkxImXQ98DviHq1BBUkjqBawFRiRM
Og8YbGZvuQYVJIWkC4GNwKeTJAPuBcab2VFX4P+py7AQQ+IO5QcTJDsKfM3M5nnVV1hLIWk88FxC
IQ4AV7sQFSaFJJM0FXgM6JQg6avA5Wb2B6/yCnp9SOoMzAXGJky6CRhhZntLOBL6LHA6sMPM/pqC
sutJtJmoBthsZq9XwpCzu6S1Ss4ySacGXH92wLWGBlxnrKTGE9KtiddgylFuNZLuk9TUKj/NkuZK
6pJlIXpL2p6HEDMl1QTeo2ApJI2U1NJG2u2SzixD2c3K8X/mZ1WIAZL2JpThPUnfTHifYkixo530
ayV9oIRld0fAf7oka0KMlnQ4oRDvShqex70KkkJSr8D8PSHJSlB2w+OHoz0m59XRlPRxYALQl9Jt
Y6sDBgFJCnAPMMzMtqS4wz4O+DswvQOFuBRYQNj6T23iPyNpHPAroHPKG5atsRC7ynT/3cDrwNkB
v50m6WUzW9QBQtQDK4CugUk2JpqnkPRJ4JEMCPE74IoyCoGZCZgW+nPgsfiYQTGF6BoLETrSWW1m
DUknr27PwDzGHOBaMztY7oyY2SPAw4E/7wIsl/SxYg09gfnApQkm89qc78klRd8090OBu83sFjN7
L0X5mgQ8H/jbDwMrJH2oCPf9BTAy8LcH48m8fflIkdbXRhMw1sxmpC1jZnYMGA1sC0zSB3i6kKGq
pInAHYE/PwaMNrOc+cvaglgjcKWZLUhrBuNX2XBgX2CSQcBDeQpxVcK0k8ys3ZYsS1LsBAaa2Qtp
z6iZvQYMAw4HJpkg6c6EQlxAdNottN/3EzML6vNkQYom4FGgv5n9LSsGm9mLwPi4/xPCDEk3BArR
C1gJnBF47WXAPcWedGmLfsC/Orh895jZETKImS2R1CdwuGrAo5JeM7ONOYQ4BXgaOCcwG5uBcWbW
UoxhzqaAadIzqQCKtUraxrUtnt4O5Q1J5+S41sIE1/pnPiu0VRu0pISthYCJwJrAJL2AlZJO9mqY
AdwQeJ1DwDVmttulSKcYx4AxwEuBSS4AnoxPyx9vJSYAoZ3RZuBGM9uaT35ditKJ0QgMBfYHJvnf
cFNS0mHrZDPL+4BTnVdXScV4RdJoYDVhk4MTJe0HbgNCJ7geMLMHC8mntxSlF2NdwqHq3UDoVPhK
4PuF5tGlKI8Yi4AfF/myW4Avm1mzS5FdpgC/KdZcDjDSzN4txsVcivIPVRsKvNRhYFQx95O4FOUV
4wjRweiX87xESzz0fLGY+XIpyi/G20SrqgfySP4dM1te7Dy5FOkQYwfwjYTJGsxsZkfkx6VIAZK6
A1MTJrtM0jCXojKF6AQsAZJ+bKYWWCDpIpeisoQwokPTg/O8RDeixbN6l6Jy+AHRAaFCqCfaGX6a
S5H9VmIMUZilYtAPmBd6oNqlSKcQ/YHHSXYssj2+CNznUmRTiHOJ4naGBn9dBYSebblL0m0uRbaE
OJ3oaF/PwCR/JJrx/HqC28yS9AWXIjtDz6WEn7zbAVxnZkfNbC5RJOEQOgFLJfV1KdLPLCD0CX4L
GG5mrae+vwuETmmfTnQksadLkd5W4i6i3VMhHCFaBn/fIlm8Rf9GIHTx61zgmZCYXy5F6YVIMioQ
MLGtEAFmdhgYBYQuk/cHHk8aPafQPZqbJTV3YJkeiDtb9+ezVT0FQvQjigEe+vBNMbOcG2/MbI+k
kcALhAUnGRP3T6YU4w9tUnp4W9LgDqy8oh8GklQfH8YJZWGSJ1rSNYFxrRRH7QueOc3K66M7sErS
rRlpIboRbaINXZNYRxRAPnQzL2aWZJOuAXNDH6ws9SnqgIeTxMcskxC1RIHIQlcvXyGKGdGU9F5m
9gAQup2/E7BE0nmFSNGS0nKfBDwRh2VOIzOJwhCE0AgMNbP9BdxvMtGEWGiL+5ykHvlKsSvFrcbY
+HXSPWWtxLcJ30F1DLjezF4q5J7xlv6biCIEhtCbaHKrcz5SLCLdDALWS+qdEiGGAD9LMPS8uVhf
FTCzQ0T7PN8MTHIFOWZIc0mxLANi9AE2SBqQgrz8nPAP2k03s18X8+ZxZP4RhEfPuSWOnREuRdwT
vokoyNZ2wo+5lZqewJr4jGa5WokeQGic64XAjzoiH/FW/68E9gdrCJ92T0VTfJGkXQnnMlriD8SU
fJ5C0tmBeVxfik8qSLozMD/fI0vEkz9b8pjomhOvSJZSihpJb7aTfmd7vf4il9+cgP80mKwhqauk
Z/MQY1W8d6EkUhwfeeRI2yjp/BKXXSdJq3PkqSHN8z3t/bk6SQ/lIcZWSWeVUAqTdP9JPgSzW9Jl
ZXyofnuS//JnSR8h60iaHH/qKAm7JX2qFFKc0B+6R9IMSePjQOrlLDeTNETSNEnT4y8Y1VIpSLo+
jw/DHJJ0bamkqAQy9U4xs6eAIYTHjYJoeXm5pNtxKk+KWIwNRJ9TTBJ9txZ4MO2LaS5FYWLsBAYS
bTRJwiRgcRy11qkkKWIxGoEriZapkzCaaAa0p1d/hUkRi9FEtGKa9PjdAKI1kz6uQIVJEYshM5sK
3Ey0HB1Kb6JV1kGuQQUj6SpJ7yQcsh6RtM2HpBXUUpzQaqwCLif6HGQonYEL/ZGqUCliMbbFfYbN
Xr0uRWsx3iDambXCq9ilaC3Gv4HrgNlezS5FazGazexbRLvHWry6XYrWcswEvgT8x6vcpWgtxlLg
88Ber3aXorUYm4gW07Z71bsUrcV4lWguY61Xv0vRWowDRN/omp8gWZPrUgXEW9XuPcm+yhNpjr8a
7FSRHF+V1JQrdoSXUnWKMVjSvja2wp9RTWVhrsP7xOhBtAR/SdyHeB5YFH9s1nEcx3Ecx3Ecx3Ec
x3Ecx3Ecx3Ecx3Ecx3EcJ+K/Ri/SYJFbjQwAAAAASUVORK5CYII=
"
id="image9471"
x="0"
y="0" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<g
id="g1"
transform="matrix(5.3512516,0,0,5.3723191,-0.7293806,-1.5422576)">
<polygon
id="polygon1"
points="21.989,47.699 39.389,62.75 39.389,13.769 22.235,28.606 6,28.606 6,47.699 "
style="fill-opacity:0;stroke:#ffffff;stroke-width:5;stroke-linejoin:round;paint-order:fill" />
<path
id="path3003"
d="M 48.651772,50.269646 69.395223,25.971024"
style="stroke:#ffffff;stroke-width:5;stroke-linecap:round" />
<path
id="path3003-1"
d="M 69.395223,50.269646 48.651772,25.971024"
style="stroke:#ffffff;stroke-width:5;stroke-linecap:round" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
sodipodi:docname="openwebrx-panel-log.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
inkscape:export-filename="/home/jakob/workspace/openwebrx/htdocs/gfx/inkscape files/openwebrx-panel-log.png"
inkscape:export-xdpi="384"
inkscape:export-ydpi="384">
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1381"
id="namedview15"
showgrid="true"
showguides="false"
inkscape:lockguides="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="15.572868"
inkscape:cx="22.674387"
inkscape:cy="4.2078533"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:current-layer="g2153"
viewbox-width="80"
scale-x="1"
inkscape:document-rotation="0" />
<defs
id="defs2">
<marker
style="overflow:visible"
id="Arrow2Lstart"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lstart"
inkscape:isstock="true">
<path
transform="matrix(1.1,0,0,1.1,1.1,0)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
id="path871" />
</marker>
</defs>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAAemwAAHpsBLijKHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAARGSURB VFiF7ZjPayRFFMe/r6q6Z5KeMAmbyy7mIMQokbCCe0j24HoSIfEggSX/huAxh5yC4smbkEMCOSSX RY2YVcQgeFAxgihETTCXCMEow04ck+nu+uFhuiY1nXTSPZOAgl8ouofp6vrMq1dv3ntkjEEeERHl erCgTAaAuGqiA5S+9syUvL/1IQV4KVgCZQdz7tuPdAPj3BsAGoAhog64TDAHigHgybgIrhu5UMpe XbgLwVJQwhn8msDgQCkAsQW1cFkWS0P5AMTOzs7rIyMjryXP5Ds159/bBjs+Pv5uaWlpdWFh4Qhn Vmz5XvpQJNay2+cD8AD4Gxsbd2dmZt4/PT39VilVI6LCYMYYcq/lcnmMcz44OTl5d3t7+wRABOtz LpizhdwCAfBnZ2er6+vrnzPG+uv1+qNarfYNYwxF4YwxpJQiKSWL45gBYOPj4wv7+/tvjI2NbQAI 0dras628wNlFAseXl5ffZoz1M8ZulUql/iAIpBBCJ/PyQkFrTUopajabAgDiOIaU8rcgCO7gzHep AyzROajd3d2HlUrlFSIKAMDzvGoQBJIxZopaTCnFpJRkAZVSdmuB1KESGdbyAIjV1dVnRkdH3yKi kp3ged6053n30fKFoiJjDPr6+j44PDz8KrH2lZGfwTmJU1NT5bm5uWWcxS73uScAfi9KZYyBMYaM MU+IyDDGMi0uUtHdBlK+ubm5yDl/ioj8C+b1A3gXBUOGUoqiKGInJyfWVTLlWqy9lSsrK09Xq9WH URR9L4QIGGO3AIRE9CdaltpN5sZFwIrIgrlWo6GhoQqA8ODg4L1KpRIPDw8/4Jy/mIDfTsaDwosJ Ac45EdFWo9H4IQ9YGg4AwDk3QghNRGUiGiwKkiX3MOUBu+gFhogQhuFHvu9/KITo5m+oLSllbh9j vSx0k7oyUQQA3/fvc86n0N0fd1uMsc8A/HhtYEQ0QER3eoFKFOR9MBdYGIaf+r7/uFcf01rbkHSl /vM+NimEeLnnxbqMY5epDODfE8esoij6AsDW/3EM+X3sHuf8Xq+Lcc5RLpcJwNeNRuPnrsFsjg7g NhG90CsYEdnxqzHmlyR85ALr8CGb/tbr9ce+73/MOe8ma3Xfx6IoYs1mkyulhJNSXwpmoYz9JVJK FoYhtzk6Y6wnn9RaUxzHLIoiLqVkdh0nxT7XInBLdn10dPQXWqVbOQzDUykli6KocPGRVrp8M8YQ 53xQKXWCdMGLzrTaA1AC4DebzU+01n/XarUvAcjL8vMi0lpTkvejWq0+PzAw8Ori4uJz8/PzfyBd 8DrVt20HeGtra89OT0+/GQTBS7iZsGLiOP5pb2/vnYmJiS200nQJQBtLnqrAbV153U2UDqhkqATG Do1Wq6xV8BpjTOKACp3+dl1tp8vA3FaUsW2orN5FVqPuJuC0vXcbd1ndHjhANwnWvqZbnefA2l/c UDM4razm8D+PkQnkpFfGiQAAAABJRU5ErkJggg== "
id="image86"
x="0"
y="0"
style="display:inline;stroke:#ffffff;stroke-width:0.529167;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g2149">
<g
id="g2160"
style="stroke-width:3.5;stroke-miterlimit:4;stroke-dasharray:none">
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21,57 H 60"
id="path1136"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21,48.5 H 60"
id="path1136-3"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21,40 H 55"
id="path1136-6"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21,31.5 H 60"
id="path1136-7"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21,23 H 60"
id="path1136-5"
sodipodi:nodetypes="cc" />
</g>
<g
id="g2153"
style="stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none">
<path
style="display:inline;mix-blend-mode:normal;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.5,63.5 c 0,2.5 2.5,5 5,5 h 45 c 2.5,0 5,-2.5 5,-5 v -46 c 0,-2.5 -2.5,-5 -5,-5 H 25 l -11.5,16 z"
id="path1123"
sodipodi:nodetypes="ssssssccs"
inkscape:label="path1123" />
<path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 25,12.5 c 0,0 -1.323049,7.84716 4,15 -9.294147,-1.268245 -15.5,1 -15.5,1"
id="path1188"
sodipodi:nodetypes="ccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg3105"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-panel-map.svg">
<defs
id="defs3099" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="40"
inkscape:cy="39.911612"
inkscape:document-units="px"
inkscape:current-layer="g3837"
inkscape:document-rotation="0"
showgrid="false"
units="px"
scale-x="1"
inkscape:pagecheckerboard="true"
inkscape:object-paths="false"
inkscape:snap-intersection-paths="false"
inkscape:snap-smooth-nodes="false"
inkscape:snap-midpoints="false"
inkscape:snap-object-midpoints="true"
inkscape:snap-tangential="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata3102">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
TkSuQmCC
"
id="image3825"
x="0"
y="0"
style="display:inline" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<g
id="g3837"
style="display:inline;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.989286">
<path
id="path3829"
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.989286"
d="m 30,11 -19,8 v 50 l 19,-5 19,5 20,-5 V 11 l -10.84375,4.878906 c 1.497572,2.00222 2.394531,4.479206 2.394531,7.171875 0,2.111185 -0.550543,4.091049 -1.507812,5.814453 h 0.0039 L 49,47 38.279297,29.255859 h 0.01367 c -1.099062,-1.812401 -1.742188,-3.930676 -1.742188,-6.205078 0,-2.905449 1.033756,-5.568373 2.751953,-7.644531 z"
sodipodi:nodetypes="ccccccccscccccscc" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.989286"
d="M 30,11 V 64"
id="path3833" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.989286"
d="M 49,47 V 69"
id="path3839"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.989286"
d="M 11,59 30,34 49,52 69,46"
id="path3842"
sodipodi:nodetypes="cccc" />
</g>
<g
id="g3870"
style="display:inline">
<circle
style="display:inline;fill:none;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.989286"
id="path3845"
cx="48.549999"
cy="23.049999"
inkscape:label="path3845"
r="6.5" />
<path
id="path3851"
style="display:inline;fill:#ffffff;fill-opacity:0.2;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 48.550781,11.050781 c -6.627417,0 -12,5.372583 -12,12 0,2.274402 0.643126,4.392677 1.742188,6.205078 h -0.01367 L 49,47 59.046875,28.865234 h -0.0039 c 0.957269,-1.723404 1.507812,-3.703268 1.507812,-5.814453 0,-6.627417 -5.372583,-12 -12,-12 z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-panel-receiver.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="40.751301"
inkscape:cy="43.013749"
inkscape:document-units="px"
inkscape:current-layer="g987"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="84.210526"
height="77.894737"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
ova9yyn/BRGr/5TyNQXzAAAAAElFTkSuQmCC
"
id="image903"
x="-2.105"
y="1.0526316"
style="fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 66,29.05 12,10"
id="path917"
sodipodi:nodetypes="cc" />
<rect
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
id="rect907"
width="67.5"
height="38.5"
x="6.8000002"
y="29.049999"
ry="5"
rx="5" />
<g
id="g987"
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
<rect
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect979"
width="28.5"
height="9.5"
x="12.3"
y="34.049999"
ry="2"
rx="2" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path973"
cx="56.549999"
cy="48.549999"
r="13.5" />
<g
id="g1021"
style="display:inline;fill:#ffffff;fill-opacity:0.34999999"
transform="translate(0,-0.49999928)">
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.34999999;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path982"
cx="17.049999"
cy="50.549999"
r="3" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.34999999;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path982-3"
cx="26.299999"
cy="50.549999"
r="3" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.34999999;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path982-6"
cx="35.549999"
cy="50.549999"
r="3" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.34999999;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path982-7"
cx="17.049999"
cy="57.049999"
r="3" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.34999999;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path982-3-5"
cx="26.299999"
cy="57.049999"
r="3" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.34999999;stroke:#ffffff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path982-6-3"
cx="35.549999"
cy="57.049999"
r="3" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-panel-settings.svg">
<defs
id="defs2">
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect888"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
unit="px"
method="auto"
mode="F"
radius="1"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="13.280349"
inkscape:cx="40"
inkscape:cy="40"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:object-paths="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-object-midpoints="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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 EAAAAABJRU5ErkJggg== "
id="image941"
x="0"
y="0" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
id="path945-7"
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m 39.855469,10 -1,0.02148 c -1.041041,0.03967 -2.078102,0.133542 -3.109375,0.28125 -0.546679,0.0783 -0.853262,0.587746 -0.78125,1.134766 0.06102,0.463559 0.06238,1.29646 -0.02148,1.841797 -0.429434,2.792231 -2.635502,4.998303 -5.427734,5.427734 -0.545334,0.08387 -1.446955,0.0845 -1.992187,0 -1.649502,-0.255648 -3.139113,-1.139394 -4.15625,-2.46289 -0.336212,-0.437478 -0.915438,-0.58112 -1.357422,-0.25 -2.281483,1.709219 -4.307758,3.734592 -6.017578,6.015625 -0.331237,0.441896 -0.187588,1.019411 0.25,1.355468 1.324163,1.016924 2.20886,2.50835 2.464843,4.158204 0.08459,0.545224 0.08387,1.44685 0,1.992187 -0.429434,2.792231 -2.635502,4.998303 -5.427734,5.427734 -0.545334,0.08387 -1.447037,0.08309 -1.992188,-0.002 -0.46091,-0.07188 -0.903957,0.256079 -0.982421,0.802735 -0.154876,1.078998 -0.250509,2.166418 -0.28711,3.255859 -0.018543,0.551946 -0.020293,1.448045 -0.002,2 0.0362,1.089396 0.132644,2.174907 0.287109,3.253906 0.07826,0.546684 0.587746,0.853262 1.134766,0.78125 0.463559,-0.06102 1.29646,-0.06238 1.841797,0.02148 2.792231,0.429434 4.998303,2.635502 5.427734,5.427734 0.08387,0.545334 0.0845,1.446955 0,1.992187 -0.255648,1.649502 -1.139394,3.139114 -2.46289,4.15625 -0.437478,0.336213 -0.58112,0.915438 -0.25,1.357422 1.709219,2.281483 3.734592,4.307759 6.015625,6.017578 0.441896,0.331237 1.019411,0.187588 1.355468,-0.25 1.016924,-1.324164 2.50835,-2.20886 4.158204,-2.464843 0.545224,-0.08459 1.44685,-0.08387 1.992187,0 2.792231,0.429434 4.998303,2.635502 5.427734,5.427734 0.08387,0.545334 0.08309,1.447037 -0.002,1.992188 -0.07188,0.46091 0.256079,0.903958 0.802735,0.982421 1.078998,0.154876 2.166418,0.250509 3.255859,0.28711 0.551946,0.01854 1.448045,0.0203 2,0.002 1.089396,-0.0362 2.174907,-0.132644 3.253906,-0.287109 0.546684,-0.07826 0.853261,-0.589699 0.78125,-1.136719 -0.06102,-0.463559 -0.06238,-1.294507 0.02148,-1.839844 0.429434,-2.792231 2.635502,-4.998303 5.427734,-5.427734 0.545334,-0.08387 1.446955,-0.0845 1.992187,0 1.649502,0.255648 3.139113,1.139394 4.15625,2.46289 0.336213,0.437478 0.915438,0.58112 1.357422,0.25 2.281483,-1.709219 4.30776,-3.734592 6.017578,-6.015625 0.331238,-0.441896 0.18759,-1.019411 -0.25,-1.355468 -1.324164,-1.016924 -2.20886,-2.50835 -2.464843,-4.158204 -0.08459,-0.545223 -0.08387,-1.44685 0,-1.992187 0.429434,-2.792231 2.635502,-4.998303 5.427734,-5.427734 0.545334,-0.08387 1.447037,-0.08309 1.992188,0.002 0.46091,0.07188 0.903958,-0.258032 0.982421,-0.804688 0.154876,-1.078998 0.250509,-2.164465 0.28711,-3.253906 0.01854,-0.551946 0.0203,-1.448045 0.002,-2 -0.0362,-1.089397 -0.132644,-2.174907 -0.287109,-3.253906 -0.07826,-0.546684 -0.589699,-0.853261 -1.136719,-0.78125 -0.463559,0.06102 -1.294507,0.06238 -1.839844,-0.02148 -2.792231,-0.429434 -4.998303,-2.635502 -5.427734,-5.427734 -0.08387,-0.545334 -0.0845,-1.446956 0,-1.992187 0.255648,-1.649502 1.139394,-3.139113 2.46289,-4.15625 0.437478,-0.336212 0.58112,-0.915438 0.25,-1.357422 -1.709219,-2.281483 -3.734592,-4.307759 -6.015625,-6.017578 -0.441896,-0.331237 -1.019411,-0.18759 -1.355468,0.25 -1.016924,1.324163 -2.50835,2.20886 -4.158204,2.464843 -0.545223,0.08459 -1.44685,0.08387 -1.992187,0 -2.792231,-0.429434 -4.998303,-2.635502 -5.427734,-5.427734 -0.08387,-0.545334 -0.08309,-1.447037 0.002,-1.992188 0.07188,-0.46091 -0.256079,-0.903958 -0.802735,-0.982421 C 43.176861,10.149812 42.089441,10.054179 41,10.017578 40.448054,9.9990351 39.935292,9.9998077 39.855469,10 Z M 40,26.5 A 13.5,13.5 0 0 1 53.5,40 13.5,13.5 0 0 1 40,53.5 13.5,13.5 0 0 1 26.5,40 13.5,13.5 0 0 1 40,26.5 Z" />
<circle
style="display:inline;fill:#ffffff;fill-opacity:0.2;stroke:#ffffff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1063"
cy="39.999958"
cx="40"
r="13.5" />
<circle
style="display:inline;fill:none;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1724"
cx="40"
cy="39.999958"
r="8" />
<path
style="display:none;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.24587,69.564145 27.75413,10.435855"
id="path975"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg975"
sodipodi:docname="openwebrx-panel-status.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<defs
id="defs969" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="45.714285"
inkscape:cy="38.571428"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata972">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="92.631577"
height="71.578949"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
yeFWXqgAAAAASUVORK5CYII=
"
id="image1600"
x="-6.3157897"
y="4.2105265" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<g
id="g1785"
style="fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
<path
id="path1750"
style="fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 9.6827802,26.483369 c -3.1293273,0 -5.6661493,-2.454988 -5.6661493,-5.483368 0,-3.028381 2.536822,-5.48337 5.6661493,-5.48337 H 58.317219 c 3.129326,0 5.66615,2.454989 5.66615,5.48337 0,3.02838 -2.536824,5.483368 -5.66615,5.483368 z"
sodipodi:nodetypes="csccscc" />
<path
id="path1750-5"
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 19.112527,44.913114 c -3.129327,0 -5.66615,-2.454986 -5.66615,-5.483368 0,-3.028382 2.536823,-5.483368 5.66615,-5.483368 h 48.634438 c 3.129328,0 5.66615,2.454986 5.66615,5.483368 0,3.028382 -2.536822,5.483368 -5.66615,5.483368 z"
sodipodi:nodetypes="csccscc" />
<path
id="path1750-6"
style="display:inline;fill:#ffffff;fill-opacity:0.35;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 9.6827786,63.483366 c -3.1293268,0 -5.6661485,-2.454988 -5.6661485,-5.483368 0,-3.02838 2.5368217,-5.483368 5.6661485,-5.483368 H 58.317218 c 3.129328,0 5.66615,2.454988 5.66615,5.483368 0,3.02838 -2.536822,5.483368 -5.66615,5.483368 z"
sodipodi:nodetypes="csccscc" />
</g>
<g
id="g1809"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
<path
id="path1750-2"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 10.060032,26.45579 c -3.3224544,0 -6.0158367,-2.442648 -6.0158367,-5.455803 0,-3.013146 2.6933823,-5.455794 6.0158367,-5.455794 h 5.932049 c 3.322458,0 6.015838,2.442648 6.015838,5.455794 0,3.013155 -2.69338,5.455803 -6.015838,5.455803 z"
sodipodi:nodetypes="csccscc" />
<path
id="path1750-2-9"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 19.480419,44.885789 c -3.317361,0 -6.006616,-2.442732 -6.006616,-5.455992 0,-3.013262 2.689255,-5.455994 6.006616,-5.455994 l 32.516273,2.04e-4 c 3.317363,0 6.006616,2.442732 6.006616,5.455994 0,3.01326 -2.689253,5.455992 -6.006616,5.455992 z"
sodipodi:nodetypes="csccscc" />
<path
id="path1750-2-1"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 10.051974,63.455967 c -3.3180928,0 -6.007939,-2.442719 -6.007939,-5.455964 0,-3.01325 2.6898462,-5.455968 6.007939,-5.455968 H 34.99603 c 3.318095,0 6.007941,2.442718 6.007941,5.455968 0,3.013245 -2.689846,5.455964 -6.007941,5.455964 z"
sodipodi:nodetypes="csccscc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="700"
height="700"
version="1.1"
id="svg4652"
sodipodi:docname="openwebrx-play-button.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<metadata
id="metadata4658">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs4656" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1381"
id="namedview4654"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="1.4657143"
inkscape:cx="350"
inkscape:cy="350"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:current-layer="svg4652" />
<g
class="layer"
id="g4650">
<circle
cx="350"
cy="350"
r="330"
stroke="#fff"
stroke-width="36"
fill="none"
id="circle4646" />
<path
d="M195 211v278l366-139-366-139z"
fill="#fff"
id="path4648" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="43"
height="12"
viewBox="0 0 43 12"
version="1.1"
id="svg8"
sodipodi:docname="openwebrx-rx-details-arrow-down.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="22.4"
inkscape:cx="21.520949"
inkscape:cy="7.2959182"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="43"
height="12"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAMCAYAAAD79EROAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAAk6QAAJOkBUCTn+AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAF2SURB VEiJzZLNSgMxFIXPvclMM+pM2oLiz8p1H8GF4LOUPlIpXfQRREVwJehOt+JO6EKwIjpCBTPUKTcu ZEBEaadV6gfZJDk5H+GS9x4FvV4v9t7Xx+PxMhEZLAhmzkTkFcBTq9VyxT4Vst1udwPAxoL8vkVE vNZ60Gw2HwCAAaDdbq/jn4kCADOTiGx1Op01AFCNRiPM83wbAC3Y7UeYeaXf7z/rNE1XmZnLhLMs 23TO7YrI0gzdb8aY8ziOb6cNeO85TdNVJqLShVEUDay1h0qpAT5Gadr1EsfxURnRAiJaYqVUVDYI AFprV6/XT8IwvAQgk+4rpfrVavXAGDOcpU8pFWkR0bOEC6y1V1mW3Tvn9kQk+XpORD4Iggtr7fU8 PSKiS83qT0RR9Jgkyb7W+ubzPjM7Y8zxvKIFc/3qZ4IgyGu12tlwOLzL83yHmdMkSU611m5yejp+ TbbAWnszGo0GYRhmRDRxlsvw67IAUKlUXv/i3XfrPXuPJHennQAAAABJRU5ErkJggg== "
id="image1061"
x="-8.8817842e-16"
y="0"
style="display:inline" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
id="path1068"
style="display:inline;fill:#999999;fill-opacity:0.196078;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 5,0 C 2.5,0 0,2.5 0,5 v 7 H 43 V 5 C 43,2.5 40.5,0 38,0 Z m 8,4 h 17 l -8.5,6.5 z"
sodipodi:nodetypes="ssccssscccc" />
<path
style="display:inline;fill:#848484;fill-opacity:0.592157;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13,4 h 17 l -8.5,6.5 z"
id="path852"
sodipodi:nodetypes="cccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="43"
height="12"
viewBox="0 0 43 12"
version="1.1"
id="svg8"
sodipodi:docname="openwebrx-rx-details-arrow-up.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="22.4"
inkscape:cx="21.520949"
inkscape:cy="7.2959182"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="43"
height="12"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAMCAYAAAD79EROAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAAk6QAAJOkBUCTn+AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAGDSURB VEiJzZS9ahtBFIXvvTParO2NBoTlH1yZNAmqYkiRJgF3ATd5B6FHEkKFnsSFK1cu8gQqQ2Q0FlpW GbFz915XCi6MsXdF7K8c5pzzwcCgqsKGyWTyXlU7zLyHiCm8EkQURGQFAPPBYPB3c44b2fF4fAwA x6/k9ygiotba3/1+fwYAQAAAw+HwCN6YKAAAEaGInIxGowMAANPr9ZIY4ykA4DYGYozv8jz/XlWV TZLkbhudRJRNp9M7673vEhFto3S9Xh8VRXGuqnvM/IGZD51z14goTXpVlbz3XYuIu00liQi992dV VX1W1X8vFGP85L3fd85dtlqtoskGIu6SMWanSUmMMZvP5xfMfPZQdIOqdvM8/7larU6a7BhjdqyI 2LoFRVGchhC+AUDy1D0RSUMIP5j5xjn3q86WiNhaoiJil8vlV2b++NyMqmJZll8Wi8VBu92+MsaU L92tJVuWZccYMzPGzOrkQwidLMv+vDRXSzZN09s0TW/rZJuwlS/rf3EP4Pat/LLe6KcAAAAASUVO RK5CYII= "
id="image1168"
x="0"
y="0" />
</g>
<g
inkscape:label="Layer 1"
id="layer1"
style="display:inline">
<path
id="path1068"
style="display:inline;fill:#999999;fill-opacity:0.196078;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 5,0 C 2.5,0 0,2.5 0,5 v 7 H 43 V 5 C 43,2.5 40.5,0 38,0 Z M 21.5,3 30,9.5 H 13 Z" />
<path
style="display:inline;fill:#848484;fill-opacity:0.592157;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30,9.5 H 13 L 21.5,3 Z"
id="path852-3"
sodipodi:nodetypes="cccc"
inkscape:label="path852" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg1400"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-speake-mutedr.svg">
<defs
id="defs1394" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="41.0369"
inkscape:cy="47.752075"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata1397">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="76.83168"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
"
id="image2189"
x="1.5841584"
y="1.15"
style="display:inline" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
id="rect2211"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 33.5,7.1503846 16.740234,25.201166 H 2.6503906 V 56.900385 H 18.691406 L 33.5,72.849604 Z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg1400"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-speaker.svg">
<defs
id="defs1394" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="41.0369"
inkscape:cy="44.180646"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata1397">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="76.83168"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
"
id="image2189"
x="1.5841584"
y="1.15"
style="display:inline" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
id="rect2211"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 33.5,7.1503846 16.740234,25.201166 H 2.6503906 V 56.900385 H 18.691406 L 33.5,72.849604 Z" />
<path
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2222"
sodipodi:type="arc"
sodipodi:cx="34.299999"
sodipodi:cy="40.000381"
sodipodi:rx="20"
sodipodi:ry="30"
sodipodi:start="5.3581608"
sodipodi:end="0.9250245"
sodipodi:arc-type="arc"
d="M 46.3363,16.041316 A 20,30 0 0 1 54.299999,40.000381 20,30 0 0 1 46.3363,63.959447"
sodipodi:open="true" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:4.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2222-5"
sodipodi:type="arc"
sodipodi:cx="34.299999"
sodipodi:cy="40.000381"
sodipodi:rx="30.6"
sodipodi:ry="38"
sodipodi:start="5.3581608"
sodipodi:end="0.9250245"
sodipodi:arc-type="arc"
sodipodi:open="true"
d="M 52.715539,9.652232 A 30.6,38 0 0 1 64.9,40.000381 30.6,38 0 0 1 52.715539,70.348531" />
<path
style="display:inline;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5.4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2222-56"
sodipodi:type="arc"
sodipodi:cx="34.299999"
sodipodi:cy="40.000381"
sodipodi:rx="41.099998"
sodipodi:ry="47.5"
sodipodi:start="5.3581608"
sodipodi:end="0.9250245"
sodipodi:arc-type="arc"
sodipodi:open="true"
d="M 59.034596,2.0651946 A 41.099998,47.5 0 0 1 75.399998,40.000381 41.099998,47.5 0 0 1 59.034596,77.935568" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg3271"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-squelch.svg">
<defs
id="defs3265" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="55.52044"
inkscape:cy="40.254874"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata3268">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="74.400002"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABdCAYAAABTl8MxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAAhygAAIcoBO0YKTQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAx9SURB
VHic7Z178F3TFcc/v18eP9KQd9J4JBEpRVH1ikdbkpqUBINQxWCElspUkZapVlBNDdqitJVSqrQS
rQalaKlXVYnpS0IFiaSIkGheIskv+faPlSM3J/eeu9c5+9z7m9Zn5sz8Hms/zl1n37P3Wmuv3SKJ
nGwC7At8CvgosC3QC9gcaAeWAIuAF4HngCeBPwO5G2wQrcDe2L0NB4Zg99UDeBe7pzeBZ7B7egxY
Hq11Sd5ruKSbJC2Tn7mSrpC0ZY52y74GSLpA0mznPS2RdL2k3WL0wyM8TNI0Z2dr8a6kSZJ6xLiJ
glebpPMlLY1wX7+QtFWR/oQKjlO+EVGP+ZJGFrmBgtfOkl6MfE/LJZ2ct0/1BFokfT9yh9OskXSh
pNa8N5HzGqtyHrKEH0jq7O1XPYHJJXY4zW2yB6ARyjhV0toG3NOdciol659fa0CH00yq1+EI13Gy
UdkobpVj9LdIVWeh+62bzrVGm86FcypwY0l1Hwg8CHQuqf5aXAl8NUSwmkK6Af/A1hXNYBkwDJvr
x2Qg8FdgQOR6QzkcuLueULURcDbNUwZAd+BbkevsBEyhecoAuBkYXE8oPUJ6A7Ox1XYzWQN8HFvh
x+DLwNWR6irCfcDoLIH0CBlH85UB9kR/PVJdWwCXRqqrKIcAY7MEKkdIC2Z3GlZyp0JZDvTH7EdF
mAIcU7w70XgN2J4a9q/KEbIXHUcZAB8CxhSsY3c6ljIAtgTOrPXPSoUclbOB14CrsOG4C/bi+gRw
MHAR8DT5LbzH5iyXcHHB8mUxAZvNbkzFomSGc8GzWtJFkjYNWPDsJemJHIuqFZI2C11Upa69c7RX
yUpJN8hW9cMl9ZHZvo6VLWDnF6x/gjJW6r3kMyWslHREtQozrhZJ1+bo+MHOdpJrao62EqZIGlqn
/u6SJiq/lXiepE7pepMfPuus7PQ6nc26vPaxPOaUAZJWOduRpHZJxzjb2kb24ebhsHR9yTtkJ8f3
30PAjwt8f54NzHHI75OjjXFAF2eZtcBJwFRnudnASGC+sxzA6Rv9Rf6ndoTzCap2jXW091aO+l92
1J9wasF72knSYmebayRtXVlPMkJCTSWvAA/neBLSTAPeCJTti61HQtkdGOrsz++AG5xl0swALnSW
aQWOTP8B4MOBFTzqbLAW7cDPHfKe9ZF3+r4SOMtZphbXAf90ltlg5Z4oJPQJfNbZWBYPOWT7OWS9
CvkuMMtZphbtwHhnmX2pGBCJQnoHFn7b2VgWT2Ev0hBCFTIM2M7Rh8XAJId8CI8B9zrkW7FF9fu/
JFcIix0N1WMJ4U9mr0C5Tzv7cCsxY6rWc71TfkTyQyu+6eEmzobq8Vrkdg9wtj/ZKR/KfcC/HfIb
KMTjpu3pkA0hdKbVFijnGSFPYZ7RMliDzw09EIv+pDPwHmb8awkouIO7a9n8BJgeIBciMxDY2tF2
WX77hJ8CEx3yw4EXOmPKWEEt6+PGhWLyKPGm0rs45R+M1G4t5gL/wnwfIewK67+uQl9s+xPgF24S
uzpk52AfWNk87pDdQCGhXrlWzJbfEfGMkEfK6kQKj0J2gfUK8cwIzsScTx0Nz/st1tdkPTwK6QP0
SxTyvKNgC2aLGuco0wg89ivPB1WE2cDrDvkheRQC0BUzxj2E/2VaBj0Jn5Kvwj6oRvGCQza3QhJG
AH/DFkIjCZs6l8E2Dtk5hJtsYvCKQ3ZwopCnscVMHlqwd8ofsCfvUnwOrxh4Zn6NHB3e9rZOFLIQ
2y9XlMHABVjE4SzgCmyqXHbQdh+HrOeJjYFHIf0qP6h7IndkGDZFfhxzb94IHApsGrkdCDc+QuMV
4mmvb6VCplHeDtl+wClY9PfbwB3AKOK9c0LdBwDzIrVZRnt9KhUyC/hV5M5UoxvmJbsfeAk4H4t4
L4JHIWWY27NY6pDtm/5uv5jGzkCGAt/BZnl5IyfBwk5DKRor7MXTXre0QmZg+xgazVbY6Pwt+Uz8
Hp9OoxWyBlv7hNCl2uxnPHF95x5GY5OALZzlOrJCwKzpIVRVyArgCGBBvP64+Bg2Bfcs9jq6QkLb
rKoQsJnB/uRfwRdlMBZBGPpBezZxdmSFdM5asM3CHFKeCIqY7AF8O1DWMxHxhpjGIHR6315vBb0E
W8ydhM9EH4sJ2Eaieqx21BniGY1NaEzAqhCThoBbsHinC7D0RI2iBfhmgFxHV0ho1EyQQhJWYEFl
A4GjMQtvXoOkhzHYjtws/lcUsjqP0W8VtmYYjUV5jMcCsNtz1BVKvdjb0Hk+dGyFLC5qhX0DCzAe
iW3KPxmzV71XsN40h5D9YvyPo65GK6Qbts07hIUxzeKLgJ9hKST6YvaqqcRRTn9sm0FW26F47F4x
8GSPiKqQSpYDvwY+h3XoC1iMUhGyAivecdTjWXDGIHSrB8CiRmT7WYJFKO4IfJ7w8NE0e2b8zzNC
vJt5iuIZIfMbmX5pLXA7sDMBWXGqkLXNwLO/L/YIGUX2KPAo5NVm5MNaiG3jmuIsN5TaJhKPmzTm
CGkDfoRNbGrh2f01txkKAVu/nIjvvdKF2k/3PMLXRP3x+U+yOBfr05HU9ud4Aj6aMkISVuHf21fL
LN+Oz1WaNWPz9KUyY9F1VJ/BeRQyu5kKAXgA3/6+rCf7ZUc93p1W1biMDfszAPheSmZzYFBgffOA
pc1WCMAvHbJZizrP5puiChkOnFDl7ydhL/kET0T+DGhOkss0IZtxEmIpZB/ym+FbsOx0tSwHk1kf
tHGgo94ZYLOW+wmztfyGctLkefZ1Zynk78569iRfcOCJZLsEBmFfZ+PxKeQ5MIXsRtg+9QWUo5BY
5vyZmNU39Mk/Cr9CumNRMvX4EnAXvjwtT4N9ZS0JLDDQUbmHZQ7ZLDP7StbdVCAnYlH8Hs4i7HNo
wUxHoY6ppayLkm8l3FLq2VDpIdQSCvX9Hp6NOH2xYA4PdxFu6t/MUe901rmhWwl3zQ6mnLy3PRyy
9RIXPOJs+zSn/HPEz/wA8ETyQyvwqqPgfvH74jO+1fn/k9hXVygj8G+dmIQ/wUw97k9+8CrkoMgd
AUu+Eko9hSzH9qmE0gJc65AH+9o8hXju63eAvyS/tOKLvTqe4oHRaUKnhqsJS8Vxp7P9A4DjnGWm
s/GqPC+/p1K5siN6PJxZMPNa5dVflnk0hJmBdfaV5U708Lr82U83VZzTeY6urDd5qXs8bpfg84Jl
cS7hAQChmyffxp46DwOxha9nM9EK7GiNIntqlmEB5u+TmE4824R7Yx7Aoptt9gXOcch71hje9Ehg
gRp34ct49BjmD8nLNFKB2IlC/uisaAxwE741RCXbYQ4qT0yu56G5h/DUT5UchIXOhuagbKFYUPoP
N/qL1mfUzMPdSmXVDLhGSVrobGeppK7OdibmvCfJEkVfJctmXa3uTrKcu08WaOPxanVXno4wk3zp
l1ZgU8ep2L6Sat+pbcAnsVjdUVX+X4/bsQAJD72wPelFjt9Yu66OmZi/pTtmPByObyVejROA29J/
rFTIxfjTnKZ5Azvy4i3MRtYLM1zuRrEAtbGYbcjLJYTFBjeDh7H31gZUKmQQtoU373uhLBZgdjRP
uGhCT+wJ95hnGslppPIFVzqo5mJv/Y7GZPIpA8xwWnTUl8mVpOIE0mdQ7YFNL5uVsyRNjBPbWjHT
xB5RehSfu7HwW2BjF+50/Mnoy+Ryih+ftxb4Io3ZOpGHw7CQW6D6OYZDMGtmbJuVl5ewIIFYewLP
w1yrHZEFWKht1WDrOfhW0GWQBNLF3KB5OflCWBtBf+zYqJpHr4LNkb1W0FhMwHKyx6Yn5gxqdPqo
UEZnKaQrlko1RlCZh6uBr5RY/wDM1RuavrUI7djsNTSe+PmsuKxV2LY1r+W0CFdgJ/CUyZvYgmxm
ye0swqwSownftHRLiE2oq6TrC9hsQnhX0hkBfYl5dZd0R0n3M1PSthVtnRdQ5iVJbZ4bOFTSnNg9
lxnZdnD0I/Z1hvzGzlqskHSZNnZ2dZL0TJ2yh0vZB9xXu9oknaM4ivmTpDHO9su6eku6RvmPwFsj
6WZlW753Vu2T4x5M5PLeQIukz8jOJQx1Y66WHS55oaTtc7Zb9tVd0jhJD6j+AV/vSbpX0mmyY/pC
6p9Y43PZMZHJmmV56IE5dQZh5u7NsBnG0nUvt1ew9U1em1QzaMXcEUMwq/XmmKv7dcyqPY/wtEsJ
XTBrSGWu42uo2CcTSyEfEM7u2NklnTH//0eoiB7tCNsR/t94FrPyAnyDVCjvByOkObRhqRSPJ5Va
6r92T61m6hJKugAAAABJRU5ErkJggg==
"
id="image4013"
x="0"
y="2.8" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
aria-label="SQ"
transform="scale(0.78705035,1.2705667)"
id="text4021"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:73.656px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.767246">
<path
d="M 42.352197,19.439284 C 42.278541,8.3172282 34.839285,2.2037804 21.286582,2.2037804 c -12.8897999,0 -20.32905575,6.0397918 -20.32905575,16.4989436 0,8.323128 4.19839185,12.374208 15.09947975,14.436576 l 7.512912,1.47312 c 7.3656,1.399464 10.090871,3.461832 10.090871,7.807535 0,4.493016 -4.124735,7.218288 -10.827431,7.218288 -7.512912,0 -11.711304,-3.167208 -12.079584,-8.912376 H -1.7318726e-6 C 0.66290225,52.216203 8.5440941,58.476963 22.24411,58.476963 c 13.847327,0 22.023143,-6.408072 22.023143,-17.382816 0,-8.470439 -4.272048,-12.889799 -14.215607,-14.804855 L 21.654862,24.66886 C 13.77367,23.122084 11.490334,21.575308 11.490334,17.67154 c 0,-4.05108 3.535488,-6.62904 9.280656,-6.62904 6.99732,0 10.901088,2.94624 11.269367,8.396784 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:73.656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.767246"
id="path4059" />
<path
d="m 95.752781,49.196307 c 3.609144,-4.41936 5.892479,-11.784959 5.892479,-19.003247 0,-7.881192 -2.798927,-15.46776 -7.512911,-20.5500238 C 89.492022,4.6344283 83.45223,2.2037804 75.792006,2.2037804 c -7.660224,0 -13.700016,2.4306479 -18.340344,7.4392558 C 52.664022,14.7253 49.93875,22.311868 49.93875,30.340372 c 0,8.028504 2.798928,15.615071 7.512912,20.697335 4.640328,5.008608 10.68012,7.439256 18.340344,7.439256 5.597856,0 9.648936,-1.10484 13.920984,-3.6828 l 6.334415,5.966136 5.597855,-5.966136 z m -13.626359,-12.889799 -5.597856,5.966135 5.671512,5.376888 c -1.767744,0.883872 -4.124736,1.399464 -6.481728,1.399464 -8.83872,0 -14.7312,-7.439256 -14.7312,-18.708623 0,-11.343024 5.818824,-18.708624 14.804856,-18.708624 8.986032,0 14.804855,7.3656 14.804855,18.78228 0,4.41936 -0.810215,8.396783 -2.430647,11.637647 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:73.656px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.767246"
id="path4061" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="80"
height="80"
viewBox="0 0 80 80"
sodipodi:docname="openwebrx-trashcan.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<metadata
id="metadata41">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs39" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1381"
id="namedview37"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="10.6875"
inkscape:cx="12"
inkscape:cy="40.845312"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:current-layer="g4" />
<g
transform="translate(-20,-20)"
id="g4"
style="display:inline;fill:#ffffff;fill-opacity:1">
<path
d="M 76.666667,33.333333 V 26.666667 C 76.666667,22.986667 73.68,20 70,20 H 50 c -3.68,0 -6.666666,2.986667 -6.666666,6.666667 v 6.666666 H 26.666667 V 40 h 6.666667 V 93.333333 C 33.333334,97.013333 36.32,100 40,100 h 40 c 3.68,0 6.666667,-2.986667 6.666667,-6.666667 V 40 h 6.666667 V 33.333333 Z M 50,26.666667 h 20 v 6.666666 H 50 Z M 80,93.333333 H 40 V 40 H 80 Z M 56.666667,46.666667 H 50 v 40 h 6.666667 z m 13.333333,0 h -6.666666 v 40 H 70 Z"
id="path2"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:3.33333" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg2431"
sodipodi:docname="openwebrx-waterfall-auto.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<defs
id="defs2425" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="10.94782"
inkscape:cx="31.598969"
inkscape:cy="27.008999"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata2428">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="65.098"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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 owHV9tP5HzGIQIWzha+sAAAAAElFTkSuQmCC "
id="image3168"
x="0"
y="7.4509802"
style="display:inline" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
style="fill:#cccccc;fill-opacity:1;stroke:#cccccc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 33.512,72.05 c 0,0 3.393528,-64.1293307 8.239563,-64.0928849 4.480049,0.033693 4.392333,28.2855079 9.98118,28.1983769 4.774589,-0.07444 5.278151,-13.721388 6.329483,-17.880046 1.012276,-4.004162 2.915068,-5.172215 5.320718,-4.894038 2.993355,0.346137 8.204982,5.925455 10.587851,13.76114 C 78.129954,40.819281 79.5,72.05 79.5,72.05 Z"
id="path3226"
sodipodi:nodetypes="cssssscc" />
<path
id="path3176-2"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:7.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 29.3,68.800423 -10.900498,-14.8 L 7.5,68.800423 Z M 7.5,11.2 18.4,26 29.3,11.2 Z M 18.4,26 18.399502,54.000423"
sodipodi:nodetypes="cccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-waterfall-continuous.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="8.7676686"
inkscape:cx="58.124903"
inkscape:cy="50.77501"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
units="px"
inkscape:pagecheckerboard="true"
inkscape:snap-object-midpoints="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:snap-grids="true">
<inkscape:grid
type="xygrid"
id="grid971"
spacingx="5"
spacingy="5"
empspacing="2" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g857"
style="stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none">
<path
style="fill:none;stroke:#ffffff;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path833"
sodipodi:type="arc"
sodipodi:cx="40"
sodipodi:cy="40"
sodipodi:rx="35"
sodipodi:ry="35"
sodipodi:start="3.1415927"
sodipodi:end="5.4977871"
sodipodi:arc-type="arc"
d="M 5,40 A 35,35 0 0 1 26.606079,7.6642167 35,35 0 0 1 64.748736,15.251262"
sodipodi:open="true" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 66.870239,13.130239 2.12132,6.363961 -6.363961,-2.12132 z"
id="path853"
sodipodi:nodetypes="cccc" />
</g>
<g
id="g857-5"
style="stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none"
transform="rotate(180,40,40)">
<path
style="fill:none;stroke:#ffffff;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path833-3"
sodipodi:type="arc"
sodipodi:cx="40"
sodipodi:cy="40"
sodipodi:rx="35"
sodipodi:ry="35"
sodipodi:start="3.1415927"
sodipodi:end="5.4977871"
sodipodi:arc-type="arc"
sodipodi:open="true"
d="M 5,40 A 35,35 0 0 1 26.60608,7.6642163 35,35 0 0 1 64.748736,15.251262" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 66.870239,13.130239 2.12132,6.363961 -6.363961,-2.12132 z"
id="path853-5"
sodipodi:nodetypes="cccc" />
</g>
<g
aria-label="A"
id="text1703"
style="font-style:normal;font-weight:normal;font-size:58.6667px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke:none">
<path
d="m 48.008181,48.14402 2.816002,8.624004 h 9.034671 L 45.074846,14.000001 H 35.336174 L 20.141499,56.768024 h 8.976005 L 31.992172,48.14402 Z M 45.602846,40.810682 H 34.456174 L 40.02951,24.090673 Z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:58.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;fill-opacity:1"
id="path1705" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg2431"
sodipodi:docname="openwebrx-waterfall-default.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<defs
id="defs2425" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="15.482556"
inkscape:cx="31.598969"
inkscape:cy="49.488518"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1" />
<metadata
id="metadata2428">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="original image"
style="display:inline">
<image
width="80"
height="71.287132"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
"
id="image4964"
x="0"
y="4.3564358"
style="display:none" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
style="display:inline;fill:#cccccc;fill-opacity:1;stroke:#cccccc;stroke-width:0.710862px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 36.355781,75.294569 c 0,0 3.187436,-34.501741 7.739164,-34.48213 4.207984,0.01818 4.125594,15.217675 9.375029,15.170794 4.484633,-0.04008 4.957615,-7.382141 5.945092,-9.619511 0.950801,-2.154242 2.738036,-2.78266 4.997592,-2.632998 2.811564,0.18622 7.706697,3.187908 9.944848,7.403527 3.906574,7.358113 5.193423,24.160318 5.193423,24.160318 z"
id="path3226"
sodipodi:nodetypes="cssssscc" />
<path
id="path4973"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:7.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 18.400391,25.424 V 54.499 M 7.5,54.499 18.400391,69.299781 29.300781,54.499 Z M 18.400391,10.623704 7.5,25.424485 h 21.800781 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-zoom-in-total.svg">
<defs
id="defs2">
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect982"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1"
unit="px"
method="auto"
mode="F"
radius="2"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="57.142857"
inkscape:cy="45.714286"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
showguides="false"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="71.428574"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
rkJggg==
"
id="image1417"
x="4.2857141"
y="0"
style="display:inline" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<circle
style="display:inline;fill:none;fill-opacity:0.35;stroke:#ffffff;stroke-width:4.74948;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path954"
cx="44.701065"
cy="51.30669"
r="16.326326" />
<path
id="rect956"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.24673;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 59.778748,60.355899 12.521143,12.521407 a 2.0000423,2.0000423 89.999996 0 1 10e-7,2.828457 l -2.754808,2.754865 a 1.9999575,1.9999575 -180 0 1 -2.828397,0 L 54.195544,65.93922"
sodipodi:nodetypes="cccc"
inkscape:original-d="M 59.778748,60.355899 73.71409,74.291534 68.130886,79.874857 54.195544,65.93922"
inkscape:path-effect="#path-effect982" />
<path
id="path1423"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 4.8007812,1.2441406 V 35.044922 L 17.59375,21.699219 H 62.400391 L 75.193359,35.044922 V 1.2441406 L 62.294922,14.699219 H 17.697266 Z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-zoom-in.svg">
<defs
id="defs2">
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect982"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,4,0,1 @ F,0,0,1,0,4,0,1 @ F,0,0,1,0,4,0,1"
unit="px"
method="auto"
mode="F"
radius="4"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="57.142857"
inkscape:cy="38.571428"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
showguides="false"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="79.199997"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
J/4fwTJO46APO/wAAAAASUVORK5CYII=
"
id="image948"
x="0"
y="0.40000001" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<circle
style="display:inline;fill:none;fill-opacity:0.35;stroke:#ffffff;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path954"
cx="31.75"
cy="32"
r="27.5" />
<path
id="rect956"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.09999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 57.146794,47.242451 20.644238,20.644674 a 4.0000848,4.0000848 89.999998 0 1 0,5.656914 l -3.747533,3.747613 a 3.9999151,3.9999151 180 0 1 -5.656794,0 L 47.742466,56.646976"
sodipodi:nodetypes="cccc"
inkscape:original-d="M 57.146794,47.242451 80.619429,70.715582 71.215102,80.120109 47.742466,56.646976"
inkscape:path-effect="#path-effect982" />
<path
id="path985-3"
style="display:inline;fill:none;stroke:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 31.75,18.5 v 27 M 18.25,32 h 27" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-zoom-out-total.svg">
<defs
id="defs2">
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect982"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1"
unit="px"
method="auto"
mode="F"
radius="2"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="57.142857"
inkscape:cy="45.714286"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
showguides="false"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:inline">
<image
width="71.428574"
height="80"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
AAAAAElFTkSuQmCC
"
id="image2366"
x="4.2857141"
y="0" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<circle
style="display:inline;fill:none;fill-opacity:0.35;stroke:#ffffff;stroke-width:4.74948;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path954"
cx="44.701065"
cy="51.30669"
r="16.326326" />
<path
id="rect956"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.24673;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 59.778748,60.355899 12.521143,12.521407 a 2.0000423,2.0000423 89.999996 0 1 10e-7,2.828457 l -2.754808,2.754865 a 1.9999575,1.9999575 180 0 1 -2.828397,0 L 54.195544,65.93922"
sodipodi:nodetypes="cccc"
inkscape:original-d="M 59.778748,60.355899 73.71409,74.291534 68.130886,79.874857 54.195544,65.93922"
inkscape:path-effect="#path-effect982" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 59.5,1.2441502 V 35.04415 l 16.2,-16.9 z"
id="path1423"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 20.892617,35.04415 V 1.2441502 L 4.6926174,18.14415 Z"
id="path1423-6"
sodipodi:nodetypes="cccc" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1445"
width="51.448483"
height="7"
x="14.778377"
y="14.7" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
sodipodi:docname="openwebrx-zoom-out.svg">
<defs
id="defs2">
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect982"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,4,0,1 @ F,0,0,1,0,4,0,1 @ F,0,0,1,0,4,0,1"
unit="px"
method="auto"
mode="F"
radius="4"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="57.142857"
inkscape:cy="38.571428"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
showguides="false"
inkscape:window-width="2560"
inkscape:window-height="1381"
inkscape:window-x="0"
inkscape:window-y="348"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original image"
style="display:none">
<image
width="80"
height="79.199997"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
J/4fwTJO46APO/wAAAAASUVORK5CYII=
"
id="image948"
x="0"
y="0.40000001" />
</g>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<circle
style="display:inline;fill:none;fill-opacity:0.35;stroke:#ffffff;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path954"
cx="31.75"
cy="32"
r="27.5" />
<path
id="rect956"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.09999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 57.146794,47.242451 20.644238,20.644674 a 4.0000848,4.0000848 89.999998 0 1 0,5.656914 l -3.747533,3.747613 a 3.9999151,3.9999151 180 0 1 -5.656794,0 L 47.742466,56.646976"
sodipodi:nodetypes="cccc"
inkscape:original-d="M 57.146794,47.242451 80.619429,70.715582 71.215102,80.120109 47.742466,56.646976"
inkscape:path-effect="#path-effect982" />
<path
id="path985-3"
style="display:inline;fill:none;stroke:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 18.25,32 h 27"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -18,8 +18,8 @@ defaultConfig = PropertyLayer(
fft_compression="adpcm",
wfm_deemphasis_tau=50e-6,
digimodes_fft_size=2048,
digital_voice_unvoiced_quality=1,
digital_voice_dmr_id_lookup=True,
digital_voice_nxdn_id_lookup=True,
sdrs=PropertyLayer(
rtlsdr=PropertyLayer(
name="RTL-SDR USB Stick",

View File

@ -13,9 +13,10 @@ from owrx.property import PropertyStack, PropertyDeleted
from owrx.modes import Modes, DigitalMode
from owrx.config import Config
from owrx.waterfall import WaterfallOptions
from owrx.websocket import Handler
from queue import Queue, Full, Empty
from js8py import Js8Frame
from abc import ABC, ABCMeta, abstractmethod
from abc import ABCMeta, abstractmethod
import json
import threading
@ -26,7 +27,7 @@ logger = logging.getLogger(__name__)
PoisonPill = object()
class Client(ABC):
class Client(Handler, metaclass=ABCMeta):
def __init__(self, conn):
self.conn = conn
self.multithreadingQueue = Queue(100)
@ -375,7 +376,10 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient):
self.send(bytes([0x04]) + data)
def write_s_meter_level(self, level):
self.send({"type": "smeter", "value": level})
try:
self.send({"type": "smeter", "value": level})
except ValueError:
logger.warning("unable to send smeter value: %s", str(level))
def write_cpu_usage(self, usage):
self.mp_send({"type": "cpuusage", "value": usage})
@ -494,35 +498,36 @@ class MapConnection(OpenWebRxClient):
self.mp_send({"type": "update", "value": update})
class WebSocketMessageHandler(object):
def __init__(self):
self.handshake = None
class HandshakeMessageHandler(Handler):
"""
This handler receives text messages, but will only respond to the second handshake string.
As soon as a valid handshake is received, the handler replaces itself with the corresponding handler type.
"""
def handleTextMessage(self, conn, message):
if message[:16] == "SERVER DE CLIENT":
meta = message[17:].split(" ")
self.handshake = {v[0]: "=".join(v[1:]) for v in map(lambda x: x.split("="), meta)}
handshake = {v[0]: "=".join(v[1:]) for v in map(lambda x: x.split("="), meta)}
conn.send("CLIENT DE SERVER server=openwebrx version={version}".format(version=openwebrx_version))
logger.debug("client connection initialized")
if "type" in self.handshake:
if self.handshake["type"] == "receiver":
client = None
if "type" in handshake:
if handshake["type"] == "receiver":
client = OpenWebRxReceiverClient(conn)
if self.handshake["type"] == "map":
elif handshake["type"] == "map":
client = MapConnection(conn)
# backwards compatibility
else:
logger.warning("invalid connection type: %s", handshake["type"])
if client is not None:
logger.debug("handshake complete, handing off to %s", type(client).__name__)
# hand off all further communication to the correspondig connection
conn.send("CLIENT DE SERVER server=openwebrx version={version}".format(version=openwebrx_version))
conn.setMessageHandler(client)
else:
client = OpenWebRxReceiverClient(conn)
# hand off all further communication to the correspondig connection
conn.setMessageHandler(client)
return
if not self.handshake:
logger.warning('invalid handshake received')
else:
logger.warning("not answering client request since handshake is not complete")
return
def handleBinaryMessage(self, conn, data):
pass

View File

@ -31,7 +31,9 @@ class Controller(object):
self.handler.end_headers()
if type(content) == str:
content = content.encode()
self.handler.wfile.write(content)
while len(content):
w = self.handler.wfile.write(content)
content = content[w:]
def send_redirect(self, location, code=303):
self.handler.send_response(code)

View File

@ -26,7 +26,7 @@ class GzipMixin(object):
super().send_response(content, code, headers=headers, content_type=content_type, *args, **kwargs)
def zipable(self, content_type):
types = ["application/javascript", "text/css", "text/html"]
types = ["application/javascript", "text/css", "text/html", "image/svg+xml"]
return content_type in types
def gzip(self, content):

View File

@ -1,8 +1,9 @@
from owrx.controllers.settings import SettingsFormController, SettingsBreadcrumb
from owrx.form.section import Section
from owrx.form.input import CheckboxInput, NumberInput, DropdownInput, Js8ProfileCheckboxInput, MultiCheckboxInput, Option
from owrx.form.input import CheckboxInput, NumberInput, DropdownInput, Js8ProfileCheckboxInput, MultiCheckboxInput, Option, TextInput
from owrx.form.input.wfm import WfmTauValues
from owrx.form.input.wsjt import Q65ModeMatrix, WsjtDecodingDepthsInput
from owrx.form.input.converter import OptionalConverter
from owrx.wsjt import Fst4Profile, Fst4wProfile
from owrx.breadcrumb import Breadcrumb, BreadcrumbItem
@ -34,17 +35,23 @@ class DecodingSettingsController(SettingsFormController):
),
Section(
"Digital voice",
NumberInput(
"digital_voice_unvoiced_quality",
"Quality of unvoiced sounds in synthesized voice",
infotext="Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice"
+ " modes.<br />If you're running on a Raspberry Pi (up to 3B+) you should leave this set at 1",
TextInput(
"digital_voice_codecserver",
"Codecserver address",
infotext="Address of a remote codecserver instance (name[:port]). Leave empty to use local"
+ " codecserver",
converter=OptionalConverter(),
),
CheckboxInput(
"digital_voice_dmr_id_lookup",
'Enable lookup of DMR ids in the <a href="https://www.radioid.net/" target="_blank">'
+ "radioid</a> database to show callsigns and names",
),
CheckboxInput(
"digital_voice_nxdn_id_lookup",
'Enable lookup of NXDN ids in the <a href="https://www.radioid.net/" target="_blank">'
+ "radioid</a> database to show callsigns and names",
),
),
Section(
"Digimodes",

View File

@ -85,7 +85,7 @@ class SdrDeviceListController(AuthorizationMixin, BreadcrumbMixin, WebpageContro
</div>
</li>
""".format(
device_name=config["name"],
device_name=config["name"] if config["name"] else "[Unnamed device]",
device_link="{}settings/sdr/{}".format(self.get_document_root(), quote(device_id)),
state=state_info,
additional_info=additional_info,
@ -138,7 +138,7 @@ class SdrFormController(SettingsFormController, metaclass=ABCMeta):
</ul>
""".format(
device_link="{}settings/sdr/{}".format(self.get_document_root(), quote(self.device_id)),
device_name=self.device["name"],
device_name=self.device["name"] if self.device["name"] else "[Unnamed device]",
device_active="active" if self.isDeviceActive() else "",
new_profile_active="active" if self.isNewProfileActive() else "",
new_profile_link="{}settings/sdr/{}/newprofile".format(self.get_document_root(), quote(self.device_id)),
@ -151,7 +151,7 @@ class SdrFormController(SettingsFormController, metaclass=ABCMeta):
profile_link="{}settings/sdr/{}/profile/{}".format(
self.get_document_root(), quote(self.device_id), quote(profile_id)
),
profile_name=profile["name"],
profile_name=profile["name"] if profile["name"] else "[Unnamed profile]",
profile_active="active" if self.isProfileActive(profile_id) else "",
)
for profile_id, profile in self.device["profiles"].items()

View File

@ -1,10 +1,10 @@
from . import Controller
from owrx.websocket import WebSocketConnection
from owrx.connection import WebSocketMessageHandler
from owrx.connection import HandshakeMessageHandler
class WebSocketController(Controller):
def indexAction(self):
conn = WebSocketConnection(self.handler, WebSocketMessageHandler())
conn = WebSocketConnection(self.handler, HandshakeMessageHandler())
# enter read loop
conn.handle()

Some files were not shown because too many files have changed in this diff Show More