Move Discord Rich Presence behind a compile-time option
This commit is contained in:
@@ -138,6 +138,7 @@ option(MINITRACE "Enable Chrome tracing using the modified minitrace library"
|
||||
option(GDBSTUB "Enable GDB stub server for debugging" OFF)
|
||||
option(DEV_BRANCH "Development branch" OFF)
|
||||
option(QT "Qt GUI" ON)
|
||||
option(DISCORD "Discord Rich Presence support" ON)
|
||||
|
||||
# Development branch features
|
||||
#
|
||||
|
||||
@@ -19,7 +19,7 @@ if(APPLE)
|
||||
endif()
|
||||
|
||||
add_executable(86Box 86box.c config.c log.c random.c timer.c io.c acpi.c apm.c
|
||||
dma.c ddma.c discord.c nmi.c pic.c pit.c pit_fast.c port_6x.c port_92.c ppi.c pci.c
|
||||
dma.c ddma.c nmi.c pic.c pit.c pit_fast.c port_6x.c port_92.c ppi.c pci.c
|
||||
mca.c usb.c fifo8.c device.c nvr.c nvr_at.c nvr_ps2.c machine_status.c ini.c)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
@@ -51,6 +51,11 @@ if(DEV_BRANCH)
|
||||
add_compile_definitions(DEV_BRANCH)
|
||||
endif()
|
||||
|
||||
if(DISCORD)
|
||||
add_compile_definitions(DISCORD)
|
||||
target_sources(86Box PRIVATE discord.c)
|
||||
endif()
|
||||
|
||||
if(VNC)
|
||||
find_package(LibVNCServer)
|
||||
if(LibVNCServer_FOUND)
|
||||
|
||||
@@ -52,7 +52,9 @@ extern "C" {
|
||||
#include <86box/plat.h>
|
||||
#include <86box/ui.h>
|
||||
#include <86box/video.h>
|
||||
#ifdef DISCORD
|
||||
# include <86box/discord.h>
|
||||
#endif
|
||||
#include <86box/gdbstub.h>
|
||||
}
|
||||
|
||||
@@ -196,7 +198,9 @@ main(int argc, char *argv[])
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef DISCORD
|
||||
discord_load();
|
||||
#endif
|
||||
|
||||
main_window = new MainWindow();
|
||||
if (startMaximized) {
|
||||
@@ -271,12 +275,14 @@ main(int argc, char *argv[])
|
||||
/* Set the PAUSE mode depending on the renderer. */
|
||||
// plat_pause(0);
|
||||
QTimer onesec;
|
||||
QTimer discordupdate;
|
||||
QObject::connect(&onesec, &QTimer::timeout, &app, [] {
|
||||
pc_onesec();
|
||||
});
|
||||
onesec.setTimerType(Qt::PreciseTimer);
|
||||
onesec.start(1000);
|
||||
|
||||
#ifdef DISCORD
|
||||
QTimer discordupdate;
|
||||
if (discord_loaded) {
|
||||
QTimer::singleShot(1000, &app, [] {
|
||||
if (enable_discord) {
|
||||
@@ -290,6 +296,7 @@ main(int argc, char *argv[])
|
||||
});
|
||||
discordupdate.start(1000);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize the rendering window, or fullscreen. */
|
||||
QTimer::singleShot(0, &app, [] {
|
||||
|
||||
@@ -39,7 +39,9 @@ extern "C" {
|
||||
#include <86box/keyboard.h>
|
||||
#include <86box/plat.h>
|
||||
#include <86box/ui.h>
|
||||
#ifdef DISCORD
|
||||
# include <86box/discord.h>
|
||||
#endif
|
||||
#include <86box/device.h>
|
||||
#include <86box/video.h>
|
||||
#include <86box/machine.h>
|
||||
@@ -305,6 +307,10 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
ui->actionEnable_Discord_integration->setChecked(enable_discord);
|
||||
ui->actionApply_fullscreen_stretch_mode_when_maximized->setChecked(video_fullscreen_scale_maximized);
|
||||
|
||||
#ifndef DISCORD
|
||||
ui->actionEnable_Discord_integration->setVisible(false);
|
||||
#endif
|
||||
|
||||
#if defined Q_OS_WINDOWS || defined Q_OS_MACOS
|
||||
/* Make the option visible only if ANGLE is loaded. */
|
||||
ui->actionHardware_Renderer_OpenGL_ES->setVisible(QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGLES);
|
||||
@@ -2292,11 +2298,13 @@ void
|
||||
MainWindow::on_actionEnable_Discord_integration_triggered(bool checked)
|
||||
{
|
||||
enable_discord = checked;
|
||||
#ifdef DISCORD
|
||||
if (enable_discord) {
|
||||
discord_init();
|
||||
discord_update_activity(dopause);
|
||||
} else
|
||||
discord_close();
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -103,7 +103,9 @@ extern "C" {
|
||||
#include <86box/rom.h>
|
||||
#include <86box/config.h>
|
||||
#include <86box/ui.h>
|
||||
#ifdef DISCORD
|
||||
# include <86box/discord.h>
|
||||
#endif
|
||||
|
||||
#include "../cpu/cpu.h"
|
||||
#include <86box/plat.h>
|
||||
@@ -377,7 +379,11 @@ plat_pause(int p)
|
||||
} else {
|
||||
ui_window_title(oldtitle);
|
||||
}
|
||||
|
||||
#ifdef DISCORD
|
||||
discord_update_activity(dopause);
|
||||
#endif
|
||||
|
||||
QTimer::singleShot(0, main_window, &MainWindow::updateUiPauseState);
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Pořídit &screenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Předvolby...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Povolit integraci s &Discordem", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Zesílení zvuku", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "S&creenshot aufnehmen\tStrg+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Einstellungen...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "&Discord-Integration aktivieren", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Klangverstärkung...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferences...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Enable &Discord integration", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sound &gain...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferences...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Enable &Discord integration", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sound &gain...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Tomar c&aptura\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferencias...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Habilitar integración con &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ganancia de sonido...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Ota &kuvakaappaus\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Sovellusasetukset...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Käytä &Discord-integraatiota", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Äänitasot...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Copie &Ecran\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Préférences...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Activer intégration &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Gain Son...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Napravi &snimku zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Postavke...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Omogući integraciju sa programom &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Pojačanje zvuka...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -109,7 +109,9 @@ BEGIN
|
||||
MENUITEM "&Képernyőkép készítése\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Beállítások...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "&Discord integráció engedélyezése", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hangerőszabályzó...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -105,7 +105,9 @@ BEGIN
|
||||
MENUITEM "Cattura schermata\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferenze...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Abilita &integrazione Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Guadagno &suono...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "スクリーンショットを撮る(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "環境設定(&P)...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Discordとの連携機能(&D)", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "音量を調節(&G)...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "스크린샷 찍기(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "환경설정(&P)...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "디스코드 연동 활성화하기(&D)", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "음량 증폭(&G)...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Zrób &zrzut ekranu\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferencje...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Włącz integrację z &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Wzmocnienie &dźwięku...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -107,7 +107,9 @@ BEGIN
|
||||
MENUITEM "Capturar &tela\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferências...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Ativar integração com o &Discord", IDM_DISCORD
|
||||
#endif DISCORD
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ganho de som...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Gravar imagem de ecrã\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Preferências...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Ativar integração com &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ganho de som...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Сделать с&криншот\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Параметры...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Включить интеграцию &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Усиление звука...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "&Zajemi posnetek zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Možnosti...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Omogoči integracijo s programom &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ojačanje zvoka...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "&Ekran görüntüsü al\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Tercihler...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "&Discord entegrasyonunu etkinleştir", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ses yükseltici...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "Зробити &знімок\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Параметри...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "Увімкнути інтеграцію &Discord", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Посилення звуку...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "截图(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "首选项(&P)...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "启用 Discord 集成(&D)", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "音量增益(&G)...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -104,7 +104,9 @@ BEGIN
|
||||
MENUITEM "擷圖(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "首選項(&P)...", IDM_PREFERENCES
|
||||
#ifdef DISCORD
|
||||
MENUITEM "啟用 Discord 整合(&D)", IDM_DISCORD
|
||||
#endif
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "音量增益(&G)...", IDM_SND_GAIN
|
||||
#ifdef MTR_ENABLED
|
||||
|
||||
@@ -44,7 +44,9 @@
|
||||
#include <86box/ui.h>
|
||||
#include <86box/win.h>
|
||||
#include <86box/version.h>
|
||||
#ifdef DISCORD
|
||||
# include <86box/discord.h>
|
||||
#endif
|
||||
|
||||
#ifdef MTR_ENABLED
|
||||
# include <minitrace/minitrace.h>
|
||||
@@ -316,10 +318,13 @@ ResetAllMenus(void)
|
||||
|
||||
video_set_filter_menu(menuMain);
|
||||
|
||||
#ifdef DISCORD
|
||||
if (discord_loaded)
|
||||
CheckMenuItem(menuMain, IDM_DISCORD, enable_discord ? MF_CHECKED : MF_UNCHECKED);
|
||||
else
|
||||
EnableMenuItem(menuMain, IDM_DISCORD, MF_DISABLED);
|
||||
#endif
|
||||
|
||||
#ifdef MTR_ENABLED
|
||||
EnableMenuItem(menuMain, IDM_ACTION_END_TRACE, MF_DISABLED);
|
||||
#endif
|
||||
@@ -820,6 +825,7 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
config_save();
|
||||
break;
|
||||
|
||||
#ifdef DISCORD
|
||||
case IDM_DISCORD:
|
||||
if (!discord_loaded)
|
||||
break;
|
||||
@@ -831,6 +837,7 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
} else
|
||||
discord_close();
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
media_menu_proc(hwnd, message, wParam, lParam);
|
||||
@@ -1212,6 +1219,7 @@ ui_init(int nCmdShow)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#ifdef DISCORD
|
||||
if (!discord_load()) {
|
||||
enable_discord = 0;
|
||||
} else if (enable_discord) {
|
||||
@@ -1221,6 +1229,7 @@ ui_init(int nCmdShow)
|
||||
/* Update Discord status */
|
||||
discord_update_activity(dopause);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Create our main window's class and register it. */
|
||||
wincl.hInstance = hinstance;
|
||||
@@ -1451,9 +1460,11 @@ ui_init(int nCmdShow)
|
||||
plat_setfullscreen(0);
|
||||
}
|
||||
|
||||
#ifdef DISCORD
|
||||
/* Run Discord API callbacks */
|
||||
if (enable_discord)
|
||||
discord_run_callbacks();
|
||||
#endif
|
||||
}
|
||||
|
||||
timeEndPeriod(1);
|
||||
@@ -1471,8 +1482,10 @@ ui_init(int nCmdShow)
|
||||
|
||||
win_mouse_close();
|
||||
|
||||
#ifdef DISCORD
|
||||
/* Shut down the Discord integration */
|
||||
discord_close();
|
||||
#endif
|
||||
|
||||
if (user32_handle != NULL)
|
||||
dynld_close(user32_handle);
|
||||
@@ -1521,9 +1534,11 @@ plat_pause(int p)
|
||||
CheckMenuItem(menuMain, IDM_ACTION_PAUSE,
|
||||
(dopause) ? MF_CHECKED : MF_UNCHECKED);
|
||||
|
||||
#ifdef DISCORD
|
||||
/* Update Discord status */
|
||||
if (enable_discord)
|
||||
discord_update_activity(dopause);
|
||||
#endif
|
||||
|
||||
/* Update the toolbar */
|
||||
ToolBarUpdatePause(p);
|
||||
|
||||
Reference in New Issue
Block a user