Porównaj commity
130 Commity
Autor | SHA1 | Data |
---|---|---|
PianetaRadio | 8fb790c1eb | |
PianetaRadio | 8fa52c8273 | |
PianetaRadio | f51d68fc0e | |
PianetaRadio | 29682cbad5 | |
PianetaRadio | 882558b523 | |
PianetaRadio | 0fdc71f98d | |
PianetaRadio | 146207cd98 | |
PianetaRadio | 17a3cf614e | |
PianetaRadio | 46cad6b5bc | |
PianetaRadio | 1415cad921 | |
PianetaRadio | ceccbe2b92 | |
PianetaRadio | a258c1fe13 | |
PianetaRadio | df7e3bdcec | |
PianetaRadio | b8bead15f3 | |
PianetaRadio | 69d3995653 | |
PianetaRadio | f4ea500269 | |
PianetaRadio | 778761a1a8 | |
PianetaRadio | 0ae620b732 | |
PianetaRadio | 7909e2a0de | |
PianetaRadio | 2043bb7b2a | |
PianetaRadio | 0e932dd3c5 | |
PianetaRadio | 8781583cd9 | |
PianetaRadio | 7c4fad92a5 | |
PianetaRadio | ef30ab50eb | |
PianetaRadio | 97f2b54ab8 | |
PianetaRadio | a2fda861ce | |
PianetaRadio | c17bb04fd7 | |
PianetaRadio | c2ea381757 | |
PianetaRadio | e91f5aae09 | |
PianetaRadio | 6d2356a04d | |
PianetaRadio | d9a15a9826 | |
PianetaRadio | 18994840a5 | |
PianetaRadio | b8ce26670e | |
PianetaRadio | 068922c6b6 | |
PianetaRadio | 2c3b14e2d0 | |
PianetaRadio | 7fe09861b4 | |
PianetaRadio | c22d15ea35 | |
PianetaRadio | 8ee38b8b3a | |
PianetaRadio | 0689460b40 | |
PianetaRadio | 94a79d7ff1 | |
PianetaRadio | e9a5613888 | |
PianetaRadio | a055937a57 | |
PianetaRadio | 8c4d24c5e2 | |
PianetaRadio | d8c9bf1594 | |
PianetaRadio | 1cbbc555af | |
PianetaRadio | 0e19ee12cd | |
PianetaRadio | d2db142e34 | |
PianetaRadio | 4de9e1647b | |
PianetaRadio | dfa37bedec | |
PianetaRadio | 724a3dc356 | |
PianetaRadio | e642a6f545 | |
PianetaRadio | 11ce37a11e | |
PianetaRadio | 7fb5e4ccc4 | |
PianetaRadio | 2013e2db32 | |
PianetaRadio | a362556e88 | |
PianetaRadio | 52bc03e048 | |
PianetaRadio | 79453ced7b | |
PianetaRadio | 31dcbc3255 | |
PianetaRadio | bf2b4455ae | |
PianetaRadio | 1273184597 | |
PianetaRadio | 58b2875032 | |
PianetaRadio | 4de36f3ee5 | |
PianetaRadio | e3504ea7f2 | |
PianetaRadio | df4c69092b | |
PianetaRadio | 011043816c | |
PianetaRadio | 8f17755b6e | |
PianetaRadio | d4fdccd0ff | |
PianetaRadio | a028226807 | |
PianetaRadio | 822b3fa482 | |
PianetaRadio | cf2709e6f9 | |
PianetaRadio | 8cb9db1651 | |
PianetaRadio | 5ac75cee7c | |
PianetaRadio | 4b8ea4161c | |
PianetaRadio | 81f9ddec86 | |
PianetaRadio | 888c4bb230 | |
PianetaRadio | 47eede5866 | |
PianetaRadio | 3f8db6aa0f | |
PianetaRadio | cb80d59018 | |
PianetaRadio | 910f27bb04 | |
PianetaRadio | 664b504a71 | |
PianetaRadio | 600090bece | |
PianetaRadio | c1b7b8cdc5 | |
PianetaRadio | 8a0c0ee9a1 | |
PianetaRadio | 53d0e97a3a | |
PianetaRadio | 57da1330e8 | |
PianetaRadio | f749ee050b | |
PianetaRadio | b69f5c58ad | |
PianetaRadio | af6c3b8eff | |
PianetaRadio | 737df6c764 | |
PianetaRadio | 41ba676d4f | |
PianetaRadio | ea9830a376 | |
PianetaRadio | e29b2d6ea5 | |
PianetaRadio | 2eef4f72e5 | |
PianetaRadio | ba02bc15d8 | |
PianetaRadio | 60ed269bfb | |
PianetaRadio | 846293a019 | |
PianetaRadio | 10d884a966 | |
PianetaRadio | 2585ef2780 | |
PianetaRadio | aa150609f6 | |
PianetaRadio | f565722a7f | |
PianetaRadio | b254abbfe0 | |
PianetaRadio | 3bd4712008 | |
PianetaRadio | 278c884589 | |
PianetaRadio | 462727c7fc | |
PianetaRadio | 0f0c46126a | |
PianetaRadio | 9486e3d17f | |
PianetaRadio | 150c6bf586 | |
PianetaRadio | 3bacb30eaa | |
PianetaRadio | 6907aa68e9 | |
PianetaRadio | ac85aefff8 | |
PianetaRadio | 2e7641f8f4 | |
PianetaRadio | 7539f8d9c6 | |
PianetaRadio | fa5a12f0f3 | |
PianetaRadio | c28c1dbb35 | |
PianetaRadio | d0d145d839 | |
PianetaRadio | f7c61e8484 | |
PianetaRadio | fe51858e16 | |
PianetaRadio | 41d79b0d05 | |
PianetaRadio | 7b640fffb4 | |
PianetaRadio | 25e13f79d4 | |
PianetaRadio | c0d66fba54 | |
PianetaRadio | eb44e9c040 | |
PianetaRadio | 9baf4c7a2f | |
PianetaRadio | a6aa5c4787 | |
PianetaRadio | da8fdce9d3 | |
PianetaRadio | 034a0788a7 | |
PianetaRadio | 55ffcb86d7 | |
PianetaRadio | 07b5a29765 | |
PianetaRadio | 1c872253c1 | |
PianetaRadio | eb528fe85e |
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=CatRadio
|
||||
Comment=Radio Control Software
|
||||
Icon=/home/pi/CatRadio/catradio.png
|
||||
Exec=/home/pi/CatRadio/CatRadio
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Encoding=UTF-8
|
||||
Categories=HamRadio;
|
13
CatRadio.pro
|
@ -1,4 +1,5 @@
|
|||
QT += core gui
|
||||
QT += serialport
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
|
@ -9,7 +10,9 @@ CONFIG += c++11
|
|||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
SOURCES += \
|
||||
dialogcommand.cpp \
|
||||
dialogconfig.cpp \
|
||||
dialogradioinfo.cpp \
|
||||
dialogsetup.cpp \
|
||||
guidata.cpp \
|
||||
main.cpp \
|
||||
|
@ -22,7 +25,9 @@ SOURCES += \
|
|||
vfodisplay.cpp
|
||||
|
||||
HEADERS += \
|
||||
dialogcommand.h \
|
||||
dialogconfig.h \
|
||||
dialogradioinfo.h \
|
||||
dialogsetup.h \
|
||||
guidata.h \
|
||||
mainwindow.h \
|
||||
|
@ -34,7 +39,9 @@ HEADERS += \
|
|||
vfodisplay.h
|
||||
|
||||
FORMS += \
|
||||
dialogcommand.ui \
|
||||
dialogconfig.ui \
|
||||
dialogradioinfo.ui \
|
||||
dialogsetup.ui \
|
||||
mainwindow.ui
|
||||
|
||||
|
@ -46,7 +53,11 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
|||
LIBS += -L$$PWD/hamlib/ -lhamlib
|
||||
INCLUDEPATH += $$PWD/hamlib
|
||||
|
||||
VERSION = 1.0.0
|
||||
# RESOURCES += theme/breeze.qrc
|
||||
RESOURCES += qdarkstyle/dark/darkstyle.qrc
|
||||
# RESOURCES += qdarkstyle/light/lightstyle.qrc
|
||||
|
||||
VERSION = 1.4.1
|
||||
|
||||
RC_ICONS = catradio.ico
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 5.0.1, 2022-02-15T23:49:28. -->
|
||||
<!-- Written by QtCreator 6.0.2, 2022-11-19T20:47:40. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
@ -8,7 +8,7 @@
|
|||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
<value type="qlonglong">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
|
@ -28,7 +28,7 @@
|
|||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
|
@ -85,22 +85,25 @@
|
|||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="CppEditor.QuickFix">
|
||||
<value type="bool" key="UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.1.3 MinGW 64-bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.1.3 MinGW 64-bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.613.win64_mingw81_kit</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.4 MinGW 64-bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.4 MinGW 64-bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.624.win64_mingw_kit</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -112,7 +115,7 @@
|
|||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
|
@ -123,7 +126,7 @@
|
|||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
|
@ -131,14 +134,15 @@
|
|||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -150,7 +154,7 @@
|
|||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
|
@ -161,7 +165,7 @@
|
|||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
|
@ -169,6 +173,7 @@
|
|||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
|
@ -177,8 +182,8 @@
|
|||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -190,7 +195,7 @@
|
|||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
|
@ -201,7 +206,7 @@
|
|||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
|
@ -209,6 +214,7 @@
|
|||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
|
@ -216,10 +222,10 @@
|
|||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
|
@ -229,7 +235,7 @@
|
|||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
|
@ -237,182 +243,22 @@
|
|||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Johnny/Documents/QT/CatRadio/CatRadio.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/Johnny/Documents/QT/CatRadio/CatRadio.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">CatRadio2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Johnny/Documents/QT/CatRadio_dark/CatRadio.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/Johnny/Documents/QT/CatRadio_dark/CatRadio.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_1_3_MinGW_64_bit-Release</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_6_2_4_MinGW_64_bit-Release</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 MinGW 32-bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 MinGW 32-bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.win32_mingw81_kit</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_5_15_2_MinGW_32_bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_5_15_2_MinGW_32_bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_5_15_2_MinGW_32_bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_5_15_2_MinGW_32_bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Johnny\Documents\QT\build-CatRadio-Desktop_Qt_5_15_2_MinGW_32_bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Johnny/Documents/QT/build-CatRadio-Desktop_Qt_5_15_2_MinGW_32_bit-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Johnny/Documents/QT/CatRadio/CatRadio.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/Johnny/Documents/QT/CatRadio/CatRadio.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">2</value>
|
||||
<value type="qlonglong">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
|
|
|
@ -2,6 +2,54 @@ CatRadio
|
|||
|
||||
(+ New, * Updated, - Removed)
|
||||
|
||||
1.4.1 - 2024-xx-xx
|
||||
+ CW memory keyer
|
||||
+ Check hamlib version on startup
|
||||
* Bug fix: IF shift
|
||||
|
||||
1.4.0 - 2024-03-17
|
||||
+ Auto Connect option
|
||||
+ Auto Power-on option
|
||||
+ High SWR indicator
|
||||
+ Meter peak hold indicator
|
||||
+ Debug mode
|
||||
* Updated serial port configuration
|
||||
* Bug fix: NR level
|
||||
* Bug fix: Repeater shift
|
||||
* Bug fix: Power status
|
||||
* Bug fix: COM port list
|
||||
* Updated to library Hamlib 4.6 beta
|
||||
|
||||
1.3.0 - 2022-11-24
|
||||
+ Radio info
|
||||
+ Dark theme
|
||||
+ MIC levels
|
||||
* Bug fix: Sort bandwidth list
|
||||
* General GUI and code improvements
|
||||
+ NB2
|
||||
* Bug fix: Sliders
|
||||
+ Sub meter COMP, ID, VDD
|
||||
+ Band stack for supported Yaesu radios
|
||||
* Updated to library Hamlib 4.5
|
||||
+ Save/restore window settings
|
||||
|
||||
1.2.0 - 2022-04-13
|
||||
+ VFO Display on Sub VFO
|
||||
+ Clarifier RIT/XIT commands
|
||||
+ Up/Down VFO buttons
|
||||
+ Repeater shift offset
|
||||
+ DCS code and squelch
|
||||
+ COM port list in the Radio Config Dialog
|
||||
* Improved Radio Config Dialog
|
||||
* Bug fix: Quick Split button
|
||||
* Bug fix: address the proper VFO red during Tx
|
||||
* Bug fix: IF shift slider now correctly updated
|
||||
* Bug fix: CW/FM tab autofocus freeze
|
||||
|
||||
1.1.1 - 2022-03-19
|
||||
* VFO operations: check rig caps before perform VFO operations
|
||||
* Sub VFO: improve sub VFO functions using targetable_vfo caps
|
||||
|
||||
1.1.0 - 2022-03-13
|
||||
+ AF Gain and Squelch slider
|
||||
+ Tab with CW and FM functions
|
||||
|
@ -10,12 +58,11 @@ CatRadio
|
|||
+ Red color VFO during transmit
|
||||
* SWR meter with log scale
|
||||
* CI-V Address entry in hex
|
||||
* Bug correction: RF Gain slider now correctly updated
|
||||
* Bug correction: noise filters init settings now correctly updated
|
||||
* Bug correction: subVFO mode
|
||||
* Bug correction: VFO dial now with pointer tracking
|
||||
* Bug fix: RF Gain slider now correctly updated
|
||||
* Bug fix: noise filters init settings now correctly updated
|
||||
* Bug fix: subVFO mode
|
||||
* Bug fix: VFO dial now with pointer tracking
|
||||
* Cosmetic adjustement to fit the font for different SO compiler
|
||||
|
||||
|
||||
1.0.0 - 2022-02-13
|
||||
First release
|
|
@ -1,3 +1,8 @@
|
|||
# CatRadio
|
||||
[![GitHub all releases](https://img.shields.io/github/downloads/PianetaRadio/CatRadio/total)](https://img.shields.io/github/downloads/PianetaRadio/CatRadio/total)
|
||||
[![GitHub release (latest by date)](https://img.shields.io/github/downloads/PianetaRadio/CatRadio/latest/total)](https://github.com/PianetaRadio/CatRadio/releases)
|
||||
|
||||
Radio control software<br/>
|
||||
More info https://www.pianetaradio.it/blog/catradio/
|
||||
|
||||
![CatRadio](https://www.pianetaradio.it/wp-content/uploads/2022/04/catradio_1.2.0_01.png)
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
/**
|
||||
** This file is part of the CatRadio project.
|
||||
** Copyright 2022 Gianfranco Sordetti IZ8EWD <iz8ewd@pianetaradio.it>.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation, either version 3 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** This program is distributed in the hope that it will be useful,
|
||||
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
** GNU General Public License for more details.
|
||||
**
|
||||
** You should have received a copy of the GNU General Public License
|
||||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
**/
|
||||
|
||||
|
||||
#include "dialogcommand.h"
|
||||
#include "ui_dialogcommand.h"
|
||||
|
||||
#include "rig.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
|
||||
DialogCommand::DialogCommand(RIG *rig, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::DialogCommand)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
my_rig = rig;
|
||||
int backend = RIG_BACKEND_NUM(my_rig->caps->rig_model);
|
||||
|
||||
if (backend == RIG_YAESU || backend == RIG_KENWOOD) ui->radioButton_yaesu->setChecked(true);
|
||||
else if (backend == RIG_ICOM) ui->radioButton_icom->setChecked(true);
|
||||
}
|
||||
|
||||
DialogCommand::~DialogCommand()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DialogCommand::on_pushButton_send_clicked()
|
||||
{
|
||||
bool hex = false; //Flag for Hex command
|
||||
|
||||
QString sendCmdS = ui->lineEdit_commandSend->text();
|
||||
QByteArray sendCmdA;
|
||||
if (sendCmdS.isEmpty()) return;
|
||||
if (sendCmdS.contains("0x", Qt::CaseInsensitive)) //Hex input
|
||||
{
|
||||
sendCmdS = sendCmdS.mid(2);
|
||||
sendCmdA = QByteArray::fromHex(sendCmdS.toLatin1());
|
||||
hex = true;
|
||||
}
|
||||
else sendCmdA = sendCmdS.toUtf8(); //Char input
|
||||
|
||||
QByteArray termCmdA;
|
||||
termCmdA.resize(1);
|
||||
if (ui->radioButton_yaesu->isChecked()) termCmdA[0] = ';';
|
||||
else if (ui->radioButton_icom->isChecked()) termCmdA[0] = 0xfd;
|
||||
else if (ui->radioButton_CR->isChecked()) termCmdA[0] = 0x0d;
|
||||
else if (ui->radioButton_LF->isChecked()) termCmdA[0] = 0x0a;
|
||||
else termCmdA[0] = '\0';
|
||||
unsigned char *termCmd = (unsigned char*)termCmdA.data();
|
||||
|
||||
sendCmdA.append(termCmdA);
|
||||
unsigned char *sendCmd = (unsigned char*)sendCmdA.data();
|
||||
int sendCmdLen = strlen((char*)sendCmd);
|
||||
|
||||
unsigned char rcvdCmd[200];
|
||||
int rcvdCmdLen = sizeof(rcvdCmd);
|
||||
|
||||
int retLen = rig_send_raw(my_rig, sendCmd, sendCmdLen, rcvdCmd, rcvdCmdLen, termCmd);
|
||||
|
||||
if (retLen > 0)
|
||||
{
|
||||
QString rcvdCmdS;
|
||||
QByteArray rcvdCmdA(QByteArray::fromRawData((char *)rcvdCmd, retLen));
|
||||
if (hex) rcvdCmdS = rcvdCmdA.toHex();
|
||||
else rcvdCmdS = rcvdCmdA;
|
||||
ui->lineEdit_receive->setText(rcvdCmdS);
|
||||
}
|
||||
|
||||
//int rig_send_raw(rig, const unsigned char *send, int send_len, unsigned char *reply, int reply_len, unsigned char *term);
|
||||
//send contains the raw command data
|
||||
//send_len is the # of bytes to send
|
||||
//If reply is NULL no answer is expected
|
||||
//reply should be as long as need for any reply
|
||||
//term is the command termination char -- could be semicolon, CR, or 0xfd for Icom rigs
|
||||
}
|
||||
|
||||
void DialogCommand::on_pushButton_close_clicked()
|
||||
{
|
||||
this->close();
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
** This file is part of the CatRadio project.
|
||||
** Copyright 2022 Gianfranco Sordetti IZ8EWD <iz8ewd@pianetaradio.it>.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation, either version 3 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** This program is distributed in the hope that it will be useful,
|
||||
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
** GNU General Public License for more details.
|
||||
**
|
||||
** You should have received a copy of the GNU General Public License
|
||||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
**/
|
||||
|
||||
|
||||
#ifndef DIALOGCOMMAND_H
|
||||
#define DIALOGCOMMAND_H
|
||||
|
||||
#include "rig.h"
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class DialogCommand;
|
||||
}
|
||||
|
||||
class DialogCommand : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogCommand(RIG *rig, QWidget *parent = nullptr);
|
||||
~DialogCommand();
|
||||
|
||||
private slots:
|
||||
void on_pushButton_close_clicked();
|
||||
|
||||
void on_pushButton_send_clicked();
|
||||
|
||||
private:
|
||||
Ui::DialogCommand *ui;
|
||||
|
||||
RIG *my_rig;
|
||||
};
|
||||
|
||||
#endif // DIALOGCOMMAND_H
|
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogCommand</class>
|
||||
<widget class="QDialog" name="DialogCommand">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>140</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Command</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="0,0,0,0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_commandSend">
|
||||
<property name="text">
|
||||
<string>Command Send</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEdit_commandSend</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_received">
|
||||
<property name="text">
|
||||
<string>Received</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEdit_receive</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QPushButton" name="pushButton_send">
|
||||
<property name="text">
|
||||
<string>Send</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QRadioButton" name="radioButton_LF">
|
||||
<property name="text">
|
||||
<string>LF</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="lineEdit_commandSend"/>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QPushButton" name="pushButton_close">
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QRadioButton" name="radioButton_CR">
|
||||
<property name="text">
|
||||
<string>CR</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_receive">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QRadioButton" name="radioButton_icom">
|
||||
<property name="text">
|
||||
<string>Icom 0xfd</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_yaesu">
|
||||
<property name="text">
|
||||
<string>Yaesu/Kwd ;</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
284
dialogconfig.cpp
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
** This file is part of the CatRadio project.
|
||||
** Copyright 2022 Gianfranco Sordetti IZ8EWD <iz8ewd@pianetaradio.it>.
|
||||
** Copyright 2022-2024 Gianfranco Sordetti IZ8EWD <iz8ewd@pianetaradio.it>.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
|
@ -23,6 +23,8 @@
|
|||
#include <QSettings>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QSerialPortInfo>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "rigdata.h"
|
||||
|
||||
|
@ -33,7 +35,7 @@ extern rigConnect rigCom;
|
|||
|
||||
|
||||
QString rigListFile = "rig.lst"; //Text file containing the list of rig supported by hamlib
|
||||
QFile file(rigListFile);
|
||||
QFile rigFile(rigListFile);
|
||||
|
||||
|
||||
DialogConfig::DialogConfig(QWidget *parent) :
|
||||
|
@ -43,24 +45,47 @@ DialogConfig::DialogConfig(QWidget *parent) :
|
|||
ui->setupUi(this);
|
||||
|
||||
//* rigModel comboBox
|
||||
if (!file.exists()) //Create file rig.lst if not exists
|
||||
if (!rigFile.exists()) //Create file rig.lst if not exists
|
||||
{
|
||||
file.open(QIODevice::ReadWrite);
|
||||
rig_load_all_backends(); //Load all backends information
|
||||
rig_list_foreach(printRigList, NULL); //Create the rig list
|
||||
createRigFile();
|
||||
}
|
||||
else file.open(QIODevice::ReadOnly); //Open file rig.lst and populate the combobox
|
||||
file.seek(0);
|
||||
ui->comboBox_rigModel->clear();
|
||||
while(!file.atEnd())
|
||||
else rigFile.open(QIODevice::ReadOnly); //Open file rig.lst and populate the combobox
|
||||
rigFile.seek(0);
|
||||
|
||||
QString versionFile = rigFile.readLine(); //Update rigFile if old version
|
||||
if (versionFile.trimmed() != hamlib_version)
|
||||
{
|
||||
QString line = file.readLine();
|
||||
rigFile.remove();
|
||||
createRigFile();
|
||||
rigFile.seek(0);
|
||||
rigFile.readLine();
|
||||
}
|
||||
|
||||
ui->comboBox_rigModel->clear();
|
||||
ui->comboBox_rigModel->addItem("");
|
||||
while(!rigFile.atEnd())
|
||||
{
|
||||
QString line = rigFile.readLine();
|
||||
ui->comboBox_rigModel->addItem(line.trimmed());
|
||||
}
|
||||
file.close();
|
||||
rigFile.close();
|
||||
|
||||
//* serialSpeed comboBox
|
||||
//* COM port
|
||||
ui->comboBox_comPort->clear();
|
||||
ui->comboBox_comPort->addItem("");
|
||||
foreach (const QSerialPortInfo &comPort, QSerialPortInfo::availablePorts()) //search available COM port
|
||||
{
|
||||
#ifdef Q_OS_WIN
|
||||
ui->comboBox_comPort->addItem(comPort.portName());
|
||||
#endif
|
||||
#ifdef Q_OS_LINUX
|
||||
ui->comboBox_comPort->addItem("/dev/"+comPort.portName());
|
||||
#endif
|
||||
}
|
||||
|
||||
//* serialSpeed
|
||||
ui->comboBox_serialSpeed->clear();
|
||||
ui->comboBox_serialSpeed->addItem("");
|
||||
ui->comboBox_serialSpeed->addItem("4800");
|
||||
ui->comboBox_serialSpeed->addItem("9600");
|
||||
ui->comboBox_serialSpeed->addItem("19200");
|
||||
|
@ -70,11 +95,22 @@ DialogConfig::DialogConfig(QWidget *parent) :
|
|||
|
||||
//* Update values in the GUI
|
||||
ui->comboBox_rigModel->setCurrentIndex(ui->comboBox_rigModel->findText(QString::number(rigCom.rigModel),Qt::MatchStartsWith));
|
||||
ui->lineEdit_RigPath->setText(rigCom.rigPort);
|
||||
ui->comboBox_serialSpeed->setCurrentText(QString::number(rigCom.serialSpeed));
|
||||
if (rigCom.civAddr) ui->lineEdit_civAddr->setText(QString::number(rigCom.civAddr,16));
|
||||
if (rigCom.netRigctl)
|
||||
{
|
||||
ui->checkBox_netRigctl->setChecked(rigCom.netRigctl);
|
||||
ui->lineEdit_ip->setText(rigCom.rigPort);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->comboBox_comPort->setCurrentText(rigCom.rigPort);
|
||||
ui->comboBox_serialSpeed->setCurrentText(QString::number(rigCom.serialSpeed));
|
||||
if (rigCom.civAddr) ui->lineEdit_civAddr->setText(QString::number(rigCom.civAddr,16));
|
||||
setDialogSerialConfig(rigCom.serialDataBits, rigCom.serialParity, rigCom.serialStopBits, rigCom.serialHandshake);
|
||||
}
|
||||
ui->spinBox_RefreshRate->setValue(rigCom.rigRefresh);
|
||||
ui->checkBox_fullPoll->setChecked(rigCom.fullPoll);
|
||||
ui->checkBox_autoConnect->setChecked(rigCom.autoConnect);
|
||||
ui->checkBox_autoPowerOn->setChecked(rigCom.autoPowerOn);
|
||||
}
|
||||
|
||||
DialogConfig::~DialogConfig()
|
||||
|
@ -82,36 +118,228 @@ DialogConfig::~DialogConfig()
|
|||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
int DialogConfig::findRigModel(QString rigModel)
|
||||
{
|
||||
QRegularExpression regexp("[0-9]+");
|
||||
QRegularExpressionMatch rigNumber = regexp.match(rigModel);
|
||||
return rigNumber.captured(0).toInt();
|
||||
}
|
||||
|
||||
|
||||
void DialogConfig::setDialogSerialConfig(int dataBits, int parity, int stopBits, int handshake)
|
||||
{
|
||||
switch (dataBits)
|
||||
{
|
||||
case 7: ui->radioButton_dataBits7->setChecked(true); break;
|
||||
case 8: ui->radioButton_dataBits8->setChecked(true); break;
|
||||
}
|
||||
|
||||
switch (parity)
|
||||
{
|
||||
case 0: ui->radioButton_parityNone->setChecked(true); break;
|
||||
case 1: ui->radioButton_parityOdd->setChecked(true); break;
|
||||
case 2: ui->radioButton_parityEven->setChecked(true); break;
|
||||
}
|
||||
|
||||
switch (stopBits)
|
||||
{
|
||||
case 1: ui->radioButton_stopBits1->setChecked(true); break;
|
||||
case 2: ui->radioButton_stopBits2->setChecked(true); break;
|
||||
}
|
||||
|
||||
switch (handshake)
|
||||
{
|
||||
case 0: ui->radioButton_handshakeNone->setChecked(true); break;
|
||||
case 1: ui->radioButton_handshakeXonXoff->setChecked(true); break;
|
||||
case 2: ui->radioButton_handshakeHardware->setChecked(true); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DialogConfig::setRigSerialConfigFromDialog()
|
||||
{
|
||||
if (ui->radioButton_dataBits7->isChecked()) rigCom.serialDataBits = 7;
|
||||
else rigCom.serialDataBits = 8;
|
||||
|
||||
if (ui->radioButton_parityOdd->isChecked()) rigCom.serialParity = RIG_PARITY_ODD;
|
||||
else if (ui->radioButton_parityEven->isChecked()) rigCom.serialParity = RIG_PARITY_EVEN;
|
||||
else rigCom.serialParity = RIG_PARITY_NONE;
|
||||
|
||||
if (ui->radioButton_stopBits1->isChecked()) rigCom.serialStopBits = 1;
|
||||
else rigCom.serialStopBits = 2;
|
||||
|
||||
if (ui->radioButton_handshakeXonXoff->isChecked()) rigCom.serialHandshake = RIG_HANDSHAKE_XONXOFF;
|
||||
else if (ui->radioButton_handshakeHardware->isChecked()) rigCom.serialHandshake = RIG_HANDSHAKE_HARDWARE;
|
||||
else rigCom.serialHandshake = RIG_HANDSHAKE_NONE;
|
||||
}
|
||||
|
||||
|
||||
void DialogConfig::on_buttonBox_accepted()
|
||||
{
|
||||
bool civAddrConv;
|
||||
|
||||
//* Read settings from GUI
|
||||
QString rigModel = ui->comboBox_rigModel->currentText();
|
||||
QRegularExpression regexp("[0-9]+");
|
||||
QRegularExpressionMatch rigNumber = regexp.match(rigModel);
|
||||
rigCom.rigModel = rigNumber.captured(0).toInt();
|
||||
if (ui->comboBox_rigModel->currentText() == "") //No backend selected
|
||||
{
|
||||
QMessageBox msgBox; //Show error MessageBox
|
||||
msgBox.setWindowTitle("Warning");
|
||||
msgBox.setText("Rig model not selected");
|
||||
msgBox.setIcon(QMessageBox::Warning);
|
||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||
msgBox.exec();
|
||||
}
|
||||
else
|
||||
{
|
||||
QString rigModel = ui->comboBox_rigModel->currentText();
|
||||
//QRegularExpression regexp("[0-9]+");
|
||||
//QRegularExpressionMatch rigNumber = regexp.match(rigModel);
|
||||
//rigCom.rigModel = rigNumber.captured(0).toInt();
|
||||
rigCom.rigModel = findRigModel(rigModel);
|
||||
|
||||
if (ui->checkBox_netRigctl->isChecked()) //TCP port
|
||||
{
|
||||
rigCom.netRigctl = true;
|
||||
rigCom.rigPort = ui->lineEdit_ip->text();
|
||||
|
||||
if (rigCom.rigPort == "")
|
||||
{
|
||||
QMessageBox msgBox; //Show error MessageBox
|
||||
msgBox.setWindowTitle("Warning");
|
||||
msgBox.setText(rigModel + "\nIP address not valid");
|
||||
msgBox.setIcon(QMessageBox::Warning);
|
||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||
msgBox.exec();
|
||||
}
|
||||
}
|
||||
else //COM port
|
||||
{
|
||||
rigCom.netRigctl = false;
|
||||
rigCom.rigPort = ui->comboBox_comPort->currentText();
|
||||
//rigCom.serialSpeed = ui->comboBox_serialSpeed->currentText().toInt();
|
||||
//rigCom.civAddr = ui->lineEdit_civAddr->text().toInt(&civAddrConv,16);
|
||||
//setRigSerialConfigFromDialog();
|
||||
|
||||
if (rigCom.rigPort == "" && rigCom.rigModel != 1 && rigCom.rigModel != 6)
|
||||
{
|
||||
QMessageBox msgBox; //Show error MessageBox
|
||||
msgBox.setWindowTitle("Warning");
|
||||
msgBox.setText(rigModel + "\nCOM port not valid");
|
||||
msgBox.setIcon(QMessageBox::Warning);
|
||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||
msgBox.exec();
|
||||
}
|
||||
}
|
||||
|
||||
rigCom.serialSpeed = ui->comboBox_serialSpeed->currentText().toInt();
|
||||
rigCom.civAddr = ui->lineEdit_civAddr->text().toInt(&civAddrConv,16);
|
||||
setRigSerialConfigFromDialog();
|
||||
}
|
||||
|
||||
rigCom.rigPort = ui->lineEdit_RigPath->text();
|
||||
rigCom.serialSpeed = ui->comboBox_serialSpeed->currentText().toInt();
|
||||
rigCom.civAddr = ui->lineEdit_civAddr->text().toInt(&civAddrConv,16);
|
||||
rigCom.rigRefresh = ui->spinBox_RefreshRate->value();
|
||||
rigCom.fullPoll = ui->checkBox_fullPoll->isChecked();
|
||||
rigCom.autoConnect = ui->checkBox_autoConnect->isChecked();
|
||||
rigCom.autoPowerOn = ui->checkBox_autoPowerOn->isChecked();
|
||||
|
||||
//* Save settings in config.ini
|
||||
QSettings configFile(QString("config.ini"), QSettings::IniFormat);
|
||||
//* Save settings in catradio.ini
|
||||
QSettings configFile(QString("catradio.ini"), QSettings::IniFormat);
|
||||
configFile.setValue("rigModel", rigCom.rigModel);
|
||||
configFile.setValue("rigPort", ui->lineEdit_RigPath->text());
|
||||
configFile.setValue("rigPort", rigCom.rigPort);
|
||||
configFile.setValue("serialSpeed", ui->comboBox_serialSpeed->currentText());
|
||||
configFile.setValue("civAddress", ui->lineEdit_civAddr->text().toInt(&civAddrConv,16));
|
||||
configFile.setValue("serialDataBits", rigCom.serialDataBits);
|
||||
configFile.setValue("serialParity", rigCom.serialParity);
|
||||
configFile.setValue("serialStopBits", rigCom.serialStopBits);
|
||||
configFile.setValue("serialHandshake", rigCom.serialHandshake);
|
||||
configFile.setValue("netRigctl", ui->checkBox_netRigctl->isChecked());
|
||||
configFile.setValue("rigRefresh", ui->spinBox_RefreshRate->value());
|
||||
configFile.setValue("fullPolling", ui->checkBox_fullPoll->isChecked());
|
||||
configFile.setValue("autoConnect", ui->checkBox_autoConnect->isChecked());
|
||||
configFile.setValue("autoPowerOn", ui->checkBox_autoPowerOn->isChecked());
|
||||
}
|
||||
|
||||
int printRigList(const struct rig_caps *rigCaps, void *data) //Load rig list from hamlib and save into file rig.lst
|
||||
#ifdef RIGCAPS_NOT_CONST //rig_caps is no longer constant starting from hamlib v.4.6
|
||||
int printRigList(struct rig_caps *rigCaps, void *data) //Load rig list from hamlib and save into file rig.lst
|
||||
{
|
||||
if (data) return 0;
|
||||
QTextStream stream(&file);
|
||||
QTextStream stream(&rigFile);
|
||||
stream << rigCaps->rig_model << " " << rigCaps->mfg_name << " " << rigCaps->model_name << "\n";
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
int printRigList(const struct rig_caps *rigCaps, void *data)
|
||||
{
|
||||
if (data) return 0;
|
||||
QTextStream stream(&rigFile);
|
||||
stream << rigCaps->rig_model << " " << rigCaps->mfg_name << " " << rigCaps->model_name << "\n";
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool createRigFile()
|
||||
{
|
||||
bool ret = rigFile.open(QIODevice::ReadWrite);
|
||||
rigFile.write(hamlib_version); //Write current Hamlib version in the file header
|
||||
rigFile.write("\n");
|
||||
rig_load_all_backends(); //Load all backends information
|
||||
rig_list_foreach(printRigList, NULL); //Create and write the rig list
|
||||
return ret;
|
||||
}
|
||||
|
||||
void DialogConfig::on_checkBox_netRigctl_toggled(bool checked)
|
||||
{
|
||||
if (checked) //TCP port
|
||||
{
|
||||
//ui->comboBox_comPort->setCurrentText(""); //clear COM port
|
||||
}
|
||||
else //COM port
|
||||
{
|
||||
//ui->lineEdit_ip->setText(""); //clear IP address
|
||||
}
|
||||
}
|
||||
|
||||
void DialogConfig::on_comboBox_rigModel_currentIndexChanged(int index)
|
||||
{
|
||||
int currentRig = 0;
|
||||
RIG *rig;
|
||||
|
||||
if (index)
|
||||
{
|
||||
QString rigModel = ui->comboBox_rigModel->currentText();
|
||||
currentRig = findRigModel(rigModel);
|
||||
}
|
||||
|
||||
if (currentRig)
|
||||
{
|
||||
rig = rig_init(currentRig);
|
||||
if (rig->caps->port_type == RIG_PORT_SERIAL)
|
||||
{
|
||||
//ui->checkBox_netRigctl->setChecked(false);
|
||||
ui->tabWidget_Config->setCurrentIndex(0);
|
||||
setDialogSerialConfig(rig->caps->serial_data_bits, rig->caps->serial_parity, rig->caps->serial_stop_bits, rig->caps->serial_handshake);
|
||||
//qDebug() << rig->caps->serial_data_bits << rig->caps->serial_parity << rig->caps->serial_stop_bits << rig->caps->serial_handshake;
|
||||
}
|
||||
else if (rig->caps->port_type == RIG_PORT_NETWORK)
|
||||
{
|
||||
ui->checkBox_netRigctl->setChecked(true);
|
||||
ui->tabWidget_Config->setCurrentIndex(1);
|
||||
}
|
||||
else if (rig->caps->port_type == RIG_PORT_NONE)
|
||||
{
|
||||
ui->checkBox_netRigctl->setChecked(false);
|
||||
ui->tabWidget_Config->setCurrentIndex(0);
|
||||
ui->comboBox_comPort->clear();
|
||||
}
|
||||
}
|
||||
|
||||
//if (index == 2 || index == 3 || index == 4)
|
||||
//{
|
||||
// ui->checkBox_netRigctl->setChecked(true);
|
||||
// ui->tabWidget_Config->setCurrentIndex(1);
|
||||
//}
|
||||
}
|
||||
|
||||
void DialogConfig::on_comboBox_comPort_currentIndexChanged(int index)
|
||||
{
|
||||
if (index) ui->checkBox_netRigctl->setChecked(false); //uncheck TCP
|
||||
}
|
||||
|
|
|
@ -37,10 +37,21 @@ public:
|
|||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
void on_checkBox_netRigctl_toggled(bool checked);
|
||||
|
||||
void on_comboBox_rigModel_currentIndexChanged(int index);
|
||||
|
||||
void on_comboBox_comPort_currentIndexChanged(int index);
|
||||
|
||||
private:
|
||||
Ui::DialogConfig *ui;
|
||||
|
||||
int findRigModel(QString rigModel); //Find hamlib rig model from the rig selected in the comboBox_rigModel
|
||||
void setDialogSerialConfig(int dataBits, int parity, int stopBits, int handshake); //Set the serial port configuration on the dialog
|
||||
void setRigSerialConfigFromDialog(); //Set the rigConf serial config from dialog serial settings
|
||||
};
|
||||
|
||||
int printRigList(const struct rig_caps *rigCaps, void *data);
|
||||
int printRigList(const struct rig_caps *rigCaps, void *data); //Retrives rig list from Hamlib and write to file
|
||||
bool createRigFile(); //Create the rig list file
|
||||
|
||||
#endif // DIALOGCONFIG_H
|
||||
|
|
457
dialogconfig.ui
|
@ -6,138 +6,357 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
<width>390</width>
|
||||
<height>700</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Config</string>
|
||||
<string>Radio Config</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_RigModel">
|
||||
<property name="text">
|
||||
<string>Model</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3" stretch="0,1">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_RigModel">
|
||||
<property name="text">
|
||||
<string>Model</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>comboBox_rigModel</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_rigModel"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="comboBox_rigModel"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_RigPath">
|
||||
<property name="text">
|
||||
<string>Path</string>
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget_Config">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEdit_RigPath</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_RigPath">
|
||||
<property name="toolTip">
|
||||
<string>e.g. COM2 or /dev/ttyUSB1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_serialSpeed">
|
||||
<property name="text">
|
||||
<string>Speed</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>comboBox_serialSpeed</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="comboBox_serialSpeed"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_RefreshRate">
|
||||
<property name="text">
|
||||
<string>Refresh Rate</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>spinBox_RefreshRate</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="spinBox_RefreshRate">
|
||||
<property name="minimum">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>200</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Options</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>11</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1,1">
|
||||
<property name="spacing">
|
||||
<number>7</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab_com">
|
||||
<attribute name="title">
|
||||
<string>COM</string>
|
||||
</attribute>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_comPort">
|
||||
<property name="text">
|
||||
<string>COM Port</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>comboBox_comPort</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="comboBox_comPort">
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_serialSpeed">
|
||||
<property name="text">
|
||||
<string>Speed</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>comboBox_serialSpeed</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="comboBox_serialSpeed"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_civAddr">
|
||||
<property name="cursor">
|
||||
<cursorShape>ArrowCursor</cursorShape>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Icom CI-V</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEdit_civAddr</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit_civAddr">
|
||||
<property name="toolTip">
|
||||
<string>hex, Icom only</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>h</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_serialDataBits">
|
||||
<property name="title">
|
||||
<string>Data Bits</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_civAddr">
|
||||
<property name="cursor">
|
||||
<cursorShape>ArrowCursor</cursorShape>
|
||||
</property>
|
||||
<widget class="QRadioButton" name="radioButton_dataBits7">
|
||||
<property name="text">
|
||||
<string>Icom CI-V</string>
|
||||
<string>7</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit_civAddr">
|
||||
<property name="toolTip">
|
||||
<string>hex, Icom only</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<widget class="QRadioButton" name="radioButton_dataBits8">
|
||||
<property name="text">
|
||||
<string>h</string>
|
||||
<string>8</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_serialStopBits">
|
||||
<property name="title">
|
||||
<string>Stop Bits</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_stopBits1">
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_stopBits2">
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_serialHandshake">
|
||||
<property name="title">
|
||||
<string>Handshake</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_handshakeXonXoff">
|
||||
<property name="text">
|
||||
<string>XON/XOFF</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QRadioButton" name="radioButton_handshakeHardware">
|
||||
<property name="text">
|
||||
<string>Hardware</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_handshakeNone">
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_serialParity">
|
||||
<property name="title">
|
||||
<string>Parity</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="2" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_parityOdd">
|
||||
<property name="text">
|
||||
<string>Odd</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QRadioButton" name="radioButton_parityEven">
|
||||
<property name="text">
|
||||
<string>Even</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_parityNone">
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_tcp">
|
||||
<attribute name="title">
|
||||
<string>TCP</string>
|
||||
</attribute>
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="checkBox_netRigctl">
|
||||
<property name="text">
|
||||
<string>NET Rigctl</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_ip">
|
||||
<property name="text">
|
||||
<string>IP address</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEdit_ip</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_ip">
|
||||
<property name="toolTip">
|
||||
<string>rigctld ip:port</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>127.0.0.1:4532</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Options</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_fullPoll">
|
||||
<widget class="QLabel" name="label_RefreshRate">
|
||||
<property name="text">
|
||||
<string>Full polling</string>
|
||||
<string>Refresh Rate</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>spinBox_RefreshRate</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinBox_RefreshRate">
|
||||
<property name="minimum">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>200</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="checkBox_fullPoll">
|
||||
<property name="text">
|
||||
<string>Full polling</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_autoConnect">
|
||||
<property name="toolTip">
|
||||
<string>Auto connect on startup</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Auto connect</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="checkBox_autoPowerOn">
|
||||
<property name="toolTip">
|
||||
<string>Auto power-on on startup</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Auto power ON</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
|
@ -150,9 +369,27 @@
|
|||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>lineEdit_RigPath</tabstop>
|
||||
<tabstop>comboBox_rigModel</tabstop>
|
||||
<tabstop>tabWidget_Config</tabstop>
|
||||
<tabstop>comboBox_comPort</tabstop>
|
||||
<tabstop>comboBox_serialSpeed</tabstop>
|
||||
<tabstop>lineEdit_civAddr</tabstop>
|
||||
<tabstop>radioButton_dataBits7</tabstop>
|
||||
<tabstop>radioButton_dataBits8</tabstop>
|
||||
<tabstop>radioButton_parityNone</tabstop>
|
||||
<tabstop>radioButton_parityOdd</tabstop>
|
||||
<tabstop>radioButton_parityEven</tabstop>
|
||||
<tabstop>radioButton_stopBits1</tabstop>
|
||||
<tabstop>radioButton_stopBits2</tabstop>
|
||||
<tabstop>radioButton_handshakeNone</tabstop>
|
||||
<tabstop>radioButton_handshakeXonXoff</tabstop>
|
||||
<tabstop>radioButton_handshakeHardware</tabstop>
|
||||
<tabstop>spinBox_RefreshRate</tabstop>
|
||||
<tabstop>checkBox_fullPoll</tabstop>
|
||||
<tabstop>checkBox_autoConnect</tabstop>
|
||||
<tabstop>checkBox_autoPowerOn</tabstop>
|
||||
<tabstop>checkBox_netRigctl</tabstop>
|
||||
<tabstop>lineEdit_ip</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
|
@ -163,8 +400,8 @@
|
|||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
<x>270</x>
|
||||
<y>688</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
|
@ -179,8 +416,8 @@
|
|||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
<x>338</x>
|
||||
<y>688</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
|
|
|
@ -0,0 +1,131 @@
|
|||
#include "dialogradioinfo.h"
|
||||
#include "ui_dialogradioinfo.h"
|
||||
#include "rig.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
|
||||
DialogRadioInfo::DialogRadioInfo(RIG *rig, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::DialogRadioInfo)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
my_rig = rig;
|
||||
QString text;
|
||||
text = "Model: ";
|
||||
text.append(QString::number(my_rig->caps->rig_model));
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
text = "Model name: ";
|
||||
text.append(my_rig->caps->model_name);
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
text = "Mfg name: ";
|
||||
text.append(my_rig->caps->mfg_name);
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
text = "Backend version: ";
|
||||
text.append(my_rig->caps->version);
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
text = "Backend status: ";
|
||||
text.append(rig_strstatus(my_rig->caps->status));
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
text = "Rig type: ";
|
||||
switch (my_rig->caps->rig_type)
|
||||
{
|
||||
case RIG_TYPE_OTHER:
|
||||
text.append("Other");
|
||||
break;
|
||||
case RIG_FLAG_RECEIVER:
|
||||
text.append("Receiver");
|
||||
break;
|
||||
case RIG_FLAG_TRANSMITTER:
|
||||
text.append("Transmitter");
|
||||
break;
|
||||
case RIG_FLAG_SCANNER:
|
||||
text.append("Scanner");
|
||||
break;
|
||||
case RIG_FLAG_MOBILE:
|
||||
text.append("Mobile");
|
||||
break;
|
||||
case RIG_FLAG_HANDHELD:
|
||||
text.append("Handheld");
|
||||
break;
|
||||
case RIG_FLAG_COMPUTER:
|
||||
text.append("Computer");
|
||||
break;
|
||||
case RIG_FLAG_TRANSCEIVER:
|
||||
text.append("Transceiver");
|
||||
break;
|
||||
case RIG_FLAG_TRUNKING:
|
||||
text.append("Trunking scanner");
|
||||
break;
|
||||
case RIG_FLAG_APRS:
|
||||
text.append("APRS");
|
||||
break;
|
||||
case RIG_FLAG_TNC:
|
||||
text.append("TNC");
|
||||
break;
|
||||
case RIG_FLAG_DXCLUSTER:
|
||||
text.append("DxCluster");
|
||||
break;
|
||||
case RIG_FLAG_TUNER:
|
||||
text.append("Tuner");
|
||||
break;
|
||||
default:
|
||||
text.append("Unknown");
|
||||
}
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
text = "Port type: ";
|
||||
switch (my_rig->caps->port_type)
|
||||
{
|
||||
case RIG_PORT_SERIAL:
|
||||
text.append("RS-232");
|
||||
break;
|
||||
case RIG_PORT_PARALLEL:
|
||||
text.append("Parallel");
|
||||
break;
|
||||
case RIG_PORT_DEVICE:
|
||||
text.append("Device driver");
|
||||
break;
|
||||
case RIG_PORT_USB:
|
||||
text.append("USB");
|
||||
break;
|
||||
case RIG_PORT_NETWORK:
|
||||
text.append("Network link");
|
||||
break;
|
||||
case RIG_PORT_UDP_NETWORK:
|
||||
text.append("UDP Network link");
|
||||
break;
|
||||
case RIG_PORT_NONE:
|
||||
text.append("None");
|
||||
break;
|
||||
default:
|
||||
text.append("Unknown");
|
||||
}
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
|
||||
if (my_rig->caps->port_type == RIG_PORT_SERIAL)
|
||||
{
|
||||
text = QString("Serial speed: %1...%2 bauds, %3%4%5 %6")
|
||||
.arg(my_rig->caps->serial_rate_min)
|
||||
.arg(my_rig->caps->serial_rate_max)
|
||||
.arg(my_rig->caps->serial_data_bits)
|
||||
.arg(my_rig->caps->serial_parity == RIG_PARITY_NONE ? 'N' :
|
||||
(my_rig->caps->serial_parity == RIG_PARITY_ODD ? 'O' :
|
||||
(my_rig->caps->serial_parity == RIG_PARITY_EVEN ? 'E' :
|
||||
(my_rig->caps->serial_parity == RIG_PARITY_MARK ? 'M' : 'S'))))
|
||||
.arg(my_rig->caps->serial_stop_bits)
|
||||
.arg(my_rig->caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
|
||||
(my_rig->caps->serial_handshake == RIG_HANDSHAKE_XONXOFF ? "XONXOFF" : "CTS/RTS"));
|
||||
ui->plainTextEdit_RadioInfo->appendPlainText(text);
|
||||
}
|
||||
}
|
||||
|
||||
DialogRadioInfo::~DialogRadioInfo()
|
||||
{
|
||||
delete ui;
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef DIALOGRADIOINFO_H
|
||||
#define DIALOGRADIOINFO_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
#include "rig.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogRadioInfo;
|
||||
}
|
||||
|
||||
class DialogRadioInfo : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogRadioInfo(RIG *rig, QWidget *parent = nullptr);
|
||||
~DialogRadioInfo();
|
||||
|
||||
private:
|
||||
Ui::DialogRadioInfo *ui;
|
||||
|
||||
RIG *my_rig;
|
||||
};
|
||||
|
||||
#endif // DIALOGRADIOINFO_H
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogRadioInfo</class>
|
||||
<widget class="QDialog" name="DialogRadioInfo">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Radio Info</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_RadioInfo">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include <QSettings>
|
||||
#include <QFile>
|
||||
#include <QMessageBox>
|
||||
|
||||
|
||||
extern guiConfig guiConf;
|
||||
|
@ -17,6 +18,9 @@ DialogSetup::DialogSetup(QWidget *parent) :
|
|||
ui->setupUi(this);
|
||||
|
||||
if (guiConf.vfoDisplayMode) ui->radioButton_vfoDispMode_UD->setChecked(true);
|
||||
if (guiConf.darkTheme) ui->radioButton_themeDark->setChecked(true);
|
||||
if (guiConf.peakHold) ui->checkBox_peakHold->setChecked(true);
|
||||
if (guiConf.debugMode) ui->checkBox_debug->setChecked(true);
|
||||
}
|
||||
|
||||
DialogSetup::~DialogSetup()
|
||||
|
@ -24,20 +28,27 @@ DialogSetup::~DialogSetup()
|
|||
delete ui;
|
||||
}
|
||||
|
||||
void DialogSetup::on_radioButton_vfoDispMode_LR_toggled(bool checked)
|
||||
{
|
||||
if (checked) guiConf.vfoDisplayMode=0;
|
||||
}
|
||||
|
||||
void DialogSetup::on_radioButton_vfoDispMode_UD_toggled(bool checked)
|
||||
{
|
||||
if (checked) guiConf.vfoDisplayMode=1;
|
||||
}
|
||||
|
||||
void DialogSetup::on_buttonBox_accepted()
|
||||
{
|
||||
//* Save settings in config.ini
|
||||
QSettings configFile(QString("config.ini"), QSettings::IniFormat);
|
||||
configFile.setValue("vfoDisplayMode", guiConf.vfoDisplayMode);
|
||||
}
|
||||
if ((guiConf.darkTheme != ui->radioButton_themeDark->isChecked()))
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setWindowTitle("Theme");
|
||||
msgBox.setText("Please, restart CatRadio to make effective the theme.");
|
||||
msgBox.setIcon(QMessageBox::Information);
|
||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||
msgBox.exec();
|
||||
}
|
||||
|
||||
guiConf.vfoDisplayMode = ui->radioButton_vfoDispMode_UD->isChecked();
|
||||
guiConf.darkTheme = ui->radioButton_themeDark->isChecked();
|
||||
guiConf.peakHold = ui->checkBox_peakHold->isChecked();
|
||||
guiConf.debugMode = ui->checkBox_debug->isChecked();
|
||||
|
||||
//* Save settings in catradio.ini
|
||||
QSettings configFile(QString("catradio.ini"), QSettings::IniFormat);
|
||||
configFile.setValue("vfoDisplayMode", guiConf.vfoDisplayMode);
|
||||
configFile.setValue("darkTheme", guiConf.darkTheme);
|
||||
configFile.setValue("peakHold", guiConf.peakHold);
|
||||
configFile.setValue("debugMode", guiConf.debugMode);
|
||||
}
|
||||
|
|
|
@ -16,12 +16,6 @@ public:
|
|||
~DialogSetup();
|
||||
|
||||
private slots:
|
||||
|
||||
|
||||
void on_radioButton_vfoDispMode_LR_toggled(bool checked);
|
||||
|
||||
void on_radioButton_vfoDispMode_UD_toggled(bool checked);
|
||||
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
|
|
|
@ -14,14 +14,65 @@
|
|||
<string>Setup</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_theme">
|
||||
<property name="title">
|
||||
<string>Theme</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_themeDefault">
|
||||
<property name="text">
|
||||
<string>Default</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_themeDark">
|
||||
<property name="text">
|
||||
<string>Dark</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_peakHold">
|
||||
<property name="text">
|
||||
<string>Meter Peak hold</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
|
@ -50,18 +101,22 @@
|
|||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<item row="5" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</spacer>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_debug">
|
||||
<property name="text">
|
||||
<string>Debug mode (developers only)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
|
|
@ -20,3 +20,4 @@
|
|||
#include "guidata.h"
|
||||
|
||||
guiConfig guiConf;
|
||||
guiCommand guiCmd;
|
||||
|
|
15
guidata.h
|
@ -5,6 +5,17 @@
|
|||
|
||||
|
||||
typedef struct {
|
||||
int vfoDisplayMode; //0: use Left/Right mouse button, 1: click digit up or down
|
||||
|
||||
int vfoDisplayMode; //0: use Left/Right mouse button, 1: click digit Up or Down
|
||||
bool darkTheme; //flag for Dark theme
|
||||
bool peakHold; //meters peak hold
|
||||
bool debugMode;
|
||||
} guiConfig;
|
||||
|
||||
|
||||
typedef struct {
|
||||
int bwidthList;
|
||||
int antList;
|
||||
int rangeList;
|
||||
int tabList;
|
||||
int toneList;
|
||||
} guiCommand;
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
Hamlib - Ham Radio Control Libraries
|
||||
|
||||
(C) 2010 Lockless Inc. for winpthreads.h
|
||||
Copyright (C) 2000,2001 Frank Singleton
|
||||
Copyright (C) 2000,2001 Stephane Fillod
|
||||
Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,
|
||||
2010,2011,2012
|
||||
The Hamlib Group
|
||||
|
||||
See the included README.md file for more information on Hamlib and the Hamlib
|
||||
Project or visit http://www.hamlib.org for documentation and links to the
|
||||
source code of Hamlib.
|
||||
|
||||
The 'AUTHORS' file lists contributors known as the The Hamlib Group.
|
||||
|
||||
The frontend library source code files and associated backend library
|
||||
source code files are licensed and released under the Lesser GNU Public
|
||||
License (LGPL):
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301 USA
|
||||
|
||||
The included file 'COPYING.LIB' is a copy of the GNU Lesser General
|
||||
Public License.
|
||||
|
||||
|
||||
Various other supplied program source files and example source files are
|
||||
licensed and released under the GNU Public License (GPL):
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
The included file 'COPYING' is a copy of the GNU General Public License.
|
||||
|
|
@ -18,6 +18,7 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#ifndef _AMPLIFIER_H
|
||||
#define _AMPLIFIER_H 1
|
||||
|
@ -146,7 +147,8 @@ enum amp_level_e
|
|||
AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward. */
|
||||
AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse. */
|
||||
AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak. */
|
||||
AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code. */
|
||||
AMP_LEVEL_FAULT = (1 << 7), /*!< \c Fault code. */
|
||||
AMP_LEVEL_PWR = (1 << 8), /*!< \c Power setting. */
|
||||
};
|
||||
//! @endcond
|
||||
|
||||
|
@ -231,8 +233,9 @@ struct amp_caps
|
|||
int (*set_freq)(AMP *amp, freq_t val); /*!< Pointer to backend implementation of ::amp_set_freq(). */
|
||||
int (*get_freq)(AMP *amp, freq_t *val); /*!< Pointer to backend implementation of ::amp_get_freq(). */
|
||||
|
||||
int (*set_conf)(AMP *amp, token_t token, const char *val); /*!< Pointer to backend implementation of ::amp_set_conf(). */
|
||||
int (*get_conf)(AMP *amp, token_t token, char *val); /*!< Pointer to backend implementation of ::amp_get_conf(). */
|
||||
int (*set_conf)(AMP *amp, hamlib_token_t token, const char *val); /*!< Pointer to backend implementation of ::amp_set_conf(). */
|
||||
int (*get_conf2)(AMP *amp, hamlib_token_t token, char *val, int val_len); /*!< Pointer to backend implementation of ::amp_get_conf(). */
|
||||
int (*get_conf)(AMP *amp, hamlib_token_t token, char *val); /*!< Pointer to backend implementation of ::amp_get_conf(). */
|
||||
|
||||
/*
|
||||
* General API commands, from most primitive to least.. :()
|
||||
|
@ -241,7 +244,9 @@ struct amp_caps
|
|||
|
||||
int (*reset)(AMP *amp, amp_reset_t reset); /*!< Pointer to backend implementation of ::amp_reset(). */
|
||||
int (*get_level)(AMP *amp, setting_t level, value_t *val); /*!< Pointer to backend implementation of ::amp_get_level(). */
|
||||
int (*get_ext_level)(AMP *amp, token_t level, value_t *val); /*!< Pointer to backend implementation of ::amp_get_ext_level(). */
|
||||
int (*set_level)(AMP *amp, setting_t level, value_t val); /*!< Pointer to backend implementation of ::amp_get_level(). */
|
||||
int (*get_ext_level)(AMP *amp, hamlib_token_t level, value_t *val); /*!< Pointer to backend implementation of ::amp_get_ext_level(). */
|
||||
int (*set_ext_level)(AMP *amp, hamlib_token_t level, value_t val); /*!< Pointer to backend implementation of ::amp_set_ext_level(). */
|
||||
int (*set_powerstat)(AMP *amp, powerstat_t status); /*!< Pointer to backend implementation of ::amp_set_powerstat(). */
|
||||
int (*get_powerstat)(AMP *amp, powerstat_t *status); /*!< Pointer to backend implementation of ::amp_get_powerstat(). */
|
||||
|
||||
|
@ -280,16 +285,18 @@ struct amp_state
|
|||
/*
|
||||
* non overridable fields, internal use
|
||||
*/
|
||||
hamlib_port_t ampport; /*!< Amplifier port (internal use). */
|
||||
hamlib_port_t_deprecated ampport_deprecated; /*!< Amplifier port (internal use). Deprecated */
|
||||
|
||||
int comm_state; /*!< Comm port state, opened/closed. */
|
||||
rig_ptr_t priv; /*!< Pointer to private amplifier state data. */
|
||||
rig_ptr_t obj; /*!< Internal use by hamlib++ for event handling. */
|
||||
|
||||
setting_t has_get_level; /*!< List of get levels. */
|
||||
setting_t has_set_level; /*!< List of set levels. */
|
||||
|
||||
gran_t level_gran[RIG_SETTING_MAX]; /*!< Level granularity. */
|
||||
gran_t parm_gran[RIG_SETTING_MAX]; /*!< Parameter granularity. */
|
||||
hamlib_port_t ampport; /*!< Amplifier port (internal use). */
|
||||
};
|
||||
|
||||
|
||||
|
@ -329,11 +336,11 @@ amp_cleanup HAMLIB_PARAMS((AMP *amp));
|
|||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_set_conf HAMLIB_PARAMS((AMP *amp,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
const char *val));
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_get_conf HAMLIB_PARAMS((AMP *amp,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
char *val));
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_set_powerstat HAMLIB_PARAMS((AMP *amp,
|
||||
|
@ -364,6 +371,10 @@ amp_get_info HAMLIB_PARAMS((AMP *amp));
|
|||
extern HAMLIB_EXPORT(int)
|
||||
amp_get_level HAMLIB_PARAMS((AMP *amp, setting_t level, value_t *val));
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_set_level HAMLIB_PARAMS((AMP *amp, setting_t level, value_t val));
|
||||
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_register HAMLIB_PARAMS((const struct amp_caps *caps));
|
||||
|
||||
|
@ -397,7 +408,7 @@ extern HAMLIB_EXPORT(const struct confparams *)
|
|||
amp_confparam_lookup HAMLIB_PARAMS((AMP *amp,
|
||||
const char *name));
|
||||
|
||||
extern HAMLIB_EXPORT(token_t)
|
||||
extern HAMLIB_EXPORT(hamlib_token_t)
|
||||
amp_token_lookup HAMLIB_PARAMS((AMP *amp,
|
||||
const char *name));
|
||||
|
||||
|
@ -408,15 +419,24 @@ extern HAMLIB_EXPORT(setting_t)
|
|||
amp_has_get_level HAMLIB_PARAMS((AMP *amp,
|
||||
setting_t level));
|
||||
|
||||
extern HAMLIB_EXPORT(setting_t)
|
||||
amp_has_set_level HAMLIB_PARAMS((AMP *amp,
|
||||
setting_t level));
|
||||
|
||||
extern HAMLIB_EXPORT(const struct confparams *)
|
||||
amp_ext_lookup HAMLIB_PARAMS((AMP *amp,
|
||||
const char *name));
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_get_ext_level HAMLIB_PARAMS((AMP *amp,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
value_t *val));
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
amp_set_ext_level HAMLIB_PARAMS((AMP *amp,
|
||||
hamlib_token_t token,
|
||||
value_t val));
|
||||
|
||||
extern HAMLIB_EXPORT(const char *) amp_strlevel(setting_t);
|
||||
|
||||
extern HAMLIB_EXPORT(const struct confparams *)
|
||||
|
@ -426,6 +446,8 @@ rig_ext_lookup HAMLIB_PARAMS((RIG *rig,
|
|||
extern HAMLIB_EXPORT(setting_t) amp_parse_level(const char *s);
|
||||
extern HAMLIB_EXPORT(const char *) amp_strlevel(setting_t);
|
||||
|
||||
extern HAMLIB_EXPORT(void *) amp_data_pointer(AMP *amp, rig_ptrx_t idx);
|
||||
|
||||
//! @endcond
|
||||
|
||||
|
||||
|
|
|
@ -107,6 +107,15 @@
|
|||
#define AMP_MODEL_ELECRAFT_KPA1500 AMP_MAKE_MODEL(AMP_ELECRAFT, 1)
|
||||
//#define AMP_MODEL_ELECRAFT_KPA500 AMP_MAKE_MODEL(AMP_ELECRAFT, 2)
|
||||
|
||||
#define AMP_GEMINI 3
|
||||
#define AMP_BACKEND_GEMINI "gemini"
|
||||
#define AMP_MODEL_GEMINI_DX1200 AMP_MAKE_MODEL(AMP_GEMINI, 1)
|
||||
|
||||
#define AMP_EXPERT 4
|
||||
#define AMP_BACKEND_EXPERT "expert"
|
||||
#define AMP_MODEL_EXPERT_FA AMP_MAKE_MODEL(AMP_EXPERT, 1)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Convenience type definition for an amplifier model.
|
||||
*
|
||||
|
|
|
@ -0,0 +1,569 @@
|
|||
/* include/hamlib/config.h. Generated from config.h.in by configure. */
|
||||
/* include/hamlib/config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Frontend ABI age */
|
||||
#define ABI_AGE 0
|
||||
|
||||
/* Frontend ABI revision */
|
||||
#define ABI_REVISION 6
|
||||
|
||||
/* Frontend ABI version */
|
||||
#define ABI_VERSION 4
|
||||
|
||||
/* Frontend Major version */
|
||||
#define ABI_VERSION_MAJOR 4
|
||||
|
||||
/* Frontend Minor version */
|
||||
#define ABI_VERSION_MINOR 6
|
||||
|
||||
/* Frontend Patch version */
|
||||
#define ABI_VERSION_PATCH 0
|
||||
|
||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for `alloca.c' support on those systems.
|
||||
*/
|
||||
/* #undef CRAY_STACKSEG_END */
|
||||
|
||||
/* Define to 1 if using `alloca.c'. */
|
||||
/* #undef C_ALLOCA */
|
||||
|
||||
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||
#define HAVE_ALLOCA 1
|
||||
|
||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||
*/
|
||||
/* #undef HAVE_ALLOCA_H */
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
/* #undef HAVE_ARPA_INET_H */
|
||||
|
||||
/* Define to 1 if you have the `cfmakeraw' function. */
|
||||
/* #undef HAVE_CFMAKERAW */
|
||||
|
||||
/* define if the compiler supports basic C++11 syntax */
|
||||
#define HAVE_CXX11 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `gai_strerror', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_GAI_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the <dev/ppbus/ppbconf.hdev/ppbus/ppi.h> header
|
||||
file. */
|
||||
/* #undef HAVE_DEV_PPBUS_PPBCONF_HDEV_PPBUS_PPI_H */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef HAVE_DLFCN_H */
|
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */
|
||||
#define HAVE_ERRNO_H 1
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
/* Define to 1 if you have the `floor' function. */
|
||||
#define HAVE_FLOOR 1
|
||||
|
||||
/* Define to 1 if you have the <gd.h> header file. */
|
||||
/* #undef HAVE_GD_H */
|
||||
|
||||
/* Define to 1 if you have the `getaddrinfo' function. */
|
||||
#define HAVE_GETADDRINFO 1
|
||||
|
||||
/* Define to 1 if you have the `getopt' function. */
|
||||
#define HAVE_GETOPT 1
|
||||
|
||||
/* Define to 1 if you have the <getopt.h> header file. */
|
||||
#define HAVE_GETOPT_H 1
|
||||
|
||||
/* Define to 1 if you have the `getopt_long' function. */
|
||||
#define HAVE_GETOPT_LONG 1
|
||||
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#define HAVE_GETPAGESIZE 1
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
|
||||
/* Define to 1 if you have the `glob' function. */
|
||||
/* #undef HAVE_GLOB */
|
||||
|
||||
/* Define to 1 if you have the <glob.h> header file. */
|
||||
/* #undef HAVE_GLOB_H */
|
||||
|
||||
/* Define to 1 if you have the <history.h> header file. */
|
||||
/* #undef HAVE_HISTORY_H */
|
||||
|
||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||
/* #undef HAVE_INET_NTOA */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `ioctl' function. */
|
||||
/* #undef HAVE_IOCTL */
|
||||
|
||||
/* Define to 1 if you have the <lauxlib.h> header file. */
|
||||
/* #undef HAVE_LAUXLIB_H */
|
||||
|
||||
/* Define if you have an INDI compatible library */
|
||||
/* #undef HAVE_LIBINDI */
|
||||
|
||||
/* Define if you have a nova compatible library */
|
||||
/* #undef HAVE_LIBNOVA */
|
||||
|
||||
/* Define if you have a readline compatible library */
|
||||
/* #undef HAVE_LIBREADLINE */
|
||||
|
||||
/* Define if libusb-1.0 is available */
|
||||
#define HAVE_LIBUSB 1
|
||||
|
||||
/* Define to 1 if you have the <libusb-1.0/libusb.h> header file. */
|
||||
#define HAVE_LIBUSB_1_0_LIBUSB_H 1
|
||||
|
||||
/* Define to 1 if you have the <libusb.h> header file. */
|
||||
/* #undef HAVE_LIBUSB_H */
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define to 1 if you have the <linux/hidraw.h> header file. */
|
||||
/* #undef HAVE_LINUX_HIDRAW_H */
|
||||
|
||||
/* Define to 1 if you have the <linux/ioctl.h> header file. */
|
||||
/* #undef HAVE_LINUX_IOCTL_H */
|
||||
|
||||
/* Define to 1 if you have the <linux/parport.h> header file. */
|
||||
/* #undef HAVE_LINUX_PARPORT_H */
|
||||
|
||||
/* Define to 1 if you have the <linux/ppdev.h> header file. */
|
||||
/* #undef HAVE_LINUX_PPDEV_H */
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the <luaconf.h> header file. */
|
||||
/* #undef HAVE_LUACONF_H */
|
||||
|
||||
/* Define to 1 if you have the <lualib.h> header file. */
|
||||
/* #undef HAVE_LUALIB_H */
|
||||
|
||||
/* Define to 1 if you have the <lua.h> header file. */
|
||||
/* #undef HAVE_LUA_H */
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#define HAVE_MALLOC_H 1
|
||||
|
||||
/* Define to 1 if you have the `memchr' function. */
|
||||
#define HAVE_MEMCHR 1
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#define HAVE_MEMMOVE 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#define HAVE_MEMSET 1
|
||||
|
||||
/* Define to 1 if you have the `nanosleep' function. */
|
||||
#define HAVE_NANOSLEEP 1
|
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */
|
||||
/* #undef HAVE_NETDB_H */
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
/* #undef HAVE_NETINET_IN_H */
|
||||
|
||||
/* Define if parallel devices are to be built */
|
||||
#define HAVE_PARALLEL 1
|
||||
|
||||
/* Define to 1 if you have the `pow' function. */
|
||||
#define HAVE_POW 1
|
||||
|
||||
/* Define if you have POSIX threads libraries and header files. */
|
||||
#define HAVE_PTHREAD 1
|
||||
|
||||
/* Define to 1 if you have the <pthread.h> header file. */
|
||||
#define HAVE_PTHREAD_H 1
|
||||
|
||||
/* Have PTHREAD_PRIO_INHERIT. */
|
||||
#define HAVE_PTHREAD_PRIO_INHERIT 1
|
||||
|
||||
/* If available, contains the Python version number currently in use. */
|
||||
/* #undef HAVE_PYTHON */
|
||||
|
||||
/* Define to 1 if you have the <readline.h> header file. */
|
||||
/* #undef HAVE_READLINE_H */
|
||||
|
||||
/* Define if your readline library has \`add_history' */
|
||||
/* #undef HAVE_READLINE_HISTORY */
|
||||
|
||||
/* Define to 1 if you have the <readline/history.h> header file. */
|
||||
/* #undef HAVE_READLINE_HISTORY_H */
|
||||
|
||||
/* Define to 1 if you have the <readline/readline.h> header file. */
|
||||
/* #undef HAVE_READLINE_READLINE_H */
|
||||
|
||||
/* Define to 1 if you have the `rint' function. */
|
||||
#define HAVE_RINT 1
|
||||
|
||||
/* Define to 1 if you have the `select' function. */
|
||||
/* #undef HAVE_SELECT */
|
||||
|
||||
/* Define to 1 if you have the `setitimer' function. */
|
||||
/* #undef HAVE_SETITIMER */
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#define HAVE_SETLOCALE 1
|
||||
|
||||
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||
/* #undef HAVE_SGTTY_H */
|
||||
|
||||
/* Define to 1 if you have the `sigaction' function. */
|
||||
/* #undef HAVE_SIGACTION */
|
||||
|
||||
/* Define to 1 if the system has the type `siginfo_t'. */
|
||||
/* #undef HAVE_SIGINFO_T */
|
||||
|
||||
/* Define to 1 if you have the `signal' function. */
|
||||
#define HAVE_SIGNAL 1
|
||||
|
||||
/* Define to 1 if the system has the type `sig_atomic_t'. */
|
||||
#define HAVE_SIG_ATOMIC_T 1
|
||||
|
||||
/* Define to 1 if you have the `sleep' function. */
|
||||
#define HAVE_SLEEP 1
|
||||
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#define HAVE_SNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
/* #undef HAVE_SOCKET */
|
||||
|
||||
/* Define to 1 if you have the `socketpair' function. */
|
||||
/* #undef HAVE_SOCKETPAIR */
|
||||
|
||||
/* Define to 1 if you have the `sqrt' function. */
|
||||
#define HAVE_SQRT 1
|
||||
|
||||
/* Define to 1 if the system has the type `ssize_t'. */
|
||||
#define HAVE_SSIZE_T 1
|
||||
|
||||
/* Define to 1 if you have Windows Sleep */
|
||||
#define HAVE_SSLEEP 1
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#define HAVE_STDDEF_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#define HAVE_STRCHR 1
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#define HAVE_STRDUP 1
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strrchr' function. */
|
||||
#define HAVE_STRRCHR 1
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#define HAVE_STRSTR 1
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#define HAVE_STRTOL 1
|
||||
|
||||
/* Define to 1 if the system has the type `struct addrinfo'. */
|
||||
#define HAVE_STRUCT_ADDRINFO 1
|
||||
|
||||
/* Define to 1 if the system has the type `struct timezone'. */
|
||||
#define HAVE_STRUCT_TIMEZONE 1
|
||||
|
||||
/* Define to 1 if you have the <sys/ioccom.h> header file. */
|
||||
/* #undef HAVE_SYS_IOCCOM_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
/* #undef HAVE_SYS_IOCTL_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define HAVE_SYS_PARAM_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/select.h> header file. */
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
/* #undef HAVE_SYS_SOCKET_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <tcl.h> header file. */
|
||||
/* #undef HAVE_TCL_H */
|
||||
|
||||
/* Define to 1 if you have the <termios.h> header file. */
|
||||
/* #undef HAVE_TERMIOS_H */
|
||||
|
||||
/* Define to 1 if you have the <termio.h> header file. */
|
||||
/* #undef HAVE_TERMIO_H */
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `usleep' function. */
|
||||
#define HAVE_USLEEP 1
|
||||
|
||||
/* Define if usrp is available */
|
||||
/* #undef HAVE_USRP */
|
||||
|
||||
/* Define to 1 if you have the <values.h> header file. */
|
||||
/* #undef HAVE_VALUES_H */
|
||||
|
||||
/* Define to 1 if you have the <winbase.h> header file. */
|
||||
#define HAVE_WINBASE_H 1
|
||||
|
||||
/* Define to 1 if you have the <windows.h> header file. */
|
||||
#define HAVE_WINDOWS_H 1
|
||||
|
||||
/* Define to 1 if you have the <winioctl.h> header file. */
|
||||
#define HAVE_WINIOCTL_H 1
|
||||
|
||||
/* Define if winradio backend is built */
|
||||
#define HAVE_WINRADIO 1
|
||||
|
||||
/* Define to 1 if you have the <ws2tcpip.h> header file. */
|
||||
#define HAVE_WS2TCPIP_H 1
|
||||
|
||||
/* Define to 1 if you have the <wspiapi.h> header file. */
|
||||
#define HAVE_WSPIAPI_H 1
|
||||
|
||||
/* Define if libxml2 is available */
|
||||
/* #undef HAVE_XML2 */
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
#define LT_OBJDIR ".libs/"
|
||||
|
||||
/* Compilation on POSIX other than Linux */
|
||||
/* #undef OTHER_POSIX */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "hamlib"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "hamlib-developer@lists.sourceforge.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "Hamlib"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "Hamlib 4.6~git"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "hamlib"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL "http://www.hamlib.org"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "4.6~git"
|
||||
|
||||
/* Define to necessary symbol if this constant uses a non-standard name on
|
||||
your system. */
|
||||
/* #undef PTHREAD_CREATE_JOINABLE */
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
automatically deduced at runtime.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
/* #undef STACK_DIRECTION */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# define _ALL_SOURCE 1
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE 1
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# define _POSIX_PTHREAD_SEMANTICS 1
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# define _TANDEM_SOURCE 1
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# define __EXTENSIONS__ 1
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "4.6~git"
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
/* #undef _MINIX */
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
/* #undef _POSIX_1_SOURCE */
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
/* #undef _POSIX_SOURCE */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
|
||||
/* Define missing prototypes, implemented in replacement lib */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GETOPT
|
||||
int getopt (int argc, char * const argv[], const char * optstring);
|
||||
extern char * optarg;
|
||||
extern int optind, opterr, optopt;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GETOPT_LONG
|
||||
struct option;
|
||||
int getopt_long (int argc, char * const argv[], const char * optstring,
|
||||
const struct option * longopts, int * longindex);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_USLEEP
|
||||
int usleep(unsigned long usec); /* SUSv2 */
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GETTIMEOFDAY
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifndef HAVE_STRUCT_TIMEZONE
|
||||
struct timezone {
|
||||
int tz_minuteswest;
|
||||
int tz_dsttime;
|
||||
};
|
||||
#endif
|
||||
int gettimeofday(struct timeval *tv, struct timezone *tz);
|
||||
#endif
|
||||
|
||||
#ifndef timersub
|
||||
# define timersub(a, b, result) \
|
||||
do { \
|
||||
(result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
|
||||
(result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
|
||||
if ((result)->tv_usec < 0) { \
|
||||
--(result)->tv_sec; \
|
||||
(result)->tv_usec += 1000000; \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_SSIZE_T
|
||||
typedef size_t ssize_t;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Define missing prototypes, implemented in replacement lib */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRUCT_ADDRINFO
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#if HAVE_NETDB_H
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#elif HAVE_WS2TCPIP_H
|
||||
#include <ws2tcpip.h>
|
||||
#endif
|
||||
struct addrinfo {
|
||||
int ai_flags;
|
||||
int ai_family;
|
||||
int ai_socktype;
|
||||
int ai_protocol;
|
||||
socklen_t ai_addrlen;
|
||||
struct sockaddr *ai_addr;
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GETADDRINFO
|
||||
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#if HAVE_NETDB_H
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#elif HAVE_WS2TCPIP_H
|
||||
#include <ws2tcpip.h>
|
||||
#endif
|
||||
|
||||
#ifndef AI_PASSIVE
|
||||
#define AI_PASSIVE 0x0001
|
||||
#endif
|
||||
|
||||
int getaddrinfo(const char *node, const char *service,
|
||||
const struct addrinfo *hints, struct addrinfo **res);
|
||||
void freeaddrinfo(struct addrinfo *res);
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_DECL_GAI_STRERROR) && !defined(gai_strerror)
|
||||
const char *gai_strerror(int errcode);
|
||||
#endif /* !HAVE_DECL_GAI_STRERROR */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
//include <stdio.h>
|
||||
//#include <stdlib.h>
|
||||
//#include <string.h>
|
||||
//#include <errno.h>
|
||||
//#include <unistd.h>
|
||||
#include <hamlib/rig.h>
|
||||
//#include <sys/socket.h>
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#ifndef MULTICAST_H
|
||||
#define MULTICAST_H
|
||||
|
||||
struct multicast_vfo
|
||||
{
|
||||
char *name;
|
||||
double freq;
|
||||
char *mode;
|
||||
int width;
|
||||
int widthLower;
|
||||
int widthUpper;
|
||||
unsigned char rx; // true if in rx mode
|
||||
unsigned char tx; // true in in tx mode
|
||||
};
|
||||
|
||||
struct multicast_broadcast
|
||||
{
|
||||
char *ID;
|
||||
struct multicast_vfo **vfo;
|
||||
};
|
||||
|
||||
// returns # of bytes sent
|
||||
extern HAMLIB_EXPORT (int) multicast_init(RIG *rig, char *addr, int port);
|
||||
extern HAMLIB_EXPORT (int) multicast_send(RIG *rig, const char *msg, int msglen);
|
||||
extern HAMLIB_EXPORT (int) multicast_stop(RIG *rig);
|
||||
#endif //MULTICAST_H
|
938
hamlib/rig.h
|
@ -33,6 +33,8 @@
|
|||
#define RIG_MAKE_MODEL(a,b) ((a)*MAX_MODELS_PER_BACKEND+(b))
|
||||
#define RIG_BACKEND_NUM(a) ((a)/MAX_MODELS_PER_BACKEND)
|
||||
|
||||
//! @endcond
|
||||
|
||||
/*! \file riglist.h
|
||||
* \brief Hamlib rig(radio) model definitions.
|
||||
*
|
||||
|
@ -49,6 +51,13 @@
|
|||
* whishes to use. It is done with the rig_init() API call.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \def RIG_MODEL_NONE
|
||||
* \brief A macro that returns the model number for an unknown model.
|
||||
*
|
||||
* The none backend, as the name suggests, does nothing. It is mainly for
|
||||
* internal use.
|
||||
*/
|
||||
#define RIG_MODEL_NONE 0
|
||||
|
||||
/*! \def RIG_MODEL_DUMMY
|
||||
|
@ -62,16 +71,21 @@
|
|||
* It has also been expanded to provide support to "virtual" type of rigs
|
||||
* such as the network rig control backend and W1HKJ's Flrig application.
|
||||
*/
|
||||
//! @cond Doxygen_Suppress
|
||||
#define RIG_DUMMY 0
|
||||
#define RIG_BACKEND_DUMMY "dummy"
|
||||
//! @endcond
|
||||
#define RIG_MODEL_DUMMY RIG_MAKE_MODEL(RIG_DUMMY, 1)
|
||||
//! @cond Doxygen_Suppress
|
||||
#define RIG_MODEL_NETRIGCTL RIG_MAKE_MODEL(RIG_DUMMY, 2)
|
||||
#define RIG_MODEL_ARMSTRONG RIG_MAKE_MODEL(RIG_DUMMY, 3)
|
||||
#define RIG_MODEL_FLRIG RIG_MAKE_MODEL(RIG_DUMMY, 4)
|
||||
#define RIG_MODEL_TRXMANAGER_RIG RIG_MAKE_MODEL(RIG_DUMMY, 5)
|
||||
#define RIG_MODEL_DUMMY_NOVFO RIG_MAKE_MODEL(RIG_DUMMY, 6)
|
||||
#define RIG_MODEL_TCI1X RIG_MAKE_MODEL(RIG_DUMMY, 7)
|
||||
|
||||
#define RIG_MODEL_ACLOG RIG_MAKE_MODEL(RIG_DUMMY, 8)
|
||||
#define RIG_MODEL_SDRSHARP RIG_MAKE_MODEL(RIG_DUMMY, 9)
|
||||
#define RIG_MODEL_QUISK RIG_MAKE_MODEL(RIG_DUMMY, 10)
|
||||
|
||||
/*
|
||||
* Yaesu
|
||||
|
@ -123,7 +137,12 @@
|
|||
#define RIG_MODEL_FT897D RIG_MAKE_MODEL(RIG_YAESU, 43)
|
||||
#define RIG_MODEL_FTDX101MP RIG_MAKE_MODEL(RIG_YAESU, 44)
|
||||
#define RIG_MODEL_MCHFQRP RIG_MAKE_MODEL(RIG_YAESU, 45)
|
||||
|
||||
#define RIG_MODEL_FT450D RIG_MAKE_MODEL(RIG_YAESU, 46)
|
||||
#define RIG_MODEL_FT650 RIG_MAKE_MODEL(RIG_YAESU, 47)
|
||||
#define RIG_MODEL_FT990UNI RIG_MAKE_MODEL(RIG_YAESU, 48)
|
||||
#define RIG_MODEL_FT710 RIG_MAKE_MODEL(RIG_YAESU, 49)
|
||||
#define RIG_MODEL_FT9000OLD RIG_MAKE_MODEL(RIG_YAESU, 50)
|
||||
#define RIG_MODEL_Q900 RIG_MAKE_MODEL(RIG_YAESU, 51)
|
||||
|
||||
/*
|
||||
* Kenwood
|
||||
|
@ -179,6 +198,12 @@
|
|||
#define RIG_MODEL_K4 RIG_MAKE_MODEL(RIG_KENWOOD, 47)
|
||||
#define RIG_MODEL_POWERSDR RIG_MAKE_MODEL(RIG_KENWOOD, 48)
|
||||
#define RIG_MODEL_MALACHITE RIG_MAKE_MODEL(RIG_KENWOOD, 49)
|
||||
#define RIG_MODEL_LAB599_TX500 RIG_MAKE_MODEL(RIG_KENWOOD,50)
|
||||
#define RIG_MODEL_SDRUNO RIG_MAKE_MODEL(RIG_KENWOOD,51)
|
||||
#define RIG_MODEL_QRPLABS RIG_MAKE_MODEL(RIG_KENWOOD,52)
|
||||
#define RIG_MODEL_FX4 RIG_MAKE_MODEL(RIG_KENWOOD,53)
|
||||
#define RIG_MODEL_THETIS RIG_MAKE_MODEL(RIG_KENWOOD, 54)
|
||||
#define RIG_MODEL_TRUSDX RIG_MAKE_MODEL(RIG_KENWOOD, 55)
|
||||
|
||||
/*
|
||||
* Icom
|
||||
|
@ -262,8 +287,11 @@
|
|||
#define RIG_MODEL_ID31 RIG_MAKE_MODEL(RIG_ICOM, 83)
|
||||
#define RIG_MODEL_ID51 RIG_MAKE_MODEL(RIG_ICOM, 84)
|
||||
#define RIG_MODEL_IC705 RIG_MAKE_MODEL(RIG_ICOM, 85)
|
||||
/* next one is 86 */
|
||||
|
||||
#define RIG_MODEL_ICF8101 RIG_MAKE_MODEL(RIG_ICOM, 86)
|
||||
#define RIG_MODEL_X6100 RIG_MAKE_MODEL(RIG_ICOM, 87) /* Xiegu X6100 */
|
||||
#define RIG_MODEL_G90 RIG_MAKE_MODEL(RIG_ICOM, 88) /* Xiegu G90 */
|
||||
#define RIG_MODEL_X5105 RIG_MAKE_MODEL(RIG_ICOM, 89) /* Xiegu X5105 -- G90 compatible */
|
||||
#define RIG_MODEL_IC905 RIG_MAKE_MODEL(RIG_ICOM, 90)
|
||||
|
||||
/*
|
||||
* Optoelectronics (CI-V)
|
||||
|
@ -273,7 +301,6 @@
|
|||
#define RIG_MODEL_OS535 RIG_MAKE_MODEL(RIG_ICOM, 52)
|
||||
#define RIG_MODEL_OS456 RIG_MAKE_MODEL(RIG_ICOM, 53)
|
||||
|
||||
|
||||
/*
|
||||
* TenTec (CI-V)
|
||||
*/
|
||||
|
@ -282,7 +309,6 @@
|
|||
#define RIG_MODEL_PARAGON2 RIG_MAKE_MODEL(RIG_ICOM, 59)
|
||||
#define RIG_MODEL_DELTAII RIG_MAKE_MODEL(RIG_ICOM, 64)
|
||||
|
||||
|
||||
/*
|
||||
* Icom PCR
|
||||
*/
|
||||
|
@ -293,7 +319,6 @@
|
|||
#define RIG_MODEL_PCR1500 RIG_MAKE_MODEL(RIG_PCR, 3)
|
||||
#define RIG_MODEL_PCR2500 RIG_MAKE_MODEL(RIG_PCR, 4)
|
||||
|
||||
|
||||
/*
|
||||
* AOR
|
||||
*/
|
||||
|
@ -316,7 +341,6 @@
|
|||
#define RIG_MODEL_AR7030P RIG_MAKE_MODEL(RIG_AOR, 15)
|
||||
#define RIG_MODEL_SR2200 RIG_MAKE_MODEL(RIG_AOR, 16)
|
||||
|
||||
|
||||
/*
|
||||
* JRC
|
||||
*/
|
||||
|
@ -330,7 +354,6 @@
|
|||
#define RIG_MODEL_NRD535 RIG_MAKE_MODEL(RIG_JRC, 6)
|
||||
#define RIG_MODEL_NRD545 RIG_MAKE_MODEL(RIG_JRC, 7)
|
||||
|
||||
|
||||
/*
|
||||
* Radio Shack
|
||||
* Actually, they might be either Icom or Uniden. TBC --SF
|
||||
|
@ -344,7 +367,6 @@
|
|||
#define RIG_MODEL_RS2042 RIG_MAKE_MODEL(RIG_RADIOSHACK, 5) /* w/ OptoElectronics OS435 Board */
|
||||
#define RIG_MODEL_RS2041 RIG_MAKE_MODEL(RIG_RADIOSHACK, 6) /* PRO-2041 */
|
||||
|
||||
|
||||
/*
|
||||
* Uniden
|
||||
*/
|
||||
|
@ -363,7 +385,6 @@
|
|||
#define RIG_MODEL_BCD996T RIG_MAKE_MODEL(RIG_UNIDEN, 11)
|
||||
#define RIG_MODEL_BC898 RIG_MAKE_MODEL(RIG_UNIDEN, 12)
|
||||
|
||||
|
||||
/*
|
||||
* Drake
|
||||
*/
|
||||
|
@ -373,7 +394,6 @@
|
|||
#define RIG_MODEL_DKR8A RIG_MAKE_MODEL(RIG_DRAKE, 2)
|
||||
#define RIG_MODEL_DKR8B RIG_MAKE_MODEL(RIG_DRAKE, 3)
|
||||
|
||||
|
||||
/*
|
||||
* Lowe
|
||||
*/
|
||||
|
@ -384,7 +404,6 @@
|
|||
#define RIG_MODEL_HF250 RIG_MAKE_MODEL(RIG_LOWE, 3)
|
||||
#define RIG_MODEL_HF235 RIG_MAKE_MODEL(RIG_LOWE, 4)
|
||||
|
||||
|
||||
/*
|
||||
* Racal
|
||||
*/
|
||||
|
@ -396,7 +415,6 @@
|
|||
#define RIG_MODEL_RA3710 RIG_MAKE_MODEL(RIG_RACAL, 4)
|
||||
#define RIG_MODEL_RA3702 RIG_MAKE_MODEL(RIG_RACAL, 5)
|
||||
|
||||
|
||||
/*
|
||||
* Watkins-Johnson
|
||||
*/
|
||||
|
@ -407,7 +425,6 @@
|
|||
#define RIG_MODEL_WJ8711 RIG_MAKE_MODEL(RIG_WJ, 3)
|
||||
#define RIG_MODEL_WJ8888 RIG_MAKE_MODEL(RIG_WJ, 4)
|
||||
|
||||
|
||||
/*
|
||||
* Rohde & Schwarz--ek
|
||||
*/
|
||||
|
@ -419,7 +436,6 @@
|
|||
#define RIG_MODEL_EK895 RIG_MAKE_MODEL(RIG_EK, 4)
|
||||
#define RIG_MODEL_EK070 RIG_MAKE_MODEL(RIG_EK, 5)
|
||||
|
||||
|
||||
/*
|
||||
* Skanti
|
||||
*/
|
||||
|
@ -430,7 +446,6 @@
|
|||
#define RIG_MODEL_TRP9000 RIG_MAKE_MODEL(RIG_SKANTI, 3)
|
||||
#define RIG_MODEL_TRP8255 RIG_MAKE_MODEL(RIG_SKANTI, 4)
|
||||
|
||||
|
||||
/*
|
||||
* WiNRADiO/LinRADiO
|
||||
*/
|
||||
|
@ -448,7 +463,6 @@
|
|||
#define RIG_MODEL_G305 RIG_MAKE_MODEL(RIG_WINRADIO, 10)
|
||||
#define RIG_MODEL_G315 RIG_MAKE_MODEL(RIG_WINRADIO, 11)
|
||||
|
||||
|
||||
/*
|
||||
* Ten Tec
|
||||
*/
|
||||
|
@ -467,7 +481,6 @@
|
|||
#define RIG_MODEL_RX331 RIG_MAKE_MODEL(RIG_TENTEC, 12)
|
||||
#define RIG_MODEL_TT599 RIG_MAKE_MODEL(RIG_TENTEC, 13) /* Eagle */
|
||||
|
||||
|
||||
/*
|
||||
* Alinco
|
||||
*/
|
||||
|
@ -476,7 +489,6 @@
|
|||
#define RIG_MODEL_DX77 RIG_MAKE_MODEL(RIG_ALINCO, 1)
|
||||
#define RIG_MODEL_DXSR8 RIG_MAKE_MODEL(RIG_ALINCO, 2)
|
||||
|
||||
|
||||
/*
|
||||
* Kachina
|
||||
*/
|
||||
|
@ -484,7 +496,6 @@
|
|||
#define RIG_BACKEND_KACHINA "kachina"
|
||||
#define RIG_MODEL_505DSP RIG_MAKE_MODEL(RIG_KACHINA, 1)
|
||||
|
||||
|
||||
/*
|
||||
* Gnuradio backend
|
||||
*/
|
||||
|
@ -496,7 +507,6 @@
|
|||
#define RIG_MODEL_GRAUDIOIQ RIG_MAKE_MODEL(RIG_GNURADIO, 4) /* I&Q stereo sound card source */
|
||||
#define RIG_MODEL_USRP_G RIG_MAKE_MODEL(RIG_GNURADIO, 5) /* Universal Software Radio Peripheral */
|
||||
|
||||
|
||||
/*
|
||||
* Microtune tuners
|
||||
*/
|
||||
|
@ -506,7 +516,6 @@
|
|||
#define RIG_MODEL_MICROTUNE_4702 RIG_MAKE_MODEL(RIG_MICROTUNE, 2) /* Alan's */
|
||||
#define RIG_MODEL_MICROTUNE_4707 RIG_MAKE_MODEL(RIG_MICROTUNE, 3)
|
||||
|
||||
|
||||
/*
|
||||
* TAPR
|
||||
*/
|
||||
|
@ -514,7 +523,6 @@
|
|||
#define RIG_BACKEND_TAPR "tapr"
|
||||
#define RIG_MODEL_DSP10 RIG_MAKE_MODEL(RIG_TAPR, 1)
|
||||
|
||||
|
||||
/*
|
||||
* Flex-radio
|
||||
*/
|
||||
|
@ -525,7 +533,6 @@
|
|||
#define RIG_MODEL_DTTSP RIG_MAKE_MODEL(RIG_FLEXRADIO, 3)
|
||||
#define RIG_MODEL_DTTSP_UDP RIG_MAKE_MODEL(RIG_FLEXRADIO, 4)
|
||||
|
||||
|
||||
/*
|
||||
* VEB Funkwerk Köpenick RFT
|
||||
*/
|
||||
|
@ -533,7 +540,6 @@
|
|||
#define RIG_BACKEND_RFT "rft"
|
||||
#define RIG_MODEL_EKD500 RIG_MAKE_MODEL(RIG_RFT, 1)
|
||||
|
||||
|
||||
/*
|
||||
* Various kits
|
||||
*/
|
||||
|
@ -559,7 +565,6 @@
|
|||
#define RIG_MODEL_FUNCUBEDONGLEPLUS RIG_MAKE_MODEL(RIG_KIT, 18) /* FunCUBE Dongle Pro+ */
|
||||
#define RIG_MODEL_RSHFIQ RIG_MAKE_MODEL(RIG_KIT, 19) /* RS-HFIQ */
|
||||
|
||||
|
||||
/*
|
||||
* SW/FM/TV tuner cards supported by Video4Linux,*BSD, ..
|
||||
*/
|
||||
|
@ -568,7 +573,6 @@
|
|||
#define RIG_MODEL_V4L RIG_MAKE_MODEL(RIG_TUNER, 1)
|
||||
#define RIG_MODEL_V4L2 RIG_MAKE_MODEL(RIG_TUNER, 2)
|
||||
|
||||
|
||||
/*
|
||||
* Rohde & Schwarz--rs
|
||||
*/
|
||||
|
@ -577,7 +581,7 @@
|
|||
#define RIG_MODEL_ESMC RIG_MAKE_MODEL(RIG_RS, 1)
|
||||
#define RIG_MODEL_EB200 RIG_MAKE_MODEL(RIG_RS, 2)
|
||||
#define RIG_MODEL_XK2100 RIG_MAKE_MODEL(RIG_RS, 3)
|
||||
|
||||
#define RIG_MODEL_EK89X RIG_MAKE_MODEL(RIG_RS, 4)
|
||||
|
||||
/*
|
||||
* Phillips/Simoco PRM80
|
||||
|
@ -587,7 +591,6 @@
|
|||
#define RIG_MODEL_PRM8060 RIG_MAKE_MODEL(RIG_PRM80, 1)
|
||||
#define RIG_MODEL_PRM8070 RIG_MAKE_MODEL(RIG_PRM80, 2)
|
||||
|
||||
|
||||
/*
|
||||
* ADAT by HB9CBU
|
||||
*
|
||||
|
@ -597,7 +600,6 @@
|
|||
#define RIG_BACKEND_ADAT "adat"
|
||||
#define RIG_MODEL_ADT_200A RIG_MAKE_MODEL(RIG_ADAT, 1)
|
||||
|
||||
|
||||
/*
|
||||
* ICOM Marine
|
||||
*/
|
||||
|
@ -608,7 +610,6 @@
|
|||
#define RIG_MODEL_IC_M710 RIG_MAKE_MODEL(RIG_ICMARINE, 3)
|
||||
#define RIG_MODEL_IC_M803 RIG_MAKE_MODEL(RIG_ICMARINE, 4)
|
||||
|
||||
|
||||
/*
|
||||
* Dorji transceiver modules
|
||||
*/
|
||||
|
@ -624,6 +625,8 @@
|
|||
#define RIG_BACKEND_BARRETT "barrett"
|
||||
#define RIG_MODEL_BARRETT_2050 RIG_MAKE_MODEL(RIG_BARRETT, 1)
|
||||
#define RIG_MODEL_BARRETT_950 RIG_MAKE_MODEL(RIG_BARRETT, 2)
|
||||
#define RIG_MODEL_BARRETT_4050 RIG_MAKE_MODEL(RIG_BARRETT, 3)
|
||||
#define RIG_MODEL_BARRETT_4100 RIG_MAKE_MODEL(RIG_BARRETT, 4)
|
||||
|
||||
/*
|
||||
* Elad
|
||||
|
@ -631,9 +634,29 @@
|
|||
#define RIG_ELAD 33
|
||||
#define RIG_BACKEND_ELAD "elad"
|
||||
#define RIG_MODEL_ELAD_FDM_DUO RIG_MAKE_MODEL(RIG_ELAD, 1)
|
||||
//! @endcond
|
||||
|
||||
/*
|
||||
* CODAN
|
||||
*/
|
||||
#define RIG_CODAN 34
|
||||
#define RIG_BACKEND_CODAN "codan"
|
||||
#define RIG_MODEL_CODAN_ENVOY RIG_MAKE_MODEL(RIG_CODAN, 1)
|
||||
#define RIG_MODEL_CODAN_NGT RIG_MAKE_MODEL(RIG_CODAN, 2)
|
||||
|
||||
/*
|
||||
* Gomspace
|
||||
*/
|
||||
#define RIG_GOMSPACE 35
|
||||
#define RIG_BACKEND_GOMSPACE "gomspace"
|
||||
#define RIG_MODEL_GS100 RIG_MAKE_MODEL(RIG_GOMSPACE, 1)
|
||||
|
||||
/*
|
||||
* MDS Microwave Data Systems https://en.wikipedia.org/wiki/Microwave_Data_Systems
|
||||
*/
|
||||
#define RIG_MDS 36
|
||||
#define RIG_BACKEND_MDS "MDS"
|
||||
#define RIG_MODEL_MDS4710 RIG_MAKE_MODEL(RIG_MDS, 1)
|
||||
#define RIG_MODEL_MDS9710 RIG_MAKE_MODEL(RIG_MDS, 2)
|
||||
/*
|
||||
* TODO:
|
||||
RIG_MODEL_KWZ30, KNEISNER +DOERING
|
||||
|
@ -641,6 +664,15 @@
|
|||
etc.
|
||||
*/
|
||||
|
||||
/*
|
||||
* AnyTone rigs
|
||||
*/
|
||||
#define RIG_ANYTONE 37
|
||||
#define RIG_BACKEND_ANYTONE "AnyTone"
|
||||
#define RIG_MODEL_ATD578UVIII RIG_MAKE_MODEL(RIG_ANYTONE, 1)
|
||||
|
||||
|
||||
//! @endcond
|
||||
|
||||
/*! \typedef typedef int rig_model_t
|
||||
\brief Convenience type definition for rig model.
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#ifndef _ROTATOR_H
|
||||
#define _ROTATOR_H 1
|
||||
|
@ -413,8 +414,8 @@ struct rot_caps {
|
|||
int (*rot_open)(ROT *rot); /*!< Pointer to backend implementation of ::rot_open(). */
|
||||
int (*rot_close)(ROT *rot); /*!< Pointer to backend implementation of ::rot_close(). */
|
||||
|
||||
int (*set_conf)(ROT *rot, token_t token, const char *val); /*!< Pointer to backend implementation of ::rot_set_conf(). */
|
||||
int (*get_conf)(ROT *rot, token_t token, char *val); /*!< Pointer to backend implementation of ::rot_get_conf(). */
|
||||
int (*set_conf)(ROT *rot, hamlib_token_t token, const char *val); /*!< Pointer to backend implementation of ::rot_set_conf(). */
|
||||
int (*get_conf)(ROT *rot, hamlib_token_t token, char *val); /*!< Pointer to backend implementation of ::rot_get_conf(). */
|
||||
|
||||
/*
|
||||
* General API commands, from most primitive to least.. :()
|
||||
|
@ -441,18 +442,19 @@ struct rot_caps {
|
|||
int (*set_parm)(ROT *rot, setting_t parm, value_t val); /*!< Pointer to backend implementation of ::rot_set_parm(). */
|
||||
int (*get_parm)(ROT *rot, setting_t parm, value_t *val); /*!< Pointer to backend implementation of ::rot_get_parm(). */
|
||||
|
||||
int (*set_ext_level)(ROT *rot, token_t token, value_t val); /*!< Pointer to backend implementation of ::rot_set_ext_level(). */
|
||||
int (*get_ext_level)(ROT *rot, token_t token, value_t *val); /*!< Pointer to backend implementation of ::rot_get_ext_level(). */
|
||||
int (*set_ext_level)(ROT *rot, hamlib_token_t token, value_t val); /*!< Pointer to backend implementation of ::rot_set_ext_level(). */
|
||||
int (*get_ext_level)(ROT *rot, hamlib_token_t token, value_t *val); /*!< Pointer to backend implementation of ::rot_get_ext_level(). */
|
||||
|
||||
int (*set_ext_func)(ROT *rot, token_t token, int status); /*!< Pointer to backend implementation of ::rot_set_ext_func(). */
|
||||
int (*get_ext_func)(ROT *rot, token_t token, int *status); /*!< Pointer to backend implementation of ::rot_get_ext_func(). */
|
||||
int (*set_ext_func)(ROT *rot, hamlib_token_t token, int status); /*!< Pointer to backend implementation of ::rot_set_ext_func(). */
|
||||
int (*get_ext_func)(ROT *rot, hamlib_token_t token, int *status); /*!< Pointer to backend implementation of ::rot_get_ext_func(). */
|
||||
|
||||
int (*set_ext_parm)(ROT *rot, token_t token, value_t val); /*!< Pointer to backend implementation of ::rot_set_ext_parm(). */
|
||||
int (*get_ext_parm)(ROT *rot, token_t token, value_t *val); /*!< Pointer to backend implementation of ::rot_get_ext_parm(). */
|
||||
int (*set_ext_parm)(ROT *rot, hamlib_token_t token, value_t val); /*!< Pointer to backend implementation of ::rot_set_ext_parm(). */
|
||||
int (*get_ext_parm)(ROT *rot, hamlib_token_t token, value_t *val); /*!< Pointer to backend implementation of ::rot_get_ext_parm(). */
|
||||
|
||||
int (*get_status)(ROT *rot, rot_status_t *status); /*!< Pointer to backend implementation of ::rot_get_status(). */
|
||||
|
||||
const char *macro_name; /*!< Rotator model macro name. */
|
||||
int (*get_conf2)(ROT *rot, hamlib_token_t token, char *val, int val_len); /*!< Pointer to backend implementation of ::rot_get_conf2(). */
|
||||
};
|
||||
//! @cond Doxygen_Suppress
|
||||
#define ROT_MODEL(arg) .rot_model=arg,.macro_name=#arg
|
||||
|
@ -496,15 +498,16 @@ struct rot_state {
|
|||
/*
|
||||
* non overridable fields, internal use
|
||||
*/
|
||||
hamlib_port_t rotport; /*!< Rotator port (internal use). */
|
||||
hamlib_port_t rotport2; /*!< 2nd Rotator port (internal use). */
|
||||
hamlib_port_t_deprecated rotport_deprecated; /*!< Rotator port (internal use). Deprecated */
|
||||
hamlib_port_t_deprecated rotport2_deprecated; /*!< 2nd Rotator port (internal use). Deprecated */
|
||||
|
||||
int comm_state; /*!< Comm port state, i.e. opened or closed. */
|
||||
rig_ptr_t priv; /*!< Pointer to private rotator state data. */
|
||||
rig_ptr_t obj; /*!< Internal use by hamlib++ for event handling. */
|
||||
|
||||
int current_speed; /*!< Current speed 1-100, to be used when no change to speed is requested. */
|
||||
/* etc... */
|
||||
hamlib_port_t rotport; /*!< Rotator port (internal use). */
|
||||
hamlib_port_t rotport2; /*!< 2nd Rotator port (internal use). */
|
||||
};
|
||||
|
||||
|
||||
|
@ -542,13 +545,19 @@ rot_cleanup HAMLIB_PARAMS((ROT *rot));
|
|||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_set_conf HAMLIB_PARAMS((ROT *rot,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
const char *val));
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_get_conf HAMLIB_PARAMS((ROT *rot,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
char *val));
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_get_conf2 HAMLIB_PARAMS((ROT *rot,
|
||||
hamlib_token_t token,
|
||||
char *val,
|
||||
int val_len));
|
||||
|
||||
/*
|
||||
* General API commands, from most primitive to least.. )
|
||||
* List Set/Get functions pairs
|
||||
|
@ -627,29 +636,29 @@ rot_get_parm HAMLIB_PARAMS((ROT *rig,
|
|||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_set_ext_level HAMLIB_PARAMS((ROT *rig,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
value_t val));
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_get_ext_level HAMLIB_PARAMS((ROT *rig,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
value_t *val));
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_set_ext_func HAMLIB_PARAMS((ROT *rig,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
int status));
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_get_ext_func HAMLIB_PARAMS((ROT *rig,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
int *status));
|
||||
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_set_ext_parm HAMLIB_PARAMS((ROT *rig,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
value_t val));
|
||||
extern HAMLIB_EXPORT(int)
|
||||
rot_get_ext_parm HAMLIB_PARAMS((ROT *rig,
|
||||
token_t token,
|
||||
hamlib_token_t token,
|
||||
value_t *val));
|
||||
|
||||
extern HAMLIB_EXPORT(const char *)
|
||||
|
@ -692,7 +701,7 @@ extern HAMLIB_EXPORT(const struct confparams *)
|
|||
rot_confparam_lookup HAMLIB_PARAMS((ROT *rot,
|
||||
const char *name));
|
||||
|
||||
extern HAMLIB_EXPORT(token_t)
|
||||
extern HAMLIB_EXPORT(hamlib_token_t)
|
||||
rot_token_lookup HAMLIB_PARAMS((ROT *rot,
|
||||
const char *name));
|
||||
|
||||
|
@ -721,8 +730,8 @@ rot_ext_lookup HAMLIB_PARAMS((ROT *rot,
|
|||
|
||||
extern HAMLIB_EXPORT(const struct confparams *)
|
||||
rot_ext_lookup_tok HAMLIB_PARAMS((ROT *rot,
|
||||
token_t token));
|
||||
extern HAMLIB_EXPORT(token_t)
|
||||
hamlib_token_t token));
|
||||
extern HAMLIB_EXPORT(hamlib_token_t)
|
||||
rot_ext_token_lookup HAMLIB_PARAMS((ROT *rot,
|
||||
const char *name));
|
||||
|
||||
|
@ -743,6 +752,7 @@ distance_long_path HAMLIB_PARAMS((double distance));
|
|||
extern HAMLIB_EXPORT(double)
|
||||
azimuth_long_path HAMLIB_PARAMS((double azimuth));
|
||||
|
||||
#if 0
|
||||
extern HAMLIB_EXPORT(int)
|
||||
longlat2locator HAMLIB_PARAMS((double longitude,
|
||||
double latitude,
|
||||
|
@ -753,6 +763,7 @@ extern HAMLIB_EXPORT(int)
|
|||
locator2longlat HAMLIB_PARAMS((double *longitude,
|
||||
double *latitude,
|
||||
const char *locator));
|
||||
#endif
|
||||
|
||||
extern HAMLIB_EXPORT(double)
|
||||
dms2dec HAMLIB_PARAMS((int degrees,
|
||||
|
@ -787,6 +798,8 @@ extern HAMLIB_EXPORT(const char *) rot_strlevel(setting_t);
|
|||
extern HAMLIB_EXPORT(const char *) rot_strparm(setting_t);
|
||||
extern HAMLIB_EXPORT(const char *) rot_strstatus(rot_status_t);
|
||||
|
||||
extern HAMLIB_EXPORT(void *) rot_data_pointer(ROT *rot, rig_ptrx_t idx);
|
||||
|
||||
//! @endcond
|
||||
|
||||
/**
|
||||
|
|
|
@ -176,6 +176,13 @@
|
|||
* The RT21 backend can be used with rotators that support the DCU command set
|
||||
* by Green Heron (currently the RT-21).
|
||||
*/
|
||||
/**
|
||||
* \brief A macro that returns the model number of the YRC-1 backend.
|
||||
*
|
||||
* \def ROT_MODEL_YRC1
|
||||
*
|
||||
* The YRC1 backend can be used with rotators that support the DCU 2/3 command set
|
||||
*/
|
||||
//! @cond Doxygen_Suppress
|
||||
#define ROT_ROTOREZ 4
|
||||
#define ROT_BACKEND_ROTOREZ "rotorez"
|
||||
|
@ -185,6 +192,8 @@
|
|||
#define ROT_MODEL_DCU ROT_MAKE_MODEL(ROT_ROTOREZ, 3)
|
||||
#define ROT_MODEL_ERC ROT_MAKE_MODEL(ROT_ROTOREZ, 4)
|
||||
#define ROT_MODEL_RT21 ROT_MAKE_MODEL(ROT_ROTOREZ, 5)
|
||||
#define ROT_MODEL_YRC1 ROT_MAKE_MODEL(ROT_ROTOREZ, 6)
|
||||
#define ROT_MODEL_RT21 ROT_MAKE_MODEL(ROT_ROTOREZ, 5)
|
||||
|
||||
|
||||
/**
|
||||
|
@ -314,8 +323,11 @@
|
|||
#define ROT_MODEL_GS232A_EL ROT_MAKE_MODEL(ROT_GS232A, 10)
|
||||
#define ROT_MODEL_GS232B_AZ ROT_MAKE_MODEL(ROT_GS232A, 11)
|
||||
#define ROT_MODEL_GS232B_EL ROT_MAKE_MODEL(ROT_GS232A, 12)
|
||||
#define ROT_MODEL_GS23_AZ ROT_MAKE_MODEL(ROT_GS232A, 13)
|
||||
|
||||
|
||||
#define ROT_ARRAYSOLUTIONS 7
|
||||
#define ROT_BACKEND ARRAYSOLUTIONS "arraysolutions"
|
||||
#define ROT_MODEL_ARRAYSOLUTIONS_SAL_12_20_30 ROT_MAKE_MODEL(ROT_ARRAYSOLUTIONS, 1)
|
||||
/**
|
||||
* \brief A macro that returns the model number of the PCROTOR backend.
|
||||
*
|
||||
|
@ -545,6 +557,7 @@
|
|||
#define ROT_MODEL_PROSISTEL_D_AZ ROT_MAKE_MODEL(ROT_PROSISTEL, 1)
|
||||
#define ROT_MODEL_PROSISTEL_D_EL ROT_MAKE_MODEL(ROT_PROSISTEL, 2)
|
||||
#define ROT_MODEL_PROSISTEL_COMBI_TRACK_AZEL ROT_MAKE_MODEL(ROT_PROSISTEL, 3)
|
||||
#define ROT_MODEL_PROSISTEL_D_EL_CBOXAZ ROT_MAKE_MODEL(ROT_PROSISTEL, 4)
|
||||
|
||||
|
||||
/**
|
||||
|
@ -623,6 +636,70 @@
|
|||
#define ROT_BACKEND_ANDROIDSENSOR "androidsensor"
|
||||
#define ROT_MODEL_ANDROIDSENSOR ROT_MAKE_MODEL(ROT_ANDROIDSENSOR, 1)
|
||||
|
||||
/**
|
||||
* \brief A macro that returns the model number of the ROT_MODEL_GRBLTRK_SER backend.
|
||||
*
|
||||
* \def ROT_MODEL_GRBLTRK_SER
|
||||
*
|
||||
* The GRBLTRK backend can be used with rotators that support the GRBL
|
||||
* protocol.
|
||||
*/
|
||||
/**
|
||||
* \brief A macro that returns the model number of the ROT_MODEL_GRBLTRK_NET backend.
|
||||
*
|
||||
* \def ROT_MODEL_GRBLTRK_NET
|
||||
*
|
||||
* The GRBLTRK backend can be used with rotators that support the GRBL
|
||||
* protocol.
|
||||
*/
|
||||
//! @cond Doxygen_Suppress
|
||||
#define ROT_GRBLTRK 24
|
||||
#define ROT_BACKEND_GRBLTRK "grbltrk"
|
||||
//! @endcond
|
||||
#define ROT_MODEL_GRBLTRK_SER ROT_MAKE_MODEL(ROT_GRBLTRK, 1)
|
||||
#define ROT_MODEL_GRBLTRK_NET ROT_MAKE_MODEL(ROT_GRBLTRK, 2)
|
||||
|
||||
/**
|
||||
* \brief A macro that returns the model number of the FLIR backend.
|
||||
*
|
||||
* \def ROT_MODEL_FLIR
|
||||
*
|
||||
* The FLIR backend can be used with FLIR and DirectedPercepition
|
||||
* rotators using the PTU protocol (e.g. PTU-D48). Currently only
|
||||
* the serial interface is supported and no ethernet.
|
||||
*/
|
||||
//! @cond Doxygen_Suppress
|
||||
#define ROT_FLIR 25
|
||||
#define ROT_BACKEND_FLIR "flir"
|
||||
//! @endcond
|
||||
#define ROT_MODEL_FLIR ROT_MAKE_MODEL(ROT_FLIR, 1)
|
||||
|
||||
/**
|
||||
* \brief A macro that returns the model number of the APEX backend.
|
||||
*
|
||||
* \def ROT_MODEL_APEX_SHARED_LOOP
|
||||
*
|
||||
* The APEX backend can be used with APEX * rotators.
|
||||
*/
|
||||
//! @cond Doxygen_Suppress
|
||||
#define ROT_APEX 26
|
||||
#define ROT_BACKEND_APEX "apex"
|
||||
//! @endcond
|
||||
#define ROT_MODEL_APEX_SHARED_LOOP ROT_MAKE_MODEL(ROT_APEX, 1)
|
||||
|
||||
/**
|
||||
* \brief A macro that returns the model number of the SAEBRTRACK backend.
|
||||
*
|
||||
* \def ROT_MODEL_SAEBRTRACK
|
||||
*
|
||||
* The SAEBRTRACK backend can be used with SAEBRTRACK * rotators.
|
||||
*/
|
||||
//! @cond Doxygen_Suppress
|
||||
#define ROT_SAEBRTRACK 27
|
||||
#define ROT_BACKEND_SAEBRTRACK "SAEBRTrack"
|
||||
//! @endcond
|
||||
#define ROT_MODEL_SAEBRTRACK ROT_MAKE_MODEL(ROT_SAEBRTRACK, 1)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Convenience type definition for a rotator model.
|
||||
|
|
1107
mainwindow.cpp
78
mainwindow.h
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
** This file is part of the CatRadio project.
|
||||
** Copyright 2022 Gianfranco Sordetti IZ8EWD <iz8ewd@pianetaradio.it>.
|
||||
** Copyright 2022-2024 Gianfranco Sordetti IZ8EWD <iz8ewd@pianetaradio.it>.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
|
@ -23,10 +23,12 @@
|
|||
#include <QMainWindow>
|
||||
#include <QTimer>
|
||||
|
||||
#include "rig.h"
|
||||
|
||||
#define RELEASE_DATE __DATE__
|
||||
#define VERSION_MAJ 1
|
||||
#define VERSION_MIN 1
|
||||
#define VERSION_MIC 0
|
||||
#define VERSION_MIN 4
|
||||
#define VERSION_MIC 1
|
||||
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
@ -44,8 +46,10 @@ public:
|
|||
|
||||
public slots:
|
||||
void guiUpdate();
|
||||
void rigUpdate(); //Slot for QTimer
|
||||
void on_rigDaemonResultReady(); //Slot for rigDaemon resultReady
|
||||
void on_vfoDisplayValueChanged(int value); //Slot for vfoDisplay valueChanged
|
||||
void on_vfoDisplayMainValueChanged(int value); //Slot for vfoDisplay Main valueChanged
|
||||
void on_vfoDisplaySubValueChanged(int value); //Slot for vfoDisplay Sub valueChanged
|
||||
|
||||
signals:
|
||||
|
||||
|
@ -156,12 +160,78 @@ private slots:
|
|||
|
||||
void on_comboBox_toneFreq_activated(int index);
|
||||
|
||||
void on_spinBox_RPToffset_valueChanged(int arg1);
|
||||
|
||||
void on_pushButton_left_clicked();
|
||||
|
||||
void on_pushButton_right_clicked();
|
||||
|
||||
void on_checkBox_clar_toggled(bool checked);
|
||||
|
||||
void on_pushButton_clarClear_clicked();
|
||||
|
||||
void on_horizontalSlider_clar_valueChanged(int value);
|
||||
|
||||
void on_radioButton_clarRIT_toggled(bool checked);
|
||||
|
||||
void on_radioButton_clarXIT_toggled(bool checked);
|
||||
|
||||
void on_verticalSlider_RFpower_sliderReleased();
|
||||
|
||||
void on_verticalSlider_RFgain_sliderReleased();
|
||||
|
||||
void on_verticalSlider_AFGain_sliderReleased();
|
||||
|
||||
void on_verticalSlider_Squelch_sliderReleased();
|
||||
|
||||
void on_horizontalSlider_IFshift_sliderReleased();
|
||||
|
||||
void on_horizontalSlider_clar_sliderReleased();
|
||||
|
||||
void on_checkBox_NB2_toggled(bool checked);
|
||||
|
||||
void on_verticalSlider_micGain_valueChanged(int value);
|
||||
|
||||
void on_verticalSlider_micGain_sliderReleased();
|
||||
|
||||
void on_verticalSlider_micCompressor_valueChanged(int value);
|
||||
|
||||
void on_verticalSlider_micCompressor_sliderReleased();
|
||||
|
||||
void on_verticalSlider_micMonitor_valueChanged(int value);
|
||||
|
||||
void on_verticalSlider_micMonitor_sliderReleased();
|
||||
|
||||
void on_checkBox_micCompressor_toggled(bool checked);
|
||||
|
||||
void on_checkBox_micMonitor_toggled(bool checked);
|
||||
|
||||
void on_action_Command_triggered();
|
||||
|
||||
void on_action_RadioInfo_triggered();
|
||||
|
||||
void on_action_AboutDarkTheme_triggered();
|
||||
|
||||
void on_pushButton_CW1_clicked();
|
||||
|
||||
void on_pushButton_CW2_clicked();
|
||||
|
||||
void on_pushButton_CW3_clicked();
|
||||
|
||||
void on_pushButton_CW4_clicked();
|
||||
|
||||
void on_pushButton_CW5_clicked();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
QTimer *timer;
|
||||
|
||||
RIG *my_rig;
|
||||
|
||||
void guiInit();
|
||||
void setSubMeter();
|
||||
|
||||
bool checkHamlibVersion(int major, int minor, int revision);
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
|
1584
mainwindow.ui
|
@ -0,0 +1,36 @@
|
|||
Authors
|
||||
=======
|
||||
|
||||
Maintainer(s)
|
||||
-------------
|
||||
|
||||
These people were/are maintainers of this project.
|
||||
|
||||
- 2013-current `Colin Duquesnoy <https://github.com/ColinDuquesnoy>`__ - colin.duquesnoy@gmail.com - original author.
|
||||
|
||||
- 2018-current `Daniel Pizetta <https://github.com/dpizetta>`__ - daniel.pizetta@usp.br - bug fixes, improvements, features.
|
||||
|
||||
- 2019-current `Gonzalo Peña-Castellanos <https://github.com/goanpeca>`__ - bug fixes, improvements, features.
|
||||
|
||||
- 2019-current `Carlos Cordoba <https://github.com/ccordoba12>`__
|
||||
|
||||
|
||||
Contributor(s)
|
||||
--------------
|
||||
|
||||
These people contribute to bug fixes, improvements and so on. Please,
|
||||
insert your information after the last one.
|
||||
|
||||
- Year - Name - ``<contact>`` - contribution.
|
||||
|
||||
- 2018 - `mowoolli <https://github.com/mowoolli>`__ - bug fixes.
|
||||
- 2018 - Xingyun Wu - ``xingyun.wu@foxmail.com`` - bug fixes.
|
||||
- 2018 - `KcHNST <https://github.com/KcHNST>`__ - bug fixes.
|
||||
- 2019 - `goanpeca <https://github.com/goanpeca>`__ - bug fixes, improvements, features.
|
||||
- 2020 - `tsilia <https://github.com/tsilia>`__ - bug fixes.
|
||||
- 2021 - `isabela-pf <https://github.com/isabela-pf>`__ - new palette design.
|
||||
- 2021 - `juanis2112 <https://github.com/juanis2112>`__ - improvements.
|
||||
- 2021 - `ccordoba12 <https://github.com/ccordoba12>`__ - mainteiner/improvements.
|
||||
- 2021 - Julian Gilbey ``jdg@debian.org`` - bug fixes.
|
||||
|
||||
And all people that reported bugs, thank you all!
|
|
@ -0,0 +1,405 @@
|
|||
License
|
||||
=======
|
||||
|
||||
The MIT License (MIT) - Code
|
||||
----------------------------
|
||||
|
||||
Copyright (c) 2013-2019 Colin Duquesnoy
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Creative Commons Attribution International 4.0 - Images
|
||||
-------------------------------------------------------
|
||||
|
||||
QDarkStyle (c) 2013-2019 Colin Duquesnoy
|
||||
QDarkStyle (c) 2019-2019 Daniel Cosmo Pizetta
|
||||
|
||||
Creative Commons Corporation (“Creative Commons”) is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an “as-is” basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright and
|
||||
certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
- **Considerations for licensors:** Our public licenses are intended
|
||||
for use by those authorized to give the public permission to use
|
||||
material in ways otherwise restricted by copyright and certain other
|
||||
rights. Our licenses are irrevocable. Licensors should read and
|
||||
understand the terms and conditions of the license they choose before
|
||||
applying it. Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the material as
|
||||
expected. Licensors should clearly mark any material not subject to
|
||||
the license. This includes other CC-licensed material, or material
|
||||
used under an exception or limitation to copyright. `More
|
||||
considerations for
|
||||
licensors <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors>`__.
|
||||
|
||||
- **Considerations for the public:** By using one of our public
|
||||
licenses, a licensor grants the public permission to use the licensed
|
||||
material under specified terms and conditions. If the licensor’s
|
||||
permission is not necessary for any reason–for example, because of
|
||||
any applicable exception or limitation to copyright–then that use is
|
||||
not regulated by the license. Our licenses grant only permissions
|
||||
under copyright and certain other rights that a licensor has
|
||||
authority to grant. Use of the licensed material may still be
|
||||
restricted for other reasons, including because others have copyright
|
||||
or other rights in the material. A licensor may make special
|
||||
requests, such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to respect
|
||||
those requests where reasonable. `More considerations for the
|
||||
public <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees>`__.
|
||||
|
||||
|
||||
Creative Commons Attribution 4.0 International Public License
|
||||
-------------------------------------------------------------
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution 4.0 International Public License ("Public License"). To the
|
||||
extent this Public License may be interpreted as a contract, You are
|
||||
granted the Licensed Rights in consideration of Your acceptance of these
|
||||
terms and conditions, and the Licensor grants You such rights in
|
||||
consideration of benefits the Licensor receives from making the Licensed
|
||||
Material available under these terms and conditions.
|
||||
|
||||
Section 1 – Definitions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
a. **Adapted Material** means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material and
|
||||
in which the Licensed Material is translated, altered, arranged,
|
||||
transformed, or otherwise modified in a manner requiring permission
|
||||
under the Copyright and Similar Rights held by the Licensor. For
|
||||
purposes of this Public License, where the Licensed Material is a
|
||||
musical work, performance, or sound recording, Adapted Material is
|
||||
always produced where the Licensed Material is synched in timed
|
||||
relation with a moving image.
|
||||
|
||||
b. **Adapter's License** means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. **Copyright and Similar Rights** means copyright and/or similar
|
||||
rights closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or categorized.
|
||||
For purposes of this Public License, the rights specified in Section
|
||||
2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||
|
||||
d. **Effective Technological Measures** means those measures that, in
|
||||
the absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright Treaty
|
||||
adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
e. **Exceptions and Limitations** means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
f. **Licensed Material** means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public License.
|
||||
|
||||
g. **Licensed Rights** means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to all
|
||||
Copyright and Similar Rights that apply to Your use of the Licensed
|
||||
Material and that the Licensor has authority to license.
|
||||
|
||||
h. **Licensor** means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
i. **Share** means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such as
|
||||
reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the public
|
||||
may access the material from a place and at a time individually
|
||||
chosen by them.
|
||||
|
||||
j. **Sui Generis Database Rights** means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases, as
|
||||
amended and/or succeeded, as well as other essentially equivalent
|
||||
rights anywhere in the world.
|
||||
|
||||
k. **You** means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
Section 2 – Scope
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
a. **License grant.**
|
||||
|
||||
1. Subject to the terms and conditions of this Public License, the
|
||||
Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to exercise the
|
||||
Licensed Rights in the Licensed Material to:
|
||||
|
||||
A. reproduce and Share the Licensed Material, in whole or in part;
|
||||
and
|
||||
|
||||
B. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. **Exceptions and Limitations.** For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public License
|
||||
does not apply, and You do not need to comply with its terms and
|
||||
conditions.
|
||||
|
||||
3. **Term.** The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. **Media and formats; technical modifications allowed.** The Licensor
|
||||
authorizes You to exercise the Licensed Rights in all media and
|
||||
formats whether now known or hereafter created, and to make technical
|
||||
modifications necessary to do so. The Licensor waives and/or agrees
|
||||
not to assert any right or authority to forbid You from making
|
||||
technical modifications necessary to exercise the Licensed Rights,
|
||||
including technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License, simply
|
||||
making modifications authorized by this Section 2(a)(4) never
|
||||
produces Adapted Material.
|
||||
|
||||
5. **Downstream recipients.**
|
||||
|
||||
A. **Offer from the Licensor – Licensed Material.** Every recipient
|
||||
of the Licensed Material automatically receives an offer from the
|
||||
Licensor to exercise the Licensed Rights under the terms and
|
||||
conditions of this Public License.
|
||||
|
||||
B. **No downstream restrictions.** You may not offer or impose any
|
||||
additional or different terms or conditions on, or apply any
|
||||
Effective Technological Measures to, the Licensed Material if doing
|
||||
so restricts exercise of the Licensed Rights by any recipient of the
|
||||
Licensed Material.
|
||||
|
||||
6. **No endorsement.** Nothing in this Public License constitutes or may
|
||||
be construed as permission to assert or imply that You are, or that
|
||||
Your use of the Licensed Material is, connected with, or sponsored,
|
||||
endorsed, or granted official status by, the Licensor or others
|
||||
designated to receive attribution as provided in Section
|
||||
3(a)(1)(A)(i).
|
||||
|
||||
b. **Other rights.**
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not licensed under
|
||||
this Public License, nor are publicity, privacy, and/or other similar
|
||||
personality rights; however, to the extent possible, the Licensor
|
||||
waives and/or agrees not to assert any such rights held by the
|
||||
Licensor to the limited extent necessary to allow You to exercise the
|
||||
Licensed Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this Public
|
||||
License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to collect
|
||||
royalties from You for the exercise of the Licensed Rights, whether
|
||||
directly or through a collecting society under any voluntary or
|
||||
waivable statutory or compulsory licensing scheme. In all other cases
|
||||
the Licensor expressly reserves any right to collect such royalties.
|
||||
|
||||
Section 3 – License Conditions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. **Attribution.**
|
||||
|
||||
1. If You Share the Licensed Material (including in modified form), You
|
||||
must:
|
||||
|
||||
A. retain the following if it is supplied by the Licensor with the
|
||||
Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed Material and any
|
||||
others designated to receive attribution, in any reasonable manner
|
||||
requested by the Licensor (including by pseudonym if designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||
|
||||
B. indicate if You modified the Licensed Material and retain an
|
||||
indication of any previous modifications; and
|
||||
|
||||
C. indicate the Licensed Material is licensed under this Public
|
||||
License, and include the text of, or the URI or hyperlink to, this
|
||||
Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable
|
||||
manner based on the medium, means, and context in which You Share the
|
||||
Licensed Material. For example, it may be reasonable to satisfy the
|
||||
conditions by providing a URI or hyperlink to a resource that
|
||||
includes the required information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the information
|
||||
required by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||
|
||||
4. If You Share Adapted Material You produce, the Adapter's License You
|
||||
apply must not prevent recipients of the Adapted Material from
|
||||
complying with this Public License.
|
||||
|
||||
Section 4 – Sui Generis Database Rights
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that apply
|
||||
to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to
|
||||
extract, reuse, reproduce, and Share all or a substantial portion of
|
||||
the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database contents
|
||||
in a database in which You have Sui Generis Database Rights, then the
|
||||
database in which You have Sui Generis Database Rights (but not its
|
||||
individual contents) is Adapted Material; and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share all
|
||||
or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
Section 5 – Disclaimer of Warranties and Limitation of Liability
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
a. Unless otherwise separately undertaken by the Licensor, to the
|
||||
extent possible, the Licensor offers the Licensed Material as-is and
|
||||
as-available, and makes no representations or warranties of any kind
|
||||
concerning the Licensed Material, whether express, implied,
|
||||
statutory, or other. This includes, without limitation, warranties of
|
||||
title, merchantability, fitness for a particular purpose,
|
||||
non-infringement, absence of latent or other defects, accuracy, or
|
||||
the presence or absence of errors, whether or not known or
|
||||
discoverable. Where disclaimers of warranties are not allowed in full
|
||||
or in part, this disclaimer may not apply to You.
|
||||
|
||||
b. To the extent possible, in no event will the Licensor be liable to
|
||||
You on any legal theory (including, without limitation, negligence)
|
||||
or otherwise for any direct, special, indirect, incidental,
|
||||
consequential, punitive, exemplary, or other losses, costs, expenses,
|
||||
or damages arising out of this Public License or use of the Licensed
|
||||
Material, even if the Licensor has been advised of the possibility of
|
||||
such losses, costs, expenses, or damages. Where a limitation of
|
||||
liability is not allowed in full or in part, this limitation may not
|
||||
apply to You.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent possible,
|
||||
most closely approximates an absolute disclaimer and waiver of all
|
||||
liability.
|
||||
|
||||
Section 6 – Term and Termination
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
a. This Public License applies for the term of the Copyright and Similar
|
||||
Rights licensed here. However, if You fail to comply with this Public
|
||||
License, then Your rights under this Public License terminate
|
||||
automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided it is
|
||||
cured within 30 days of Your discovery of the violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any right
|
||||
the Licensor may have to seek remedies for Your violations of this
|
||||
Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the Licensed
|
||||
Material under separate terms or conditions or stop distributing the
|
||||
Licensed Material at any time; however, doing so will not terminate
|
||||
this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
Section 7 – Other Terms and Conditions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different terms
|
||||
or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and independent
|
||||
of the terms and conditions of this Public License.
|
||||
|
||||
Section 8 – Interpretation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and shall
|
||||
not be interpreted to, reduce, limit, restrict, or impose conditions
|
||||
on any use of the Licensed Material that could lawfully be made
|
||||
without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted as a
|
||||
limitation upon, or waiver of, any privileges and immunities that
|
||||
apply to the Licensor or You, including from the legal processes of
|
||||
any jurisdiction or authority.
|
||||
|
||||
Creative Commons is not a party to its public licenses.
|
||||
Notwithstanding, Creative Commons may elect to apply one of its
|
||||
public licenses to material it publishes and in those instances will
|
||||
be considered the “Licensor.” Except for the limited purpose of
|
||||
indicating that material is shared under a Creative Commons public
|
||||
license or as otherwise permitted by the Creative Commons policies
|
||||
published at
|
||||
`creativecommons.org/policies <http://creativecommons.org/policies>`__,
|
||||
Creative Commons does not authorize the use of the trademark
|
||||
“Creative Commons” or any other trademark or logo of Creative
|
||||
Commons without its prior written consent including, without
|
||||
limitation, in connection with any unauthorized modifications to any
|
||||
of its public licenses or any other arrangements, understandings, or
|
||||
agreements concerning use of licensed material. For the avoidance of
|
||||
doubt, this paragraph does not form part of the public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org
|
|
@ -0,0 +1,216 @@
|
|||
|
||||
<RCC warning="WARNING! File created programmatically. All changes made in this file will be lost!">
|
||||
<qresource prefix="qss_icons/dark">
|
||||
<file>rc/arrow_down.png</file>
|
||||
<file>rc/arrow_down@2x.png</file>
|
||||
<file>rc/arrow_down_disabled.png</file>
|
||||
<file>rc/arrow_down_disabled@2x.png</file>
|
||||
<file>rc/arrow_down_focus.png</file>
|
||||
<file>rc/arrow_down_focus@2x.png</file>
|
||||
<file>rc/arrow_down_pressed.png</file>
|
||||
<file>rc/arrow_down_pressed@2x.png</file>
|
||||
<file>rc/arrow_left.png</file>
|
||||
<file>rc/arrow_left@2x.png</file>
|
||||
<file>rc/arrow_left_disabled.png</file>
|
||||
<file>rc/arrow_left_disabled@2x.png</file>
|
||||
<file>rc/arrow_left_focus.png</file>
|
||||
<file>rc/arrow_left_focus@2x.png</file>
|
||||
<file>rc/arrow_left_pressed.png</file>
|
||||
<file>rc/arrow_left_pressed@2x.png</file>
|
||||
<file>rc/arrow_right.png</file>
|
||||
<file>rc/arrow_right@2x.png</file>
|
||||
<file>rc/arrow_right_disabled.png</file>
|
||||
<file>rc/arrow_right_disabled@2x.png</file>
|
||||
<file>rc/arrow_right_focus.png</file>
|
||||
<file>rc/arrow_right_focus@2x.png</file>
|
||||
<file>rc/arrow_right_pressed.png</file>
|
||||
<file>rc/arrow_right_pressed@2x.png</file>
|
||||
<file>rc/arrow_up.png</file>
|
||||
<file>rc/arrow_up@2x.png</file>
|
||||
<file>rc/arrow_up_disabled.png</file>
|
||||
<file>rc/arrow_up_disabled@2x.png</file>
|
||||
<file>rc/arrow_up_focus.png</file>
|
||||
<file>rc/arrow_up_focus@2x.png</file>
|
||||
<file>rc/arrow_up_pressed.png</file>
|
||||
<file>rc/arrow_up_pressed@2x.png</file>
|
||||
<file>rc/base_icon.png</file>
|
||||
<file>rc/base_icon@2x.png</file>
|
||||
<file>rc/base_icon_disabled.png</file>
|
||||
<file>rc/base_icon_disabled@2x.png</file>
|
||||
<file>rc/base_icon_focus.png</file>
|
||||
<file>rc/base_icon_focus@2x.png</file>
|
||||
<file>rc/base_icon_pressed.png</file>
|
||||
<file>rc/base_icon_pressed@2x.png</file>
|
||||
<file>rc/branch_closed.png</file>
|
||||
<file>rc/branch_closed@2x.png</file>
|
||||
<file>rc/branch_closed_disabled.png</file>
|
||||
<file>rc/branch_closed_disabled@2x.png</file>
|
||||
<file>rc/branch_closed_focus.png</file>
|
||||
<file>rc/branch_closed_focus@2x.png</file>
|
||||
<file>rc/branch_closed_pressed.png</file>
|
||||
<file>rc/branch_closed_pressed@2x.png</file>
|
||||
<file>rc/branch_end.png</file>
|
||||
<file>rc/branch_end@2x.png</file>
|
||||
<file>rc/branch_end_disabled.png</file>
|
||||
<file>rc/branch_end_disabled@2x.png</file>
|
||||
<file>rc/branch_end_focus.png</file>
|
||||
<file>rc/branch_end_focus@2x.png</file>
|
||||
<file>rc/branch_end_pressed.png</file>
|
||||
<file>rc/branch_end_pressed@2x.png</file>
|
||||
<file>rc/branch_line.png</file>
|
||||
<file>rc/branch_line@2x.png</file>
|
||||
<file>rc/branch_line_disabled.png</file>
|
||||
<file>rc/branch_line_disabled@2x.png</file>
|
||||
<file>rc/branch_line_focus.png</file>
|
||||
<file>rc/branch_line_focus@2x.png</file>
|
||||
<file>rc/branch_line_pressed.png</file>
|
||||
<file>rc/branch_line_pressed@2x.png</file>
|
||||
<file>rc/branch_more.png</file>
|
||||
<file>rc/branch_more@2x.png</file>
|
||||
<file>rc/branch_more_disabled.png</file>
|
||||
<file>rc/branch_more_disabled@2x.png</file>
|
||||
<file>rc/branch_more_focus.png</file>
|
||||
<file>rc/branch_more_focus@2x.png</file>
|
||||
<file>rc/branch_more_pressed.png</file>
|
||||
<file>rc/branch_more_pressed@2x.png</file>
|
||||
<file>rc/branch_open.png</file>
|
||||
<file>rc/branch_open@2x.png</file>
|
||||
<file>rc/branch_open_disabled.png</file>
|
||||
<file>rc/branch_open_disabled@2x.png</file>
|
||||
<file>rc/branch_open_focus.png</file>
|
||||
<file>rc/branch_open_focus@2x.png</file>
|
||||
<file>rc/branch_open_pressed.png</file>
|
||||
<file>rc/branch_open_pressed@2x.png</file>
|
||||
<file>rc/checkbox_checked.png</file>
|
||||
<file>rc/checkbox_checked@2x.png</file>
|
||||
<file>rc/checkbox_checked_disabled.png</file>
|
||||
<file>rc/checkbox_checked_disabled@2x.png</file>
|
||||
<file>rc/checkbox_checked_focus.png</file>
|
||||
<file>rc/checkbox_checked_focus@2x.png</file>
|
||||
<file>rc/checkbox_checked_pressed.png</file>
|
||||
<file>rc/checkbox_checked_pressed@2x.png</file>
|
||||
<file>rc/checkbox_indeterminate.png</file>
|
||||
<file>rc/checkbox_indeterminate@2x.png</file>
|
||||
<file>rc/checkbox_indeterminate_disabled.png</file>
|
||||
<file>rc/checkbox_indeterminate_disabled@2x.png</file>
|
||||
<file>rc/checkbox_indeterminate_focus.png</file>
|
||||
<file>rc/checkbox_indeterminate_focus@2x.png</file>
|
||||
<file>rc/checkbox_indeterminate_pressed.png</file>
|
||||
<file>rc/checkbox_indeterminate_pressed@2x.png</file>
|
||||
<file>rc/checkbox_unchecked.png</file>
|
||||
<file>rc/checkbox_unchecked@2x.png</file>
|
||||
<file>rc/checkbox_unchecked_disabled.png</file>
|
||||
<file>rc/checkbox_unchecked_disabled@2x.png</file>
|
||||
<file>rc/checkbox_unchecked_focus.png</file>
|
||||
<file>rc/checkbox_unchecked_focus@2x.png</file>
|
||||
<file>rc/checkbox_unchecked_pressed.png</file>
|
||||
<file>rc/checkbox_unchecked_pressed@2x.png</file>
|
||||
<file>rc/line_horizontal.png</file>
|
||||
<file>rc/line_horizontal@2x.png</file>
|
||||
<file>rc/line_horizontal_disabled.png</file>
|
||||
<file>rc/line_horizontal_disabled@2x.png</file>
|
||||
<file>rc/line_horizontal_focus.png</file>
|
||||
<file>rc/line_horizontal_focus@2x.png</file>
|
||||
<file>rc/line_horizontal_pressed.png</file>
|
||||
<file>rc/line_horizontal_pressed@2x.png</file>
|
||||
<file>rc/line_vertical.png</file>
|
||||
<file>rc/line_vertical@2x.png</file>
|
||||
<file>rc/line_vertical_disabled.png</file>
|
||||
<file>rc/line_vertical_disabled@2x.png</file>
|
||||
<file>rc/line_vertical_focus.png</file>
|
||||
<file>rc/line_vertical_focus@2x.png</file>
|
||||
<file>rc/line_vertical_pressed.png</file>
|
||||
<file>rc/line_vertical_pressed@2x.png</file>
|
||||
<file>rc/radio_checked.png</file>
|
||||
<file>rc/radio_checked@2x.png</file>
|
||||
<file>rc/radio_checked_disabled.png</file>
|
||||
<file>rc/radio_checked_disabled@2x.png</file>
|
||||
<file>rc/radio_checked_focus.png</file>
|
||||
<file>rc/radio_checked_focus@2x.png</file>
|
||||
<file>rc/radio_checked_pressed.png</file>
|
||||
<file>rc/radio_checked_pressed@2x.png</file>
|
||||
<file>rc/radio_unchecked.png</file>
|
||||
<file>rc/radio_unchecked@2x.png</file>
|
||||
<file>rc/radio_unchecked_disabled.png</file>
|
||||
<file>rc/radio_unchecked_disabled@2x.png</file>
|
||||
<file>rc/radio_unchecked_focus.png</file>
|
||||
<file>rc/radio_unchecked_focus@2x.png</file>
|
||||
<file>rc/radio_unchecked_pressed.png</file>
|
||||
<file>rc/radio_unchecked_pressed@2x.png</file>
|
||||
<file>rc/toolbar_move_horizontal.png</file>
|
||||
<file>rc/toolbar_move_horizontal@2x.png</file>
|
||||
<file>rc/toolbar_move_horizontal_disabled.png</file>
|
||||
<file>rc/toolbar_move_horizontal_disabled@2x.png</file>
|
||||
<file>rc/toolbar_move_horizontal_focus.png</file>
|
||||
<file>rc/toolbar_move_horizontal_focus@2x.png</file>
|
||||
<file>rc/toolbar_move_horizontal_pressed.png</file>
|
||||
<file>rc/toolbar_move_horizontal_pressed@2x.png</file>
|
||||
<file>rc/toolbar_move_vertical.png</file>
|
||||
<file>rc/toolbar_move_vertical@2x.png</file>
|
||||
<file>rc/toolbar_move_vertical_disabled.png</file>
|
||||
<file>rc/toolbar_move_vertical_disabled@2x.png</file>
|
||||
<file>rc/toolbar_move_vertical_focus.png</file>
|
||||
<file>rc/toolbar_move_vertical_focus@2x.png</file>
|
||||
<file>rc/toolbar_move_vertical_pressed.png</file>
|
||||
<file>rc/toolbar_move_vertical_pressed@2x.png</file>
|
||||
<file>rc/toolbar_separator_horizontal.png</file>
|
||||
<file>rc/toolbar_separator_horizontal@2x.png</file>
|
||||
<file>rc/toolbar_separator_horizontal_disabled.png</file>
|
||||
<file>rc/toolbar_separator_horizontal_disabled@2x.png</file>
|
||||
<file>rc/toolbar_separator_horizontal_focus.png</file>
|
||||
<file>rc/toolbar_separator_horizontal_focus@2x.png</file>
|
||||
<file>rc/toolbar_separator_horizontal_pressed.png</file>
|
||||
<file>rc/toolbar_separator_horizontal_pressed@2x.png</file>
|
||||
<file>rc/toolbar_separator_vertical.png</file>
|
||||
<file>rc/toolbar_separator_vertical@2x.png</file>
|
||||
<file>rc/toolbar_separator_vertical_disabled.png</file>
|
||||
<file>rc/toolbar_separator_vertical_disabled@2x.png</file>
|
||||
<file>rc/toolbar_separator_vertical_focus.png</file>
|
||||
<file>rc/toolbar_separator_vertical_focus@2x.png</file>
|
||||
<file>rc/toolbar_separator_vertical_pressed.png</file>
|
||||
<file>rc/toolbar_separator_vertical_pressed@2x.png</file>
|
||||
<file>rc/transparent.png</file>
|
||||
<file>rc/transparent@2x.png</file>
|
||||
<file>rc/transparent_disabled.png</file>
|
||||
<file>rc/transparent_disabled@2x.png</file>
|
||||
<file>rc/transparent_focus.png</file>
|
||||
<file>rc/transparent_focus@2x.png</file>
|
||||
<file>rc/transparent_pressed.png</file>
|
||||
<file>rc/transparent_pressed@2x.png</file>
|
||||
<file>rc/window_close.png</file>
|
||||
<file>rc/window_close@2x.png</file>
|
||||
<file>rc/window_close_disabled.png</file>
|
||||
<file>rc/window_close_disabled@2x.png</file>
|
||||
<file>rc/window_close_focus.png</file>
|
||||
<file>rc/window_close_focus@2x.png</file>
|
||||
<file>rc/window_close_pressed.png</file>
|
||||
<file>rc/window_close_pressed@2x.png</file>
|
||||
<file>rc/window_grip.png</file>
|
||||
<file>rc/window_grip@2x.png</file>
|
||||
<file>rc/window_grip_disabled.png</file>
|
||||
<file>rc/window_grip_disabled@2x.png</file>
|
||||
<file>rc/window_grip_focus.png</file>
|
||||
<file>rc/window_grip_focus@2x.png</file>
|
||||
<file>rc/window_grip_pressed.png</file>
|
||||
<file>rc/window_grip_pressed@2x.png</file>
|
||||
<file>rc/window_minimize.png</file>
|
||||
<file>rc/window_minimize@2x.png</file>
|
||||
<file>rc/window_minimize_disabled.png</file>
|
||||
<file>rc/window_minimize_disabled@2x.png</file>
|
||||
<file>rc/window_minimize_focus.png</file>
|
||||
<file>rc/window_minimize_focus@2x.png</file>
|
||||
<file>rc/window_minimize_pressed.png</file>
|
||||
<file>rc/window_minimize_pressed@2x.png</file>
|
||||
<file>rc/window_undock.png</file>
|
||||
<file>rc/window_undock@2x.png</file>
|
||||
<file>rc/window_undock_disabled.png</file>
|
||||
<file>rc/window_undock_disabled@2x.png</file>
|
||||
<file>rc/window_undock_focus.png</file>
|
||||
<file>rc/window_undock_focus@2x.png</file>
|
||||
<file>rc/window_undock_pressed.png</file>
|
||||
<file>rc/window_undock_pressed@2x.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="qdarkstyle/dark">
|
||||
<file>darkstyle.qss</file>
|
||||
</qresource>
|
||||
</RCC>
|
Po Szerokość: | Wysokość: | Rozmiar: 522 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 546 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 523 B |
Po Szerokość: | Wysokość: | Rozmiar: 992 B |
Po Szerokość: | Wysokość: | Rozmiar: 567 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 558 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 557 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 551 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 574 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 546 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 545 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 541 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 574 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 525 B |
Po Szerokość: | Wysokość: | Rozmiar: 1008 B |
Po Szerokość: | Wysokość: | Rozmiar: 549 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 532 B |
Po Szerokość: | Wysokość: | Rozmiar: 990 B |
Po Szerokość: | Wysokość: | Rozmiar: 554 B |
Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 3.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 3.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 3.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 3.2 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 397 B |
Po Szerokość: | Wysokość: | Rozmiar: 824 B |
Po Szerokość: | Wysokość: | Rozmiar: 426 B |
Po Szerokość: | Wysokość: | Rozmiar: 862 B |
Po Szerokość: | Wysokość: | Rozmiar: 395 B |
Po Szerokość: | Wysokość: | Rozmiar: 810 B |
Po Szerokość: | Wysokość: | Rozmiar: 415 B |
Po Szerokość: | Wysokość: | Rozmiar: 867 B |
Po Szerokość: | Wysokość: | Rozmiar: 151 B |
Po Szerokość: | Wysokość: | Rozmiar: 205 B |
Po Szerokość: | Wysokość: | Rozmiar: 152 B |
Po Szerokość: | Wysokość: | Rozmiar: 205 B |
Po Szerokość: | Wysokość: | Rozmiar: 149 B |
Po Szerokość: | Wysokość: | Rozmiar: 203 B |
Po Szerokość: | Wysokość: | Rozmiar: 152 B |
Po Szerokość: | Wysokość: | Rozmiar: 204 B |
Po Szerokość: | Wysokość: | Rozmiar: 133 B |
Po Szerokość: | Wysokość: | Rozmiar: 238 B |
Po Szerokość: | Wysokość: | Rozmiar: 135 B |
Po Szerokość: | Wysokość: | Rozmiar: 240 B |