Added Library with Amps

pull/4/head
Alexander Diamadis 5 years ago
parent 273f10585b
commit 5388e4edf8
Signed by: alex
GPG Key ID: 6A1609EFA141FD70

@ -9,13 +9,20 @@ CONFIG += c++11
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ SOURCES += \
camp.cpp \
campmode.cpp \
library.cpp \
main.cpp \ main.cpp \
mainwindow.cpp mainwindow.cpp
HEADERS += \ HEADERS += \
camp.h \
campmode.h \
library.h \
mainwindow.h mainwindow.h
FORMS += \ FORMS += \
library.ui \
mainwindow.ui mainwindow.ui
TRANSLATIONS += \ TRANSLATIONS += \

@ -0,0 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 5.0.2, 2021-10-17T21:01:21. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{359d7bfd-1567-4775-8a40-a2007ce8d5cf}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" 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>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.BuildSystem</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">4</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<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 (x86-darwin-generic-mach_o-64bit)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop (x86-darwin-generic-mach_o-64bit)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{d8252245-f945-4509-808c-c5c3d78024ca}</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">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-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">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</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">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Bereinigen</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">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-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">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</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">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Bereinigen</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">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-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">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</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">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Bereinigen</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">Deployment</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</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:/Users/alexanderdiamadis/PA_Calculator/PA_Calculator.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/Users/alexanderdiamadis/PA_Calculator/PA_Calculator.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">/Users/alexanderdiamadis/build-PA_Calculator-Desktop_x86_darwin_generic_mach_o_64bit-Debug/PA_Calculator.app/Contents/MacOS</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

@ -0,0 +1,169 @@
#include "camp.h"
#include <QString>
cAmp::cAmp()
{
m_numAmpModes=0;
m_name="untitled";
m_sensitvity=1;
m_sensivityUnit=volt;
m_numAmpModes=0;
m_pAmpModes = nullptr;
}
cAmp::~cAmp()
{
delete [] m_pAmpModes;
}
cAmp::cAmp(std::string name, double sensitivity, sensitivityUnit sensUnit)
{
m_name=name;
m_sensitvity=sensitivity;
m_sensivityUnit=sensUnit;
m_numAmpModes=0;
m_pAmpModes = nullptr;
}
std::string cAmp::getName()
{
return m_name;
}
void cAmp::setName(std::string name)
{
m_name=name;
}
void cAmp::setName(QString name)
{
m_name=name.toStdString();
}
void cAmp::setSensivity(double sens)
{
m_sensitvity=sens;
}
void cAmp::setSensUnit(sensitivityUnit unit)
{
m_sensivityUnit=unit;
}
double cAmp::getSensitivity()
{
return m_sensitvity;
}
sensitivityUnit cAmp::getSensivityUnit()
{
return m_sensivityUnit;
}
cAmpMode *cAmp::getAmpModes()
{
return m_pAmpModes;
}
cAmpMode cAmp::getAmpMode(unsigned int idx)
{
return m_pAmpModes[idx];
}
unsigned int cAmp::getAmpModesCount()
{
return m_numAmpModes;
}
void cAmp::addAmpMode(cAmpMode mode)
{
m_numAmpModes+=1;
cAmpMode* tempAmpModes = new cAmpMode[m_numAmpModes];
for (unsigned int i=0;i<m_numAmpModes-1;i++){
tempAmpModes[i]=m_pAmpModes[i];
}
delete [] m_pAmpModes;
m_pAmpModes=tempAmpModes;
m_pAmpModes[m_numAmpModes-1]=mode;
}
bool cAmp::modifyAmpMode(unsigned int idx, cAmpMode mode)
{
if (idx>=m_numAmpModes){
return false;
}else{
m_pAmpModes[idx]=mode;
return true;
}
}
void cAmp::deleteAmpMode(unsigned int idx)
{
if (m_numAmpModes>=1){
m_numAmpModes-=1;
cAmpMode* tempAmpModes = new cAmpMode[m_numAmpModes];
for (unsigned int i=0;i<idx;i++){
tempAmpModes[i]=m_pAmpModes[i];
}
for (unsigned int i=idx+1;i<m_numAmpModes+1;i++){
tempAmpModes[i-1]=m_pAmpModes[i];
}
delete [] m_pAmpModes;
m_pAmpModes=tempAmpModes;
}
}
void cAmp::setAmpMode(unsigned int idx, cAmpMode mode)
{
m_pAmpModes[idx]=mode;
}
void cAmp::print()
{
std::cout << "Amplifier: "<<m_name<<std::endl<<"Input Sensitivity: "<<m_sensitvity<<std::endl<<"with " <<m_numAmpModes<<" Modes:"<<std::endl;
for (unsigned int i=0; i<m_numAmpModes;i++){
m_pAmpModes[i].print();
}
std::cout <<std::endl;
}
QDataStream& operator <<(QDataStream& out, cAmp& amp){
//out << (quint64)amp.m_name.size();
out << QString::fromStdString(amp.m_name);
out << (qreal)amp.m_sensitvity;
out << (qint32)amp.m_sensivityUnit;
out << (uint)amp.m_numAmpModes;
for (unsigned int i=0;i<amp.m_numAmpModes;i++){
out << amp.m_pAmpModes[i];
}
return out;
}
QDataStream& operator >>(QDataStream& in, cAmp& amp){
//quint64 size;
//in >> size;
QString name;
in >> name;
amp.setName(name);
qreal sensitiviy;
in >>sensitiviy;
amp.setSensivity((double)sensitiviy);
qint32 unit;
in >> unit;
amp.setSensUnit(sensitivityUnit(unit));
uint numAmpModes;
in >> numAmpModes;
for (uint i=0;i<numAmpModes;i++){
cAmpMode Mode;
in >> Mode;
amp.addAmpMode(Mode);
}
return in;
}

