Skip to content

Commit e42d7a9

Browse files
tadscottsmithDSheirerDennis Sheirerwedgef5Matthew Foster
authored
Merge in master. (#2)
* DSheirer#1529 Adds logging suppression to Broadcaster to limit total logged error messages. (DSheirer#1530) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1531 Updates version to 0.6.0 alpha 7 (DSheirer#1532) Co-authored-by: Dennis Sheirer <[email protected]> * Revert "DSheirer#1531 Updates version to 0.6.0 alpha 7 (DSheirer#1532)" This reverts commit 11f37e8. * DSheirer#35 Updates AM & NBFM decoders to use Adaptive Squelch, a power squelch that includes an adaptive noise floor monitor. Implements vectorized magnitude operations for AM & FM decoders. Adds talkgroup assignment and squelch controls to AM channel configuration editor. Implements new AM gain control that attempts to normalize audio gain quickly at beginning of call/transmission and maintains that gain across lifecycle of the call and resets the gain for the next call. (DSheirer#1540) Notes on usage: - When using either AM or FM squelch control use either the Heterodyne channelizer or if using the Polyphase channelizer, avoid using trunk tracking decoders like DMR or P25 or set the squelch threshold high enough to avoid changes in noise floor from polyphase channelizer where it can vary between using the one channel or the two-channel combined channel sources. Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1528 Restores consistent audio segment start tone insertion, broken in DSheirer#1506 (DSheirer#1543) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#648 Resolves issue with audio panel sometimes displaying stale metadata that doesn't clear until the next audio segment is loaded. (DSheirer#1545) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1507 Resolves issue with Cap+ LSN parsing. Updates Cap+ Site Status and adds RAS bit handling. (DSheirer#1536) Co-authored-by: Matthew Foster <[email protected]> * Adds native Rdio Scanner streaming. (#1) (DSheirer#1476) DSheirer#1476 Adds rdio-scanner call upload API streaming support --------- Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1556 DMR Capacity Plus parsing enhancements. (DSheirer#1557) Co-authored-by: Dennis Sheirer <[email protected]> * added Rsp1TunerConfiguration to JsonSubTypes of RspTunerConfiguration (DSheirer#1555) Following reports that RSP1 tuner configurations are reset to default on startup. Unable to test * DSheirer#1548 Reduces default decoder AF gain by 40% to resolve issue with distorted audio from local strong aircraft transmissions. (DSheirer#1559) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1547 Updates playlist alias editor to make add/delete operations more efficient. (DSheirer#1560) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1558 Resolves issue where heterodyne channelizer allows tuning a set of channels that exceed the tuner's bandwidth. (DSheirer#1561) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1565 updates LTR, LTRNet and Passport decoders with new slope decoder. Resolves issue with LTR Standard decoder state that was combining individual calls to the same talkgroup and causing excessively long calls. (DSheirer#1567) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1568 Updates NBFM decoder configuration so user can enable/disable high-pass filter option in the audio module to effect audio playback and audio recording of the demodulated audio. Disabling the filter allows recording of DC and sub-audible signalling that may be present in the demodulated audio (e.g. LTR or squelching signalling). (DSheirer#1569) Co-authored-by: sheirerd <[email protected]> * DSheirer#1573 Adds Digital Coded Squelch (DCS) auxiliary decoder support. (DSheirer#1574) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1575 Updates traffic channel names to be 'T-' concatenated with the parent control channel name from the channel configuration. (DSheirer#1578) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1579 Resolves issue with array index out of bounds error generated in P25 Phase 1 decoders where the Dibit circular buffer attempts to write a (DSheirer#1580) dibit past the length of the array. Issue likely occurs when a partial/incomplete put operation adds a dibit and increments the buffer pointer but the thread is interrupted prior to wrapping the buffer pointer. When the next runnable iteration executes, the pointer is pointing past the end of the buffer. Updates the code to check the pointer both before and after the put operation. Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1581 Updates Rdio Scanner configuration editor to automatically append the 'api/call-upload' path to the end of the protocol and host value provided by the user. Sets the host default value to 'http://localhost' but allows the user to overwrite. (DSheirer#1582) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1563 Updates RSP tuner to produce sample buffers with optimal power-of-2 length to enable downstream vectorized operations. (DSheirer#1583) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1584 Updates DMR & P25 decoders to stop processing residual samples from the current buffer after a traffic channel shutdown has been signalled. (DSheirer#1585) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1590 Resolves issue with RSP tuners generating too many native buffers causing excessive memory consumption (DSheirer#1591) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1588 Use JDK20 and Gradle 8.2. Updates SDRPlay API for compatibility with JDK20 Project Panama Foreign Memory/Function changes. (DSheirer#1589) Co-authored-by: Dennis Sheirer <[email protected]> * DSheirer#1586 Resolves issue in P25 message framer where after transmitting the current message the mDataUnitId is set to null and this causes an NPE when subsequent code is executed prior to shutdown of the channel. (DSheirer#1593) Co-authored-by: Dennis Sheirer <[email protected]> * Adds event type as a filtering option in the Events tab * DSheirer#1368 Restructures Message and Event filter framework. * DSheirer#1603 Resolves issue with de-duplicating events to allow call duration values to display correctly and minimize the quantity of duplicate events. * DSheirer#1604 Resolves issue with event panel UI layout creating excess space between history management panel and events table. * DSheirer#1605 Resolves issue where certain Linux users were unable to display the tuner editor panel due to an issue with the frequency control editor's usage of custom cursor. * DSheirer#1612 Enhance aliasing to support DCS tones --------- Co-authored-by: Denny Sheirer <[email protected]> Co-authored-by: Dennis Sheirer <[email protected]> Co-authored-by: wedgef5 <[email protected]> Co-authored-by: Matthew Foster <[email protected]> Co-authored-by: Nokoa <[email protected]> Co-authored-by: sheirerd <[email protected]> Co-authored-by: Christopher Varner <[email protected]>
1 parent eabd500 commit e42d7a9

File tree

490 files changed

+22327
-8529
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

490 files changed

+22327
-8529
lines changed

.github/workflows/gradle.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ jobs:
2222

2323
steps:
2424
- uses: actions/checkout@v2
25-
- name: Set up JDK 19
26-
uses: actions/setup-java@v2
25+
- name: Set up JDK 20
26+
uses: actions/setup-java@v3
2727
with:
28-
java-version: '19'
28+
java-version: '20'
2929
distribution: 'liberica'
3030
java-package: 'jdk+fx'
3131
- name: Build with Gradle
32-
uses: gradle/gradle-build-action@937999e9cc2425eddc7fd62d1053baf041147db7
32+
uses: gradle/gradle-build-action@v2
3333
with:
3434
arguments: clean build

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
#ifndef SDRPLAY_API_H
2+
#define SDRPLAY_API_H
3+
4+
#include "sdrplay_api_dev.h"
5+
#include "sdrplay_api_rx_channel.h"
6+
#include "sdrplay_api_callback.h"
7+
8+
//#if defined(_M_X64) || defined(_M_IX86)
9+
//#include "windows.h"
10+
//#elif defined (__GNUC__)
11+
typedef void *HANDLE;
12+
//#endif
13+
//
14+
//#ifndef _SDRPLAY_DLL_QUALIFIER
15+
//#if !defined(STATIC_LIB) && (defined(_M_X64) || defined(_M_IX86))
16+
//#define _SDRPLAY_DLL_QUALIFIER __declspec(dllimport)
17+
//#elif defined(STATIC_LIB) || defined(__GNUC__)
18+
//#define _SDRPLAY_DLL_QUALIFIER
19+
//#endif
20+
//#endif // _SDRPLAY_DLL_QUALIFIER
21+
22+
// Application code should check that it is compiled against the same API version
23+
// sdrplay_api_ApiVersion() returns the API version
24+
#define SDRPLAY_API_VERSION (float)(3.08)
25+
26+
// API Constants
27+
#define SDRPLAY_MAX_DEVICES (16)
28+
#define SDRPLAY_MAX_TUNERS_PER_DEVICE (2)
29+
30+
#define SDRPLAY_MAX_SER_NO_LEN (64)
31+
#define SDRPLAY_MAX_ROOT_NM_LEN (32)
32+
33+
#define SDRPLAY_RSP1_ID (1)
34+
#define SDRPLAY_RSP1A_ID (255)
35+
#define SDRPLAY_RSP2_ID (2)
36+
#define SDRPLAY_RSPduo_ID (3)
37+
#define SDRPLAY_RSPdx_ID (4)
38+
39+
// Enum types
40+
typedef enum
41+
{
42+
sdrplay_api_Success = 0,
43+
sdrplay_api_Fail = 1,
44+
sdrplay_api_InvalidParam = 2,
45+
sdrplay_api_OutOfRange = 3,
46+
sdrplay_api_GainUpdateError = 4,
47+
sdrplay_api_RfUpdateError = 5,
48+
sdrplay_api_FsUpdateError = 6,
49+
sdrplay_api_HwError = 7,
50+
sdrplay_api_AliasingError = 8,
51+
sdrplay_api_AlreadyInitialised = 9,
52+
sdrplay_api_NotInitialised = 10,
53+
sdrplay_api_NotEnabled = 11,
54+
sdrplay_api_HwVerError = 12,
55+
sdrplay_api_OutOfMemError = 13,
56+
sdrplay_api_ServiceNotResponding = 14,
57+
sdrplay_api_StartPending = 15,
58+
sdrplay_api_StopPending = 16,
59+
sdrplay_api_InvalidMode = 17,
60+
sdrplay_api_FailedVerification1 = 18,
61+
sdrplay_api_FailedVerification2 = 19,
62+
sdrplay_api_FailedVerification3 = 20,
63+
sdrplay_api_FailedVerification4 = 21,
64+
sdrplay_api_FailedVerification5 = 22,
65+
sdrplay_api_FailedVerification6 = 23,
66+
sdrplay_api_InvalidServiceVersion = 24
67+
} sdrplay_api_ErrT;
68+
69+
typedef enum
70+
{
71+
sdrplay_api_Update_None = 0x00000000,
72+
73+
// Reasons for master only mode
74+
sdrplay_api_Update_Dev_Fs = 0x00000001,
75+
sdrplay_api_Update_Dev_Ppm = 0x00000002,
76+
sdrplay_api_Update_Dev_SyncUpdate = 0x00000004,
77+
sdrplay_api_Update_Dev_ResetFlags = 0x00000008,
78+
79+
sdrplay_api_Update_Rsp1a_BiasTControl = 0x00000010,
80+
sdrplay_api_Update_Rsp1a_RfNotchControl = 0x00000020,
81+
sdrplay_api_Update_Rsp1a_RfDabNotchControl = 0x00000040,
82+
83+
sdrplay_api_Update_Rsp2_BiasTControl = 0x00000080,
84+
sdrplay_api_Update_Rsp2_AmPortSelect = 0x00000100,
85+
sdrplay_api_Update_Rsp2_AntennaControl = 0x00000200,
86+
sdrplay_api_Update_Rsp2_RfNotchControl = 0x00000400,
87+
sdrplay_api_Update_Rsp2_ExtRefControl = 0x00000800,
88+
89+
sdrplay_api_Update_RspDuo_ExtRefControl = 0x00001000,
90+
91+
sdrplay_api_Update_Master_Spare_1 = 0x00002000,
92+
sdrplay_api_Update_Master_Spare_2 = 0x00004000,
93+
94+
// Reasons for master and slave mode
95+
// Note: sdrplay_api_Update_Tuner_Gr MUST be the first value defined in this section!
96+
sdrplay_api_Update_Tuner_Gr = 0x00008000,
97+
sdrplay_api_Update_Tuner_GrLimits = 0x00010000,
98+
sdrplay_api_Update_Tuner_Frf = 0x00020000,
99+
sdrplay_api_Update_Tuner_BwType = 0x00040000,
100+
sdrplay_api_Update_Tuner_IfType = 0x00080000,
101+
sdrplay_api_Update_Tuner_DcOffset = 0x00100000,
102+
sdrplay_api_Update_Tuner_LoMode = 0x00200000,
103+
104+
sdrplay_api_Update_Ctrl_DCoffsetIQimbalance = 0x00400000,
105+
sdrplay_api_Update_Ctrl_Decimation = 0x00800000,
106+
sdrplay_api_Update_Ctrl_Agc = 0x01000000,
107+
sdrplay_api_Update_Ctrl_AdsbMode = 0x02000000,
108+
sdrplay_api_Update_Ctrl_OverloadMsgAck = 0x04000000,
109+
110+
sdrplay_api_Update_RspDuo_BiasTControl = 0x08000000,
111+
sdrplay_api_Update_RspDuo_AmPortSelect = 0x10000000,
112+
sdrplay_api_Update_RspDuo_Tuner1AmNotchControl = 0x20000000,
113+
sdrplay_api_Update_RspDuo_RfNotchControl = 0x40000000,
114+
sdrplay_api_Update_RspDuo_RfDabNotchControl = 0x80000000,
115+
} sdrplay_api_ReasonForUpdateT;
116+
117+
typedef enum
118+
{
119+
sdrplay_api_Update_Ext1_None = 0x00000000,
120+
121+
// Reasons for master only mode
122+
sdrplay_api_Update_RspDx_HdrEnable = 0x00000001,
123+
sdrplay_api_Update_RspDx_BiasTControl = 0x00000002,
124+
sdrplay_api_Update_RspDx_AntennaControl = 0x00000004,
125+
sdrplay_api_Update_RspDx_RfNotchControl = 0x00000008,
126+
sdrplay_api_Update_RspDx_RfDabNotchControl = 0x00000010,
127+
sdrplay_api_Update_RspDx_HdrBw = 0x00000020,
128+
129+
// Reasons for master and slave mode
130+
} sdrplay_api_ReasonForUpdateExtension1T;
131+
132+
typedef enum
133+
{
134+
sdrplay_api_DbgLvl_Disable = 0,
135+
sdrplay_api_DbgLvl_Verbose = 1,
136+
sdrplay_api_DbgLvl_Warning = 2,
137+
sdrplay_api_DbgLvl_Error = 3,
138+
sdrplay_api_DbgLvl_Message = 4,
139+
} sdrplay_api_DbgLvl_t;
140+
141+
// Device structure
142+
typedef struct
143+
{
144+
char SerNo[SDRPLAY_MAX_SER_NO_LEN];
145+
unsigned char hwVer;
146+
sdrplay_api_TunerSelectT tuner;
147+
sdrplay_api_RspDuoModeT rspDuoMode;
148+
unsigned char valid;
149+
double rspDuoSampleFreq;
150+
HANDLE dev;
151+
} sdrplay_api_DeviceT;
152+
153+
// Device parameter structure
154+
typedef struct
155+
{
156+
sdrplay_api_DevParamsT *devParams;
157+
sdrplay_api_RxChannelParamsT *rxChannelA;
158+
sdrplay_api_RxChannelParamsT *rxChannelB;
159+
} sdrplay_api_DeviceParamsT;
160+
161+
// Extended error message structure
162+
typedef struct
163+
{
164+
char file[256];
165+
char function[256];
166+
int line;
167+
char message[1024];
168+
} sdrplay_api_ErrorInfoT;
169+
170+
// Comman API function types
171+
typedef sdrplay_api_ErrT (*sdrplay_api_Open_t)(void);
172+
typedef sdrplay_api_ErrT (*sdrplay_api_Close_t)(void);
173+
typedef sdrplay_api_ErrT (*sdrplay_api_ApiVersion_t)(float *apiVer);
174+
typedef sdrplay_api_ErrT (*sdrplay_api_LockDeviceApi_t)(void);
175+
typedef sdrplay_api_ErrT (*sdrplay_api_UnlockDeviceApi_t)(void);
176+
typedef sdrplay_api_ErrT (*sdrplay_api_GetDevices_t)(sdrplay_api_DeviceT *devices, unsigned int *numDevs, unsigned int maxDevs);
177+
typedef sdrplay_api_ErrT (*sdrplay_api_SelectDevice_t)(sdrplay_api_DeviceT *device);
178+
typedef sdrplay_api_ErrT (*sdrplay_api_ReleaseDevice_t)(sdrplay_api_DeviceT *device);
179+
typedef const char* (*sdrplay_api_GetErrorString_t)(sdrplay_api_ErrT err);
180+
typedef sdrplay_api_ErrorInfoT* (*sdrplay_api_GetLastError_t)(sdrplay_api_DeviceT *device);
181+
typedef sdrplay_api_ErrT (*sdrplay_api_DisableHeartbeat_t)(void);
182+
183+
// Device API function types
184+
typedef sdrplay_api_ErrT (*sdrplay_api_DebugEnable_t)(HANDLE dev, sdrplay_api_DbgLvl_t dbgLvl);
185+
typedef sdrplay_api_ErrT (*sdrplay_api_GetDeviceParams_t)(HANDLE dev, sdrplay_api_DeviceParamsT **deviceParams);
186+
typedef sdrplay_api_ErrT (*sdrplay_api_Init_t)(HANDLE dev, sdrplay_api_CallbackFnsT *callbackFns, void *cbContext);
187+
typedef sdrplay_api_ErrT (*sdrplay_api_Uninit_t)(HANDLE dev);
188+
typedef sdrplay_api_ErrT (*sdrplay_api_Update_t)(HANDLE dev, sdrplay_api_TunerSelectT tuner, sdrplay_api_ReasonForUpdateT reasonForUpdate, sdrplay_api_ReasonForUpdateExtension1T reasonForUpdateExt1);
189+
typedef sdrplay_api_ErrT (*sdrplay_api_SwapRspDuoActiveTuner_t)(HANDLE dev, sdrplay_api_TunerSelectT *tuner, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel);
190+
typedef sdrplay_api_ErrT (*sdrplay_api_SwapRspDuoDualTunerModeSampleRate_t)(double *currentSampleRate, double newSampleRate);
191+
typedef sdrplay_api_ErrT (*sdrplay_api_SwapRspDuoMode_t)(sdrplay_api_DeviceT *currDevice, sdrplay_api_DeviceParamsT **deviceParams,
192+
sdrplay_api_RspDuoModeT rspDuoMode, double sampleRate, sdrplay_api_TunerSelectT tuner,
193+
sdrplay_api_Bw_MHzT bwType, sdrplay_api_If_kHzT ifType, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel);
194+
195+
// API function definitions
196+
#ifdef __cplusplus
197+
extern "C"
198+
{
199+
#endif
200+
201+
// // Comman API function definitions
202+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_Open(void);
203+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_Close(void);
204+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_ApiVersion(float *apiVer);
205+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_LockDeviceApi(void);
206+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_UnlockDeviceApi(void);
207+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_GetDevices(sdrplay_api_DeviceT *devices, unsigned int *numDevs, unsigned int maxDevs);
208+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_SelectDevice(sdrplay_api_DeviceT *device);
209+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_ReleaseDevice(sdrplay_api_DeviceT *device);
210+
// _SDRPLAY_DLL_QUALIFIER const char* sdrplay_api_GetErrorString(sdrplay_api_ErrT err);
211+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrorInfoT* sdrplay_api_GetLastError(sdrplay_api_DeviceT *device);
212+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_DisableHeartbeat(void); // Must be called before sdrplay_api_SelectDevice()
213+
//
214+
// // Device API function definitions
215+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_DebugEnable(HANDLE dev, sdrplay_api_DbgLvl_t enable);
216+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_GetDeviceParams(HANDLE dev, sdrplay_api_DeviceParamsT **deviceParams);
217+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_Init(HANDLE dev, sdrplay_api_CallbackFnsT *callbackFns, void *cbContext);
218+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_Uninit(HANDLE dev);
219+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_Update(HANDLE dev, sdrplay_api_TunerSelectT tuner, sdrplay_api_ReasonForUpdateT reasonForUpdate, sdrplay_api_ReasonForUpdateExtension1T reasonForUpdateExt1);
220+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_SwapRspDuoActiveTuner(HANDLE dev, sdrplay_api_TunerSelectT *currentTuner, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel);
221+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_SwapRspDuoDualTunerModeSampleRate(HANDLE dev, double *currentSampleRate, double newSampleRate);
222+
// _SDRPLAY_DLL_QUALIFIER sdrplay_api_ErrT sdrplay_api_SwapRspDuoMode(sdrplay_api_DeviceT *currDevice, sdrplay_api_DeviceParamsT **deviceParams,
223+
// sdrplay_api_RspDuoModeT rspDuoMode, double sampleRate, sdrplay_api_TunerSelectT tuner,
224+
// sdrplay_api_Bw_MHzT bwType, sdrplay_api_If_kHzT ifType, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel);
225+
226+
#ifdef __cplusplus
227+
}
228+
#endif
229+
230+
#endif //SDRPLAY_API_H
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#ifndef SDRPLAY_API_CALLBACK_H
2+
#define SDRPLAY_API_CALLBACK_H
3+
4+
// Event callback enums
5+
typedef enum
6+
{
7+
sdrplay_api_Overload_Detected = 0,
8+
sdrplay_api_Overload_Corrected = 1,
9+
} sdrplay_api_PowerOverloadCbEventIdT;
10+
11+
typedef enum
12+
{
13+
sdrplay_api_MasterInitialised = 0,
14+
sdrplay_api_SlaveAttached = 1,
15+
sdrplay_api_SlaveDetached = 2,
16+
sdrplay_api_SlaveInitialised = 3,
17+
sdrplay_api_SlaveUninitialised = 4,
18+
sdrplay_api_MasterDllDisappeared = 5,
19+
sdrplay_api_SlaveDllDisappeared = 6,
20+
} sdrplay_api_RspDuoModeCbEventIdT;
21+
22+
typedef enum
23+
{
24+
sdrplay_api_GainChange = 0,
25+
sdrplay_api_PowerOverloadChange = 1,
26+
sdrplay_api_DeviceRemoved = 2,
27+
sdrplay_api_RspDuoModeChange = 3,
28+
} sdrplay_api_EventT;
29+
30+
// Event callback parameter structs
31+
typedef struct
32+
{
33+
unsigned int gRdB;
34+
unsigned int lnaGRdB;
35+
double currGain;
36+
} sdrplay_api_GainCbParamT;
37+
38+
typedef struct
39+
{
40+
sdrplay_api_PowerOverloadCbEventIdT powerOverloadChangeType;
41+
} sdrplay_api_PowerOverloadCbParamT;
42+
43+
typedef struct
44+
{
45+
sdrplay_api_RspDuoModeCbEventIdT modeChangeType;
46+
} sdrplay_api_RspDuoModeCbParamT;
47+
48+
// Event parameters overlay
49+
typedef union
50+
{
51+
sdrplay_api_GainCbParamT gainParams;
52+
sdrplay_api_PowerOverloadCbParamT powerOverloadParams;
53+
sdrplay_api_RspDuoModeCbParamT rspDuoModeParams;
54+
} sdrplay_api_EventParamsT;
55+
56+
// Stream callback parameter structs
57+
typedef struct
58+
{
59+
unsigned int firstSampleNum;
60+
int grChanged;
61+
int rfChanged;
62+
int fsChanged;
63+
unsigned int numSamples;
64+
} sdrplay_api_StreamCbParamsT;
65+
66+
// Callback function prototypes
67+
typedef void (*sdrplay_api_StreamCallback_t)(short *xi, short *xq, sdrplay_api_StreamCbParamsT *params, unsigned int numSamples, unsigned int reset, void *cbContext);
68+
typedef void (*sdrplay_api_EventCallback_t)(sdrplay_api_EventT eventId, sdrplay_api_TunerSelectT tuner, sdrplay_api_EventParamsT *params, void *cbContext);
69+
70+
// Callback function struct
71+
typedef struct
72+
{
73+
sdrplay_api_StreamCallback_t StreamACbFn;
74+
sdrplay_api_StreamCallback_t StreamBCbFn;
75+
sdrplay_api_EventCallback_t EventCbFn;
76+
} sdrplay_api_CallbackFnsT;
77+
78+
#endif //SDRPLAY_API_CALLBACK_H
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#ifndef SDRPLAY_API_CONTROL_H
2+
#define SDRPLAY_API_CONTROL_H
3+
4+
// Control parameter enums
5+
typedef enum
6+
{
7+
sdrplay_api_AGC_DISABLE = 0,
8+
sdrplay_api_AGC_100HZ = 1,
9+
sdrplay_api_AGC_50HZ = 2,
10+
sdrplay_api_AGC_5HZ = 3,
11+
sdrplay_api_AGC_CTRL_EN = 4
12+
} sdrplay_api_AgcControlT;
13+
14+
typedef enum
15+
{
16+
sdrplay_api_ADSB_DECIMATION = 0,
17+
sdrplay_api_ADSB_NO_DECIMATION_LOWPASS = 1,
18+
sdrplay_api_ADSB_NO_DECIMATION_BANDPASS_2MHZ = 2,
19+
sdrplay_api_ADSB_NO_DECIMATION_BANDPASS_3MHZ = 3
20+
} sdrplay_api_AdsbModeT;
21+
22+
// Control parameter structs
23+
typedef struct
24+
{
25+
unsigned char DCenable; // default: 1
26+
unsigned char IQenable; // default: 1
27+
} sdrplay_api_DcOffsetT;
28+
29+
typedef struct
30+
{
31+
unsigned char enable; // default: 0
32+
unsigned char decimationFactor; // default: 1
33+
unsigned char wideBandSignal; // default: 0
34+
} sdrplay_api_DecimationT;
35+
36+
typedef struct
37+
{
38+
sdrplay_api_AgcControlT enable; // default: sdrplay_api_AGC_50HZ
39+
int setPoint_dBfs; // default: -60
40+
unsigned short attack_ms; // default: 0
41+
unsigned short decay_ms; // default: 0
42+
unsigned short decay_delay_ms; // default: 0
43+
unsigned short decay_threshold_dB; // default: 0
44+
int syncUpdate; // default: 0
45+
} sdrplay_api_AgcT;
46+
47+
typedef struct
48+
{
49+
sdrplay_api_DcOffsetT dcOffset;
50+
sdrplay_api_DecimationT decimation;
51+
sdrplay_api_AgcT agc;
52+
sdrplay_api_AdsbModeT adsbMode; //default: sdrplay_api_ADSB_DECIMATION
53+
} sdrplay_api_ControlParamsT;
54+
55+
#endif //SDRPLAY_API_CONTROL_H

0 commit comments

Comments
 (0)