# API compatibility report for the libairspyhf-dev library between 1.0-1 and 1.1.5-1 versions on x86_64

Binary
Compatibility Source
Compatibility

## Test Info

Library Name | libairspyhf-dev
Version #1 | 1.0-1
Version #2 | 1.1.5-1
Arch | x86_64
GCC Version | 7
Subject | Binary Compatibility

## Test Results

Total Header Files | 3
Total Libraries | 1
Total Symbols / Types | 19 / 24
Compatibility | 94.7%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 7
Removed Symbols | High | 0
Problems with Data Types | High | 0
Medium | 2
Low | 5
Problems with Symbols | High | 0
Medium | 0
Low | 0
Problems with Constants | Low | 7
Other Changes in Constants | - | 10

## Added Symbols 7

airspyhf.h, libairspyhf.so.1.1.5
airspyhf_set_hf_agc ( airspyhf_device_t* device, uint8_t flag )
airspyhf_set_hf_agc_threshold ( airspyhf_device_t* device, uint8_t flag )
airspyhf_set_hf_att ( airspyhf_device_t* device, uint8_t value )
airspyhf_set_hf_lna ( airspyhf_device_t* device, uint8_t flag )
airspyhf_set_lib_dsp ( airspyhf_device_t* device, uint8_t const flag )
airspyhf_set_optimal_iq_correction_point ( airspyhf_device_t* device, float w )
iqbalancer.h, libairspyhf.so.1.1.5
iq_balancer_set_optimal_point ( iq_balancer_t* iq_balancer, float w )
to the top

## Problems with Data Types, Medium Severity 2

iqbalancer.h
[+] struct _iq_balancer_t 2

| Change | Effect
--- | --- | ---
1 | Field fail has been added at the middle position of this structural type. | 1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
2 | The relative position of field iampavg has been changed from 7 to 8. | Applications will access incorrect memory when attempting to access this field.

[+] affected symbols: 2 (10.5%)
iq_balancer_init ( iq_balancer_t* iq_balancer )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
iq_balancer_process ( iq_balancer_t* iq_balancer, struct airspyhf_complex_float_t* iq, int length )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
to the top

## Problems with Data Types, Low Severity 5

iqbalancer.h
[+] struct _iq_balancer_t 5

| Change | Effect
--- | --- | ---
1 | Field qampavg_post has been added to this type. | 1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
2 | Field qampavg_pre has been added to this type. | 1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
3 | Size of this type has been changed from 48 bytes to 72 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
4 | Field qampavg has been renamed to gain_alpha. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.
5 | Field step_factor has been renamed to optimal_bin. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 2 (10.5%)
iq_balancer_init ( iq_balancer_t* iq_balancer )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
iq_balancer_process ( iq_balancer_t* iq_balancer, struct airspyhf_complex_float_t* iq, int length )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
to the top

## Problems with Constants, Low Severity 7

airspyhf_commands.h
[+] AIRSPYHF_CMD_MAX

| Change | Effect
--- | --- | ---
1 | The value of constant AIRSPYHF_CMD_MAX has been changed from (9) to (13). | Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.

iqbalancer.h
[+] DCAlpha

| Change | Effect
--- | --- | ---
1 | The constant DCAlpha with value 2.68744225e-5f has been removed. | The value of this constant may no longer be properly handled by new-version library functions.

[+] FFTBins

| Change | Effect
--- | --- | ---
1 | The value of constant FFTBins has been changed from 128 to 512. | Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.

[+] GainAlpha

| Change | Effect
--- | --- | ---
1 | The constant GainAlpha with value 0.01f has been removed. | The value of this constant may no longer be properly handled by new-version library functions.

[+] MaximumStep

| Change | Effect
--- | --- | ---
1 | The value of constant MaximumStep has been changed from 1e-3f to 1e-2f. | Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.

[+] MaxPhaseCorrection

| Change | Effect
--- | --- | ---
1 | The value of constant MaxPhaseCorrection has been changed from 0.1f to 0.2f. | Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.

[+] MinimumStep

| Change | Effect
--- | --- | ---
1 | The value of constant MinimumStep has been changed from 1e-5f to 1e-7f. | Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.

to the top

## Other Changes in Constants 10

iqbalancer.h
[+] AlphaContributionScale

| Change | Effect
--- | --- | ---
1 | The constant AlphaContributionScale with value 0.01f has been added. | No effect.

[+] BalanceTimeConst