@ -0,0 +1,40 @@
#ifndef CAMP_H
#define CAMP_H
#include "campmode.h"
enum sensitivityUnit { volt, dBu };
class cAmp
{
public:
cAmp();
~cAmp();
cAmp(std::string name, double sensitivity, sensitivityUnit sensUnit);
std::string getName();
void setName(std::string name);
void setName(QString name);
void setSensivity(double sens);
void setSensUnit(sensitivityUnit unit);
double getSensitivity();
sensitivityUnit getSensivityUnit();
cAmpMode* getAmpModes();
cAmpMode getAmpMode(unsigned int idx);
unsigned int getAmpModesCount();
void addAmpMode(cAmpMode mode);
bool modifyAmpMode(unsigned int idx, cAmpMode mode);
void deleteAmpMode(unsigned int idx);
void setAmpMode(unsigned int idx, cAmpMode mode);
void print();
friend QDataStream& operator <<(QDataStream& out, cAmp& amp);
friend QDataStream& operator >>(QDataStream& in, cAmp& amp);
private:
std::string m_name;
double m_sensitvity;
sensitivityUnit m_sensivityUnit;
cAmpMode* m_pAmpModes;
unsigned int m_numAmpModes;
};
#endif // CAMP_H

@ -0,0 +1,55 @@
#include "campmode.h"
#include <QString>
cAmpMode::cAmpMode()
{
}
cAmpMode::cAmpMode(std::string name, unsigned int ratedImp, unsigned int ratedPower){
m_name=name;
m_ratedImp=ratedImp;
m_ratedPower=ratedPower;
}
std::string cAmpMode::getName()
{
return m_name;
}
unsigned int cAmpMode::getRatedImp()
{
return m_ratedImp;
}
unsigned int cAmpMode::getRatedPower()
{
return m_ratedPower;
}
void cAmpMode::print()
{
std::cout << "Mode: "<< m_name<<" ("<<m_ratedImp<<" Ohm, "<<m_ratedPower<<" W)"<<std::endl;
}
QDataStream& operator <<(QDataStream& out, cAmpMode& mode){
out << QString::fromStdString(mode.m_name);
out << (uint)mode.m_ratedImp;
out << (uint)mode.m_ratedPower;
return out;
}
QDataStream& operator >>(QDataStream& in, cAmpMode& mode){
QString name;
in >> name;
mode.m_name=name.toStdString();
uint imp;
in >> imp;
mode.m_ratedImp=(unsigned int)imp;
uint power;
in >> power;
mode.m_ratedPower=(unsigned int)power;
return in;
}

