Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
- Loading branch information
Showing
336 changed files
with
31,841 additions
and
264 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
Auto-generating Java code from SDRPlay API using jextract. | ||
|
||
Note: the api headers in the 3.11 folder are equivalent to the 3.08 headers. The only | ||
difference from the 3.07 headers is the addition of the boolean 'valid' flag to DeviceT structure. | ||
|
||
1. Download JDK19 compatible build of jextract JDK: https://jdk.java.net/jextract/ | ||
2. If generating on windows platform, modify the sdrplay_api.h to remove the windows | ||
pieces of the file. Specifically: | ||
2a. Comment out these lines but leave the *HANDLE typedef: | ||
|
||
//#if defined(_M_X64) || defined(_M_IX86) || defined(_M_ARM64) | ||
//#include "windows.h" | ||
//#elif defined (__GNUC__) | ||
typedef void *HANDLE; | ||
//#endif | ||
|
||
//#ifndef _SDRPLAY_DLL_QUALIFIER | ||
//#if !defined(STATIC_LIB) && (defined(_M_X64) || defined(_M_IX86) || defined(_M_ARM64)) | ||
//#define _SDRPLAY_DLL_QUALIFIER __declspec(dllimport) | ||
//#elif defined(STATIC_LIB) || defined(__GNUC__) | ||
//#define _SDRPLAY_DLL_QUALIFIER | ||
//#endif | ||
//#endif // _SDRPLAY_DLL_QUALIFIER | ||
|
||
2b. Remove the '_SDRPLAY_DLL_QUALIFIER' from in front of the method declarations | ||
|
||
2c. Change the 3.11 version string to 3.08 either in the header file, or in the generated java class | ||
|
||
3. Open command prompt to the root source code where the generated files should be placed: | ||
..\SDRtrunk\sdrplay-api\src\main\java | ||
|
||
4. Generate the code: | ||
c:\Users\Denny\Downloads\jdk-19-ea2-panama\bin\jextract "C:\Users\Denny\git\sdrtrunk\sdrplay-api\api\v3_11\sdrplay_api.h" -l libsdrplay_api --source | ||
|
||
5. Do this for all versions of the API. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
#ifndef SDRPLAY_API_H | ||
#define SDRPLAY_API_H | ||
|
||
#include "sdrplay_api_dev.h" | ||
#include "sdrplay_api_rx_channel.h" | ||
#include "sdrplay_api_callback.h" | ||
|
||
//#if defined(_M_X64) || defined(_M_IX86) | ||
//#include "windows.h" | ||
//#elif defined (__GNUC__) | ||
typedef void *HANDLE; | ||
//#endif | ||
|
||
//#ifndef _SDRPLAY_DLL_QUALIFIER | ||
//#if !defined(STATIC_LIB) && (defined(_M_X64) || defined(_M_IX86)) | ||
//#define _SDRPLAY_DLL_QUALIFIER __declspec(dllimport) | ||
//#elif defined(STATIC_LIB) || defined(__GNUC__) | ||
//#define _SDRPLAY_DLL_QUALIFIER | ||
//#endif | ||
//#endif // _SDRPLAY_DLL_QUALIFIER | ||
|
||
// Application code should check that it is compiled against the same API version | ||
// sdrplay_api_ApiVersion() returns the API version | ||
#define SDRPLAY_API_VERSION (float)(3.07) | ||
|
||
// API Constants | ||
#define SDRPLAY_MAX_DEVICES (16) | ||
#define SDRPLAY_MAX_TUNERS_PER_DEVICE (2) | ||
|
||
#define SDRPLAY_MAX_SER_NO_LEN (64) | ||
#define SDRPLAY_MAX_ROOT_NM_LEN (32) | ||
|
||
#define SDRPLAY_RSP1_ID (1) | ||
#define SDRPLAY_RSP1A_ID (255) | ||
#define SDRPLAY_RSP2_ID (2) | ||
#define SDRPLAY_RSPduo_ID (3) | ||
#define SDRPLAY_RSPdx_ID (4) | ||
|
||
// Enum types | ||
typedef enum | ||
{ | ||
sdrplay_api_Success = 0, | ||
sdrplay_api_Fail = 1, | ||
sdrplay_api_InvalidParam = 2, | ||
sdrplay_api_OutOfRange = 3, | ||
sdrplay_api_GainUpdateError = 4, | ||
sdrplay_api_RfUpdateError = 5, | ||
sdrplay_api_FsUpdateError = 6, | ||
sdrplay_api_HwError = 7, | ||
sdrplay_api_AliasingError = 8, | ||
sdrplay_api_AlreadyInitialised = 9, | ||
sdrplay_api_NotInitialised = 10, | ||
sdrplay_api_NotEnabled = 11, | ||
sdrplay_api_HwVerError = 12, | ||
sdrplay_api_OutOfMemError = 13, | ||
sdrplay_api_ServiceNotResponding = 14, | ||
sdrplay_api_StartPending = 15, | ||
sdrplay_api_StopPending = 16, | ||
sdrplay_api_InvalidMode = 17, | ||
sdrplay_api_FailedVerification1 = 18, | ||
sdrplay_api_FailedVerification2 = 19, | ||
sdrplay_api_FailedVerification3 = 20, | ||
sdrplay_api_FailedVerification4 = 21, | ||
sdrplay_api_FailedVerification5 = 22, | ||
sdrplay_api_FailedVerification6 = 23, | ||
sdrplay_api_InvalidServiceVersion = 24 | ||
} sdrplay_api_ErrT; | ||
|
||
typedef enum | ||
{ | ||
sdrplay_api_Update_None = 0x00000000, | ||
|
||
// Reasons for master only mode | ||
sdrplay_api_Update_Dev_Fs = 0x00000001, | ||
sdrplay_api_Update_Dev_Ppm = 0x00000002, | ||
sdrplay_api_Update_Dev_SyncUpdate = 0x00000004, | ||
sdrplay_api_Update_Dev_ResetFlags = 0x00000008, | ||
|
||
sdrplay_api_Update_Rsp1a_BiasTControl = 0x00000010, | ||
sdrplay_api_Update_Rsp1a_RfNotchControl = 0x00000020, | ||
sdrplay_api_Update_Rsp1a_RfDabNotchControl = 0x00000040, | ||
|
||
sdrplay_api_Update_Rsp2_BiasTControl = 0x00000080, | ||
sdrplay_api_Update_Rsp2_AmPortSelect = 0x00000100, | ||
sdrplay_api_Update_Rsp2_AntennaControl = 0x00000200, | ||
sdrplay_api_Update_Rsp2_RfNotchControl = 0x00000400, | ||
sdrplay_api_Update_Rsp2_ExtRefControl = 0x00000800, | ||
|
||
sdrplay_api_Update_RspDuo_ExtRefControl = 0x00001000, | ||
|
||
sdrplay_api_Update_Master_Spare_1 = 0x00002000, | ||
sdrplay_api_Update_Master_Spare_2 = 0x00004000, | ||
|
||
// Reasons for master and slave mode | ||
// Note: sdrplay_api_Update_Tuner_Gr MUST be the first value defined in this section! | ||
sdrplay_api_Update_Tuner_Gr = 0x00008000, | ||
sdrplay_api_Update_Tuner_GrLimits = 0x00010000, | ||
sdrplay_api_Update_Tuner_Frf = 0x00020000, | ||
sdrplay_api_Update_Tuner_BwType = 0x00040000, | ||
sdrplay_api_Update_Tuner_IfType = 0x00080000, | ||
sdrplay_api_Update_Tuner_DcOffset = 0x00100000, | ||
sdrplay_api_Update_Tuner_LoMode = 0x00200000, | ||
|
||
sdrplay_api_Update_Ctrl_DCoffsetIQimbalance = 0x00400000, | ||
sdrplay_api_Update_Ctrl_Decimation = 0x00800000, | ||
sdrplay_api_Update_Ctrl_Agc = 0x01000000, | ||
sdrplay_api_Update_Ctrl_AdsbMode = 0x02000000, | ||
sdrplay_api_Update_Ctrl_OverloadMsgAck = 0x04000000, | ||
|
||
sdrplay_api_Update_RspDuo_BiasTControl = 0x08000000, | ||
sdrplay_api_Update_RspDuo_AmPortSelect = 0x10000000, | ||
sdrplay_api_Update_RspDuo_Tuner1AmNotchControl = 0x20000000, | ||
sdrplay_api_Update_RspDuo_RfNotchControl = 0x40000000, | ||
sdrplay_api_Update_RspDuo_RfDabNotchControl = 0x80000000, | ||
} sdrplay_api_ReasonForUpdateT; | ||
|
||
typedef enum | ||
{ | ||
sdrplay_api_Update_Ext1_None = 0x00000000, | ||
|
||
// Reasons for master only mode | ||
sdrplay_api_Update_RspDx_HdrEnable = 0x00000001, | ||
sdrplay_api_Update_RspDx_BiasTControl = 0x00000002, | ||
sdrplay_api_Update_RspDx_AntennaControl = 0x00000004, | ||
sdrplay_api_Update_RspDx_RfNotchControl = 0x00000008, | ||
sdrplay_api_Update_RspDx_RfDabNotchControl = 0x00000010, | ||
sdrplay_api_Update_RspDx_HdrBw = 0x00000020, | ||
|
||
// Reasons for master and slave mode | ||
} sdrplay_api_ReasonForUpdateExtension1T; | ||
|
||
typedef enum | ||
{ | ||
sdrplay_api_DbgLvl_Disable = 0, | ||
sdrplay_api_DbgLvl_Verbose = 1, | ||
sdrplay_api_DbgLvl_Warning = 2, | ||
sdrplay_api_DbgLvl_Error = 3, | ||
sdrplay_api_DbgLvl_Message = 4, | ||
} sdrplay_api_DbgLvl_t; | ||
|
||
// Device structure | ||
typedef struct | ||
{ | ||
char SerNo[SDRPLAY_MAX_SER_NO_LEN]; | ||
unsigned char hwVer; | ||
sdrplay_api_TunerSelectT tuner; | ||
sdrplay_api_RspDuoModeT rspDuoMode; | ||
double rspDuoSampleFreq; | ||
HANDLE dev; | ||
} sdrplay_api_DeviceT; | ||
|
||
// Device parameter structure | ||
typedef struct | ||
{ | ||
sdrplay_api_DevParamsT *devParams; | ||
sdrplay_api_RxChannelParamsT *rxChannelA; | ||
sdrplay_api_RxChannelParamsT *rxChannelB; | ||
} sdrplay_api_DeviceParamsT; | ||
|
||
// Extended error message structure | ||
typedef struct | ||
{ | ||
char file[256]; | ||
char function[256]; | ||
int line; | ||
char message[1024]; | ||
} sdrplay_api_ErrorInfoT; | ||
|
||
// Comman API function types | ||
typedef sdrplay_api_ErrT (*sdrplay_api_Open_t)(void); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_Close_t)(void); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_ApiVersion_t)(float *apiVer); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_LockDeviceApi_t)(void); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_UnlockDeviceApi_t)(void); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_GetDevices_t)(sdrplay_api_DeviceT *devices, unsigned int *numDevs, unsigned int maxDevs); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_SelectDevice_t)(sdrplay_api_DeviceT *device); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_ReleaseDevice_t)(sdrplay_api_DeviceT *device); | ||
typedef const char* (*sdrplay_api_GetErrorString_t)(sdrplay_api_ErrT err); | ||
typedef sdrplay_api_ErrorInfoT* (*sdrplay_api_GetLastError_t)(sdrplay_api_DeviceT *device); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_DisableHeartbeat_t)(void); | ||
|
||
// Device API function types | ||
typedef sdrplay_api_ErrT (*sdrplay_api_DebugEnable_t)(HANDLE dev, sdrplay_api_DbgLvl_t dbgLvl); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_GetDeviceParams_t)(HANDLE dev, sdrplay_api_DeviceParamsT **deviceParams); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_Init_t)(HANDLE dev, sdrplay_api_CallbackFnsT *callbackFns, void *cbContext); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_Uninit_t)(HANDLE dev); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_Update_t)(HANDLE dev, sdrplay_api_TunerSelectT tuner, sdrplay_api_ReasonForUpdateT reasonForUpdate, sdrplay_api_ReasonForUpdateExtension1T reasonForUpdateExt1); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_SwapRspDuoActiveTuner_t)(HANDLE dev, sdrplay_api_TunerSelectT *tuner, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_SwapRspDuoDualTunerModeSampleRate_t)(double *currentSampleRate); | ||
typedef sdrplay_api_ErrT (*sdrplay_api_SwapRspDuoMode_t)(sdrplay_api_DeviceT *currDevice, sdrplay_api_DeviceParamsT **deviceParams, | ||
sdrplay_api_RspDuoModeT rspDuoMode, double sampleRate, sdrplay_api_TunerSelectT tuner, | ||
sdrplay_api_Bw_MHzT bwType, sdrplay_api_If_kHzT ifType, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel); | ||
|
||
// API function definitions | ||
#ifdef __cplusplus | ||
extern "C" | ||
{ | ||
#endif | ||
// Comman API function definitions | ||
sdrplay_api_ErrT sdrplay_api_Open(void); | ||
sdrplay_api_ErrT sdrplay_api_Close(void); | ||
sdrplay_api_ErrT sdrplay_api_ApiVersion(float *apiVer); | ||
sdrplay_api_ErrT sdrplay_api_LockDeviceApi(void); | ||
sdrplay_api_ErrT sdrplay_api_UnlockDeviceApi(void); | ||
sdrplay_api_ErrT sdrplay_api_GetDevices(sdrplay_api_DeviceT *devices, unsigned int *numDevs, unsigned int maxDevs); | ||
sdrplay_api_ErrT sdrplay_api_SelectDevice(sdrplay_api_DeviceT *device); | ||
sdrplay_api_ErrT sdrplay_api_ReleaseDevice(sdrplay_api_DeviceT *device); | ||
const char* sdrplay_api_GetErrorString(sdrplay_api_ErrT err); | ||
sdrplay_api_ErrorInfoT* sdrplay_api_GetLastError(sdrplay_api_DeviceT *device); | ||
sdrplay_api_ErrT sdrplay_api_DisableHeartbeat(void); // Must be called before sdrplay_api_SelectDevice() | ||
|
||
// Device API function definitions | ||
sdrplay_api_ErrT sdrplay_api_DebugEnable(HANDLE dev, sdrplay_api_DbgLvl_t enable); | ||
sdrplay_api_ErrT sdrplay_api_GetDeviceParams(HANDLE dev, sdrplay_api_DeviceParamsT **deviceParams); | ||
sdrplay_api_ErrT sdrplay_api_Init(HANDLE dev, sdrplay_api_CallbackFnsT *callbackFns, void *cbContext); | ||
sdrplay_api_ErrT sdrplay_api_Uninit(HANDLE dev); | ||
sdrplay_api_ErrT sdrplay_api_Update(HANDLE dev, sdrplay_api_TunerSelectT tuner, sdrplay_api_ReasonForUpdateT reasonForUpdate, sdrplay_api_ReasonForUpdateExtension1T reasonForUpdateExt1); | ||
sdrplay_api_ErrT sdrplay_api_SwapRspDuoActiveTuner(HANDLE dev, sdrplay_api_TunerSelectT *currentTuner, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel); | ||
sdrplay_api_ErrT sdrplay_api_SwapRspDuoDualTunerModeSampleRate(HANDLE dev, double *currentSampleRate); | ||
sdrplay_api_ErrT sdrplay_api_SwapRspDuoMode(sdrplay_api_DeviceT *currDevice, sdrplay_api_DeviceParamsT **deviceParams, | ||
sdrplay_api_RspDuoModeT rspDuoMode, double sampleRate, sdrplay_api_TunerSelectT tuner, | ||
sdrplay_api_Bw_MHzT bwType, sdrplay_api_If_kHzT ifType, sdrplay_api_RspDuo_AmPortSelectT tuner1AmPortSel); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif //SDRPLAY_API_H |
78 changes: 78 additions & 0 deletions
78
artifacts/sdrplay-api-headers/v3_07/sdrplay_api_callback.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#ifndef SDRPLAY_API_CALLBACK_H | ||
#define SDRPLAY_API_CALLBACK_H | ||
|
||
// Event callback enums | ||
typedef enum | ||
{ | ||
sdrplay_api_Overload_Detected = 0, | ||
sdrplay_api_Overload_Corrected = 1, | ||
} sdrplay_api_PowerOverloadCbEventIdT; | ||
|
||
typedef enum | ||
{ | ||
sdrplay_api_MasterInitialised = 0, | ||
sdrplay_api_SlaveAttached = 1, | ||
sdrplay_api_SlaveDetached = 2, | ||
sdrplay_api_SlaveInitialised = 3, | ||
sdrplay_api_SlaveUninitialised = 4, | ||
sdrplay_api_MasterDllDisappeared = 5, | ||
sdrplay_api_SlaveDllDisappeared = 6, | ||
} sdrplay_api_RspDuoModeCbEventIdT; | ||
|
||
typedef enum | ||
{ | ||
sdrplay_api_GainChange = 0, | ||
sdrplay_api_PowerOverloadChange = 1, | ||
sdrplay_api_DeviceRemoved = 2, | ||
sdrplay_api_RspDuoModeChange = 3, | ||
} sdrplay_api_EventT; | ||
|
||
// Event callback parameter structs | ||
typedef struct | ||
{ | ||
unsigned int gRdB; | ||
unsigned int lnaGRdB; | ||
double currGain; | ||
} sdrplay_api_GainCbParamT; | ||
|
||
typedef struct | ||
{ | ||
sdrplay_api_PowerOverloadCbEventIdT powerOverloadChangeType; | ||
} sdrplay_api_PowerOverloadCbParamT; | ||
|
||
typedef struct | ||
{ | ||
sdrplay_api_RspDuoModeCbEventIdT modeChangeType; | ||
} sdrplay_api_RspDuoModeCbParamT; | ||
|
||
// Event parameters overlay | ||
typedef union | ||
{ | ||
sdrplay_api_GainCbParamT gainParams; | ||
sdrplay_api_PowerOverloadCbParamT powerOverloadParams; | ||
sdrplay_api_RspDuoModeCbParamT rspDuoModeParams; | ||
} sdrplay_api_EventParamsT; | ||
|
||
// Stream callback parameter structs | ||
typedef struct | ||
{ | ||
unsigned int firstSampleNum; | ||
int grChanged; | ||
int rfChanged; | ||
int fsChanged; | ||
unsigned int numSamples; | ||
} sdrplay_api_StreamCbParamsT; | ||
|
||
// Callback function prototypes | ||
typedef void (*sdrplay_api_StreamCallback_t)(short *xi, short *xq, sdrplay_api_StreamCbParamsT *params, unsigned int numSamples, unsigned int reset, void *cbContext); | ||
typedef void (*sdrplay_api_EventCallback_t)(sdrplay_api_EventT eventId, sdrplay_api_TunerSelectT tuner, sdrplay_api_EventParamsT *params, void *cbContext); | ||
|
||
// Callback function struct | ||
typedef struct | ||
{ | ||
sdrplay_api_StreamCallback_t StreamACbFn; | ||
sdrplay_api_StreamCallback_t StreamBCbFn; | ||
sdrplay_api_EventCallback_t EventCbFn; | ||
} sdrplay_api_CallbackFnsT; | ||
|
||
#endif //SDRPLAY_API_CALLBACK_H |
Oops, something went wrong.