Commit Graph

22 Commits

Author SHA1 Message Date
denny
dd22397f75 Resolves issue with application memory growth and thread pool
saturation.

Each tunerchannelsource was sharing a thread pool and as the processing
load increased, the thread pool was not expanding and the processing
tasks were backing up, causing the buffers to grow with unprocessed
data.

Changed so that each tuner channel source is handed a thread pool to use
for processing incoming sample data.  Processing chain maintains the
thread pool and starts the channel source.  This allows traffic channels
to reuse the thread pool across multiple iterations.
2016-02-15 09:46:33 -05:00
Denny Sheirer
debdc39a5f Resolves threading issue in ChannelState.
Resolves issue in tuner controller where controller was not releasing
sourced tuner channels, preventing re-tuning to other frequencies.
Resolves issue with channel timeout on MPT1327 monitored traffic
channels
2016-02-01 09:17:56 +00:00
denny
0951277915 Tuner Controller update to better handle automatic center frequency
calculation when additional channels are allocated.

Incorporates tuner specific definition of overall usable bandwidth, so
that tuners like airspy can specify 90% of 10 MHz (ie 9 MHz) is truly
usable and the fringe 10% is unusable rolloff.

Also includes tuner-specific defining of the width of the central spike,
or a value of 0 indicates that the entire range is usable (ie airspy).
2015-12-12 14:08:32 -05:00
denny
ae10b5fc1c Airspy controller - changes method for adjusting center tuned frequency
when tuner channels are allocated by the airspy.  New method determines
the min/max requested frequency range and sets tuner center to the
center of that range, while limiting the total usable bandwidth to 90%
of the bandwidth, to account for rolloff of 5% at the upper/lower edges.

When a new channel is requested, if the channel fits within the current
center frequency and usable bandwidth, the center tune frequency is not
adjusted, to minimize the number of retunes on a busy system.
2015-11-29 07:11:47 -05:00
denny
f04a6727b0 Resolved issue with channel label display in spectrum overlay panel
when a new tuner is added.

Cleanup of debugging messages.
2015-11-22 14:25:37 -05:00
denny
dc3bcfd404 Resolves issue with spectral and waterfall alignment with frequency
overlay.

Minor edits to MPT and P25 config editors

Resolved issue with channels not accepting channel config changes 
between restarts (processing chain was not being deleted)

Minor edits to P25 decoder state
2015-11-22 11:29:05 -05:00
denny
7283004d7a Fixed issue with audio manager when swapping mixers and there is a
call in progress.
2015-10-03 17:59:18 -04:00
denny
3e05a9eb03 Resolves issue #23.
Adds audio output display and management options supporting mono and 
stereo output options.

Provides audio output supporting prioritization by talkgroup and/or 
channel selection.

Supports muting all channels, or muting individual channels and
individual audio gain/volume controls.
2015-10-03 17:50:03 -04:00
denny
f354c73109 More updates 2015-09-11 17:13:45 -04:00
denny
575197bd98 Interim checkin for call recording. 2015-09-11 14:01:47 -04:00
denny
0f85b7260a Adds event logging, code cleanup and some decoder issue resolution. 2015-09-02 19:41:44 -04:00
denny
f4d8ea281d Initial commit of redesigned internal processing and audio management.
Note: Several of the decoders are currently non-functioning in this
commit.  If you want the latest functioning codebase, please checkout
the commit prior to this one.  All decoders will eventually be updated
with this new architecture.

Currently broken:
- Logging and recording
- Aux decoders (Fleetsync/MDC/LoJack/Tait)
- LTR/Passport decoders

Changes in this commit:
- Module architecture for decoders and components with central
provisioning by the DecoderFactory
- Transition from Complex sample stream processing to float buffer
processing for improved memory management
- Redesigned filter structures - to support buffers and streams
- Resolved several memory leak issues
- Universal sharing of the thread pool manager
- Added centralized audio management with call/user prioritization and
new gui with mute/volume controls
- Embedded audio metadata for eventual streaming support
- Redesigned ProcessingChain to support independent re-use
- Added new TrafficChannelManager to handle traffic channel allocations
- Traffic Channel pool size and Call timeout available in P25 and
MPT1327 configs
- Redesigned channel and decoder gui components
2015-09-01 07:10:26 -04:00
dennis.sheirer
bc5080aa4a P25 - updated automatic and direct frequency control to cleanup the code and allow P25 to better track frequency and PPM changes in the tuner and provide a cleaner implementation of the AFC component in the processing chain of all of the other decoders.
Changed C4FM symbol filter to reset frequency tracking values when the tuner's frequency or PPM values change.

Moved all frequency control pieces into the source.tuner.frequency package.
2015-05-04 00:55:04 +00:00
dennis.sheirer
023553c3bf P25 audio decoder integration.
Auto-discovers the jmbe ( https://github.com/DSheirer/jmbe ) library at startup and provides decode P25 Phase 1 audio
2015-03-29 13:25:36 +00:00
dennis.sheirer
e5fad7ee22 P25 - Automatic Gain Control for P25 decoder 2015-01-19 19:25:43 +00:00
dennis.sheirer
1c0da75c01 P25 - adds direct frequency control for the C4FM symbol filter to adjust the tuner channel for frequency correction. 2015-01-19 16:20:37 +00:00
dennis.sheirer
e441ebf0c9 Changed to slf4j logging framework
Enhanced error handling/logging in RTL2832 eeprom device descriptor read method for troubleshooting issue present in some R820T tuners.
2014-09-20 10:04:04 +00:00
dennis.sheirer
0f43c7ed22 Automatic Frequency Control enhancement. Provides default AFC and ability to disable in the Decoder tab of each channel. Spectral display includes visual indicators of frequency center (grey) and current AFC offset (yellow). 2014-09-11 22:46:05 +00:00
dennis.sheirer
4e0fd9b7b0 Channel Spectral Display
- Adds Channel Spectrum tab to display FFT of the audio output of the currently selected channel
 - Upgrades to JTransforms 3.0 FFT library
 - Adds three new context menus to main and channel spectral displays:
   -- Baseline - affects the vertical rendering baseline of the FFT
   -- Amplification - affects the vertical height of each FFT bin
   -- Averaging - affects how many FFTs are averaged to produce the display
2014-09-06 14:58:05 +00:00
dennis.sheirer
44faeb9351 IQ recording file playback partial checkin.
NOTE: only the gui components and settings handling have been implemented.  Actual recording playback is not yet implemented.

Partial checkin of initial P25 decoder development.  

NOTE: P25 decoder is not yet functional.
2014-08-02 15:16:12 +00:00
dennis.sheirer
35a2cebe03 Converted frequency to long primitive type (from integer) in anticipation of HackRF support which requires frequencies greater than 2.147 GHz, which is the max hertz value that can be represented by an integer primitive. 2014-07-08 14:40:11 +00:00
dennis.sheirer
3dfedcf8d1 Initial code check in continued 2014-04-26 19:48:24 +00:00