@ -0,0 +1,25 @@
#ifndef CAMPMODE_H
#define CAMPMODE_H
#include <string>
#include <iostream>
#include <QDataStream>
class cAmpMode
{
public:
cAmpMode();
cAmpMode(std::string name, unsigned int ratedImp, unsigned int ratedPower);
std::string getName();
unsigned int getRatedImp();
unsigned int getRatedPower();
void print();
friend QDataStream& operator <<(QDataStream& out, cAmpMode& mode);
friend QDataStream& operator >>(QDataStream& in, cAmpMode& mode);
private:
std::string m_name;
unsigned int m_ratedImp;
unsigned int m_ratedPower;
};
#endif // CAMPMODE_H

@ -0,0 +1,292 @@
#include "library.h"
#include "ui_library.h"
#include <iostream>
#include <QMessageBox>
#include <QSettings>
#include <QFileDialog>
#include <QDebug>
library::library(QWidget *parent) :
QDialog(parent),
ui(new Ui::library)
{
ui->setupUi(this);
unsaved=false;
}
library::~library()
{
delete ui;
}
void library::setAmpPointer(cAmp *pAmp, unsigned int ampCount){
m_pCamp=pAmp;
m_cAmpCount=ampCount;
}
unsigned int library::getAmpCount()
{
return m_cAmpCount;
}
cAmp *library::getAmps()
{
return m_pCamp;
}
void library::open()
{
ui->listWidget_ampView->setCurrentRow(0);
QSettings settings("DKM-Tech","Pa-Calculator");
if (settings.value("library/path","")==""){
settings.setValue("library/path",QFileDialog::getSaveFileName(this,"Select Library Storage File","","Pa Calculator Library File (*.palib)"));
}
//qDebug() << settings.value("library/path","none").toString();
refreshAmpView();
this->exec();
saveLibraryToFile();
}
void library::on_pushButton_addAmp_clicked()
{
m_cAmpCount+=1;
cAmp* tempAmps=new cAmp[m_cAmpCount];
for (unsigned int i=0;i<m_cAmpCount-1;i++){
tempAmps[i].setName(m_pCamp[i].getName());
tempAmps[i].setSensivity(m_pCamp[i].getSensitivity());
tempAmps[i].setSensUnit(m_pCamp[i].getSensivityUnit());
for (unsigned int j=0;j<m_pCamp[i].getAmpModesCount();j++){
tempAmps[i].addAmpMode(m_pCamp[i].getAmpMode(j));
}
}
delete [] m_pCamp;
m_pCamp=tempAmps;
m_pCamp[m_cAmpCount-1]=cAmp("Unnamed Amp",1,volt);
refreshAmpView();
ui->listWidget_ampView->setCurrentRow(m_cAmpCount-1);
ui->lineEdit_ampName->setFocus();
ui->lineEdit_ampName->selectAll();
}
void library::refreshAmpView()
{
ui->listWidget_ampView->clear();
for (unsigned int i=0;i<m_cAmpCount;i++){
ui->listWidget_ampView->addItem(QString::fromStdString(m_pCamp[i].getName()));
}
//std::cerr<<"refreshAmpView started"<<std::endl;
//printAllAmps();
}
void library::refreshModeOverview()
{
ui->listWidget_modeSelector->clear();
if (m_cAmpCount>0){
if (m_pCamp[getCurrentAmpIndex()].getAmpModesCount()>0){
for (unsigned int i=0;i<m_pCamp[getCurrentAmpIndex()].getAmpModesCount();i++){
ui->listWidget_modeSelector->addItem(QString::fromStdString(m_pCamp[getCurrentAmpIndex()].getAmpMode(i).getName()));
//std::cout <<"mode "<<i+1<<" : " <<m_pCamp[getCurrentAmpIndex()].getAmpMode(i).getName()<<std::endl;
}
}
}
//std::cerr<<"refreshModeOverview started"<<std::endl;
//printAllAmps();
}
int library::getCurrentAmpIndex()
{
return ui->listWidget_ampView->currentRow();
}
int library::getCurrentAmpModeIndex()
{
return ui->listWidget_modeSelector->currentRow();
}
void library::printAllAmps()
{
std::cout << "Number of Amps: "<<m_cAmpCount<<std::endl<<std::endl;
for (unsigned int i=0;i<m_cAmpCount;i++){
m_pCamp[i].print();
std::cout <<std::endl;
}
}
void library::saveLibraryToFile()
{
QSettings settings("DKM-Tech","Pa-Calculator");
QString fileName = settings.value("library/path",QString::fromStdString("")).toString();
if (fileName.isEmpty())
return;
else {
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::information(this, tr("Unable to open file"),
file.errorString());
return;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_5);
out << (uint)m_cAmpCount;
for (unsigned int j=0;j<m_cAmpCount;j++){
out << m_pCamp[j];
}
}
}
void library::on_listWidget_ampView_currentRowChanged(int currentRow)
{
if (currentRow>=0){
ui->lineEdit_ampName->setText(QString::fromStdString(m_pCamp[currentRow].getName()));
ui->comboBox_sensUnit->setCurrentIndex(m_pCamp[currentRow].getSensivityUnit());
ui->doubleSpinBox_inputSensitivity->setValue(m_pCamp[currentRow].getSensitivity());
refreshModeOverview();
ui->listWidget_modeSelector->setCurrentRow(0);
ui->lineEdit_ampName->setEnabled(true);
ui->doubleSpinBox_inputSensitivity->setEnabled(true);
}else
{
ui->lineEdit_ampName->setEnabled(false);
ui->doubleSpinBox_inputSensitivity->setEnabled(false);
}
}
void library::on_pushButton_applyChanges_clicked()
{
if (getCurrentAmpIndex()>=0){
m_pCamp[getCurrentAmpIndex()].setName(ui->lineEdit_ampName->text().toStdString());
m_pCamp[getCurrentAmpIndex()].setSensivity(ui->doubleSpinBox_inputSensitivity->value());
sensitivityUnit currentSens;
if (ui->comboBox_sensUnit->currentIndex()==0){
currentSens=volt;
}else{
currentSens=dBu;
}
m_pCamp[getCurrentAmpIndex()].setSensUnit(currentSens);
int selectedRow=getCurrentAmpIndex();
refreshAmpView();
ui->listWidget_ampView->setCurrentRow(selectedRow);
}
}
void library::on_comboBox_sensUnit_currentIndexChanged(int index)
{
double oldValue=ui->doubleSpinBox_inputSensitivity->value();
if (index==0){
ui->doubleSpinBox_inputSensitivity->setSuffix(QString(" V"));
ui->doubleSpinBox_inputSensitivity->setDecimals(2);
ui->doubleSpinBox_inputSensitivity->setValue(0.7746*qPow(10,oldValue/20));
}else{
ui->doubleSpinBox_inputSensitivity->setSuffix(QString(" dBu"));
ui->doubleSpinBox_inputSensitivity->setDecimals(1);
ui->doubleSpinBox_inputSensitivity->setValue(20*std::log10(oldValue/0.7746));
}
}
void library::on_pushButton_deleteAmp_clicked()
{
if (getCurrentAmpIndex()>=0){
m_cAmpCount-=1;
cAmp* tempAmps=new cAmp[m_cAmpCount];
unsigned int selectedRow=getCurrentAmpIndex();
for (unsigned int i=0;i<selectedRow;i++){
tempAmps[i]=m_pCamp[i];
}
for (unsigned int i=selectedRow+1;i<m_cAmpCount+1;i++){
tempAmps[i-1]=m_pCamp[i];
}
delete [] m_pCamp;
m_pCamp=tempAmps;
refreshAmpView();
if (selectedRow-1<0 && m_cAmpCount>0){
ui->listWidget_ampView->setCurrentRow(0);
}else
{
ui->listWidget_ampView->setCurrentRow(selectedRow-1);
}
}
}
void library::on_pushButton_addMode_clicked()
{
if (getCurrentAmpIndex()>=0)
{
if (ui->lineEdit_modeName->text()==""){
QMessageBox msgBox(QMessageBox::Warning,"No mode name","Mode name can't be empty. Please enter a name.");
msgBox.exec();
}else{
cAmpMode mode(ui->lineEdit_modeName->text().toStdString(),ui->spinBox_ratedImp->value(),ui->spinBox_ratedPower->value());
m_pCamp[getCurrentAmpIndex()].addAmpMode(mode);
}
}
refreshModeOverview();
}
void library::on_listWidget_modeSelector_currentRowChanged(int currentRow)
{
if (getCurrentAmpIndex()>=0){
if (currentRow >=0){
ui->lineEdit_modeName->setText(QString::fromStdString(m_pCamp[getCurrentAmpIndex()].getAmpMode(getCurrentAmpModeIndex()).getName()));
ui->spinBox_ratedImp->setValue(m_pCamp[getCurrentAmpIndex()].getAmpMode(getCurrentAmpModeIndex()).getRatedImp());
ui->spinBox_ratedPower->setValue(m_pCamp[getCurrentAmpIndex()].getAmpMode(getCurrentAmpModeIndex()).getRatedPower());
}
}
}
void library::on_pushButton_deleteMode_clicked()
{
int selectedRow=getCurrentAmpModeIndex();
m_pCamp[getCurrentAmpIndex()].deleteAmpMode(getCurrentAmpModeIndex());
refreshModeOverview();
if (selectedRow-1<0 && m_pCamp[getCurrentAmpIndex()].getAmpModesCount()){
ui->listWidget_modeSelector->setCurrentRow(0);
}else
{
ui->listWidget_modeSelector->setCurrentRow(selectedRow-1);
}
}
void library::on_pushButton_applyMode_clicked()
{
unsaved =false;
if (ui->lineEdit_modeName->text()==""){
QMessageBox msgBox(QMessageBox::Warning,"No mode name","Mode name can't be empty. Please enter a name.");
msgBox.exec();
}else{
cAmpMode mode(ui->lineEdit_modeName->text().toStdString(),ui->spinBox_ratedImp->value(),ui->spinBox_ratedPower->value());
m_pCamp[getCurrentAmpIndex()].setAmpMode(getCurrentAmpModeIndex(),mode);
}
int selectedMode=getCurrentAmpModeIndex();
refreshModeOverview();
ui->listWidget_modeSelector->setCurrentRow(selectedMode);
}
void library::on_lineEdit_ampName_textEdited(const QString &arg1)
{
if (unsaved==false){
ui->listWidget_ampView->currentItem()->setText(ui->listWidget_ampView->currentItem()->text()+QString::fromStdString("*"));
unsaved =true;
}
}

