Compare commits

..

4 Commits
v1.3 ... master

@ -1,2 +1,19 @@
# pa-calculator # PA Calculator
Der PA Calculator dient der Berechnung von Limiterwerten für PA-Anlagen, sowie einem Tool, welches eine Stapelverarbeitung von Lautheitsanalysen sowie einer Korrekturempfehlung durchführen kann.
## Einrichten der Build-Umgebung
1. Installation von QT Version > 6.4.2 mit QT Installation Framework
2. (Auf Windows) Installation msvc2019 oder neuer
3. Installation 7zip
4. Umgebungsvariablen hinzufügen (Qt Binaries, 7-Zip, QtInstallerFramework)
## Release einer neuen Version
Zum Kompilieren einer neuen Version sind folgende Schritte zu beachten:
Die neue Version vor Kompilierung in folgenden Dateien anpassen:
* source/PA_Calculator.pro
* installer/config/config_xxx.xml
* installer/packages/com.dkmtech.pacalculator/meta/package.xml
Im Release-Modus Projekt kompilieren.
Im Anschluss Datei installer/createInstaller_xxx ausführen -> setup.exe

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Installer> <Installer>
<Name>PA Calculator</Name> <Name>PA Calculator</Name>
<Version>1.2.0</Version> <Version>1.4.0</Version>
<Title>PA Calculator Installer</Title> <Title>PA Calculator Installer</Title>
<Publisher>DKM-Tech</Publisher> <Publisher>DKM-Tech</Publisher>
<StartMenuDir>DKM-Tech</StartMenuDir> <StartMenuDir>DKM-Tech</StartMenuDir>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Installer> <Installer>
<Name>PA Calculator</Name> <Name>PA Calculator</Name>
<Version>1.2.0</Version> <Version>1.4.0</Version>
<Title>PA Calculator Installer</Title> <Title>PA Calculator Installer</Title>
<Publisher>DKM-Tech</Publisher> <Publisher>DKM-Tech</Publisher>
<StartMenuDir>DKM-Tech</StartMenuDir> <StartMenuDir>DKM-Tech</StartMenuDir>

@ -6,5 +6,5 @@
<ReleaseDate>2022-02-06</ReleaseDate> <ReleaseDate>2022-02-06</ReleaseDate>
<Name>com.dkmtech.installer</Name> <Name>com.dkmtech.installer</Name>
<Virtual>true</Virtual> <Virtual>true</Virtual>
<UpdateText>DKM-Teh Installer</UpdateText> <UpdateText>DKM-Tech Installer</UpdateText>
</Package> </Package>

@ -2,8 +2,8 @@
<Package> <Package>
<DisplayName>PA-Calculator</DisplayName> <DisplayName>PA-Calculator</DisplayName>
<Description>Install PA-Calculator</Description> <Description>Install PA-Calculator</Description>
<Version>1.3.0</Version> <Version>1.4.0</Version>
<ReleaseDate>2022-03-13</ReleaseDate> <ReleaseDate>2023-11-26</ReleaseDate>
<Licenses> <Licenses>
<License name="GNU GENERAL PUBLIC LICENSE" file="license.txt" /> <License name="GNU GENERAL PUBLIC LICENSE" file="license.txt" />
</Licenses> </Licenses>

@ -1,4 +1,4 @@
QT += core gui multimedia QT += core gui multimedia network concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
@ -55,10 +55,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
RESOURCES += \ RESOURCES += \
resources.qrc resources.qrc
VERSION=1.3.0 VERSION=1.4.0
QMAKE_TARGET_PRODUCT = "PA-Calculator" QMAKE_TARGET_PRODUCT = "PA-Calculator"
QMAKE_TARGET_COMPANY = "DKM-Tech" QMAKE_TARGET_COMPANY = "DKM-Tech"
QMAKE_TARGET_COPYRIGHT = "Copyright (c) 2022 by Alexander Diamadis" QMAKE_TARGET_COPYRIGHT = "Copyright (c) 2023 by Alexander Diamadis"
commit = $$system(git rev-parse --short=8 HEAD) commit = $$system(git rev-parse --short=8 HEAD)

