#if !defined(RJ10_MINIMAL_DLL)
#define RJ10_MINIMAL_DLL
#include "IFJet1102DLLThread.h"
define IF_SAMPLE_FRQ 48000
define IF_SAMPLE_NUM 2048
define AF_SAMPLE_FRQ 24000
define AF_SAMPLE_NUM 2048
define IF_GAIN_FACTOR 61
#define DX_CHN 0 //amplified left channel
#define RX_CHN 1 //normal unplugged rigt channel (amplifire off)
#define AUTO_CHN 2 //automatic channel selection
#define GET_CHN -1 //which channel is active ? this read only the currend state//global RJ10 messages
define WM_POTICHANGE (WM_USER+3)
define WM_DRAW_IF (WM_USER+17)
define WM_PROCESS_IFIN (WM_USER+23) //we have an new IF-Input-Block of the input device for Filter and so one
define WM_GET_SPECTRUM (WM_USER+26) //new IF-WidthBand-SpectrosScope data are avalable to view / plot
define WM_MYUSER (WM_USER+7400)
define DLL_USER (WM_USER+7800)
define WM_HID_JET_ADD (WM_MYUSER+60)
define WM_HID_JET_REMOVE (WM_MYUSER+61)
define WM_EDIT_CR (WM_MYUSER+92)
define WM_RBCLICK (WM_MYUSER+163) //right button click
define WM_DRAW_FRQ (DLL_USER+88)
define WM_START_ACTION (DLL_USER+95)
define WM_SET_OUTPEAK (DLL_USER+100) //for out peeakmeter DLL -> PostMessage(AUDIO_hWnd,WM_SET_OUTPEAK,(WPARAM)output speaker peeekmeter value,NULL);
define WM_SET_INPEAK (DLL_USER+101) //for in peeakmeter DLL -> PostMessage(AUDIO_hWnd,WM_SET_INPEAK,(WPARAM)input peeekmeter value,NULL);
define WM_SET_SMETER (DLL_USER+102) //SMeterChange DLL -> PostMessage(CHANNEL_hWnd,WM_SET_SQLPEAK,(WPARAM)signalvalue,NULL);
define WM_SET_SQLLED (DLL_USER+103) //SquelchChange DLL -> PostMessage(CHANNEL_hWnd,WM_SET_SQLLED,(WPARAM)onoff,NULL);
//Wave Output Volume is the Wave slider of the output mixer control
define WM_SET_WAVEVOLUME (DLL_USER+106) //WaveOutVolumeChanged DLL -> PostMessage(AUDIO_hWnd,WM_SET_WAVEVOLUME,(WPARAM)WaveOutVolume,(LPARAM)waveswitch);
//WaveInPoti is an intern wave amplitute limiter
define WM_SET_WAVELEVEL (DLL_USER+107) //WaveInLevelChanged DLL -> PostMessage(AUDIO_hWnd,WM_SET_WAVELEVEL,(WPARAM)WaveInVolume,(LPARAM)waveswitch);
//InLevel is the LineIn or Microfone slider of the input mixer control
define WM_SET_IF_INLEVEL (DLL_USER+109) //LineIn/Gain Level changed DLL -> PostMessage(AUDIOIN_hWnd,WM_SET_IF_INLEVEL,(WPARAM)IFGainLevel,(LPARAM)IFGainOff);
//InLevel is the LineIn or Microfone slider of the input mixer control
define WM_SET_IF_OUTLEVEL (DLL_USER+110) //LineOut/Gain Level changed DLL -> PostMessage(AUDIOOUT_hWnd,WM_SET_IF_OUTLEVEL,(WPARAM)IFInputLevel,(LPARAM)IFInputLevel);
define WM_UDP_SMETER_DBSM (DLL_USER+150)
typedef struct
{
//get data para, access references for two channels
//only data output pointer or last status
float *RawData[2]; //the address of the raw data buffer
float *MagData[2]; //the address of the magitude data buffer
float SignalLevel; //current dBm value of signal strenght in the range of current IF-filter
float SNRLevel; //current dB value of SNR in the range of current IF-filter
float MaxLevel; //current max level in dB
float MinLevel; //current min level in dB
float MagMax; //current max value of magnitude
float MagMean; //current mean value of magnitude
float RawMean; //current mean value of raw data
float RawMax; //current max value of raw data
int totalLineCounter; //the counter of the total input lines
}IF_DRAW_PARA;typedef struct
{
float re;
float im;
}SCplx;
typedef struct
{
//get draw data from extern IQ-Receiver
int totalLineCounter; //the pointer for get from InputBuffer
SCplx *RawData; //the address of the raw data buffer
int RawSize; //the max size of the RawData
float *MagData; //the address of the magitude data buffer
int MagSize; //the max size of the MagData
float SignalLevel; //current dBm value of signal strenght in the range of current IF-filter
float SNRLevel; //current dB value of SNR in the range of current IF-filter
float MaxLevel; //current max level in dB
float MinLevel; //current min level in dB
float MagMax; //current max value of magnitude
float MagMin; //current min value of magnitude
float MagMean; //current mean value of magnitude
float RawMax; //current max value of raw data
float RawMin; //current min value of raw data
float RawMean; //current mean value of raw data
}IQ_DRAW_PARA;typedef struct
{
COLORREF background; //GetSysColor(COLOR_BTNFACE);
COLORREF knobface; //GetSysColor(COLOR_3DSHADOW);
COLORREF light; //GetSysColor(COLOR_3DLIGHT);
COLORREF vlight; //light + 10% luminace
COLORREF dark; //GetSysColor(COLOR_3DSHADOW);
COLORREF vdark; //GetSysColor(COLOR_3DDKSHADOW);
COLORREF btxt; //GetSysColor(COLOR_BTNTEXT);
COLORREF scopemark; //red mark color
COLORREF scope_B; //scope background
COLORREF scope_L; //background +5% luminace
COLORREF scope_P; //background +10% luminace
COLORREF scope_line; //GetSysColor(COLOR_BTNTEXT);
CBrush *scope_back; //pattern brusch of spectrum backgrund
CBrush *scope_range; //pattern brusch of filter range
}COLORPACK;
typedef struct
{
DRAWITEMSTRUCT *lpDIS;
COLORREF m_facecol; //the color of the knop default is this COL_KNOBFACE
COLORREF m_ledcol; //the color of the LED (if in use)
int m_flags;
int m_sval;
int m_srange;
int m_markpoint;
int m_mark;
int lfHeight;
char Title[64];
char ExtraText[64];
}POTI_DRAWINFO;
#ifndef RJ10_EEP_INFO
define RJ10_EEP_INFO
typedef struct
{
USHORT WorkFlags; //flags for the intern working
// 0 = EEpron is Empty
// BIT-0 (0x0001) = EEprom / Device is present
// BIT-1 (0x0002) = read error
// BIT-2 (0x0004) = write error
// BIT-13 (0x2000) = +Software Support Option
// BIT-14 (0x4000) = +TX Option
// BIT-15 (0x8000) = +RX Option
// if non BIT-15,14,13 (WorkFlags&0xE000)=,
// then = device is only a minimal factory version - no intern firmware installed for PnP-Callback funktions
USHORT VID; //vendor ID
USHORT PID; //pruduct ID
USHORT StartUpFrq; //StartUpFrequency of SI570 0=UNUSED 1=15.00 MHz 2=56.32 MHz
time_t CreationDate; //date of the factory calibration
time_t RegistryDate; //date of the regitration by Internet
short AudioCorrecture; // the audio chip own individual cristall clock difference offset to correct size of fax or sstv slant
short FreqCorrecture; // the receiver chip own individual frequency offset
short ScaleCorrecture; // the chip own individual frq scaling distance (difference from Low-Frq to Hi-Frq in Hz)
short DxFactor; // the DXFactor of the DX-Channel
//for reset
short AC; // factory default AudioCorrecture;
short FC; // factory default FreqCorrecture;
short SC; // factory default ScaleCorrecture;
short DX; // factory default DxFactor;
char DeviceKey[28]; //device ID (64 Bit key of creation date & serial number for identification)
char PROKey[28]; //program ID (64 Bit key of creation date & random number for update service)
UINT PPre; //program ID (+32 Bit prefix of PROKey)
char DATKey[28]; //data ID (64 Bit key of creation date & random number for data service)
UINT DPre; //data ID (+32 Bit prefix of DATKey)
char OptionString[64];
char ManufactString[32];
char ProductString[32];
char SerialNrString[16];
}RJ10_EEROM_INFO;
#endif
typedef struct
{
HWND messageWin; //Window for Messages
HWND sendDBLCLICK; //Window for Messages WM_FRQ_DBLCLICK
HWND sendSCALEOPT; //Window for Messages WM_SCALE_MOVE,WM_SCALE_UP,
HWND sendMOUSEWHEEL; //Window for Messages WM_UPDATE_MWH
int m_style; //spectrum analyser or scope style
int m_FaceType; //Style and Face type like IF_MARK_FLAG
int m_lo; //frequency band start
int m_hi; //frequency band end
short m_ampl; //the amplitude poti value
short m_level; //the lower level of the logarithmic scale
short m_amplCut;
short topAmpl; //the topView amplitude poti value
short topLevel; //the topView lower level of the logarithmic scale
short topStyle;
short topOFF; //1=dont draw the topView
int m_scalemarklo;
int m_scalemarkhi;
int m_mark;
int m_fftmarklo;
int m_IFCenter; //the IF-Center for drawing filter curve and decode offset
int m_centermark; //(Center Mark) only for drawing the mark lines
int m_ShiftCenter;
int m_fftmarkhi;
int m_fftrangelo;
int m_fftrangehi;
int m_FCenter; //filter center frq
int m_FOffset; //filter offset from FCenter
int m_FWidth; //filter width
int m_IFOffset; //offset (if DEMO, then we use this)
int m_radiofrq; //the IF-Radio frequency
int m_radiomode; //the IF-Radio mode (USB,LSB...)
BYTE m_curveonoff; //1=draw filter curve
BYTE m_delayonoff; //1=view delay of lines
BYTE m_repeatation; //the repetation of drawing per secude
BYTE m_smoothing; //the smooth drawing delay level
BYTE m_dBoffset; //decibel scaling 0=140 1=160 dBm scaling
BYTE m_filterout; //1=draw filtered signal
BYTE m_frqscale; //1=draw radio freqency scale
BYTE m_finetune; //1=fine tuningin options
BYTE m_integrat; //1=fine tune scope is integrated
UINT m_SpectrumMode; //see defined options below
HWND SpectrumCtrlWin; //MessagesWindow to control the spectrum mode
int m_TextMark;
COLORREF m_TextColor;
int m_StartPos;
int m_BandWidth;
int topStartPos;
int topBandWidth;
int topCenter;
int topCentermark;
short m_DecScale; //the spreading of the decibel scale (dB-Scale)
short m_DecLevel; //the lower level of the decibel scale (on measurement Mode)
short topYPos;
BYTE ColorFlag; //flag for Time Spectrum Colors ....
BYTE dummy;
short m_contrast; //the contrast poti value
short m_bright; //the brightnes poti value
int reserve[3];
}IF_ANA_STYLE;
typedef struct
{
int m_sample_freq;
int m_sample_num;
int m_lo;
int m_hi;
int m_mi;
int m_curveonoff;
BYTE m_delayonoff; //1=view delay of lines
BYTE m_repeatation; //the repetation of drawing per secude
BYTE m_smoothing; //the smooth drawing delay level
BYTE byteReserve;
int m_onoff;
int m_filterout;
int m_signal_in;
int width;
int pos;
int potifilt;
int IFLines;
char IFfilter_name[16];
short m_setfilter;
short m_createfilter;
int m_maxwidth;
int reserve[6];
IF_ANA_STYLE ViewStyle;
}IF_FILTER_PARA;
//--------------------------------------------------------
//the folowing types we using only in the RadioJet-Program
//--------------------------------------------------------
//extern reciver type for panorama view and multi range spectrum scanning
#define ExtIO_TYPE_FIFI 129 // FiFi-SDR
#define ExtIO_TYPE_PAPP 130 // Pappradio
#define ExtIO_TYPE_FDM1 131 // ELAD FDM-S1
#define ExtIO_TYPE_IQ14 132 // SDR-IQ/SDR-14
#define ExtIO_TYPE_PMSDR 133 // PM-SDR
#define ExtIO_TYPE_PERSEUS 134 // Perseus
#define ExtIO_TYPE_G31DCD 135 // Excalibur
typedef struct
{
UINT IQ_freq:27; //posibile samples per secunde normal is 48/96/192 KHz
UINT IQ_spow:5; //posibile samples per block; --> (as power of 2) 10=1024 (1<<10) or 12=4096 (1<<12);
}SAMPLE_SET;
typedef struct
{
//extern I/Q-Receiver for parorama view and width band scanning
SAMPLE_SET IQ_samplset[8];//samples per secunde and samples per block
UINT IQ_type:8; //type of the I/Q-Receiver --> ExtIO_TYPE_?...
UINT IQ_mode:3; //the pointer to IQ_samplset[IQ_mode] (sample mode, is normal complex, but can be real too)
UINT IQ_soundcard:1; //the rx use soundcard
UINT IQ_SNDinType:1; //0=microphone 1 = line input
UINT IQ_att:1; //att exist
UINT IQ_agc:1; //agc exist
UINT IQ_pre:1; //preamplifier exist
UINT IQ_dit:1; //IF dittering exist
UINT IQ_nb:1; //IF nois blanker exist
UINT IQ_filter:1; //band filter switch exist
UINT IQ_reset:1; //force a restart
UINT IQ_default:1; //reset to default data
UINT IQ_onoff:1; //RX-Receiver ON / OFF 0=OFF 1=ON
UINT IQ_open:1; //if RX-Receiver is open, then this flag is 1, else this flag is 0
UINT IQ_swap:1; //if swap the channel of I/Q input
UINT IQ_showGUI:1; //the GUI show status
UINT IQ_showGUIex:1; //force show or hide explicitly
UINT m_att:1; //state of att on/off
UINT m_agc:1; //state of agc on/off
UINT m_pre:1; //state of att preamplifier on/off
UINT m_dit:1; //state of IF dittering on/off
UINT m_nb:1; //state of IF nois blanker on/off
UINT IQ_reserve:1; //reserve bytes of this parameter set
//calibration parameter
short dBLevelOffset; //dBm bottom level correcture
short XtalFrqCorr; //Xtal frequency correcture
short XtalScalingCorr; //Xtal frequency scaling correcture
short m_reserve; //unused reserve variable
BYTE m_filter;
HWND IQ_Dialog; //the handle to the extern IO dialog for message conmunication
int IQ_ceOffset; //offset from decoder center (normal=0 for +/- 12 kHz default IF-Center cut of the panorama window)
char IQ_DLLname[16]; //max 16 chars of the name of the ExtIO_??????.DLL
char IQ_SNDname[32]; //max 32 chars of the soundcard name
}EXT_IQRX;
#define IF_STYLE_TIV 0x00001000 //time sprectrum verticale
#define IF_STYLE_DEC 0x80000000 //line spectrum in Decibel
#define IF_STYLE_TOP_TIV 0x00002000 //top style time sprectrum
#define IF_STYLE_TOP_DEC 0x00004000 //top style in Decibel
#define IF_STYLE_MASK 0x0FFFFFFF //spectrum style mask
//EEprom write values
#define EEPROM_WT_VALUE_FCOR 0x00010000 //EEprom Value of Frequency-Xtal Correcture
#define EEPROM_WT_VALUE_FSCL 0x00010001 //EEprom Value of Frequency-Xtal Scale
#define EEPROM_WT_VALUE_ACOR 0x00010002 //EEprom Value of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define EEPROM_WT_VALUE_DCOR 0x00010003 //EEprom Value of the Gain-Factor of the DX-Channel
//EEprom read values
#define EEPROM_RD_VALUE_FCOR 0x00000000 //EEprom Value of Frequency-Xtal Correcture
#define EEPROM_RD_VALUE_FSCL 0x00000001 //EEprom Value of Frequency-Xtal Scale
#define EEPROM_RD_VALUE_ACOR 0x00000002 //EEprom Value of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define EEPROM_RD_VALUE_DCOR 0x00000003 //EEprom Value of the Gain-Factor of the DX-Channel
//get active radio status or value
#define RADIO_RD_FC_ONOFF 0x01000000 //Get the ON/OFF State of Frequency-Xtal Correcture
#define RADIO_RD_SC_ONOFF 0x01000001 //Get the ON/OFF State of Frequency-Xtal Scale
#define RADIO_RD_AC_ONOFF 0x01000002 //Get the ON/OFF State of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define RADIO_RD_DX_ONOFF 0x01000003 //Get the ON/OFF State of Gain-Factor of the DX-Channel
#define RADIO_RD_FC_VALUE 0x01100000 //Get the Value of Frequency-Xtal Correcture
#define RADIO_RD_SC_VALUE 0x01100001 //Get the Value of Frequency-Xtal Scale
#define RADIO_RD_AC_VALUE 0x01100002 //Get the Value of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define RADIO_RD_DX_VALUE 0x01100003 //Get the Value of Gain-Factor of the DX-Channel
//set active radio status or value
#define RADIO_WT_FC_ONOFF 0x11000000 //Set ON/OFF State of Frequency-Xtal Correcture
#define RADIO_WT_SC_ONOFF 0x11000001 //Set ON/OFF State of Frequency-Xtal Scale
#define RADIO_WT_AC_ONOFF 0x11000002 //Set ON/OFF State of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define RADIO_WT_DX_ONOFF 0x11000003 //Set ON/OFF State of the Gain-Factor of the DX-Channel
#define RADIO_WT_FC_VALUE 0x11100000 //Set the Value of Frequency-Xtal Correcture
#define RADIO_WT_SC_VALUE 0x11100001 //Set the Value of Frequency-Xtal Scale
#define RADIO_WT_AC_VALUE 0x11100002 //Set the Value of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define RADIO_WT_DX_VALUE 0x11100003 //Set the Value of the Gain-Factor of the DX-Channel
#define RADIO_WT_FC_DVALUE 0x11110000 //Set the default Value of Frequency-Xtal Correcture
#define RADIO_WT_SC_DVALUE 0x11110001 //Set the default Value of Frequency-Xtal Scale
#define RADIO_WT_AC_DVALUE 0x11110002 //Set the default Value of Input Sample Correcture or also SSTV/FAX-Slant Correcture
#define RADIO_WT_DX_DVALUE 0x11110003 //Set the default Value of the Gain-Factor of the DX-Channel
extern COLORPACK mCOL;
#define COL_BACK mCOL.background
#define COL_KNOBFACE mCOL.knobface
#define myLIGHT mCOL.light
#define myVLIGHT mCOL.vlight
#define myDARK mCOL.dark
#define myVDARK mCOL.vdark
#define COL_BTXT mCOL.btxt
#define COL_SCOPEMARK mCOL.scopemark
#define COL_SCOPE_B mCOL.scope_B
#define COL_SCOPE_L mCOL.scope_L
#define COL_SCOPE_P mCOL.scope_P
COL_SCOPE_LINE mCOL.scope_line
//Start and Process Control
IFJet1102DLLThread *m_IFinpuThread;
volatile int IFinpuThreadWorkFlag=0;////////////////////////////////////////
//////////////// this ist the first call
/////////////////////////////////////////
//OpenReceiver, if PID==-1 then this app is conected as MINI-APP, else is ERROR
//----------------------------------------------------------------------------------------------------------------------------------
// !!!!OpenReceiver: prepare for the MainDialog.m_hWnd this must be all times the first action
typedef BOOL (WINAPI *DLL_OpenReceiver)(HWND mainwnd, char *maindir, UINT PID);
typedef void (WINAPI *DLL_ProcessIFInput)(int process, WPARAM wp, LPARAM lp); // the IF input message WM_PROCESS_IFIN will be processed by this App
typedef void (WINAPI *DLL_CloseAll)(); //close Radio- and Audio- Device
//Radio Control
typedef int (WINAPI *DLL_SetRadioFrq)(int frq); //set the radio frequency in Hz
typedef void (WINAPI *DLL_SetRadioATT)(int att); //set the radio attenuator (ON/OFF)
typedef void (WINAPI *DLL_SetRadioIGC)(int igc); //set the audio atomatic IF gain control 0-15 from fast to slow decay/attack
typedef void (WINAPI *DLL_SetRadioIF)(int IF); //set the radio filter band width
typedef void (WINAPI *DLL_SetRadioMode)(int mode); //set the radio demodulator mode LSB,USB,AM,FM...
typedef void (WINAPI *DLL_SetRadioVolume)(int vol, int reset); //set the radio volume 0-200; if reset=1 the reset the IGC Function
typedef int (WINAPI *DLL_SetRadioSquelch)(int sql); //set the radio squelch 0-160;
//EEprom & Calibration
typedef void (WINAPI *DLL_SetRadioFrqCorr)(int Hz,int onoff); //set the Si570 Xtal-Frequency correcture in Hz
typedef void (WINAPI *DLL_SetRadioFrqScale)(int Hz,int onoff); //set the Si570 Xtal-Frequency Scale in Hz
typedef void (WINAPI *DLL_SetDXFactor)(int factor,int onoff); //set the DX-Gain Factor of the DX-Channel
typedef void (WINAPI *DLL_SetAudioSampleCorr)(int ppm,int onoff); //set the adio sample freqency correction in ppm
typedef UINT (WINAPI *DLL_GetEEpromInfo)(RJ10_EEROM_INFO *info); //read the EEprom and create viewlable information
typedef int (WINAPI *DLL_HandleEEpromValue)(int type, int set); //Read, Write or Check the EEprom Data
typedef int (WINAPI *DLL_HandleRadioValue)(int type, int set); //Set or Get radio parameter
typedef void (WINAPI *DLL_SetCalibrationMark)(int set); //set an calibration signal in dBm, set a positive value, we set this to negative value
typedef void (WINAPI *DLL_SetCalibrationLine)(int set); //switch the DoubleLines-Input on/off --> for two calibration signal lines//Panorama View & ExtIQ-Receiver
typedef BOOL (WINAPI *DLL_OpenExtIQ)(EXT_IQRX *extRX); //open the extern I/Q receiver for panorama view
typedef BOOL (WINAPI *DLL_CloseExtIQ)(); //close the extern I/Q receiver
typedef float (WINAPI *DLL_GetExtIQDrawData)(IQ_DRAW_PARA *GetPara); //get all the plot data and parameter of the current extern I/Q-Signal
typedef void (WINAPI *DLL_SetExtIQData)(EXT_IQRX *extRX); //set changed data for the extern I/Q receiver (dBLevelOffset,XtalFrqCorr,XtalScalingCorr...)
typedef void (WINAPI *DLL_PepareExtIQDataSet)(EXT_IQRX *extRX); //you set the the IQ_type in EXT_IQRX data set,then call PepareExtIQDataSet
//set befor extRX->IQ_type and if you set extRX->IQ_default=1 then you load a default set
//IF-In & AF-Out Control
typedef BOOL (WINAPI *DLL_OpenIFInput)(HWND audioin, DWORD IFJet1102DLLThread_ID); //Open IF Input with your audio messages window and backprocess
typedef void (WINAPI *DLL_ActivateIFInput)(int onOff); //reactivate or deactivate IF Input after an device removement 0=reactivate 1=deactivate
typedef float (WINAPI *DLL_GetIFDrawData)(IF_DRAW_PARA *GetPara, int channel); //get all the plot data and parameter of the current IF-Signal, -1 = default = current channel
typedef BOOL (WINAPI *DLL_OpenAFOutput)(HWND audioout, char *name, HWND DecEndWindow); //Open AF Output with your audio messages window and as option the TX/RX decoder Window
typedef LRESULT (WINAPI *DLL_MixerChange)(WPARAM hMixer,LPARAM dwControlID);//the routine for the IF-Input/Audio-Mixer handling
typedef void (WINAPI *DLL_SetWaveOutVolume)(int vol); //set the wave out volume 0-200;
typedef void (WINAPI *DLL_SetWaveInLevel)(int lev); //set the wave in level 0-200;
typedef int (WINAPI *DLL_SetIFInputLevel)(int lev, int onOFF); //set the IF-Input level and the currend onOFF state
typedef int (WINAPI *DLL_SetIFOutputLevel)(int lev); //set the IF-OutInput level 0-200;
typedef void (WINAPI *DLL_SetSpeakerOnOff)(int onof); //switch the main speaker on =0 or off =1
typedef void (WINAPI *DLL_SetStereoOnOff)(int onof); //switch the AudioOut to Stereo (only for DRM mode)
typedef int (WINAPI *DLL_SetInputChannel)(int set); //set the HI/LO Channel or automatic
typedef int (WINAPI *DLL_CheckDeviceChangings)(WPARAM wParam, LPARAM lParam); //check device changings by message OnDeviceChange
//Graphical Utillity
typedef void (WINAPI *DLL_DrawPotiLayout)(POTI_DRAWINFO *pinfo); //draw poti design
typedef void (WINAPI *DLL_InitRJ10Colors)(COLORPACK *colPack); //init the RJ10 color design
//extern definitions & variables
extern HINSTANCE m_DllHandle;
extern DLL_ProcessIFInput ProcessIFInput;
extern DLL_OpenReceiver OpenReceiver;
extern DLL_CloseAll CloseAll;
extern DLL_SetInputChannel SetInputChannel;
extern DLL_CheckDeviceChangings CheckDeviceChangings;
extern DLL_SetRadioFrq SetRadioFrq;
extern DLL_SetRadioATT SetRadioATT;
extern DLL_SetRadioIF SetRadioIF;
extern DLL_SetRadioVolume SetRadioVolume;
extern DLL_SetRadioSquelch SetRadioSquelch;
extern DLL_SetRadioIGC SetRadioIGC;
extern DLL_SetRadioMode SetRadioMode;
extern DLL_SetRadioFrqCorr SetRadioFrqCorr;
extern DLL_SetRadioFrqScale SetRadioFrqScale;
extern DLL_SetDXFactor SetDXFactor;
extern DLL_SetAudioSampleCorr SetAudioSampleCorr;
extern DLL_GetEEpromInfo GetEEpromInfo;
extern DLL_HandleEEpromValue HandleEEpromValue;
extern DLL_HandleRadioValue HandleRadioValue;
extern DLL_SetCalibrationMark SetCalibrationMark;
extern DLL_SetCalibrationLine SetCalibrationLine;extern DLL_OpenExtIQ OpenExtIQ;
extern DLL_CloseExtIQ CloseExtIQ;
extern DLL_GetExtIQDrawData GetExtIQDrawData;
extern DLL_SetExtIQData SetExtIQData;
extern DLL_PepareExtIQDataSet PepareExtIQDataSet;extern DLL_OpenIFInput OpenIFInput;
extern DLL_ActivateIFInput ActivateIFInput;
extern DLL_OpenAFOutput OpenAFOutput;
extern DLL_MixerChange MixerChange;
extern DLL_SetWaveOutVolume SetWaveOutVolume;
extern DLL_SetIFInputLevel SetIFInputLevel;
extern DLL_SetIFoutputLevel SetIFOutputLevel;
extern DLL_SetWaveInLevel SetWaveInLevel;
extern DLL_SetSpeakerOnOff SetSpeakerOnOff;
extern DLL_SetStereoOnOff S etStereoOnOff;
extern DLL_GetIFDrawData GetIFDrawData;
extern DLL_DrawPotiLayout DrawPotiLayout;
extern DLL_InitRJ10Colors InitRJ10Colors;
extern char myDIR[256];
void WINAPI FreeDLL();
void WINAPI DeInstall_RJ10MDLL();
BOOL WINAPI Install_RJ10MDLL();