@ -0,0 +1,67 @@
#ifndef LIBRARY_H
#define LIBRARY_H
#include <QDialog>
#include "camp.h"
namespace Ui {
class library;
}
class library : public QDialog
{
Q_OBJECT
public:
explicit library(QWidget *parent = nullptr);
void setAmpPointer(cAmp* pAmp,unsigned int ampCount);
unsigned int getAmpCount();
cAmp* getAmps();
void open();
~library();
private slots:
void on_pushButton_addAmp_clicked();
void on_listWidget_ampView_currentRowChanged(int currentRow);
void on_pushButton_applyChanges_clicked();
void on_comboBox_sensUnit_currentIndexChanged(int index);
void on_pushButton_deleteAmp_clicked();
void on_pushButton_addMode_clicked();
void on_listWidget_modeSelector_currentRowChanged(int currentRow);
void on_pushButton_deleteMode_clicked();
void on_pushButton_applyMode_clicked();
void on_lineEdit_ampName_textEdited(const QString &arg1);
private:
Ui::library *ui;
cAmp* m_pCamp;
unsigned int m_cAmpCount;
void refreshAmpView();
void refreshAmpOverview();
void refreshModeOverview();
int getCurrentAmpIndex();
int getCurrentAmpModeIndex();
void printAllAmps();
bool unsaved;
void saveLibraryToFile();
};
#endif // LIBRARY_H