@ -10,12 +10,25 @@
#include <QFileDialog> #include <QFileDialog>
#include "about.h" #include "about.h"
#include "analyzer.h" #include "analyzer.h"
#include <QJsonDocument>
#include <Qfile>
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
{ {
ui->setupUi(this); ui->setupUi(this);
manager = new QNetworkAccessManager();
checkUpdates();
m_ampCount=0; m_ampCount=0;
m_pCAmp=Q_NULLPTR; m_pCAmp=Q_NULLPTR;
@ -381,3 +394,37 @@ void MainWindow::on_checkBox_optimizeGain_stateChanged(int arg1)
} }
} }
void MainWindow::checkUpdates()
{
QObject::connect(manager, &QNetworkAccessManager::finished,
this,&MainWindow::checkUpdatesFinished);
request.setUrl(QUrl("https://git.aldiserver.de/api/v1/repos/DKM-Tech/pa-calculator/releases?draft=false&pre-release=false&per_page=1&limit=1"));
manager->get(request);
}
void MainWindow::checkUpdatesFinished(QNetworkReply *reply)
{
if (reply->error()) {
//qDebug() << reply->errorString();
return;
}
QString ReplyText = reply->readAll();
QJsonDocument doc = QJsonDocument::fromJson(ReplyText.toUtf8());
QJsonArray array = doc.array();
QJsonObject obj=array.at(0).toObject();
QString current_version=obj.value("tag_name").toString().remove(0,1);
QString current_version_url=obj.value("html_url").toString();
QString installed_version = APP_VERSION;
installed_version=installed_version.mid(0,installed_version.lastIndexOf('.'));
//qDebug() << "Neueste Version: " <<current_version;
//qDebug() << "Installierte Version: " <<installed_version;
if (current_version!=installed_version){
QMessageBox msgBox;
msgBox.setTextFormat(Qt::RichText);
msgBox.setText("Es ist ein Update verfügbar!<br>Installierte Version: "+installed_version+"<br>Verfügbare Version: "+current_version+"<br> Du kannst das Update <a href='"+current_version_url+"'>hier</a> herunterladen.");
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
}

@ -6,6 +6,14 @@
#include "cspeaker.h" #include "cspeaker.h"
#include <cdac.h> #include <cdac.h>
#include <QThreadPool>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QFuture>
#include <QtConcurrent>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
QT_END_NAMESPACE QT_END_NAMESPACE
@ -18,6 +26,7 @@ public:
MainWindow(QWidget *parent = nullptr); MainWindow(QWidget *parent = nullptr);
~MainWindow(); ~MainWindow();
private slots: private slots:
void on_ComboBox_selectSensUnit_currentIndexChanged(int index); void on_ComboBox_selectSensUnit_currentIndexChanged(int index);
@ -44,6 +53,9 @@ private slots:
void on_checkBox_optimizeGain_stateChanged(int arg1); void on_checkBox_optimizeGain_stateChanged(int arg1);
void checkUpdatesFinished(QNetworkReply *reply);
private: private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
cAmp* m_pCAmp; cAmp* m_pCAmp;
@ -62,8 +74,12 @@ private:
void refreshLibraryDacs(); void refreshLibraryDacs();
void checkUpdates();
void loadLibrary(); void loadLibrary();
void saveLibrary(); void saveLibrary();
QNetworkAccessManager *manager;
QNetworkRequest request;
QFuture<void> requestFuture;
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1242</width> <width>1606</width>
<height>590</height> <height>639</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -137,6 +137,19 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="4" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0"> <item row="5" column="0">
<widget class="QLabel" name="label_19"> <widget class="QLabel" name="label_19">
<property name="text"> <property name="text">
@ -171,19 +184,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="8" column="0" colspan="2"> <item row="8" column="0" colspan="2">
<widget class="QPushButton" name="pushButton"> <widget class="QPushButton" name="pushButton">
<property name="font"> <property name="font">
@ -324,29 +324,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="0"> <item row="5" column="0">
<widget class="QLabel" name="label_21"> <widget class="QLabel" name="label_24">
<property name="text"> <property name="text">
<string>Load Speaker from library</string> <string>Number of speaker in parallel</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1">
<widget class="QComboBox" name="comboBox_librarySpeaker"/>
</item>
<item row="6" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="1"> <item row="5" column="1">
<widget class="QSpinBox" name="spinBox_speakerCount"> <widget class="QSpinBox" name="spinBox_speakerCount">
<property name="minimum"> <property name="minimum">
@ -357,26 +341,16 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="7" column="0">
<spacer name="verticalSpacer_6"> <widget class="QLabel" name="label_21">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_24">
<property name="text"> <property name="text">
<string>Number of speaker in parallel</string> <string>Load Speaker from library</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1">
<widget class="QComboBox" name="comboBox_librarySpeaker"/>
</item>
<item row="8" column="0" colspan="2"> <item row="8" column="0" colspan="2">
<widget class="QPushButton" name="pushButton_loadSpeaker"> <widget class="QPushButton" name="pushButton_loadSpeaker">
<property name="minimumSize"> <property name="minimumSize">
@ -395,6 +369,32 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="1">
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>
@ -466,12 +466,12 @@
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeType"> <property name="sizeType">
<enum>QSizePolicy::Maximum</enum> <enum>QSizePolicy::Expanding</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>40</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@ -647,6 +647,9 @@
<property name="text"> <property name="text">
<string>0 ms</string> <string>0 ms</string>
</property> </property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
@ -666,9 +669,12 @@
<property name="text"> <property name="text">
<string>0 ms</string> <string>0 ms</string>
</property> </property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="6" column="0">
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@ -770,6 +776,9 @@
<property name="text"> <property name="text">
<string>0 ms</string> <string>0 ms</string>
</property> </property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
@ -789,9 +798,12 @@
<property name="text"> <property name="text">
<string>0 ms</string> <string>0 ms</string>
</property> </property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="6" column="1">
<spacer name="verticalSpacer_2"> <spacer name="verticalSpacer_2">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@ -856,8 +868,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1242</width> <width>1606</width>
<height>17</height> <height>22</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuLibrary"> <widget class="QMenu" name="menuLibrary">
@ -909,6 +921,11 @@
<string>Loudness Analyzer</string> <string>Loudness Analyzer</string>
</property> </property>
</action> </action>
<action name="actionHelp">
<property name="text">
<string>Help</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

Loading…
Cancel
Save