Files
DrumMachine/main.cpp

94 lines
2.9 KiB
C++
Raw Normal View History

2020-04-25 20:53:49 +02:00
#include <QApplication>
#include <QSslSocket>
#include <QDebug>
#include <QMessageBox>
2020-04-25 20:53:49 +02:00
2020-04-26 20:49:20 +02:00
#include "portaudio.h"
2022-12-27 10:15:13 +01:00
#include "widgets/mainwindow.h"
2020-04-25 20:53:49 +02:00
2020-04-26 20:49:20 +02:00
namespace {
template<typename T>
class CleanupHelper
{
public:
CleanupHelper(T &&callback) :
m_callback{std::move(callback)}
{}
~CleanupHelper()
{
m_callback();
}
private:
T m_callback;
};
template<typename T>
auto makeCleanupHelper(T &&callback)
{
return CleanupHelper<T>{std::move(callback)};
}
}
2020-04-25 20:53:49 +02:00
int main(int argc, char *argv[])
{
2022-12-27 09:33:00 +01:00
qSetMessagePattern("%{time dd.MM.yyyy HH:mm:ss.zzz} "
"["
"%{if-debug}D%{endif}"
"%{if-info}I%{endif}"
"%{if-warning}W%{endif}"
"%{if-critical}C%{endif}"
"%{if-fatal}F%{endif}"
"] "
"%{function}(): "
"%{message}");
QApplication app{argc, argv};
2020-04-25 20:53:49 +02:00
QCoreApplication::setOrganizationDomain("brunner.ninja");
QCoreApplication::setOrganizationName("brunner.ninja");
2022-12-27 23:43:09 +01:00
QCoreApplication::setApplicationName("DrumMachine");
2020-04-25 20:53:49 +02:00
QCoreApplication::setApplicationVersion("1.0");
2022-12-27 09:33:00 +01:00
qDebug() << "supportsSsl:" << QSslSocket::supportsSsl()
<< "sslLibraryVersionString:" << QSslSocket::sslLibraryVersionString()
<< "sslLibraryBuildVersionString:" << QSslSocket::sslLibraryBuildVersionString();
2020-04-25 20:53:49 +02:00
2020-04-26 20:49:20 +02:00
if (PaError err = Pa_Initialize(); err != paNoError)
{
QMessageBox::warning({}, QApplication::translate("main", "Error initializing PortAudio!"), QApplication::translate("main", "Error initializing PortAudio!") + "\n\n" + Pa_GetErrorText(err));
return 1;
}
auto helper0 = makeCleanupHelper([](){
if (PaError err = Pa_Terminate(); err != paNoError)
fprintf(stderr, "Could not terminate PortAudio!\n");
});
2020-04-25 20:53:49 +02:00
#if !defined(Q_OS_WIN)
QPalette darkPalette;
darkPalette.setColor(QPalette::Window, QColor(53,53,53));
darkPalette.setColor(QPalette::WindowText, Qt::white);
darkPalette.setColor(QPalette::Base, QColor(25,25,25));
darkPalette.setColor(QPalette::AlternateBase, QColor(53,53,53));
darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
darkPalette.setColor(QPalette::ToolTipText, Qt::white);
darkPalette.setColor(QPalette::Text, Qt::white);
darkPalette.setColor(QPalette::Button, QColor(53,53,53));
darkPalette.setColor(QPalette::ButtonText, Qt::white);
darkPalette.setColor(QPalette::BrightText, Qt::red);
darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));
darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218));
darkPalette.setColor(QPalette::HighlightedText, Qt::black);
app.setPalette(darkPalette);
app.setStyleSheet("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }");
#endif
MainWindow mainWindow;
mainWindow.show();
2020-04-25 20:53:49 +02:00
return app.exec();
}