| Change | Effect
--- | --- | ---
1 | The constant BalanceTimeConst with value 2.5e-6f has been added. | No effect.

[+] BinsToOptimize

| Change | Effect
--- | --- | ---
1 | The constant BinsToOptimize with value 20 has been added. | No effect.

[+] BinsToSkip

| Change | Effect
--- | --- | ---
1 | The constant BinsToSkip with value 10 has been added. | No effect.

[+] BoostFactor

| Change | Effect
--- | --- | ---
1 | The constant BoostFactor with value 10000 has been added. | No effect.

[+] DcTimeConst

| Change | Effect
--- | --- | ---
1 | The constant DcTimeConst with value 1e-5f has been added. | No effect.

[+] InitialGainAlpha

| Change | Effect
--- | --- | ---
1 | The constant InitialGainAlpha with value 0.01f has been added. | No effect.

[+] MaxAlphaContribution

| Change | Effect
--- | --- | ---
1 | The constant MaxAlphaContribution with value 1e-3f has been added. | No effect.

[+] MaximumFail

| Change | Effect
--- | --- | ---
1 | The constant MaximumFail with value 10 has been added. | No effect.

[+] MinAlphaContribution

| Change | Effect
--- | --- | ---
1 | The constant MinAlphaContribution with value 1e-8f has been added. | No effect.

to the top

## Header Files 3

airspyhf.h
airspyhf_commands.h
iqbalancer.h
to the top

## Libraries 1

libairspyhf.so.1.0.0
to the top

## Test Info

Library Name | libairspyhf-dev
Version #1 | 1.0-1
Version #2 | 1.1.5-1
Arch | x86_64
Subject | Source Compatibility

## Test Results

Total Header Files | 3
Total Libraries | 1
Total Symbols / Types | 19 / 24
Compatibility | 89.5%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 7
Removed Symbols | High | 0
Problems with Data Types | High | 2
Medium | 0
Low | 3
Problems with Symbols | High | 0
Medium | 0
Low | 0
Problems with Constants | Low | 10
Other Changes in Data Types | - | 1
Other Changes in Constants | - | 11

## Added Symbols 7

airspyhf.h
airspyhf_set_hf_agc ( airspyhf_device_t* device, uint8_t flag )
airspyhf_set_hf_agc_threshold ( airspyhf_device_t* device, uint8_t flag )
airspyhf_set_hf_att ( airspyhf_device_t* device, uint8_t value )
airspyhf_set_hf_lna ( airspyhf_device_t* device, uint8_t flag )
airspyhf_set_lib_dsp ( airspyhf_device_t* device, uint8_t const flag )
airspyhf_set_optimal_iq_correction_point ( airspyhf_device_t* device, float w )
iqbalancer.h
iq_balancer_set_optimal_point ( iq_balancer_t* iq_balancer, float w )
to the top

## Problems with Data Types, High Severity 2

iqbalancer.h
[+] struct _iq_balancer_t 2

| Change | Effect
--- | --- | ---
1 | Field qampavg has been renamed to gain_alpha. | Recompilation of a client program may be broken with the error message: struct _iq_balancer_t has no member named qampavg.
2 | Field step_factor has been renamed to optimal_bin. | Recompilation of a client program may be broken with the error message: struct _iq_balancer_t has no member named step_factor.

[+] affected symbols: 2 (10.5%)
iq_balancer_init ( iq_balancer_t* iq_balancer )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
iq_balancer_process ( iq_balancer_t* iq_balancer, struct airspyhf_complex_float_t* iq, int length )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
to the top

## Problems with Data Types, Low Severity 3

iqbalancer.h
[+] struct _iq_balancer_t 3

| Change | Effect
--- | --- | ---
1 | Field fail has been added to this type. | This field will not be initialized or used by old client applications.
2 | Field qampavg_post has been added to this type. | This field will not be initialized or used by old client applications.
3 | Field qampavg_pre has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 2 (10.5%)
iq_balancer_init ( iq_balancer_t* iq_balancer )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
iq_balancer_process ( iq_balancer_t* iq_balancer, struct airspyhf_complex_float_t* iq, int length )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
to the top

## Problems with Constants, Low Severity 10

airspyhf.h
[+] AIRSPYHF_VER_MINOR

| Change | Effect
--- | --- | ---
1 | The value of constant AIRSPYHF_VER_MINOR has been changed from 0 to 1. | Recompilation of a client program may be broken.

