diff --git a/src/main.cpp b/src/main.cpp index df1fec8..d47b266 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,9 +8,50 @@ #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 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"));