Fixes issue #884 (see issue for more info). AliasItemEditor.save() modifies objects that are observed by the TableView's underlying SortedList. Thus, the TableView's selection can change by calling save(), which means the ListChangeListener can be fired. This is a problem for two reasons. 1. The alert dialogue that prompts the user to save a modified alias will show when the user presses the "save" button, because saving modifies the selected alias and causes the list to update. 2. setAliases() calls Alert.showAndWait(). From the JavaDoc: "It must not be called during animation or layout processing." This statement is likely there because it can cause issues like the one here: TableView's layout processing (and the list updating) is paused and the list is further modified (by calling save()). Thus, when the processing is resumed the list is in a different and unexpected state. Calling setAliases() from Platform.runLater() will allow the SortedList, TableView, and any other involved objects to finish processing changes before more modifications are made. Additionally, it allows save(), when called by pressing the save button, to complete and set the modifiedProperty to false, so setAliases() does not display an additional save prompt.
sdrtrunk
A cross-platform java application for decoding, monitoring, recording and streaming trunked mobile and related radio protocols using Software Defined Radios (SDR).
- Getting Started
- User's Manual Version 0.3.0 and 0.4.0
- Playlist Editor User Manual Version 0.5.0
- Download
- Support Group
- Discord Support Channel
Figure 1: sdrtrunk Version 0.3.0 Application Screenshot
End User Instructions:
If you simply want to download and run the program, please follow these instructions.
Download the latest sdrtrunk release for your operating system
All release versions of sdrtrunk are available from the releases tab.
- (alpha) These versions are under development feature previews and likely to contain bugs and unexpected behavior.
- (beta) These versions are currently being tested for bugs and functionality prior to final release.
- (final) These versions have been tested and are the current release version.
Unzip the release
Use 7-zip or any zip utility to unzip the release file
Start the application
Once unzipped, open a command prompt to where you unzipped the release. Change to the /bin directory and use the launch script to start the application:
- Windows sdr-trunk.bat
- Linux/OSX ./sdr-trunk
Optional - P25 Audio
If you're using sdrtrunk with a P25 trunked radio system, the JMBE wiki page contains instructions for downloading the JMBE audio library source code and compiling the JMBE library. Once you have compiled the library, launch the sdrtrunk application. From the menu bar, choose View >> Preferences. In the JMBE Audio Codec section, update the path to where your compiled JMBE library is located. Any channels that are started after you set the path will be able to produce P25 audio.
Minimum System Requirements
- Operating System: Windows (
32 or64-bit), Linux (32 or64-bit) or Mac/Linux (64-bit, 10.14 or higher) - CPU: 4-core
- RAM: 8GB or more (preferred). Depending on usage, 4GB may be sufficient.
Developer Instructions:
If you're interested in modifying and/or compiling the source code, please follow these instructions to use gradle to compile the code.
Build the project
sdrtrunk uses the gradle build system. This requires OpenJDK 11 or higher installed on your local compuber. Use the gradle wrapper to build the source code:
Linux
./gradlew clean build
Windows
gradlew.bat clean build
The /build/distributions folder will contain the zip file of the compiled program. Unzip it and launch the program from the scripts in the /bin directory.
Development
All dependencies/versions are controlled from build.gradle. To change the new release version tag of artifact - change property:
version = '0.5.0'