[+] AIRSPYHF_VER_REVISION

| Change | Effect
--- | --- | ---
1 | The value of constant AIRSPYHF_VER_REVISION has been changed from 0 to 5. | Recompilation of a client program may be broken.

[+] AIRSPYHF_VERSION

| Change | Effect
--- | --- | ---
1 | The value of constant AIRSPYHF_VERSION has been changed from "1.0.0" to "1.1.5". | Recompilation of a client program may be broken.

airspyhf_commands.h
[+] AIRSPYHF_CMD_MAX

| Change | Effect
--- | --- | ---
1 | The value of constant AIRSPYHF_CMD_MAX has been changed from (9) to (13). | Recompilation of a client program may be broken.

iqbalancer.h
[+] DCAlpha

| Change | Effect
--- | --- | ---
1 | The constant DCAlpha with value 2.68744225e-5f has been removed. | Recompilation of a client program may be broken.

[+] FFTBins

| Change | Effect
--- | --- | ---
1 | The value of constant FFTBins has been changed from 128 to 512. | Recompilation of a client program may be broken.

[+] GainAlpha

| Change | Effect
--- | --- | ---
1 | The constant GainAlpha with value 0.01f has been removed. | Recompilation of a client program may be broken.

[+] MaximumStep

| Change | Effect
--- | --- | ---
1 | The value of constant MaximumStep has been changed from 1e-3f to 1e-2f. | Recompilation of a client program may be broken.

[+] MaxPhaseCorrection

| Change | Effect
--- | --- | ---
1 | The value of constant MaxPhaseCorrection has been changed from 0.1f to 0.2f. | Recompilation of a client program may be broken.

[+] MinimumStep

| Change | Effect
--- | --- | ---
1 | The value of constant MinimumStep has been changed from 1e-5f to 1e-7f. | Recompilation of a client program may be broken.

to the top

## Other Changes in Data Types 1

iqbalancer.h
[+] struct _iq_balancer_t 1

| Change | Effect
--- | --- | ---
1 | The relative position of field iampavg has been changed from 7 to 8. | No effect.

[+] affected symbols: 2 (10.5%)
iq_balancer_init ( iq_balancer_t* iq_balancer )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
iq_balancer_process ( iq_balancer_t* iq_balancer, struct airspyhf_complex_float_t* iq, int length )
1st parameter 'iq_balancer' (pointer) has base type 'struct _iq_balancer_t'.
to the top

## Other Changes in Constants 11

airspyhf.h
[+] MAX_VERSION_STRING_SIZE

| Change | Effect
--- | --- | ---
1 | The constant MAX_VERSION_STRING_SIZE with value (64) has been added. | No effect.

iqbalancer.h
[+] AlphaContributionScale

| Change | Effect
--- | --- | ---
1 | The constant AlphaContributionScale with value 0.01f has been added. | No effect.

[+] BalanceTimeConst

| Change | Effect
--- | --- | ---
1 | The constant BalanceTimeConst with value 2.5e-6f has been added. | No effect.

[+] BinsToOptimize

| Change | Effect
--- | --- | ---
1 | The constant BinsToOptimize with value 20 has been added. | No effect.

[+] BinsToSkip

| Change | Effect
--- | --- | ---
1 | The constant BinsToSkip with value 10 has been added. | No effect.

[+] BoostFactor

| Change | Effect
--- | --- | ---
1 | The constant BoostFactor with value 10000 has been added. | No effect.

[+] DcTimeConst

| Change | Effect
--- | --- | ---
1 | The constant DcTimeConst with value 1e-5f has been added. | No effect.

[+] InitialGainAlpha

| Change | Effect
--- | --- | ---
1 | The constant InitialGainAlpha with value 0.01f has been added. | No effect.

[+] MaxAlphaContribution

| Change | Effect
--- | --- | ---
1 | The constant MaxAlphaContribution with value 1e-3f has been added. | No effect.

[+] MaximumFail

| Change | Effect
--- | --- | ---
1 | The constant MaximumFail with value 10 has been added. | No effect.

[+] MinAlphaContribution

| Change | Effect
--- | --- | ---
1 | The constant MinAlphaContribution with value 1e-8f has been added. | No effect.

to the top

## Header Files 3

airspyhf.h
airspyhf_commands.h
iqbalancer.h
to the top

## Libraries 1

libairspyhf.so.1.0.0
to the top