@ -0,0 +1,262 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>library</class>
<widget class="QDialog" name="library">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>913</width>
<height>480</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<widget class="QWidget" name="amps">
<attribute name="title">
<string>Amplifiers</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QListWidget" name="listWidget_ampView"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_addAmp">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_deleteAmp">
<property name="text">
<string>Delete</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_applyChanges">
<property name="text">
<string>Apply</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QFormLayout" name="a_titleForm">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_ampName">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Input Sensitivity</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBox_inputSensitivity">
<property name="enabled">
<bool>false</bool>
</property>
<property name="suffix">
<string> V</string>
</property>
<property name="minimum">
<double>0.010000000000000</double>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBox_sensUnit">
<item>
<property name="text">
<string>in Volt</string>
</property>
</item>
<item>
<property name="text">
<string>in dBu</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="b_addModeGroupBox">
<property name="title">
<string>Add/Change Mode</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Mode Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_modeName"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Rated Power</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox_ratedPower">
<property name="suffix">
<string> W</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Rated Impedance</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_ratedImp">
<property name="suffix">
<string> Ohm</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>32</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="listWidget_modeSelector"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QPushButton" name="pushButton_addMode">
<property name="text">
<string>Add mode</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_deleteMode">
<property name="text">
<string>Delete mode</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_applyMode">
<property name="text">
<string>Apply</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>library</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>244</x>
<y>444</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>library</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>312</x>
<y>444</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

