diff --git a/src/main.cpp b/src/main.cpp index df1fec8..14fddb3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,10 +7,48 @@ #include #include +#include +#include #include +#include + +void showErrorMessage(const char *text) { + QMessageBox msgBox; + + msgBox.setIcon(QMessageBox::Critical); + msgBox.setText(text); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setWindowIcon(QIcon(":assets/de.shorsh.discord-screenaudio.png")); + + msgBox.exec(); +} + +bool isProgramRunning(const QString &program_name) { + QLocalSocket socket; + socket.connectToServer(program_name); + if (socket.waitForConnected()) { + return true; // program is already running + } + return false; +} int main(int argc, char *argv[]) { QApplication app(argc, argv); + + // Check if discord is already running + QString program_name = "discord-screenaudio"; + if (isProgramRunning(program_name)) { + // if running show error message + showErrorMessage("discord-screenaudio is already running"); + return 1; + } + + // open server so we can check if discord is running + QLocalServer server; + server.listen(program_name); + QObject::connect(&server, &QLocalServer::newConnection, []() {}); + QApplication::setApplicationName("discord-screenaudio"); QApplication::setWindowIcon( QIcon(":assets/de.shorsh.discord-screenaudio.png"));