[INFO] cloning repository https://github.com/g0orx/rustyHPSDR
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/g0orx/rustyHPSDR" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fg0orx%2FrustyHPSDR", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fg0orx%2FrustyHPSDR'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0c5841563a1ac60a9ef0d790228be185457fa3a3
[INFO] checking g0orx/rustyHPSDR against master#c756124775121dea0e640652c5ee3c89e3dd0eb4 for pr-154971
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fg0orx%2FrustyHPSDR" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  46% (175/375)
Updating files:  47% (177/375)
Updating files:  48% (180/375)
Updating files:  49% (184/375)
Updating files:  50% (188/375)
Updating files:  51% (192/375)
Updating files:  52% (195/375)
Updating files:  53% (199/375)
Updating files:  54% (203/375)
Updating files:  55% (207/375)
Updating files:  56% (210/375)
Updating files:  57% (214/375)
Updating files:  58% (218/375)
Updating files:  59% (222/375)
Updating files:  60% (225/375)
Updating files:  61% (229/375)
Updating files:  62% (233/375)
Updating files:  63% (237/375)
Updating files:  64% (240/375)
Updating files:  65% (244/375)
Updating files:  66% (248/375)
Updating files:  67% (252/375)
Updating files:  68% (255/375)
Updating files:  69% (259/375)
Updating files:  70% (263/375)
Updating files:  71% (267/375)
Updating files:  72% (270/375)
Updating files:  73% (274/375)
Updating files:  74% (278/375)
Updating files:  75% (282/375)
Updating files:  76% (285/375)
Updating files:  77% (289/375)
Updating files:  78% (293/375)
Updating files:  79% (297/375)
Updating files:  80% (300/375)
Updating files:  81% (304/375)
Updating files:  82% (308/375)
Updating files:  83% (312/375)
Updating files:  84% (315/375)
Updating files:  85% (319/375)
Updating files:  86% (323/375)
Updating files:  87% (327/375)
Updating files:  88% (330/375)
Updating files:  89% (334/375)
Updating files:  90% (338/375)
Updating files:  91% (342/375)
Updating files:  92% (345/375)
Updating files:  93% (349/375)
Updating files:  94% (353/375)
Updating files:  95% (357/375)
Updating files:  96% (360/375)
Updating files:  97% (364/375)
Updating files:  98% (368/375)
Updating files:  99% (372/375)
Updating files: 100% (375/375)
Updating files: 100% (375/375), done.
[INFO] started tweaking git repo https://github.com/g0orx/rustyHPSDR
[INFO] finished tweaking git repo https://github.com/g0orx/rustyHPSDR
[INFO] tweaked toml for git repo https://github.com/g0orx/rustyHPSDR written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/g0orx/rustyHPSDR on toolchain c756124775121dea0e640652c5ee3c89e3dd0eb4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/g0orx/rustyHPSDR already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cfg-expr v0.17.2
[INFO] [stderr]   Downloaded gdk-pixbuf-sys v0.20.7
[INFO] [stderr]   Downloaded system-deps v7.0.3
[INFO] [stderr]   Downloaded coremidi-sys v3.2.0
[INFO] [stderr]   Downloaded ron v0.10.1
[INFO] [stderr]   Downloaded num_enum_derive v0.7.5
[INFO] [stderr]   Downloaded graphene-sys v0.20.7
[INFO] [stderr]   Downloaded network-interface v2.0.1
[INFO] [stderr]   Downloaded cairo-sys-rs v0.20.7
[INFO] [stderr]   Downloaded objc2-core-audio-types v0.3.2
[INFO] [stderr]   Downloaded coreaudio-rs v0.13.0
[INFO] [stderr]   Downloaded graphene-rs v0.20.9
[INFO] [stderr]   Downloaded cairo-rs v0.20.7
[INFO] [stderr]   Downloaded gdk4 v0.9.6
[INFO] [stderr]   Downloaded cpal v0.16.0
[INFO] [stderr]   Downloaded gio-sys v0.20.9
[INFO] [stderr]   Downloaded gtk4-sys v0.9.6
[INFO] [stderr]   Downloaded cc v1.2.21
[INFO] [stderr]   Downloaded glib-macros v0.20.7
[INFO] [stderr]   Downloaded objc2-audio-toolbox v0.3.2
[INFO] [stderr]   Downloaded gio v0.20.9
[INFO] [stderr]   Downloaded gdk4-sys v0.9.6
[INFO] [stderr]   Downloaded pango v0.20.9
[INFO] [stderr]   Downloaded glib-sys v0.20.9
[INFO] [stderr]   Downloaded glib v0.20.9
[INFO] [stderr]   Downloaded rustfft v6.3.0
[INFO] [stderr]   Downloaded gsk4 v0.9.6
[INFO] [stderr]   Downloaded gsk4-sys v0.9.6
[INFO] [stderr]   Downloaded coremidi v0.8.0
[INFO] [stderr]   Downloaded midir v0.10.3
[INFO] [stderr]   Downloaded gdk-pixbuf v0.20.9
[INFO] [stderr]   Downloaded gobject-sys v0.20.9
[INFO] [stderr]   Downloaded pango-sys v0.20.9
[INFO] [stderr]   Downloaded ringbuf v0.4.8
[INFO] [stderr]   Downloaded num_enum v0.7.5
[INFO] [stderr]   Downloaded objc2-core-audio v0.3.2
[INFO] [stderr]   Downloaded gtk4-macros v0.9.5
[INFO] [stderr]   Downloaded gtk4 v0.9.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 524cea363586a183e1c368e8ef4c58e5f7d77815ad812a1d2d9c060b7c40b65b
[INFO] running `Command { std: "docker" "start" "-a" "524cea363586a183e1c368e8ef4c58e5f7d77815ad812a1d2d9c060b7c40b65b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "524cea363586a183e1c368e8ef4c58e5f7d77815ad812a1d2d9c060b7c40b65b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "524cea363586a183e1c368e8ef4c58e5f7d77815ad812a1d2d9c060b7c40b65b", kill_on_drop: false }`
[INFO] [stdout] 524cea363586a183e1c368e8ef4c58e5f7d77815ad812a1d2d9c060b7c40b65b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] df1b0ea0ea0de0a5bd322df03f9d11339ea25d428865caf74455d5060150f262
[INFO] running `Command { std: "docker" "start" "-a" "df1b0ea0ea0de0a5bd322df03f9d11339ea25d428865caf74455d5060150f262", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling gio v0.20.9
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling cc v1.2.21
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rustfft v6.3.0
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling cpal v0.16.0
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]    Compiling cfg-expr v0.17.2
[INFO] [stderr]     Checking ringbuf v0.4.8
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]    Compiling network-interface v2.0.1
[INFO] [stderr]    Compiling rustyHPSDR v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling toml_datetime v0.6.9
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling toml_edit v0.22.26
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling toml v0.8.22
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling glib-macros v0.20.7
[INFO] [stderr]    Compiling gtk4-macros v0.9.5
[INFO] [stderr]    Compiling system-deps v7.0.3
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling glib-sys v0.20.9
[INFO] [stderr]    Compiling gobject-sys v0.20.9
[INFO] [stderr]    Compiling gio-sys v0.20.9
[INFO] [stderr]    Compiling pango-sys v0.20.9
[INFO] [stderr]    Compiling cairo-sys-rs v0.20.7
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.20.7
[INFO] [stderr]    Compiling graphene-sys v0.20.7
[INFO] [stderr]    Compiling gdk4-sys v0.9.6
[INFO] [stderr]    Compiling gsk4-sys v0.9.6
[INFO] [stderr]    Compiling gtk4-sys v0.9.6
[INFO] [stderr]    Compiling pangocairo-sys v0.20.10
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking ron v0.10.1
[INFO] [stderr]     Checking midir v0.10.3
[INFO] [stderr]     Checking glib v0.20.9
[INFO] [stderr]     Checking cairo-rs v0.20.7
[INFO] [stderr]     Checking graphene-rs v0.20.9
[INFO] [stderr]     Checking pango v0.20.9
[INFO] [stderr]     Checking gdk-pixbuf v0.20.9
[INFO] [stderr]     Checking gdk4 v0.9.6
[INFO] [stderr]     Checking pangocairo v0.20.10
[INFO] [stderr]     Checking gsk4 v0.9.6
[INFO] [stderr]     Checking gtk4 v0.9.6
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c: In function 'noise_floor_manager_initialize':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:34:66: warning: unused parameter 'sample_rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    34 |                                                   const uint32_t sample_rate,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:35:66: warning: unused parameter 'hop' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    35 |                                                   const uint32_t hop) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'readZetaHat':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:226:84: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   226 |                 if (e == 0 && fread(zetaHat,   sizeof(double), nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:227:88: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   227 |                 if (e == 0 && fread(zetaValid, sizeof(int),        nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                        ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'calc_emnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:307:16: warning: unused variable 'Hvals' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   307 |         double Hvals[18] = { 0.000, 0.150, 0.480, 0.780, 0.980, 1.550, 2.000, 2.300, 2.520,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:377:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   377 |                 fread(a->g.GG, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:378:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   378 |                 fread(a->g.GGS, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c: In function 'setSamplerate_siphon':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c:144:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   144 | void setSamplerate_siphon (SIPHON a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c: In function 'xamd':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:215:98: warning: 'audio' may be used uninitialized [-Wmaybe-uninitialized]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   215 |                                                         a->dc = a->mtauR * a->dc + a->onem_mtauR * audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ~~~~~~~~~~~~~~^~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:118:16: note: 'audio' was declared here
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |         double audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'flush_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:48:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    48 | void flush_ammod (AMMOD a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'setSamplerate_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c: In function 'start_thread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c:33:16: warning: unused variable 'handle' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    33 |         HANDLE handle = (HANDLE) _beginthread(wdspmain, 0, (void *)(uintptr_t)channel);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c: In function 'flush_iqc':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c:108:21: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   108 | void flush_iqc (IQC a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'QueueUserWorkItem':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:41:57: warning: unused parameter 'flags' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    41 | void QueueUserWorkItem(void *function,void *context,int flags) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                     ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'InitializeCriticalSectionAndSpinCount':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:64:72: warning: unused parameter 'count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    64 | void InitializeCriticalSectionAndSpinCount(pthread_mutex_t *mutex, int count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                    ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxCreateSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:33: warning: unused parameter 'attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                             ~~~~^~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:66: warning: unused parameter 'maximum_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                              ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:86: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxReleaseSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:136:63: warning: unused parameter 'previous_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   136 | void LinuxReleaseSemaphore(sem_t* sem,int release_count, int* previous_count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                          ~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'CreateEvent':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:26: warning: unused parameter 'security_attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                    ~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:50: warning: unused parameter 'bManualReset' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:67: warning: unused parameter 'bInitialState' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                               ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:87: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                 ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function '_beginthread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:192:46: warning: cast between incompatible function types from 'void (*)(void *)' to 'void * (*)(void *)' [-Wcast-function-type]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   192 |         if (pthread_create(&threadid, &attr, (void*(*)(void*))start_address, arglist)) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'SetThreadPriority':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:31: warning: unused parameter 'thread' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:43: warning: unused parameter 'priority' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                       ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c: In function 'XCreateAnalyzer':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c:1323:55: warning: unused parameter 'app_data_path' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:  1323 |                                                 char *app_data_path
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                 ~~~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'flush_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:54:35: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    54 | void flush_compressor (COMPRESSOR a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                        ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'setSamplerate_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:43: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:50: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'flush_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:50:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    50 | void flush_panel (PANEL a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'setSamplerate_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c: In function 'malloc0':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c:39:13: warning: unused variable 'alignment' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    39 |         int alignment = 16;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |             ^~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c: In function 'setSamplerate_anf':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anf (ANF a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c: In function 'xvarsamp':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c:153:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   153 |                         a->inv_cvar = *((double *)&N);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                        ~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c: In function 'setSamplerate_anr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anr (ANR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c: In function 'SendAntiVOXData':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c:708:35: warning: unused parameter 'nsamples' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   708 | void SendAntiVOXData (int id, int nsamples, double* data)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                               ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c: In function 'flush_div':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c:62:22: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    62 | void flush_div (MDIV a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'flush_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:52:23: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    52 | void flush_gain (GAIN a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                  ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'setSamplerate_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:31: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                          ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:38: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                  ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c: In function 'H':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c:44:23: warning: unused parameter 'scale' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    44 | static void H (double scale, double fcenter, double bandwidth, double f, double Hres[])
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ~~~~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c: In function 'xsbnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:118:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:124:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   124 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c: In function 'psccF':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:104: warning: unused parameter 'mox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                    ~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:113: warning: unused parameter 'solidmox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                             ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c: In function 'setSamplerate_sender':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c:93:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    93 | void setSamplerate_sender (SENDER a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c: In function 'noise_floor_manager_initialize':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:34:66: warning: unused parameter 'sample_rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    34 |                                                   const uint32_t sample_rate,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:35:66: warning: unused parameter 'hop' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    35 |                                                   const uint32_t hop) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'readZetaHat':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:226:84: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   226 |                 if (e == 0 && fread(zetaHat,   sizeof(double), nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:227:88: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   227 |                 if (e == 0 && fread(zetaValid, sizeof(int),        nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                        ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'calc_emnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:307:16: warning: unused variable 'Hvals' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   307 |         double Hvals[18] = { 0.000, 0.150, 0.480, 0.780, 0.980, 1.550, 2.000, 2.300, 2.520,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:377:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   377 |                 fread(a->g.GG, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:378:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   378 |                 fread(a->g.GGS, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c: In function 'setSamplerate_siphon':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c:144:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   144 | void setSamplerate_siphon (SIPHON a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c: In function 'xamd':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:215:98: warning: 'audio' may be used uninitialized [-Wmaybe-uninitialized]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   215 |                                                         a->dc = a->mtauR * a->dc + a->onem_mtauR * audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ~~~~~~~~~~~~~~^~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:118:16: note: 'audio' was declared here
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |         double audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'flush_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:48:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    48 | void flush_ammod (AMMOD a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'setSamplerate_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c: In function 'start_thread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c:33:16: warning: unused variable 'handle' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    33 |         HANDLE handle = (HANDLE) _beginthread(wdspmain, 0, (void *)(uintptr_t)channel);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c: In function 'flush_iqc':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c:108:21: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   108 | void flush_iqc (IQC a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'QueueUserWorkItem':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:41:57: warning: unused parameter 'flags' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    41 | void QueueUserWorkItem(void *function,void *context,int flags) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                     ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'InitializeCriticalSectionAndSpinCount':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:64:72: warning: unused parameter 'count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    64 | void InitializeCriticalSectionAndSpinCount(pthread_mutex_t *mutex, int count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                    ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxCreateSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:33: warning: unused parameter 'attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                             ~~~~^~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:66: warning: unused parameter 'maximum_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                              ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:86: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxReleaseSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:136:63: warning: unused parameter 'previous_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   136 | void LinuxReleaseSemaphore(sem_t* sem,int release_count, int* previous_count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                          ~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'CreateEvent':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:26: warning: unused parameter 'security_attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                    ~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:50: warning: unused parameter 'bManualReset' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:67: warning: unused parameter 'bInitialState' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                               ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:87: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                 ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function '_beginthread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:192:46: warning: cast between incompatible function types from 'void (*)(void *)' to 'void * (*)(void *)' [-Wcast-function-type]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   192 |         if (pthread_create(&threadid, &attr, (void*(*)(void*))start_address, arglist)) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'SetThreadPriority':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:31: warning: unused parameter 'thread' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:43: warning: unused parameter 'priority' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                       ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c: In function 'XCreateAnalyzer':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c:1323:55: warning: unused parameter 'app_data_path' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:  1323 |                                                 char *app_data_path
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                 ~~~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'flush_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:54:35: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    54 | void flush_compressor (COMPRESSOR a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                        ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'setSamplerate_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:43: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:50: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'flush_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:50:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    50 | void flush_panel (PANEL a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'setSamplerate_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c: In function 'malloc0':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c:39:13: warning: unused variable 'alignment' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    39 |         int alignment = 16;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |             ^~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c: In function 'setSamplerate_anf':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anf (ANF a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c: In function 'xvarsamp':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c:153:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   153 |                         a->inv_cvar = *((double *)&N);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                        ~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c: In function 'setSamplerate_anr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anr (ANR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c: In function 'SendAntiVOXData':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c:708:35: warning: unused parameter 'nsamples' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   708 | void SendAntiVOXData (int id, int nsamples, double* data)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                               ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c: In function 'flush_div':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c:62:22: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    62 | void flush_div (MDIV a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'flush_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:52:23: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    52 | void flush_gain (GAIN a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                  ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'setSamplerate_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:31: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                          ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:38: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                  ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c: In function 'H':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c:44:23: warning: unused parameter 'scale' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    44 | static void H (double scale, double fcenter, double bandwidth, double f, double Hres[])
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ~~~~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c: In function 'xsbnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:118:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:124:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   124 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c: In function 'psccF':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:104: warning: unused parameter 'mox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                    ~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:113: warning: unused parameter 'solidmox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                             ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c: In function 'setSamplerate_sender':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c:93:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    93 | void setSamplerate_sender (SENDER a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c: In function 'noise_floor_manager_initialize':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:34:66: warning: unused parameter 'sample_rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    34 |                                                   const uint32_t sample_rate,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:35:66: warning: unused parameter 'hop' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    35 |                                                   const uint32_t hop) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'readZetaHat':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:226:84: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   226 |                 if (e == 0 && fread(zetaHat,   sizeof(double), nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:227:88: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   227 |                 if (e == 0 && fread(zetaValid, sizeof(int),        nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                        ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'calc_emnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:307:16: warning: unused variable 'Hvals' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   307 |         double Hvals[18] = { 0.000, 0.150, 0.480, 0.780, 0.980, 1.550, 2.000, 2.300, 2.520,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:377:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   377 |                 fread(a->g.GG, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:378:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   378 |                 fread(a->g.GGS, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c: In function 'setSamplerate_siphon':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c:144:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   144 | void setSamplerate_siphon (SIPHON a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c: In function 'xamd':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:215:98: warning: 'audio' may be used uninitialized [-Wmaybe-uninitialized]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   215 |                                                         a->dc = a->mtauR * a->dc + a->onem_mtauR * audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ~~~~~~~~~~~~~~^~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:118:16: note: 'audio' was declared here
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |         double audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'flush_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:48:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    48 | void flush_ammod (AMMOD a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'setSamplerate_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c: In function 'start_thread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c:33:16: warning: unused variable 'handle' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    33 |         HANDLE handle = (HANDLE) _beginthread(wdspmain, 0, (void *)(uintptr_t)channel);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c: In function 'flush_iqc':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c:108:21: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   108 | void flush_iqc (IQC a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'QueueUserWorkItem':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:41:57: warning: unused parameter 'flags' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    41 | void QueueUserWorkItem(void *function,void *context,int flags) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                     ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'InitializeCriticalSectionAndSpinCount':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:64:72: warning: unused parameter 'count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    64 | void InitializeCriticalSectionAndSpinCount(pthread_mutex_t *mutex, int count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                    ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxCreateSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:33: warning: unused parameter 'attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                             ~~~~^~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:66: warning: unused parameter 'maximum_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                              ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:86: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxReleaseSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:136:63: warning: unused parameter 'previous_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   136 | void LinuxReleaseSemaphore(sem_t* sem,int release_count, int* previous_count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                          ~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'CreateEvent':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:26: warning: unused parameter 'security_attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                    ~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:50: warning: unused parameter 'bManualReset' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:67: warning: unused parameter 'bInitialState' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                               ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:87: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                 ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function '_beginthread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:192:46: warning: cast between incompatible function types from 'void (*)(void *)' to 'void * (*)(void *)' [-Wcast-function-type]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   192 |         if (pthread_create(&threadid, &attr, (void*(*)(void*))start_address, arglist)) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'SetThreadPriority':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:31: warning: unused parameter 'thread' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:43: warning: unused parameter 'priority' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                       ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c: In function 'XCreateAnalyzer':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c:1323:55: warning: unused parameter 'app_data_path' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:  1323 |                                                 char *app_data_path
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                 ~~~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'flush_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:54:35: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    54 | void flush_compressor (COMPRESSOR a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                        ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'setSamplerate_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:43: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:50: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'flush_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:50:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    50 | void flush_panel (PANEL a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'setSamplerate_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c: In function 'malloc0':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c:39:13: warning: unused variable 'alignment' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    39 |         int alignment = 16;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |             ^~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c: In function 'setSamplerate_anf':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anf (ANF a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c: In function 'xvarsamp':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c:153:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   153 |                         a->inv_cvar = *((double *)&N);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                        ~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c: In function 'setSamplerate_anr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anr (ANR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c: In function 'SendAntiVOXData':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c:708:35: warning: unused parameter 'nsamples' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   708 | void SendAntiVOXData (int id, int nsamples, double* data)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                               ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c: In function 'flush_div':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c:62:22: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    62 | void flush_div (MDIV a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'flush_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:52:23: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    52 | void flush_gain (GAIN a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                  ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'setSamplerate_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:31: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                          ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:38: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                  ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c: In function 'H':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c:44:23: warning: unused parameter 'scale' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    44 | static void H (double scale, double fcenter, double bandwidth, double f, double Hres[])
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ~~~~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c: In function 'xsbnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:118:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:124:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   124 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c: In function 'psccF':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:104: warning: unused parameter 'mox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                    ~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:113: warning: unused parameter 'solidmox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                             ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c: In function 'setSamplerate_sender':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c:93:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    93 | void setSamplerate_sender (SENDER a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/midi/mod.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ignore` and `MidiInputPort`
[INFO] [stdout]   --> src/midi/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |             ^^^^^^             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Frame` and `Grid`
[INFO] [stdout]   --> src/widgets/mod.rs:18:82
[INFO] [stdout]    |
[INFO] [stdout] 18 | use gtk::{Adjustment, ApplicationWindow, Builder, Button, DrawingArea, DropDown, Frame, Grid, Label, ProgressBar, ToggleButton};
[INFO] [stdout]    |                                                                                  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bands::*`
[INFO] [stdout]   --> src/widgets/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::bands::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modes::*`
[INFO] [stdout]   --> src/widgets/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::modes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::filters::*`
[INFO] [stdout]   --> src/widgets/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cell`
[INFO] [stdout]   --> src/vfo/mod.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::cell::{Cell, RefCell};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Keyer` and `RadioModels`
[INFO] [stdout]   --> src/vfo/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::radio::{Keyer, RadioModels, RadioMutex};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::receiver::*`
[INFO] [stdout]   --> src/vfo/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::receiver::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/midi/mod.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ignore` and `MidiInputPort`
[INFO] [stdout]   --> src/midi/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |             ^^^^^^             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Frame` and `Grid`
[INFO] [stdout]   --> src/widgets/mod.rs:18:82
[INFO] [stdout]    |
[INFO] [stdout] 18 | use gtk::{Adjustment, ApplicationWindow, Builder, Button, DrawingArea, DropDown, Frame, Grid, Label, ProgressBar, ToggleButton};
[INFO] [stdout]    |                                                                                  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bands::*`
[INFO] [stdout]   --> src/widgets/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::bands::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modes::*`
[INFO] [stdout]   --> src/widgets/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::modes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::filters::*`
[INFO] [stdout]   --> src/widgets/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cell`
[INFO] [stdout]   --> src/vfo/mod.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::cell::{Cell, RefCell};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Keyer` and `RadioModels`
[INFO] [stdout]   --> src/vfo/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::radio::{Keyer, RadioModels, RadioMutex};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::receiver::*`
[INFO] [stdout]   --> src/vfo/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::receiver::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiIO`
[INFO] [stdout]   --> src/midi/mod.rs:22:47
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiIO`
[INFO] [stdout]   --> src/midi/mod.rs:22:47
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/radio/mod.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut receivers: u8 = 2;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/radio/mod.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut receivers: u8 = 2;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         m[filter].low = low;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         m[filter].high = high;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         m[filter].low = low;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         m[filter].high = high;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cw_pitch`
[INFO] [stdout]     --> src/configure/mod.rs:2724:9
[INFO] [stdout]      |
[INFO] [stdout] 2724 |     let cw_pitch = r.receiver[rx].cw_pitch;
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cw_pitch`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2827:9
[INFO] [stdout]      |
[INFO] [stdout] 2827 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2932:9
[INFO] [stdout]      |
[INFO] [stdout] 2932 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:3036:9
[INFO] [stdout]      |
[INFO] [stdout] 3036 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:174:41
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let sequence = u32::from_be_bytes([buffer[4], buffer[5], buffer[6], buffer[7]]);
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `process_rx_audio` is never read
[INFO] [stdout]    --> src/protocol1/mod.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 437 |                     process_rx_audio = true;
[INFO] [stdout]     |                     ----------------------- `process_rx_audio` is overwritten here before the previous value is read
[INFO] [stdout] ...
[INFO] [stdout] 588 |             process_rx_audio = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/cat/mod.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let cmd = input.trim_end_matches(';').to_uppercase(); // cmd does not include the ;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/cat/mod.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         for (i, cmd) in commands.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:136:47
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:136:73
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let cmd = &command[..4];
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let suffix = &command[4..];
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:142:36
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:142:62
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:187:22
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:187:36
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:187:62
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:191:62
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:216:62
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cw_pitch`
[INFO] [stdout]     --> src/configure/mod.rs:2724:9
[INFO] [stdout]      |
[INFO] [stdout] 2724 |     let cw_pitch = r.receiver[rx].cw_pitch;
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cw_pitch`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:227:62
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2827:9
[INFO] [stdout]      |
[INFO] [stdout] 2827 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2932:9
[INFO] [stdout]      |
[INFO] [stdout] 2932 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:3036:9
[INFO] [stdout]      |
[INFO] [stdout] 3036 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:238:22
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:248:62
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:259:22
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:174:41
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let sequence = u32::from_be_bytes([buffer[4], buffer[5], buffer[6], buffer[7]]);
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]   --> src/midi/mod.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn run(&self, radio_mutex: &RadioMutex, tx: &mpsc::Sender<MidiMessage>, stop_flag: Arc<AtomicBool>) -> Result<(), Box<dyn Er...
[INFO] [stdout]    |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rigctl/mod.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `process_rx_audio` is never read
[INFO] [stdout]    --> src/protocol1/mod.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 437 |                     process_rx_audio = true;
[INFO] [stdout]     |                     ----------------------- `process_rx_audio` is overwritten here before the previous value is read
[INFO] [stdout] ...
[INFO] [stdout] 588 |             process_rx_audio = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/antenna/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             5 => Some(Antenna::XVTR),
[INFO] [stdout]    |             - matches all the relevant values
[INFO] [stdout] 42 |             5 => Some(Antenna::NONE),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band_grid_clone`
[INFO] [stdout]   --> src/vfo/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let band_grid_clone = band_grid.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_band_grid_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_u32_with_separators` is never used
[INFO] [stdout]    --> src/radio/mod.rs:697:4
[INFO] [stdout]     |
[INFO] [stdout] 697 | fn format_u32_with_separators(value: u32) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_meter` is never used
[INFO] [stdout]    --> src/radio/mod.rs:713:4
[INFO] [stdout]     |
[INFO] [stdout] 713 | fn draw_meter(cr: &Context, dbm: f64) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_waterfall` is never used
[INFO] [stdout]    --> src/radio/mod.rs:756:4
[INFO] [stdout]     |
[INFO] [stdout] 756 | fn draw_waterfall(cr: &Context, width: i32, height: i32, pixbuf: &Rc<RefCell<Option<Pixbuf>>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUBRX_BASE_CHANNEL` is never used
[INFO] [stdout]   --> src/receiver/mod.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const SUBRX_BASE_CHANNEL: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cw_pitch_spinbutton` is never read
[INFO] [stdout]   --> src/filters/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct FilterGrid {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     cw_pitch_spinbutton: SpinButton,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterGrid` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `receive_sequence`, `wide_sequence`, `n_samples`, `left_sample`, and `right_sample` are never read
[INFO] [stdout]   --> src/protocol1/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Protocol1 {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     receive_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     send_sequence: u32,
[INFO] [stdout] 48 |     wide_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     n_samples: i32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 53 |     left_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 54 |     right_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol1/mod.rs:892:8
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl Protocol1 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 892 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const RX_YELLOW_LED: u32 = 0x00000001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const UNUSED_1: u32 =      0x00000080;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `XVTR_RX_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const XVTR_RX_IN: u32 =    0x00000100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_2_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const RX_2_IN: u32 =       0x00000200;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const RX_1_IN: u32 =       0x00000400;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_OUT` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const RX_1_OUT: u32 =      0x00000800;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const RX_RED_LED: u32 =    0x00008000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const UNUSED_2: u32 =      0x00010000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const UNUSED_3: u32 =      0x00020000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRX_STATUS` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const TRX_STATUS: u32 =    0x00040000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const TX_YELLOW_LED: u32 = 0x00080000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const ANT_1: u32 =         0x01000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const ANT_2: u32 =         0x02000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const ANT_3: u32 =         0x04000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TR_RELAY` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const TR_RELAY: u32 =      0x08000000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const TX_RED_LED: u32 =    0x10000000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `receivers` is never read
[INFO] [stdout]   --> src/protocol2/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Protocol2 {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     receivers: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol2/mod.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Protocol2 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 834 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `swr` is never read
[INFO] [stdout]   --> src/meter/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Meter {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 23 |     surface: ImageSurface,
[INFO] [stdout] 24 |     swr: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meter` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MidiVfoA` and `MidiVfoB` are never constructed
[INFO] [stdout]   --> src/midi/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MidiAction {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 28 |     MidiNone,
[INFO] [stdout] 29 |     MidiVfoA,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 30 |     MidiVfoB,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `midi_action` is never read
[INFO] [stdout]   --> src/midi/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct MidiFunction {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 56 |     midi_type: MidiType,
[INFO] [stdout] 57 |     midi_action: MidiAction,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiFunction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/cat/mod.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/radio/mod.rs:620:21
[INFO] [stdout]     |
[INFO] [stdout] 620 |                     file.read_to_string(&mut s);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 620 |                     let _ = file.read_to_string(&mut s);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let cmd = input.trim_end_matches(';').to_uppercase(); // cmd does not include the ;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/cat/mod.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         for (i, cmd) in commands.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:136:47
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:136:73
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let cmd = &command[..4];
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let suffix = &command[4..];
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:142:36
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:142:62
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:187:22
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:187:36
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:187:62
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:191:62
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:216:62
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Nrvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:506:12
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn update_Nrvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_nrvals`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Anfvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:512:12
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn update_Anfvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_anfvals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_AgcPosition` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:518:12
[INFO] [stdout]     |
[INFO] [stdout] 518 |     pub fn update_AgcPosition(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_agc_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscLin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:592:13
[INFO] [stdout]     |
[INFO] [stdout] 592 |         let fscLin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_lin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscHin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:593:13
[INFO] [stdout]     |
[INFO] [stdout] 593 |         let fscHin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_hin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:227:62
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:238:22
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:248:62
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterLSB` should have an upper case name
[INFO] [stdout]   --> src/filters/mod.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         const filterLSB: [Filter; 12] = [
[INFO] [stdout]    |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_LSB`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterUSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |         const filterUSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_USB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |         const filterCWL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |         const filterCWU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:259:22
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |         const filterDIGL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 |         const filterDIGU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:182:15
[INFO] [stdout]     |
[INFO] [stdout] 182 |         const filterAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^ help: convert the identifier to upper case: `FILTER_AM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:197:15
[INFO] [stdout]     |
[INFO] [stdout] 197 |         const filterSAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SAM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterFMN` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:212:15
[INFO] [stdout]     |
[INFO] [stdout] 212 |         const filterFMN: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_FMN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:227:15
[INFO] [stdout]     |
[INFO] [stdout] 227 |         const filterDSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DSB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSPEC` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 |         const filterSPEC: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SPEC`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDRM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 |         const filterDRM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DRM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]   --> src/midi/mod.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn run(&self, radio_mutex: &RadioMutex, tx: &mpsc::Sender<MidiMessage>, stop_flag: Arc<AtomicBool>) -> Result<(), Box<dyn Er...
[INFO] [stdout]    |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_20_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rigctl/mod.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_10_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:217:11
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub const rxaMeterType_RXA_S_PK: rxaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:218:11
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub const rxaMeterType_RXA_S_AV: rxaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:219:11
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub const rxaMeterType_RXA_ADC_PK: rxaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:220:11
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub const rxaMeterType_RXA_ADC_AV: rxaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub const rxaMeterType_RXA_AGC_GAIN: rxaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:222:11
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub const rxaMeterType_RXA_AGC_PK: rxaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:223:11
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub const rxaMeterType_RXA_AGC_AV: rxaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:224:11
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub const rxaMeterType_RXA_METERTYPE_LAST: rxaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:562:11
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub const txaMeterType_TXA_MIC_PK: txaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:563:11
[INFO] [stdout]     |
[INFO] [stdout] 563 | pub const txaMeterType_TXA_MIC_AV: txaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:564:11
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub const txaMeterType_TXA_EQ_PK: txaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:565:11
[INFO] [stdout]     |
[INFO] [stdout] 565 | pub const txaMeterType_TXA_EQ_AV: txaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:566:11
[INFO] [stdout]     |
[INFO] [stdout] 566 | pub const txaMeterType_TXA_LVLR_PK: txaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:567:11
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub const txaMeterType_TXA_LVLR_AV: txaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:568:11
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub const txaMeterType_TXA_LVLR_GAIN: txaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:569:11
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub const txaMeterType_TXA_CFC_PK: txaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:570:11
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub const txaMeterType_TXA_CFC_AV: txaMeterType = 8;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:571:11
[INFO] [stdout]     |
[INFO] [stdout] 571 | pub const txaMeterType_TXA_CFC_GAIN: txaMeterType = 9;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:572:11
[INFO] [stdout]     |
[INFO] [stdout] 572 | pub const txaMeterType_TXA_COMP_PK: txaMeterType = 10;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub const txaMeterType_TXA_COMP_AV: txaMeterType = 11;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:574:11
[INFO] [stdout]     |
[INFO] [stdout] 574 | pub const txaMeterType_TXA_ALC_PK: txaMeterType = 12;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:575:11
[INFO] [stdout]     |
[INFO] [stdout] 575 | pub const txaMeterType_TXA_ALC_AV: txaMeterType = 13;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:576:11
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub const txaMeterType_TXA_ALC_GAIN: txaMeterType = 14;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:577:11
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub const txaMeterType_TXA_OUT_PK: txaMeterType = 15;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:578:11
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub const txaMeterType_TXA_OUT_AV: txaMeterType = 16;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:579:11
[INFO] [stdout]     |
[INFO] [stdout] 579 | pub const txaMeterType_TXA_METERTYPE_LAST: txaMeterType = 17;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_0dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const ALEX_ATTENUATION_0dB: u32 =    0x00000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_0D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_10dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const ALEX_ATTENUATION_10dB: u32 =   0x00004000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_10D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_20dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const ALEX_ATTENUATION_20dB: u32 =   0x00002000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_20D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_30dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const ALEX_ATTENUATION_30dB: u32 =   0x00006000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_30D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 let mut R = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 let mut G = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 let mut B = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/antenna/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             5 => Some(Antenna::XVTR),
[INFO] [stdout]    |             - matches all the relevant values
[INFO] [stdout] 42 |             5 => Some(Antenna::NONE),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `AI_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `ai_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FA_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn FA_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fa_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FB_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn FB_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fb_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ID_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `id_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IF_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `if_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `KS_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `ks_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `MD_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `md_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `rx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `VX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `tx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band_grid_clone`
[INFO] [stdout]   --> src/vfo/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let band_grid_clone = band_grid.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_band_grid_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_u32_with_separators` is never used
[INFO] [stdout]    --> src/radio/mod.rs:697:4
[INFO] [stdout]     |
[INFO] [stdout] 697 | fn format_u32_with_separators(value: u32) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_meter` is never used
[INFO] [stdout]    --> src/radio/mod.rs:713:4
[INFO] [stdout]     |
[INFO] [stdout] 713 | fn draw_meter(cr: &Context, dbm: f64) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_waterfall` is never used
[INFO] [stdout]    --> src/radio/mod.rs:756:4
[INFO] [stdout]     |
[INFO] [stdout] 756 | fn draw_waterfall(cr: &Context, width: i32, height: i32, pixbuf: &Rc<RefCell<Option<Pixbuf>>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUBRX_BASE_CHANNEL` is never used
[INFO] [stdout]   --> src/receiver/mod.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const SUBRX_BASE_CHANNEL: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cw_pitch_spinbutton` is never read
[INFO] [stdout]   --> src/filters/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct FilterGrid {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     cw_pitch_spinbutton: SpinButton,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterGrid` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `receive_sequence`, `wide_sequence`, `n_samples`, `left_sample`, and `right_sample` are never read
[INFO] [stdout]   --> src/protocol1/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Protocol1 {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     receive_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     send_sequence: u32,
[INFO] [stdout] 48 |     wide_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     n_samples: i32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 53 |     left_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 54 |     right_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol1/mod.rs:892:8
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl Protocol1 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 892 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const RX_YELLOW_LED: u32 = 0x00000001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const UNUSED_1: u32 =      0x00000080;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `XVTR_RX_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const XVTR_RX_IN: u32 =    0x00000100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_2_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const RX_2_IN: u32 =       0x00000200;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const RX_1_IN: u32 =       0x00000400;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_OUT` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const RX_1_OUT: u32 =      0x00000800;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const RX_RED_LED: u32 =    0x00008000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const UNUSED_2: u32 =      0x00010000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const UNUSED_3: u32 =      0x00020000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRX_STATUS` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const TRX_STATUS: u32 =    0x00040000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const TX_YELLOW_LED: u32 = 0x00080000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const ANT_1: u32 =         0x01000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const ANT_2: u32 =         0x02000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const ANT_3: u32 =         0x04000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TR_RELAY` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const TR_RELAY: u32 =      0x08000000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const TX_RED_LED: u32 =    0x10000000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `receivers` is never read
[INFO] [stdout]   --> src/protocol2/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Protocol2 {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     receivers: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol2/mod.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Protocol2 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 834 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `swr` is never read
[INFO] [stdout]   --> src/meter/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Meter {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 23 |     surface: ImageSurface,
[INFO] [stdout] 24 |     swr: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meter` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MidiVfoA` and `MidiVfoB` are never constructed
[INFO] [stdout]   --> src/midi/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MidiAction {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 28 |     MidiNone,
[INFO] [stdout] 29 |     MidiVfoA,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 30 |     MidiVfoB,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `midi_action` is never read
[INFO] [stdout]   --> src/midi/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct MidiFunction {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 56 |     midi_type: MidiType,
[INFO] [stdout] 57 |     midi_action: MidiAction,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiFunction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `rustyHPSDR` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `rusty_hpsdr`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/radio/mod.rs:620:21
[INFO] [stdout]     |
[INFO] [stdout] 620 |                     file.read_to_string(&mut s);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 620 |                     let _ = file.read_to_string(&mut s);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Nrvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:506:12
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn update_Nrvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_nrvals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Anfvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:512:12
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn update_Anfvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_anfvals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_AgcPosition` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:518:12
[INFO] [stdout]     |
[INFO] [stdout] 518 |     pub fn update_AgcPosition(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_agc_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscLin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:592:13
[INFO] [stdout]     |
[INFO] [stdout] 592 |         let fscLin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_lin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscHin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:593:13
[INFO] [stdout]     |
[INFO] [stdout] 593 |         let fscHin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_hin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterLSB` should have an upper case name
[INFO] [stdout]   --> src/filters/mod.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         const filterLSB: [Filter; 12] = [
[INFO] [stdout]    |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_LSB`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterUSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |         const filterUSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_USB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |         const filterCWL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |         const filterCWU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |         const filterDIGL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 |         const filterDIGU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:182:15
[INFO] [stdout]     |
[INFO] [stdout] 182 |         const filterAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^ help: convert the identifier to upper case: `FILTER_AM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:197:15
[INFO] [stdout]     |
[INFO] [stdout] 197 |         const filterSAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SAM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterFMN` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:212:15
[INFO] [stdout]     |
[INFO] [stdout] 212 |         const filterFMN: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_FMN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:227:15
[INFO] [stdout]     |
[INFO] [stdout] 227 |         const filterDSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DSB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSPEC` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 |         const filterSPEC: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SPEC`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDRM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 |         const filterDRM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DRM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_20_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_10_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:217:11
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub const rxaMeterType_RXA_S_PK: rxaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:218:11
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub const rxaMeterType_RXA_S_AV: rxaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:219:11
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub const rxaMeterType_RXA_ADC_PK: rxaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:220:11
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub const rxaMeterType_RXA_ADC_AV: rxaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub const rxaMeterType_RXA_AGC_GAIN: rxaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:222:11
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub const rxaMeterType_RXA_AGC_PK: rxaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:223:11
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub const rxaMeterType_RXA_AGC_AV: rxaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:224:11
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub const rxaMeterType_RXA_METERTYPE_LAST: rxaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:562:11
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub const txaMeterType_TXA_MIC_PK: txaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:563:11
[INFO] [stdout]     |
[INFO] [stdout] 563 | pub const txaMeterType_TXA_MIC_AV: txaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:564:11
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub const txaMeterType_TXA_EQ_PK: txaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:565:11
[INFO] [stdout]     |
[INFO] [stdout] 565 | pub const txaMeterType_TXA_EQ_AV: txaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:566:11
[INFO] [stdout]     |
[INFO] [stdout] 566 | pub const txaMeterType_TXA_LVLR_PK: txaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:567:11
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub const txaMeterType_TXA_LVLR_AV: txaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:568:11
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub const txaMeterType_TXA_LVLR_GAIN: txaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:569:11
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub const txaMeterType_TXA_CFC_PK: txaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:570:11
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub const txaMeterType_TXA_CFC_AV: txaMeterType = 8;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:571:11
[INFO] [stdout]     |
[INFO] [stdout] 571 | pub const txaMeterType_TXA_CFC_GAIN: txaMeterType = 9;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:572:11
[INFO] [stdout]     |
[INFO] [stdout] 572 | pub const txaMeterType_TXA_COMP_PK: txaMeterType = 10;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub const txaMeterType_TXA_COMP_AV: txaMeterType = 11;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:574:11
[INFO] [stdout]     |
[INFO] [stdout] 574 | pub const txaMeterType_TXA_ALC_PK: txaMeterType = 12;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:575:11
[INFO] [stdout]     |
[INFO] [stdout] 575 | pub const txaMeterType_TXA_ALC_AV: txaMeterType = 13;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:576:11
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub const txaMeterType_TXA_ALC_GAIN: txaMeterType = 14;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:577:11
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub const txaMeterType_TXA_OUT_PK: txaMeterType = 15;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:578:11
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub const txaMeterType_TXA_OUT_AV: txaMeterType = 16;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:579:11
[INFO] [stdout]     |
[INFO] [stdout] 579 | pub const txaMeterType_TXA_METERTYPE_LAST: txaMeterType = 17;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_0dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const ALEX_ATTENUATION_0dB: u32 =    0x00000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_0D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_10dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const ALEX_ATTENUATION_10dB: u32 =   0x00004000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_10D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_20dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const ALEX_ATTENUATION_20dB: u32 =   0x00002000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_20D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_30dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const ALEX_ATTENUATION_30dB: u32 =   0x00006000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_30D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 let mut R = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 let mut G = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 let mut B = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `AI_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `ai_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FA_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn FA_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fa_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FB_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn FB_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fb_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ID_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `id_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IF_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `if_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `KS_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `ks_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `MD_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `md_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `rx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `VX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `tx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::bands::*`
[INFO] [stdout]   --> src/main.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use rustyHPSDR::bands::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::filters::*`
[INFO] [stdout]   --> src/main.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | use rustyHPSDR::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::discovery::Boards`
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use rustyHPSDR::discovery::Boards;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1700:73
[INFO] [stdout]      |
[INFO] [stdout] 1700 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1701 | | ...       match rx.try_recv() {
[INFO] [stdout] 1702 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1775 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1822:73
[INFO] [stdout]      |
[INFO] [stdout] 1822 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1823 | | ...       match rx.try_recv() {
[INFO] [stdout] 1824 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1890 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1939:73
[INFO] [stdout]      |
[INFO] [stdout] 1939 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1940 | | ...       match rx.try_recv() {
[INFO] [stdout] 1941 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1968 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::StyleContext`: Since 4.10
[INFO] [stdout]    --> src/main.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::CssProvider::load_from_data`: Since 4.12
[INFO] [stdout]    --> src/main.rs:160:14
[INFO] [stdout]     |
[INFO] [stdout] 160 |     provider.load_from_data(ui_css);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gtk4::style_context::<impl gtk4::StyleContext>::add_provider_for_display`: Use gtk::style_context_add_provider_for_display instead.
[INFO] [stdout]    --> src/main.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::bands::*`
[INFO] [stdout]   --> src/main.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use rustyHPSDR::bands::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::filters::*`
[INFO] [stdout]   --> src/main.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | use rustyHPSDR::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::discovery::Boards`
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use rustyHPSDR::discovery::Boards;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1700:73
[INFO] [stdout]      |
[INFO] [stdout] 1700 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1701 | | ...       match rx.try_recv() {
[INFO] [stdout] 1702 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1775 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1822:73
[INFO] [stdout]      |
[INFO] [stdout] 1822 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1823 | | ...       match rx.try_recv() {
[INFO] [stdout] 1824 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1890 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1939:73
[INFO] [stdout]      |
[INFO] [stdout] 1939 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1940 | | ...       match rx.try_recv() {
[INFO] [stdout] 1941 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1968 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:338:71
[INFO] [stdout]     |
[INFO] [stdout] 338 |                         let style_context = app_widgets.a_to_b_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:339:39
[INFO] [stdout]     |
[INFO] [stdout] 339 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:340:71
[INFO] [stdout]     |
[INFO] [stdout] 340 |                         let style_context = app_widgets.b_to_a_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:341:39
[INFO] [stdout]     |
[INFO] [stdout] 341 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:342:73
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         let style_context = app_widgets.a_swap_b_button.style_context();
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:343:39
[INFO] [stdout]     |
[INFO] [stdout] 343 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:345:69
[INFO] [stdout]     |
[INFO] [stdout] 345 |                         let style_context = app_widgets.ctun_button.style_context();
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:346:39
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:349:68
[INFO] [stdout]     |
[INFO] [stdout] 349 |                         let style_context = app_widgets.cat_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:350:39
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:353:71
[INFO] [stdout]     |
[INFO] [stdout] 353 |                         let style_context = app_widgets.rigctl_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:354:39
[INFO] [stdout]     |
[INFO] [stdout] 354 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:357:69
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let style_context = app_widgets.midi_button.style_context();
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:358:39
[INFO] [stdout]     |
[INFO] [stdout] 358 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:361:70
[INFO] [stdout]     |
[INFO] [stdout] 361 |                         let style_context = app_widgets.split_button.style_context();
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:362:39
[INFO] [stdout]     |
[INFO] [stdout] 362 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:365:68
[INFO] [stdout]     |
[INFO] [stdout] 365 |                         let style_context = app_widgets.rx2_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:366:39
[INFO] [stdout]     |
[INFO] [stdout] 366 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:432:67
[INFO] [stdout]     |
[INFO] [stdout] 432 |                         let style_context = app_widgets.nr_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:433:39
[INFO] [stdout]     |
[INFO] [stdout] 433 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:452:67
[INFO] [stdout]     |
[INFO] [stdout] 452 |                         let style_context = app_widgets.nb_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:453:39
[INFO] [stdout]     |
[INFO] [stdout] 453 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:464:68
[INFO] [stdout]     |
[INFO] [stdout] 464 |                         let style_context = app_widgets.anf_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:465:39
[INFO] [stdout]     |
[INFO] [stdout] 465 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:469:68
[INFO] [stdout]     |
[INFO] [stdout] 469 |                         let style_context = app_widgets.snb_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:470:39
[INFO] [stdout]     |
[INFO] [stdout] 470 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:474:68
[INFO] [stdout]     |
[INFO] [stdout] 474 |                         let style_context = app_widgets.mox_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:475:39
[INFO] [stdout]     |
[INFO] [stdout] 475 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:477:68
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         let style_context = app_widgets.tun_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:478:39
[INFO] [stdout]     |
[INFO] [stdout] 478 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:627:52
[INFO] [stdout]     |
[INFO] [stdout] 627 |                         let style_context = button.style_context();
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:719:40
[INFO] [stdout]     |
[INFO] [stdout] 719 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::StyleContext`: Since 4.10
[INFO] [stdout]    --> src/main.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:752:40
[INFO] [stdout]     |
[INFO] [stdout] 752 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:956:40
[INFO] [stdout]     |
[INFO] [stdout] 956 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:970:40
[INFO] [stdout]     |
[INFO] [stdout] 970 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::CssProvider::load_from_data`: Since 4.12
[INFO] [stdout]    --> src/main.rs:160:14
[INFO] [stdout]     |
[INFO] [stdout] 160 |     provider.load_from_data(ui_css);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gtk4::style_context::<impl gtk4::StyleContext>::add_provider_for_display`: Use gtk::style_context_add_provider_for_display instead.
[INFO] [stdout]    --> src/main.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:338:71
[INFO] [stdout]     |
[INFO] [stdout] 338 |                         let style_context = app_widgets.a_to_b_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:339:39
[INFO] [stdout]     |
[INFO] [stdout] 339 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:340:71
[INFO] [stdout]     |
[INFO] [stdout] 340 |                         let style_context = app_widgets.b_to_a_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:341:39
[INFO] [stdout]     |
[INFO] [stdout] 341 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:342:73
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         let style_context = app_widgets.a_swap_b_button.style_context();
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:343:39
[INFO] [stdout]     |
[INFO] [stdout] 343 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:345:69
[INFO] [stdout]     |
[INFO] [stdout] 345 |                         let style_context = app_widgets.ctun_button.style_context();
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:346:39
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:349:68
[INFO] [stdout]     |
[INFO] [stdout] 349 |                         let style_context = app_widgets.cat_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:350:39
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:353:71
[INFO] [stdout]     |
[INFO] [stdout] 353 |                         let style_context = app_widgets.rigctl_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:354:39
[INFO] [stdout]     |
[INFO] [stdout] 354 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:357:69
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let style_context = app_widgets.midi_button.style_context();
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:358:39
[INFO] [stdout]     |
[INFO] [stdout] 358 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:361:70
[INFO] [stdout]     |
[INFO] [stdout] 361 |                         let style_context = app_widgets.split_button.style_context();
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:362:39
[INFO] [stdout]     |
[INFO] [stdout] 362 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:365:68
[INFO] [stdout]     |
[INFO] [stdout] 365 |                         let style_context = app_widgets.rx2_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:366:39
[INFO] [stdout]     |
[INFO] [stdout] 366 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:432:67
[INFO] [stdout]     |
[INFO] [stdout] 432 |                         let style_context = app_widgets.nr_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:433:39
[INFO] [stdout]     |
[INFO] [stdout] 433 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:452:67
[INFO] [stdout]     |
[INFO] [stdout] 452 |                         let style_context = app_widgets.nb_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:453:39
[INFO] [stdout]     |
[INFO] [stdout] 453 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:464:68
[INFO] [stdout]     |
[INFO] [stdout] 464 |                         let style_context = app_widgets.anf_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:465:39
[INFO] [stdout]     |
[INFO] [stdout] 465 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:469:68
[INFO] [stdout]     |
[INFO] [stdout] 469 |                         let style_context = app_widgets.snb_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:470:39
[INFO] [stdout]     |
[INFO] [stdout] 470 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:474:68
[INFO] [stdout]     |
[INFO] [stdout] 474 |                         let style_context = app_widgets.mox_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:475:39
[INFO] [stdout]     |
[INFO] [stdout] 475 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:477:68
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         let style_context = app_widgets.tun_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:478:39
[INFO] [stdout]     |
[INFO] [stdout] 478 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:627:52
[INFO] [stdout]     |
[INFO] [stdout] 627 |                         let style_context = button.style_context();
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:719:40
[INFO] [stdout]     |
[INFO] [stdout] 719 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:752:40
[INFO] [stdout]     |
[INFO] [stdout] 752 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:956:40
[INFO] [stdout]     |
[INFO] [stdout] 956 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:970:40
[INFO] [stdout]     |
[INFO] [stdout] 970 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/main.rs:1948:37
[INFO] [stdout]      |
[INFO] [stdout] 1944 | ...                   MidiMessage::StepFrequencyA(increment) => {
[INFO] [stdout]      |                       -------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1948 | ...                   MidiMessage::StepFrequencyA(increment) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/main.rs:1948:37
[INFO] [stdout]      |
[INFO] [stdout] 1944 | ...                   MidiMessage::StepFrequencyA(increment) => {
[INFO] [stdout]      |                       -------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1948 | ...                   MidiMessage::StepFrequencyA(increment) => {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1729:45
[INFO] [stdout]      |
[INFO] [stdout] 1729 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1859:45
[INFO] [stdout]      |
[INFO] [stdout] 1859 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1587:51
[INFO] [stdout]      |
[INFO] [stdout] 1587 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1591 |                             is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                             ------------------------------------- `is_transmitting` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `rx2` is never read
[INFO] [stdout]     --> src/main.rs:1588:39
[INFO] [stdout]      |
[INFO] [stdout] 1588 |                         let mut rx2 = false;
[INFO] [stdout]      |                                       ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1592 |                             rx2 = r.rx2_enabled;
[INFO] [stdout]      |                             ------------------- `rx2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1566:51
[INFO] [stdout]      |
[INFO] [stdout] 1566 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1569 |                         is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                         ------------------------------------- `is_transmitting` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1518:78
[INFO] [stdout]      |
[INFO] [stdout] 1518 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1518:85
[INFO] [stdout]      |
[INFO] [stdout] 1518 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1512:78
[INFO] [stdout]      |
[INFO] [stdout] 1512 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1512:85
[INFO] [stdout]      |
[INFO] [stdout] 1512 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1217:29
[INFO] [stdout]      |
[INFO] [stdout] 1217 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1173:29
[INFO] [stdout]      |
[INFO] [stdout] 1173 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:943:72
[INFO] [stdout]     |
[INFO] [stdout] 943 |                     scroll_controller_waterfall_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:932:70
[INFO] [stdout]     |
[INFO] [stdout] 932 |                     scroll_controller_waterfall.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:887:71
[INFO] [stdout]     |
[INFO] [stdout] 887 |                     scroll_controller_spectrum_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:840:69
[INFO] [stdout]     |
[INFO] [stdout] 840 |                     scroll_controller_spectrum.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:812:77
[INFO] [stdout]     |
[INFO] [stdout] 812 |                     motion_event_controller_spectrum_2.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:780:75
[INFO] [stdout]     |
[INFO] [stdout] 780 |                     motion_event_controller_spectrum.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:760:84
[INFO] [stdout]     |
[INFO] [stdout] 760 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:760:96
[INFO] [stdout]     |
[INFO] [stdout] 760 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:750:83
[INFO] [stdout]     |
[INFO] [stdout] 750 |                     spectrum_2_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:736:82
[INFO] [stdout]     |
[INFO] [stdout] 736 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:736:94
[INFO] [stdout]     |
[INFO] [stdout] 736 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:717:81
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     spectrum_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `step` is never read
[INFO] [stdout]    --> src/main.rs:682:40
[INFO] [stdout]     |
[INFO] [stdout] 682 |                         let mut step = 1000.0;
[INFO] [stdout]     |                                        ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 683 |                         match index {
[INFO] [stdout] 684 |                             0 => step = 1.0,
[INFO] [stdout]     |                                  ---------- `step` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style_context`
[INFO] [stdout]    --> src/main.rs:627:29
[INFO] [stdout]     |
[INFO] [stdout] 627 |                         let style_context = button.style_context();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_style_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:539:61
[INFO] [stdout]     |
[INFO] [stdout] 539 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:539:70
[INFO] [stdout]     |
[INFO] [stdout] 539 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:539:73
[INFO] [stdout]     |
[INFO] [stdout] 539 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:511:61
[INFO] [stdout]     |
[INFO] [stdout] 511 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:511:70
[INFO] [stdout]     |
[INFO] [stdout] 511 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:511:73
[INFO] [stdout]     |
[INFO] [stdout] 511 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:502:62
[INFO] [stdout]     |
[INFO] [stdout] 502 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/main.rs:502:74
[INFO] [stdout]     |
[INFO] [stdout] 502 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:839:25
[INFO] [stdout]     |
[INFO] [stdout] 839 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:886:25
[INFO] [stdout]     |
[INFO] [stdout] 886 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:1025:25
[INFO] [stdout]      |
[INFO] [stdout] 1025 |                     let band = r.receiver[rx].band.to_usize();
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/main.rs:1026:25
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                     let mode = r.receiver[rx].mode;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:1027:25
[INFO] [stdout]      |
[INFO] [stdout] 1027 |                     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low`
[INFO] [stdout]     --> src/main.rs:1028:25
[INFO] [stdout]      |
[INFO] [stdout] 1028 |                     let low = r.receiver[rx].filter_low;
[INFO] [stdout]      |                         ^^^ help: if this is intentional, prefix it with an underscore: `_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high`
[INFO] [stdout]     --> src/main.rs:1029:25
[INFO] [stdout]      |
[INFO] [stdout] 1029 |                     let high = r.receiver[rx].filter_high;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter_tx_clone2`
[INFO] [stdout]     --> src/main.rs:1604:25
[INFO] [stdout]      |
[INFO] [stdout] 1604 |                     let rc_meter_tx_clone2 = rc_meter_tx_clone.clone();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter_tx_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meter_tx_timeout_id`
[INFO] [stdout]     --> src/main.rs:1624:25
[INFO] [stdout]      |
[INFO] [stdout] 1624 |                     let meter_tx_timeout_id = timeout_add_local(Duration::from_millis(update_interval as u64), move || {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meter_tx_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keepalive_timeout_id`
[INFO] [stdout]     --> src/main.rs:1640:29
[INFO] [stdout]      |
[INFO] [stdout] 1640 |                         let keepalive_timeout_id = timeout_add_local(Duration::from_millis(250), move || {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keepalive_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_interval` is never read
[INFO] [stdout]     --> src/main.rs:1554:47
[INFO] [stdout]      |
[INFO] [stdout] 1554 |                     let mut update_interval = 100.0;
[INFO] [stdout]      |                                               ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 1555 |                     let r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout] 1556 |                     update_interval = 1000.0 / r.receiver[0].spectrum_fps;
[INFO] [stdout]      |                     ----------------------------------------------------- `update_interval` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `builder_clone`
[INFO] [stdout]    --> src/main.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     let builder_clone = builder.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_builder_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter`
[INFO] [stdout]     --> src/main.rs:2073:89
[INFO] [stdout]      |
[INFO] [stdout] 2073 | fn meter_tx_update(radio_mutex: &RadioMutex,  rc_app_widgets: &Rc<RefCell<AppWidgets>>, rc_meter: &Rc<RefCell<Meter>>) {
[INFO] [stdout]      |                                                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button`
[INFO] [stdout]     --> src/main.rs:2116:130
[INFO] [stdout]      |
[INFO] [stdout] 2116 | ...ize, x: f64, width: i32, button: u32) -> bool {
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_frequency_high`
[INFO] [stdout]     --> src/main.rs:2139:9
[INFO] [stdout]      |
[INFO] [stdout] 2139 |     let display_frequency_high = frequency_high + display_frequency_offset;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_low`
[INFO] [stdout]     --> src/main.rs:2164:9
[INFO] [stdout]      |
[INFO] [stdout] 2164 |     let frequency_low = r.receiver[rx].frequency - (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_high`
[INFO] [stdout]     --> src/main.rs:2165:9
[INFO] [stdout]      |
[INFO] [stdout] 2165 |     let frequency_high = r.receiver[rx].frequency + (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2217:9
[INFO] [stdout]      |
[INFO] [stdout] 2217 |     let mut app_widgets = rc_app_widgets.borrow_mut();
[INFO] [stdout]      |         ----^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:2186:9
[INFO] [stdout]      |
[INFO] [stdout] 2186 |     let band = r.receiver[rx].band;
[INFO] [stdout]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:2188:9
[INFO] [stdout]      |
[INFO] [stdout] 2188 |     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `attenuation` is never read
[INFO] [stdout]     --> src/main.rs:2205:27
[INFO] [stdout]      |
[INFO] [stdout] 2205 |     let mut attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2211 |         attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |         ----------------------------------------------------- `attenuation` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1668:29
[INFO] [stdout]      |
[INFO] [stdout] 1668 | ...                   cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1668 |                             let _ = cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1687:33
[INFO] [stdout]      |
[INFO] [stdout] 1687 | ...                   cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1687 |                                 let _ = cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1792:29
[INFO] [stdout]      |
[INFO] [stdout] 1792 | ...                   rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1792 |                             let _ = rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1810:33
[INFO] [stdout]      |
[INFO] [stdout] 1810 | ...                   rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1810 |                                 let _ = rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1907:29
[INFO] [stdout]      |
[INFO] [stdout] 1907 | ...                   midi_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1907 |                             let _ = midi_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1926:33
[INFO] [stdout]      |
[INFO] [stdout] 1926 | ...                   midi_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1926 |                                 let _ = midi_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1729:45
[INFO] [stdout]      |
[INFO] [stdout] 1729 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1859:45
[INFO] [stdout]      |
[INFO] [stdout] 1859 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1587:51
[INFO] [stdout]      |
[INFO] [stdout] 1587 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1591 |                             is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                             ------------------------------------- `is_transmitting` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `rx2` is never read
[INFO] [stdout]     --> src/main.rs:1588:39
[INFO] [stdout]      |
[INFO] [stdout] 1588 |                         let mut rx2 = false;
[INFO] [stdout]      |                                       ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1592 |                             rx2 = r.rx2_enabled;
[INFO] [stdout]      |                             ------------------- `rx2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1566:51
[INFO] [stdout]      |
[INFO] [stdout] 1566 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1569 |                         is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                         ------------------------------------- `is_transmitting` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1518:78
[INFO] [stdout]      |
[INFO] [stdout] 1518 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1518:85
[INFO] [stdout]      |
[INFO] [stdout] 1518 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1512:78
[INFO] [stdout]      |
[INFO] [stdout] 1512 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1512:85
[INFO] [stdout]      |
[INFO] [stdout] 1512 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1217:29
[INFO] [stdout]      |
[INFO] [stdout] 1217 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1173:29
[INFO] [stdout]      |
[INFO] [stdout] 1173 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:943:72
[INFO] [stdout]     |
[INFO] [stdout] 943 |                     scroll_controller_waterfall_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:932:70
[INFO] [stdout]     |
[INFO] [stdout] 932 |                     scroll_controller_waterfall.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:887:71
[INFO] [stdout]     |
[INFO] [stdout] 887 |                     scroll_controller_spectrum_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:840:69
[INFO] [stdout]     |
[INFO] [stdout] 840 |                     scroll_controller_spectrum.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:812:77
[INFO] [stdout]     |
[INFO] [stdout] 812 |                     motion_event_controller_spectrum_2.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:780:75
[INFO] [stdout]     |
[INFO] [stdout] 780 |                     motion_event_controller_spectrum.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:760:84
[INFO] [stdout]     |
[INFO] [stdout] 760 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:760:96
[INFO] [stdout]     |
[INFO] [stdout] 760 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:750:83
[INFO] [stdout]     |
[INFO] [stdout] 750 |                     spectrum_2_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:736:82
[INFO] [stdout]     |
[INFO] [stdout] 736 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:736:94
[INFO] [stdout]     |
[INFO] [stdout] 736 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:717:81
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     spectrum_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `step` is never read
[INFO] [stdout]    --> src/main.rs:682:40
[INFO] [stdout]     |
[INFO] [stdout] 682 |                         let mut step = 1000.0;
[INFO] [stdout]     |                                        ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 683 |                         match index {
[INFO] [stdout] 684 |                             0 => step = 1.0,
[INFO] [stdout]     |                                  ---------- `step` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style_context`
[INFO] [stdout]    --> src/main.rs:627:29
[INFO] [stdout]     |
[INFO] [stdout] 627 |                         let style_context = button.style_context();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_style_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:539:61
[INFO] [stdout]     |
[INFO] [stdout] 539 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:539:70
[INFO] [stdout]     |
[INFO] [stdout] 539 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:539:73
[INFO] [stdout]     |
[INFO] [stdout] 539 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:511:61
[INFO] [stdout]     |
[INFO] [stdout] 511 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:511:70
[INFO] [stdout]     |
[INFO] [stdout] 511 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:511:73
[INFO] [stdout]     |
[INFO] [stdout] 511 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:502:62
[INFO] [stdout]     |
[INFO] [stdout] 502 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/main.rs:502:74
[INFO] [stdout]     |
[INFO] [stdout] 502 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:839:25
[INFO] [stdout]     |
[INFO] [stdout] 839 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:886:25
[INFO] [stdout]     |
[INFO] [stdout] 886 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:1025:25
[INFO] [stdout]      |
[INFO] [stdout] 1025 |                     let band = r.receiver[rx].band.to_usize();
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/main.rs:1026:25
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                     let mode = r.receiver[rx].mode;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:1027:25
[INFO] [stdout]      |
[INFO] [stdout] 1027 |                     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low`
[INFO] [stdout]     --> src/main.rs:1028:25
[INFO] [stdout]      |
[INFO] [stdout] 1028 |                     let low = r.receiver[rx].filter_low;
[INFO] [stdout]      |                         ^^^ help: if this is intentional, prefix it with an underscore: `_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high`
[INFO] [stdout]     --> src/main.rs:1029:25
[INFO] [stdout]      |
[INFO] [stdout] 1029 |                     let high = r.receiver[rx].filter_high;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter_tx_clone2`
[INFO] [stdout]     --> src/main.rs:1604:25
[INFO] [stdout]      |
[INFO] [stdout] 1604 |                     let rc_meter_tx_clone2 = rc_meter_tx_clone.clone();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter_tx_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meter_tx_timeout_id`
[INFO] [stdout]     --> src/main.rs:1624:25
[INFO] [stdout]      |
[INFO] [stdout] 1624 |                     let meter_tx_timeout_id = timeout_add_local(Duration::from_millis(update_interval as u64), move || {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meter_tx_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keepalive_timeout_id`
[INFO] [stdout]     --> src/main.rs:1640:29
[INFO] [stdout]      |
[INFO] [stdout] 1640 |                         let keepalive_timeout_id = timeout_add_local(Duration::from_millis(250), move || {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keepalive_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_interval` is never read
[INFO] [stdout]     --> src/main.rs:1554:47
[INFO] [stdout]      |
[INFO] [stdout] 1554 |                     let mut update_interval = 100.0;
[INFO] [stdout]      |                                               ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 1555 |                     let r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout] 1556 |                     update_interval = 1000.0 / r.receiver[0].spectrum_fps;
[INFO] [stdout]      |                     ----------------------------------------------------- `update_interval` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `builder_clone`
[INFO] [stdout]    --> src/main.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     let builder_clone = builder.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_builder_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter`
[INFO] [stdout]     --> src/main.rs:2073:89
[INFO] [stdout]      |
[INFO] [stdout] 2073 | fn meter_tx_update(radio_mutex: &RadioMutex,  rc_app_widgets: &Rc<RefCell<AppWidgets>>, rc_meter: &Rc<RefCell<Meter>>) {
[INFO] [stdout]      |                                                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button`
[INFO] [stdout]     --> src/main.rs:2116:130
[INFO] [stdout]      |
[INFO] [stdout] 2116 | ...ize, x: f64, width: i32, button: u32) -> bool {
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_frequency_high`
[INFO] [stdout]     --> src/main.rs:2139:9
[INFO] [stdout]      |
[INFO] [stdout] 2139 |     let display_frequency_high = frequency_high + display_frequency_offset;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_low`
[INFO] [stdout]     --> src/main.rs:2164:9
[INFO] [stdout]      |
[INFO] [stdout] 2164 |     let frequency_low = r.receiver[rx].frequency - (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_high`
[INFO] [stdout]     --> src/main.rs:2165:9
[INFO] [stdout]      |
[INFO] [stdout] 2165 |     let frequency_high = r.receiver[rx].frequency + (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2217:9
[INFO] [stdout]      |
[INFO] [stdout] 2217 |     let mut app_widgets = rc_app_widgets.borrow_mut();
[INFO] [stdout]      |         ----^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:2186:9
[INFO] [stdout]      |
[INFO] [stdout] 2186 |     let band = r.receiver[rx].band;
[INFO] [stdout]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:2188:9
[INFO] [stdout]      |
[INFO] [stdout] 2188 |     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `attenuation` is never read
[INFO] [stdout]     --> src/main.rs:2205:27
[INFO] [stdout]      |
[INFO] [stdout] 2205 |     let mut attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2211 |         attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |         ----------------------------------------------------- `attenuation` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1668:29
[INFO] [stdout]      |
[INFO] [stdout] 1668 | ...                   cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1668 |                             let _ = cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1687:33
[INFO] [stdout]      |
[INFO] [stdout] 1687 | ...                   cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1687 |                                 let _ = cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1792:29
[INFO] [stdout]      |
[INFO] [stdout] 1792 | ...                   rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1792 |                             let _ = rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1810:33
[INFO] [stdout]      |
[INFO] [stdout] 1810 | ...                   rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1810 |                                 let _ = rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1907:29
[INFO] [stdout]      |
[INFO] [stdout] 1907 | ...                   midi_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1907 |                             let _ = midi_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1926:33
[INFO] [stdout]      |
[INFO] [stdout] 1926 | ...                   midi_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1926 |                                 let _ = midi_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 02s
[INFO] running `Command { std: "docker" "inspect" "df1b0ea0ea0de0a5bd322df03f9d11339ea25d428865caf74455d5060150f262", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df1b0ea0ea0de0a5bd322df03f9d11339ea25d428865caf74455d5060150f262", kill_on_drop: false }`
[INFO] [stdout] df1b0ea0ea0de0a5bd322df03f9d11339ea25d428865caf74455d5060150f262