@ -3,16 +3,28 @@
#include <QString> #include <QString>
#include <QtMath> #include <QtMath>
#include <QMessageBox> #include <QMessageBox>
#include "library.h"
#include <QSettings>
#include <QFile>
#include <QDataStream>
#include <QFileDialog>
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);
m_ampCount=0;
m_pCAmp=Q_NULLPTR;
loadLibrary();
refreshLibraryAmps();
refreshLibraryAmpModes();
} }
MainWindow::~MainWindow() MainWindow::~MainWindow()
{ {
delete ui; delete ui;
delete [] m_pCAmp;
} }
void MainWindow::on_ComboBox_selectSensUnit_currentIndexChanged(int index) void MainWindow::on_ComboBox_selectSensUnit_currentIndexChanged(int index)
@ -104,3 +116,119 @@ void MainWindow::on_pushButton_requestLimiter_clicked()
} }
void MainWindow::on_actionEditLibrary_triggered()
{
library* dialog=new library;
dialog->setAmpPointer(m_pCAmp,m_ampCount);
dialog->open();
m_ampCount=dialog->getAmpCount();
m_pCAmp=dialog->getAmps();
refreshLibraryAmps();
refreshLibraryAmpModes();
delete dialog;
}
void MainWindow::refreshLibraryAmps()
{
ui->comboBox_libraryAmp->clear();
for (unsigned int i=0;i<m_ampCount;i++){
ui->comboBox_libraryAmp->addItem(QString::fromStdString(m_pCAmp[i].getName()));
}
}
void MainWindow::refreshLibraryAmpModes()
{
ui->comboBox_libraryAmoMode->clear();
if (ui->comboBox_libraryAmp->currentIndex()>=0){
for (unsigned int i=0;i<m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getAmpModesCount();i++){
ui->comboBox_libraryAmoMode->addItem(QString::fromStdString(m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getAmpMode(i).getName()));
}
}
}
void MainWindow::loadLibrary()
{
QSettings settings("DKM-Tech","Pa-Calculator");
QString fileName = settings.value("library/path",QString::fromStdString("")).toString();
if (fileName.isEmpty())
return;
else {
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly)) {
QMessageBox::information(this, tr("Unable to open file. Will create a new one."),file.errorString());
return;
}
QDataStream in(&file);
in.setVersion(QDataStream::Qt_4_5);
uint count;
in >> count;
m_ampCount=count;
if (m_ampCount>0){
delete[] m_pCAmp;
m_pCAmp=new cAmp[m_ampCount];
}
for (unsigned int j=0;j<m_ampCount;j++){
in >> m_pCAmp[j];
}
}
}
void MainWindow::saveLibrary()
{
QSettings settings("DKM-Tech","Pa-Calculator");
QString fileName = settings.value("library/path",QString::fromStdString("")).toString();
if (fileName.isEmpty())
return;
else {
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::information(this, tr("Unable to open file"),
file.errorString());
return;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_5);
out << (uint)m_ampCount;
for (unsigned int j=0;j<m_ampCount;j++){
out << m_pCAmp[j];
}
}
}
void MainWindow::on_comboBox_libraryAmp_currentIndexChanged(int index)
{
refreshLibraryAmpModes();
}
void MainWindow::on_pushButton_clicked()
{
if (ui->comboBox_libraryAmp->currentIndex()>=0 && ui->comboBox_libraryAmoMode->currentIndex()>=0){
if (m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getAmpModesCount()>=1){
ui->spinBox_AmpPower->setValue(m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getAmpMode(ui->comboBox_libraryAmoMode->currentIndex()).getRatedPower());
ui->spinBox_AmpImp->setValue(m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getAmpMode(ui->comboBox_libraryAmoMode->currentIndex()).getRatedImp());
ui->ComboBox_selectSensUnit->setCurrentIndex(m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getSensivityUnit());
ui->doubleSpinBox_ampInputSens->setValue(m_pCAmp[ui->comboBox_libraryAmp->currentIndex()].getSensitivity());
}
}
}
void MainWindow::on_actionChange_Library_Location_triggered()
{
QSettings settings("DKM-Tech","Pa-Calculator");
settings.setValue("library/path",QFileDialog::getSaveFileName(this,"Where to store the storage file?",settings.value("library/path",QString::fromStdString("")).toString(),"Pa Calculator Library File (*.palib)"));
saveLibrary();
}
void MainWindow::on_actionOpen_Library_triggered()
{
QSettings settings("DKM-Tech","Pa-Calculator");
settings.setValue("library/path",QFileDialog::getOpenFileName(this,"Select library storage file",settings.value("library/path",QString::fromStdString("")).toString(),"Pa Calculator Library File (*.palib)"));
loadLibrary();
refreshLibraryAmps();
}

