This branch tracks the trunk, by Youssef Touil, with the following differences:

FEATURES

WCF host for remote control of all non-display settings
WCF client with simple memory manager to demonstrate remote control
RSSI value available from WCF host
Demodulation frequency, mode and IQ order recovered from name of IQ file
IQ file elapsed time and duration displayed in title bar
Timestamps for IQ file playback based on true recording time
SDR# Server to run DSP in console or Windows service (see instructions below)
Simple scheduler for recorder plug-in

IMPROVEMENTS

Absolute tuning of demodulation frequency
Automatic determination of FFT resolution when zooming
Automatic IQ swapping based on device class
Playing state restored at start-up
Demodulation frequency and playing state preserved when switching devices
Configurable IQ file recording path
Last demodulation frequency for IQ file/soundcard remembered
RDS station name stored to names of recorded files, if available
Timestamps displayed in local or UTC time
RTL device tuning limited to PLL lock ranges
Audio output device and latency adjustable while playing
Mono audio recorded for all modes but stereo FM
Settings stored in local application data directory
Playing started when record button is clicked

TRUNK ISSUES FIXED

Centre frequency not affected by frequency shift
Increasing frequency correction cause opposite shifts for FCD and RTL devices
Stale RDS text sometimes appears after tuning to new station
Static RDS info also triggers spectrum updates
Input sample rate not displayed for hardware front-ends
RTL offset tuning not initialised at start-up
Event cascade during RTL configuration GUI initialisation
Redundant hardware and file interaction during RTL configuration updates
Snap to grid ignored during frequency shift changes
RTL-TCP tune timer runs even when device is not used
High CPU usage by RTL-USB related DPCs after suspend/resume cycle
Crash when disk gets full while recording
SDR-IQ RF gain not remembered between sessions
Passband cursor not always aligned to frequency grid
Bottom 20 pixels obscured for some plug-in GUI layouts

MISCELLANEOUS

Dependent on .NET 4 instead of .NET 3.5
Bandwidth limit for WFM increased from 250 to 300 kHz
Thin space before SI units
Default sample rate for FUNcube Dongle increased from 96 to 192 kHz
Cursor changes to hand when dragging tuner or demod frequency

LOCAL BRANCH ISSUES

RSSI value invalid for detectors with offset filters


-----
SDR# Server

SDRSharpServer.exe can be run as a console application, by double clicking the
executable or a shortcut to it.  It also works as a Windows service but must be
installed first:

Installing from command line (modify <path> and <port> for your system):
  sc create SDRSharpServer binPath= "<path>\SDRSharpServer.exe /service <port>" start= auto DisplayName= "SDR# Server"

Uninstalling from command line:
  sc delete SDRSharpServer

Once installed it can be started and stopped from the command line:
  sc start SDRSharpServer
  sc stop SDRSharpServer

And once started, playing can be paused or resumed:
  sc pause SDRSharpServer
  sc continue SDRSharpServer

Testing server in console mode:
* Open selected port on your firewall for SDRSharp.exe and SDRSharpServer.exe
* Use ClientDemo.exe with SDRSharp.exe to store memories (use +)
* Close SDRSharp.exe (settings are now in local application data directory)
* Run SDRSharpServer.exe and manipulate settings using ClientDemo.exe

Testing server in Windows service mode:
* Perform first three steps listed above for console mode
* Copy settings to LocalService user's local application data directory
* Start SDRSharpServer.exe via Windows services GUI or from command line

On Windows Vista and later there may be privilege issues when starting SDR# or
SDR# Server.  To fix this, open a command prompt as administrator and run the
following command, replacing DOMAIN\user with your particulars):
  netsh http add urlacl url=http://+:{0}/SDRSharp/ user=DOMAIN\user

The same treatment might be necessary for the Windows service user.


-----
Johann Lochner, ZR1CBC
2012-11-29
