DMR: Clarify and Decode FSN Value on Data Headers; #350
NXDN: Fix errors on KS creation on AES discard bytes on voice application;
GCC: Fix Misc unused-but-set-variable warnings (GCC Version GNU 16.1.1);
Make adjustments to groupinfo struct; Misc tweaks to code using groupinfo items;
Move group_array from stack to heap; Calloc adequate memory for it;
Switch to strncpy to fix potential issues with large strings copying OOB and crashing;
NXDN: Initial GPS Report Commit;
NXDN: Don't assign GI, TG/RID in VCALL_ASSGN; Leads to duplicate entries in Event History, particularly when private call;
NMEA: Sentence Checker with start, end, checksum, and supplimentary string checks P25p1 Tier 1 Location Service and Also observed on old Type-D system;
LRRP: Fix LRRP.exe style reports to use date/time strings with colons and slashes;
NXDN: Tweak to DCALL to check for a selective retry when blk_num is not equal to pf_num and invalidate, we don't have the memory of the last PDU attempt (and may have successfully received it anyways, even if the radio did not);
NXDN: Fix Block Assembly on "idas" types, they do have the same blocking structure;
NXDN: Fix CRC32 and "total_bytes" when padding bytes are present;
NXDN: Add placeholder GPS function and reverse byte load for GPS location data found in certain DCALL messages;
DMR: Init AES keyloader arrays for PDU;
Misc cleanup and tweaks;
There is bound to be at least one person who will complain, or listens to the harmonic and not the signal, or has a mixed bag of things and doesn't want to specify polarity;
Use static array to hold facch1 message after recovery and compare when LICH type calls for 2 individual FACCH1 messages in an NXDN frame;
Zero out facch1_storage on SACCH or SCCH decode (happens first) and after potential comparison time in FACCH1 decode;
Invalidate entire SACCH superframe in storage if CRC error on individual SACCH or if next SR value (part of frame) is not the expected value;
Set initial nxdn_part_of_frame value to 3 - Ideal sequence is 1/1 NSF to 1/4 SF SACCH; also set to 3 on misc frame types (CAC, FACCH2, etc)
NXDN: Tweak to LICH Dibit "Dividing" Error Threshold (1 to 2);
NXDN: Change MessageType to 8-bit and Decoding to Include the F1 and F2 Flag; Make Tweaks for DCR/ARIB Messages to compensate;
NXDN: Frame Sync Tweaks to help reduce false sync patterns; Make Inverted NXDN user option; cmake enabled defines for Type-C, Type-D, and DCR decoding (all enabled by default);
NXDN: Decode DST_ID_INFO Message;
NXDN: Rework Code on Standard Caller Alias and add a 16bit alias variants for ASCII, SJIS, BIG5, or UTF16 alias decoding (configure via cmake, default is ASCII);
NXDN: Seperate PROP_FORM 0x3F from Alias via checkdown;
YSF: Soft Decision Viterbi;
YSF: Fix BUMBLEBEETUNA text string on partial decode;
P25p2: Fix Harris GPS MAC message to fixed len, or do not decode (observed bugfix);
P25p2: Add MFID90 Unknown 0x8F and 0xBF MAC Message;
DOCS: Update complete_usage_options; Remove M17 Encoding Section;
Move state.optind assignment from inside case 'r' to after the
getopt loop completes. This ensures optind points to the first
positional argument regardless of option order.
Before: -r file.amb -w output.wav would fail with "could not open -w"
After: argument order no longer matters for -r with other options
The -w option sets static_wav_file=1 and dmr_stereo_wav=0, but
playMbeFiles() only checked dmr_stereo_wav==1 condition, causing
wav files to be empty (only 44-byte header) when using -r with -w.
Added static_wav_file check to both IMBE and AMBE playback branches.
macOS has no OSS (/dev/dsp) support, but dsd-fme currently compiles and links OSS code unconditionally, leading to build and link failures.
This PR:
* disables OSS backend cleanly on macOS
* provides a no-op openOSSOutput() stub to satisfy callers
* guards OSS-specific headers and ioctl usage
* preserves existing behavior on Linux/OSS platforms
This allows dsd-fme to build and run correctly on macOS using PulseAudio/CoreAudio paths.
This does not include DES-XL due to needing to know HDU or LDU2 and complications of SDRtrunk P1 ESS handling, and also unknown Phase 2 method for XL.
Nor TDEA (never observed on P25 despite in spec);
Use sed to replace line in ITPP CmakeLists.txt file to update the cmake_minimum_required to an acceptible version for newer cmake;
Include SIMD Math Libraries libopenblas, liblapack-devel, libfftw3-devel for Cygwin64;
If perceived performance issues arise, may consider removing the Math Libraries above from Cygwin64 install script
Fix cyg_portable.sh for newest version of Cygwin64;
Fix p25_frequency process_channel_to_freq to allow a channel value of (0000);
Fix Event Format Nit and add EOT Delay on CC for EDACS/PV;