@ -2,6 +2,7 @@
#define MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include <QMainWindow>
#include "camp.h"
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
@ -20,7 +21,26 @@ private slots:
void on_pushButton_requestLimiter_clicked(); void on_pushButton_requestLimiter_clicked();
void on_actionEditLibrary_triggered();
void on_comboBox_libraryAmp_currentIndexChanged(int index);
void on_pushButton_clicked();
void on_actionChange_Library_Location_triggered();
void on_actionOpen_Library_triggered();
private: private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
cAmp* m_pCAmp;
unsigned int m_ampCount;
void refreshLibraryAmps();
void refreshLibraryAmpModes();
void loadLibrary();
void saveLibrary();
}; };
#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>931</width> <width>1084</width>
<height>460</height> <height>608</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -113,6 +113,60 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Load amp from library</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="comboBox_libraryAmp">
<property name="minimumSize">
<size>
<width>175</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>select mode</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QComboBox" name="comboBox_libraryAmoMode">
<property name="minimumSize">
<size>
<width>175</width>
<height>0</height>
</size>
</property>
</widget>
</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="7" column="1">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Load Preset</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>
@ -528,12 +582,36 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>931</width> <width>1084</width>
<height>22</height> <height>24</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuLibrary">
<property name="title">
<string>Library</string>
</property>
<addaction name="actionEditLibrary"/>
<addaction name="actionOpen_Library"/>
<addaction name="actionChange_Library_Location"/>
</widget>
<addaction name="menuLibrary"/>
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
<action name="actionEditLibrary">
<property name="text">
<string>Edit Library</string>
</property>
</action>
<action name="actionChange_Library_Location">
<property name="text">
<string>Save Library As</string>
</property>
</action>
<action name="actionOpen_Library">
<property name="text">
<string>Open Library</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

Loading…
Cancel
Save