SDDC_Driver
Loading...
Searching...
No Matches
ExtIO_sddc.h
1/*
2 * This file is part of SDDC_Driver.
3 *
4 * =====================
5 * MIT License
6 * =====================
7 *
8 * Copyright (C) 2017 - Oscar Steila
9 * Copyright (C) 2021 - Hayati Ayguen
10 * Copyright (C) 2025 - RenardSpark
11 *
12 * Permission is hereby granted, free of charge, to any person obtaining a copy
13 * of this software and associated documentation files (the "Software"), to deal
14 * in the Software without restriction, including without limitation the rights
15 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16 * copies of the Software, and to permit persons to whom the Software is
17 * furnished to do so, subject to the following conditions:
18
19 * The above copyright notice and this permission notice shall be included in all
20 * copies or substantial portions of the Software.
21
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 * SOFTWARE.
29 *
30 * SPDX-License-Identifier: MIT
31 */
32
33#ifdef EXTIO_EXPORTS
34#define EXTIO_API __declspec(dllexport) __stdcall
35#else
36#define EXTIO_API __stdcall
37#endif
38
39#define _MYCONSOLE
40#define EXPORT_EXTIO_TUNE_FUNCTIONS 0
41#define SETTINGS_IDENTIFIER "sddc_1.06"
42
43
44#include "LC_ExtIO_Types.h"
45
46extern uint32_t adcnominalfreq;
47
48extern "C" bool EXTIO_API InitHW(char *name, char *model, int& type);
49extern "C" int EXTIO_API StartHW64(int64_t freq);
50extern "C" int EXTIO_API StartHWdbl(double freq);
51
52extern "C" bool EXTIO_API OpenHW(void);
53extern "C" int EXTIO_API StartHW(long freq);
54
55extern "C" void EXTIO_API StopHW(void);
56extern "C" void EXTIO_API CloseHW(void);
57//extern "C" void EXTIO_API ShowGUI();
58//extern "C" void EXTIO_API HideGUI();
59extern "C" void EXTIO_API SwitchGUI();
60
61extern "C" int EXTIO_API SetHWLO(long LOfreq);
62extern "C" int64_t EXTIO_API SetHWLO64(int64_t LOfreq);
63extern "C" double EXTIO_API SetHWLOdbl(double LOfreq);
64
65extern "C" int EXTIO_API GetStatus(void);
66extern "C" void EXTIO_API SetCallback(pfnExtIOCallback funcptr);
67// void extIOCallback(int cnt, int status, float IQoffs, short IQdata[]);
68
69extern "C" long EXTIO_API GetHWLO(void);
70extern "C" int64_t EXTIO_API GetHWLO64(void);
71
72extern "C" long EXTIO_API GetHWSR(void);
73extern "C" double EXTIO_API GetHWSRdbl(void);
74
75#if EXPORT_EXTIO_TUNE_FUNCTIONS
76extern "C" long EXTIO_API GetTune(void);
77extern "C" int64_t EXTIO_API GetTune64(void);
78extern "C" double EXTIO_API GetTunedbl(void);
79
80extern "C" void EXTIO_API TuneChanged(long freq);
81extern "C" void EXTIO_API TuneChanged64(int64_t freq);
82extern "C" void EXTIO_API TuneChangeddbl(double freq);
83#endif
84
85// extern "C" void EXTIO_API GetFilters(int& loCut, int& hiCut, int& pitch);
86// extern "C" char EXTIO_API GetMode(void);
87// extern "C" void EXTIO_API ModeChanged(char mode);
88// extern "C" void EXTIO_API IFLimitsChanged(long low, long high);
89
90// extern "C" void EXTIO_API IFLimitsChanged64(int64_t low, int64_t high);
91
92// extern "C" void EXTIO_API RawDataReady(long samprate, int *Ldata, int *Rdata, int numsamples);
93
94extern "C" void EXTIO_API VersionInfo(const char * progname, int ver_major, int ver_minor);
95
96extern "C" int EXTIO_API GetAttenuators(int idx, float * attenuation); // fill in attenuation
97 // use positive attenuation levels if signal is amplified (LNA)
98 // use negative attenuation levels if signal is attenuated
99 // sort by attenuation: use idx 0 for highest attenuation / most damping
100 // this functions is called with incrementing idx
101 // - until this functions return != 0 for no more attenuator setting
102extern "C" int EXTIO_API GetActualAttIdx(void); // returns -1 on error
103extern "C" int EXTIO_API SetAttenuator(int idx); // returns != 0 on error
104
105extern "C" int EXTIO_API ExtIoGetAGCs(int agc_idx, char * text);
106extern "C" int EXTIO_API ExtIoGetActualAGCidx(void);
107extern "C" int EXTIO_API ExtIoSetAGC(int agc_idx);
108extern "C" int EXTIO_API ExtIoShowMGC(int agc_idx);
109
110extern "C" int EXTIO_API ExtIoGetMGCs(int mgc_idx, float * gain);
111extern "C" int EXTIO_API ExtIoGetActualMgcIdx(void);
112extern "C" int EXTIO_API ExtIoSetMGC(int mgc_idx);
113
114extern "C" int EXTIO_API ExtIoGetSrates(int idx, double * samplerate); // fill in possible samplerates
115extern "C" int EXTIO_API ExtIoSrateSelText(int idx, char* text); // return != 0 on error
116extern "C" int EXTIO_API ExtIoGetActualSrateIdx(void); // returns -1 on error
117extern "C" int EXTIO_API ExtIoSetSrate(int idx); // returns != 0 on error
118//extern "C" long EXTIO_API ExtIoGetBandwidth(int srate_idx); // returns != 0 on error
119
120extern "C" int EXTIO_API ExtIoGetSetting(int idx, char * description, char * value); // will be called (at least) before exiting application
121extern "C" void EXTIO_API ExtIoSetSetting(int idx, const char * value); // before calling InitHW() !!!
122
123extern "C" void EXTIO_API SetPPMvalue(double new_ppm_value);
124extern "C" double EXTIO_API GetPPMvalue(void);
125extern "C" void EXTIO_API IFrateInfo(int rate);