Include and Exclude list updated to use the calculated path to their respective x_species_list.txt files
Move play.php over to also use the new calculated paths to disk_check_exclude
Spectrogram.php remove unused code & replace setting save code with new function
Stats.php removed old code, update paths to use calculated path.
Rename setSetting func to saveSetting
Remove old code from other pages
The Config and Advanced setting pages received changes to use the new setSetting() function which looks after creating or updated the setting in the required config files.
Optionally it also specification of a command to run after saving the settings.
Some variables like models, audio formats and frequency shift tools were also moved into common.php
Service Controls page received changes with the replacement of the actual command to execute with a sort of shorthand human friendly version e.g. service <action> <service_name> -- service restart livestream.service
These commands map to the original commands in serviceMaintenance() so this could be called through the API without needing the full-blown commend.
views.php was updated to accommodate this also
System Controls page received a small change to make the process checking for new git updates or getting the last commit hash a single function call.
Include and Exclude species updated to use getFilePath() to generate a path to the required file instead of the hard coded path
Views.php also received similar treatment with replacing some hard coded paths with generated paths, but logic changes to handle the change in running service commands
Update the saving of the LogLevel_ settings to create the setting in the config file if it doesn't exist at the time of saving, the setting is created with the chosen value.
Moves the RTSP javascript code into it's script tag and moved it be near the controls for the RTSP URL.
After some services were recently quieted down by adjusting the log level for e.g ffmpeg. It would be nice if the user can easily adjust the log level again so that that they can investigate or debug a issue since output is not generated by default, so now the Livestream, Spectrogream and Birdnet Recording have a adjustable log levels to help with this.
Updated birdnet_recording.sh
With a functional change around how ffmpeg is used to make use if it's functionality to accept multiple input streams and map each to a output file.
Due to the original implementation generating a filename that contain the date/time streams would be writing to the same file - a small change was make each stream go to it's one file with unique filenames.
Updated livestream.sh & spectrogram.php
The Livestream service would fail if the RTSP stream setting was more than 1 stream (i.e comma separated list of streams)
Made some improvements so streaming is possible from any of the URL's, The Spectrogram page received a new control and some Javascript that allows the user to change between streams, the setting gets saved and the livestream service restarted so it uses's the correct stream.
This control is not visible if there are no RTSP streams configured
By default the livestream service will stream the the first RTSP URL, if the setting is not set or invalid
Updated advanced.php
With a small GUI change around RTSP steam entry by providing a input field for each URL and a button to add more fields.
In the background nothing changes as we use some Javascript to extract the valus entered and fill in the original rtsp_stream value with the correct comma separated string
Updated server.py
To work with the recording filename changes so that the correct filename is stored in the DB
Updated update_birdnet_snippets.sh
To support a new setting RTSP_STREAM_TO_LIVESTREAM on the Spectrogram page and in the livestream service
This is still needed for a silly reason which is that BirdNET-Pi does not have a good common configuration file that bash, PHP, and Python share -- instead, PHP and Python read from `thisrun.txt` which is pretty much .ini formatted, while bash uses `birdnet.conf`. Things that update one typically update the other in tandem. It's not best practice by any means. (Nor is storing the Caddy password in plaintext in a configuration file, so that sucks, too . . .)