#ifndef _HPDSP_H
#define _HPDSP_H


#if DOCUMENTATION
// Note the "FM" vs. "FMN" difference for entry 5.
// from ghpsdr3-alex/trunk/src/receiver/mode.h:
#define modeLSB 0
#define modeUSB 1
#define modeDSB 2
#define modeCWL 3
#define modeCWU 4
#define modeFMN 5
#define modeAM 6
#define modeDIGU 7
#define modeSPEC 8
#define modeDIGL 9
#define modeSAM 10
#define modeDRM 11

// from ghpsdr3-alex/trunk/src/DttSP/defs.h:
typedef enum _sdrmode
{
  LSB,				//  0
  USB,				//  1
  DSB,				//  2
  CWL,				//  3
  CWU,				//  4
  FM,				//  5
  AM,				//  6
  DIGU,				//  7
  SPEC,				//  8
  DIGL,				//  9
  SAM,				// 10
  DRM				// 11
} SDRMODE;

#endif // DOCUMENTATION

// We use trailing '_' to avoid redefintion of terms used in flrig.
typedef enum _sdrmode
{
  LSB_,				//  0
  USB_,				//  1
  DSB_,				//  2
  CWL_,				//  3
  CWU_,				//  4
  FM_,				//  5
  AM_,				//  6
  DIGU_,			//  7
  SPEC_,			//  8
  DIGL_,			//  9
  SAM_,				// 10
  DRM_				// 11
} SDRMODE;


#if DOCUMENTATION
// Sdr server command list created by mining
//  ghpsdr3-alex/trunk/src/server/client.c:
//   char* parse_command(CLIENT* client,char* command)
attach			"tx"|"rx"
detach			0-n
frequency		value
start			"iq"|"bandscope" port
stop			"iq"|"bandscope"
preamp			"on"|"off"
record			"on"|"off"
mox			value
ocoutput		value
alexrxantenna		N
alextxrelay		N
settxdrive		N
settxlineingain		N
hermesmicboost		"on"|"off"
hermeslinein		"on"|"off"
hardware?		< "OK Hermes"
getserial?		< "OK %s\"- firmware %d\"", metis_ip_address(0), ozy_get_hermes_sw_ver());
getadcoverload?		< "OK %d", ozy_get_adc_overflow ());
dither			"on"|"off"
setattenuator		0-31
random			"on"|"off"

// Dsp server command list created by mining
//  ghpsdr3-alex/trunk/src/dspserver/client.c

enablenotchfilter	vfo index enabled
? getspectrum		samples
mox			"on"|"off" "user" "passwd"
? record			arg
rxiqcorrectwi		float int
rxiqcorrectwr		float int
rxiqgaincorrectval	float
rxiqmuval		float
rxiqphasecorrectval	float
setagc			int
setagctlevel		level
setanf			"true"|"false"
setanfvals		(int)taps (int)delay (float(gain) (float)leakage
setbin			state
setclient		"client"
setcorrecttxiqmu	float
setcorrecttxiqw		float float
setencoding		enc
setfadelevel		level
setfilter		low high
setfixedagc		int
setfps			samples fps
setfrequency		freq
setiqenable		"true"|"false"
setmaster		"user" "passwd"
setmode			mode [ LSB, USB, etc. ]
setnb			"true"|"false"
setnbvals		(float)threshold
setnotchfilter		(int)vfo (int)index (float)bw (float)fo
setnr			"true"|"false"
setnrvals		(int)taps (int)delay (float(gain) (float)leakage
setocoutputs		(string)outputs
setoscphase		(float)phase
setpan			(float)pan
setPanaMode		
setpreamp		
setpwsmode		
setrx10bdgreq		
setrx3bdgreq		
setrxagcattack		
setrxagcdecay		
setrxagchang		
setrxagchanglevel	
setrxagchangthreshold	
setrxagcmaxgain		
setrxagcslope		
setrxagcthresh		
setrxdcblock		
setrxdcblockgain	
setrxgreqcmd		
setRxMeterMode		
setrxoutputgain
setsdrom		"true"|"false"
setsdromvals
setspectrumpolyphase	"true"|"false"
setsquelchstate		"on"|"off"
setsquelchval		
setsubrx		
setsubrxfrequency	
setsubrxoutputgain	
setsubrxpan		
setsubrxquelchstate	"on"|"off"
setsubrxquelchval	
settx10bdgreq		
settx3bdgreq		
settxagcff		
settxagcffcompression	
settxalcattack		
settxalcbot		
settxalcdecay		
settxalchang		
settxalcstate		
settxamcarrierlevel	
settxcompst		
settxcompvalue		
settxdcblock		
settxgreqcmd		
settxlevelerattack	
settxlevelerdecay	
settxlevelerhang	
settxlevelermaxgain	
settxlevelerstate	
setTxMeterMode		
setwindow		
startaudiostream	bufsize rate MONO|STEREO MIC_ENCODING_CODEC2 | MIC_ENCODING_ALAW // 2048 8000 1 0
startrtpstream		
stopaudiostream
testbutton		"true"|"false"
testslider		
txiqcorrectval		float float
txiqgaincorrectval	float
txiqphasecorrectval	float
zoom			int

=================================================================================

// Sdr server command list created by mining
//  ghpsdr3-alex/trunk/src/server/client.c:
//   char* parse_command(CLIENT* client,char* command)

alexrxantenna
alextxrelay
attach
detach
dither
frequency
getadcoverload?
getserial?
hardware?
hermeslinein
hermesmicboost
mox
ocoutput
preamp
random
record
setattenuator
settxdrive
settxlineingain
start
stop

// Dsp server command list created by mining
//  ghpsdr3-alex/trunk/src/dspserver/client.c

enablenotchfilter
getspectrum
mox
record
rxiqcorrectwi
rxiqcorrectwr
rxiqgaincorrectval
rxiqmuval
rxiqphasecorrectval
setagc
setagctlevel
setanf
setanfvals
setbin
setclient
setcorrecttxiqmu
setcorrecttxiqw
setencoding
setfadelevel
setfilter
setfixedagc
setfps
setfrequency
setiqenable
setmaster
setmode
setnb
setnbvals
setnotchfilter
setnr
setnrvals
setocoutputs
setoscphase
setpan
setpanamode
setpreamp
setpwsmode
setrx10bdgreq
setrx3bdgreq
setrxagcattack
setrxagcdecay
setrxagchang
setrxagchanglevel
setrxagchangthreshold
setrxagcmaxgain
setrxagcslope
setrxagcthresh
setrxdcblock
setrxdcblockgain
setrxgreqcmd
setrxmetermode
setrxoutputgain
setsdrom
setsdromvals
setspectrumpolyphase
setsquelchstate
setsquelchval
setsubrx
setsubrxfrequency
setsubrxoutputgain
setsubrxpan
setsubrxquelchstate
setsubrxquelchval
settx10bdgreq
settx3bdgreq
settxagcff
settxagcffcompression
settxalcattack
settxalcbot
settxalcdecay
settxalchang
settxalcstate
settxamcarrierlevel
settxcompst
settxcompvalue
settxdcblock
settxgreqcmd
settxlevelerattack
settxlevelerdecay
settxlevelerhang
settxlevelermaxgain
settxlevelerstate
settxmetermode
setwindow
startaudiostream
startrtpstream
stopaudiostream
testbutton
testslider
txiqcorrectval
txiqgaincorrectval
txiqphasecorrectval
zoom

#endif // DOCUMENTATION

#endif // _HPDSP_H
