diff --git a/src/frontend/qt_sdl/Config.cpp b/src/frontend/qt_sdl/Config.cpp index 27f182db..a8df8ee5 100644 --- a/src/frontend/qt_sdl/Config.cpp +++ b/src/frontend/qt_sdl/Config.cpp @@ -107,7 +107,9 @@ int FirmwareFavouriteColour; std::string FirmwareMessage; std::string FirmwareMAC; -bool SocketBindAnyAddr; +int MPAudioMode; +int MPRecvTimeout; + std::string LANDevice; bool DirectLAN; @@ -273,7 +275,9 @@ ConfigEntry ConfigFile[] = {"FirmwareMessage", 2, &FirmwareMessage, (std::string)"", true}, {"FirmwareMAC", 2, &FirmwareMAC, (std::string)"", true}, - {"SockBindAnyAddr", 1, &SocketBindAnyAddr, false, false}, + {"MPAudioMode", 0, &MPAudioMode, 1, false}, + {"MPRecvTimeout", 0, &MPRecvTimeout, 25, false}, + {"LANDevice", 2, &LANDevice, (std::string)"", false}, {"DirectLAN", 1, &DirectLAN, false, false}, diff --git a/src/frontend/qt_sdl/Config.h b/src/frontend/qt_sdl/Config.h index c524174c..cc6792c0 100644 --- a/src/frontend/qt_sdl/Config.h +++ b/src/frontend/qt_sdl/Config.h @@ -143,7 +143,9 @@ extern int FirmwareFavouriteColour; extern std::string FirmwareMessage; extern std::string FirmwareMAC; -extern bool SocketBindAnyAddr; +extern int MPAudioMode; +extern int MPRecvTimeout; + extern std::string LANDevice; extern bool DirectLAN; diff --git a/src/frontend/qt_sdl/LocalMP.cpp b/src/frontend/qt_sdl/LocalMP.cpp index 7cd5cfbf..fb7ef7ad 100644 --- a/src/frontend/qt_sdl/LocalMP.cpp +++ b/src/frontend/qt_sdl/LocalMP.cpp @@ -85,7 +85,7 @@ const u32 kReplyStart = kQueueSize / 2; const u32 kPacketEnd = kReplyStart; const u32 kReplyEnd = kQueueSize; -const int RecvTimeout = 25; +int RecvTimeout; int LastHostID; @@ -287,6 +287,8 @@ bool Init() printf("MP comm init OK, instance ID %d\n", InstanceID); + RecvTimeout = 25; + return true; } @@ -305,6 +307,11 @@ void DeInit() delete MPQueue; } +void SetRecvTimeout(int timeout) +{ + RecvTimeout = timeout; +} + void Begin() { MPQueue->lock(); diff --git a/src/frontend/qt_sdl/LocalMP.h b/src/frontend/qt_sdl/LocalMP.h index d186d214..51dfcb93 100644 --- a/src/frontend/qt_sdl/LocalMP.h +++ b/src/frontend/qt_sdl/LocalMP.h @@ -26,8 +26,12 @@ namespace LocalMP bool Init(); void DeInit(); + +void SetRecvTimeout(int timeout); + void Begin(); void End(); + int SendPacket(u8* data, int len, u64 timestamp); int RecvPacket(u8* data, u64* timestamp); int SendCmd(u8* data, int len, u64 timestamp); diff --git a/src/frontend/qt_sdl/MPSettingsDialog.cpp b/src/frontend/qt_sdl/MPSettingsDialog.cpp index b92e95fd..e3114220 100644 --- a/src/frontend/qt_sdl/MPSettingsDialog.cpp +++ b/src/frontend/qt_sdl/MPSettingsDialog.cpp @@ -33,8 +33,6 @@ MPSettingsDialog* MPSettingsDialog::currentDlg = nullptr; -bool MPSettingsDialog::needsReset = false; - extern bool RunningSomething; @@ -43,7 +41,13 @@ MPSettingsDialog::MPSettingsDialog(QWidget* parent) : QDialog(parent), ui(new Ui ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); - // todo + grpAudioMode = new QButtonGroup(this); + grpAudioMode->addButton(ui->rbAudioAll, 0); + grpAudioMode->addButton(ui->rbAudioOneOnly, 1); + grpAudioMode->addButton(ui->rbAudioActiveOnly, 2); + grpAudioMode->button(Config::MPAudioMode)->setChecked(true); + + ui->sbReceiveTimeout->setValue(Config::MPRecvTimeout); } MPSettingsDialog::~MPSettingsDialog() @@ -53,11 +57,10 @@ MPSettingsDialog::~MPSettingsDialog() void MPSettingsDialog::done(int r) { - needsReset = false; - if (r == QDialog::Accepted) { - // TODO save shit here + Config::MPAudioMode = grpAudioMode->checkedId(); + Config::MPRecvTimeout = ui->sbReceiveTimeout->value(); Config::Save(); } diff --git a/src/frontend/qt_sdl/MPSettingsDialog.h b/src/frontend/qt_sdl/MPSettingsDialog.h index 2aed738b..fe917e89 100644 --- a/src/frontend/qt_sdl/MPSettingsDialog.h +++ b/src/frontend/qt_sdl/MPSettingsDialog.h @@ -20,6 +20,7 @@ #define MPSETTINGSDIALOG_H #include +#include namespace Ui { class MPSettingsDialog; } class MPSettingsDialog; @@ -50,8 +51,6 @@ public: currentDlg = nullptr; } - static bool needsReset; - private slots: void done(int r); @@ -59,6 +58,8 @@ private slots: private: Ui::MPSettingsDialog* ui; + + QButtonGroup* grpAudioMode; }; #endif // MPSETTINGSDIALOG_H diff --git a/src/frontend/qt_sdl/MPSettingsDialog.ui b/src/frontend/qt_sdl/MPSettingsDialog.ui index dcbe2b42..bce0fc94 100644 --- a/src/frontend/qt_sdl/MPSettingsDialog.ui +++ b/src/frontend/qt_sdl/MPSettingsDialog.ui @@ -64,6 +64,9 @@ 0 + + 1000 + diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index 3c60f3e6..6002b445 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -1772,6 +1772,7 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) { actEmuSettings->setEnabled(false); actVideoSettings->setEnabled(false); + actMPSettings->setEnabled(false); actWifiSettings->setEnabled(false); #ifdef __APPLE__ @@ -2801,11 +2802,7 @@ void MainWindow::onOpenMPSettings() void MainWindow::onMPSettingsFinished(int res) { - /*LocalMP::DeInit(); - LocalMP::Init(); - - if (MPSettingsDialog::needsReset) - onReset();*/ + LocalMP::SetRecvTimeout(Config::MPRecvTimeout); emuThread->emuUnpause(); }