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);
NXDN: Redo NXDN VCALL_ARIB based on observed values and ARIB STD-B54;
Add UTF16 to UTF8 encoding for DMR Talker Alias when its UTF16;
Encoding Unicode / UTF16 to UTF8 Allows for display into Ncurses Terminal, Event History, etc when its CJK and not normal ISO7/ ASCII or UTF8 encoded as UTF16;
Might be beneficial to convert and run all encoded text through UTF8 encode in the future.
MBE: Make tweaks to audio and wav file handling, allow writing to static wav files even if audio out device is NULL (writeSynthesizedVoiceMS);
DSTAR: Fix Issue with DSTAR where double writes would occur in single static .wav files;
Adding a new method to allow a user to enter a generic keystream len and static keystream via a string that is loaded into a bit array to xor against ambe frames;
This method is intended to be used to allow
Reset static_ks_counter as various places in code;
Remove the static_ks_counter reset from KWD SCR link control and tweak SO bits;
Fix Forced KS application to work in both slots;
Allow Static Wav File or Per Call Wav File in SDRTrunk MBE format playback; #298
Same as above for .amb, .dmb, and .imb format playback;
Update Usage and Docs;
Fix Some GPS formats not writing to the event history gps_s string due to mismatching src values (UDT NMEA and LIP);
Fix bug in ComputeCrcCCITT16d where the len value cannot exceed 255 by recasting len as uint32_t instead of uint8_t; #288
Clarify when UDT Data Blocks (R12) is Confirmed or Unconfirmed Data;
Seperate dsd_ncurses.c into dsd_ncurses_printer.c , dsd_ncurses_menu.c , and dsd_ncurses_handler.c files;
Make adjustments as needed to accomodate above;
Work on Handling Special Escape Characters with Ncurses Input Handling to prevent rogue things from happening with scrool wheel, etc;
Prepare to Seperate Ncurses Code and Event History Code into seperate .c files; Move common items to a .h file;
Move event history code to dsd_events.c; Move AFS code to edacs-fme.c; Move beeper code to dsd_audio2.c
Include a simple sh file to startup dsd-fme with opts line, and open log files for multi linux terminal support;
Fix bug with P25p1 MPDU Trunking Blocks setting address values to trigger event history watchdog;
Add an internal string into event history to log internal events of note (ENC LO, errors, etc);
Add a watchdog during any ENC LO event so the event_history will log the call with ENC LO;
Disable AHOY and RSP PDU's from Event History (clogs up the event history with extra info);
Fix DMR p_clear trigger to zero out src and tg values when tuning away;
Fix Hytera Enhanced RC4 (verified working); Misc Tweaks Regarding;
Change the -~ switch to debug mode and -J to the event history file;
Pass slot and swrite value to write_event_to_log_file; Add Slot value to written event log file when swrite is 1 (DMR BS and P25p2);
Misc Consistency Nits;
M17, YSF, DSTAR to save wav files with src and dst as call sign string value and not a numerical value;
Add P25p1 Tier 1 Location and DMR Short Data LOCN Report to Event History; Add MNIS sourced LRRP to Event History;
Don't append truncated TEXT strings to Event String since its full display is directly below it in the Event History;
Add new items to Event History to accomodate above feature;
Tweak misc items regarding above;
Add Extra Call Information to Event History and Display to Ncurses and Write to Event Log;
Add P25 Known Talker Alias Formats to Event History and Display to Ncurses and Write to Event Log;
Remake the DMR Talker Alias Decoder for 7, 8, and 16 bit chars and go to Event History and Display and to Ncurses and Write to Event Log;
Add Some Embeddded and Misc (Non Data Call) GPS Formats to Event History and Display to Ncurses and Write to Event Log;
Add DMR UDT Data Calls to Event History;
Make Misc Tweaks to Event Item Strings;
Rework all Per Call Wav files to tie into Event History; Auto Delete Empty Wav files created; Wav Files in progress have no extension and have no hard set name until closing;
Delete all OLD patch files that are resolved directly or indirectly by new Event History, or have previously been incorporated into code.