From 81eae0e3ea7722231fb6ab38c83fb6fc80fdb5fb Mon Sep 17 00:00:00 2001 From: Arisotura Date: Thu, 21 Feb 2019 01:58:03 +0100 Subject: [PATCH] add base for wifi settings dialog --- melonDS.cbp | 2 + src/libui_sdl/DlgWifiSettings.cpp | 180 ++++++++++++++++++++++++++++++ src/libui_sdl/DlgWifiSettings.h | 30 +++++ src/libui_sdl/main.cpp | 8 ++ 4 files changed, 220 insertions(+) create mode 100644 src/libui_sdl/DlgWifiSettings.cpp create mode 100644 src/libui_sdl/DlgWifiSettings.h diff --git a/melonDS.cbp b/melonDS.cbp index 6a8f826a..204ceda9 100644 --- a/melonDS.cbp +++ b/melonDS.cbp @@ -156,6 +156,8 @@ + + diff --git a/src/libui_sdl/DlgWifiSettings.cpp b/src/libui_sdl/DlgWifiSettings.cpp new file mode 100644 index 00000000..f4b8e59d --- /dev/null +++ b/src/libui_sdl/DlgWifiSettings.cpp @@ -0,0 +1,180 @@ +/* + Copyright 2016-2019 Arisotura + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#include +#include +#include + +#include "libui/ui.h" + +#include "../types.h" +#include "../Config.h" + +#include "DlgWifiSettings.h" + + +namespace DlgWifiSettings +{ + +bool opened; +uiWindow* win; + +/*uiSlider* slVolume; +uiRadioButtons* rbMicInputType; +uiEntry* txMicWavPath; + +int oldvolume;*/ + + +int OnCloseWindow(uiWindow* window, void* blarg) +{ + opened = false; + return 1; +} + +void OnVolumeChanged(uiSlider* slider, void* blarg) +{ + //Config::AudioVolume = uiSliderValue(slVolume); +} + +/*void OnMicWavBrowse(uiButton* btn, void* blarg) +{ + char* file = uiOpenFile(win, "WAV file (*.wav)|*.wav|Any file|*.*", NULL); + if (!file) + { + return; + } + + uiEntrySetText(txMicWavPath, file); + uiFreeText(file); +}*/ + +void OnCancel(uiButton* btn, void* blarg) +{ + Config::AudioVolume = oldvolume; + + uiControlDestroy(uiControl(win)); + opened = false; +} + +void OnOk(uiButton* btn, void* blarg) +{ + /*Config::AudioVolume = uiSliderValue(slVolume); + Config::MicInputType = uiRadioButtonsSelected(rbMicInputType); + + char* wavpath = uiEntryText(txMicWavPath); + strncpy(Config::MicWavPath, wavpath, 511); + uiFreeText(wavpath);*/ + + Config::Save(); + + //if (Config::MicInputType == 3) MicLoadWav(Config::MicWavPath); + + uiControlDestroy(uiControl(win)); + opened = false; +} + +void Open() +{ + if (opened) + { + uiControlSetFocus(uiControl(win)); + return; + } + + opened = true; + win = uiNewWindow("Wifi settings - melonDS", 400, 100, 0, 0, 0); + uiWindowSetMargined(win, 1); + uiWindowOnClosing(win, OnCloseWindow, NULL); + + uiBox* top = uiNewVerticalBox(); + uiWindowSetChild(win, uiControl(top)); + uiBoxSetPadded(top, 1); + + /*{ + uiGroup* grp = uiNewGroup("Audio output"); + uiBoxAppend(top, uiControl(grp), 0); + uiGroupSetMargined(grp, 1); + + uiBox* in_ctrl = uiNewVerticalBox(); + uiGroupSetChild(grp, uiControl(in_ctrl)); + + uiLabel* label_vol = uiNewLabel("Volume:"); + uiBoxAppend(in_ctrl, uiControl(label_vol), 0); + + slVolume = uiNewSlider(0, 256); + uiSliderOnChanged(slVolume, OnVolumeChanged, NULL); + uiBoxAppend(in_ctrl, uiControl(slVolume), 0); + } + + { + uiGroup* grp = uiNewGroup("Microphone input"); + uiBoxAppend(top, uiControl(grp), 0); + uiGroupSetMargined(grp, 1); + + uiBox* in_ctrl = uiNewVerticalBox(); + uiGroupSetChild(grp, uiControl(in_ctrl)); + + rbMicInputType = uiNewRadioButtons(); + uiRadioButtonsAppend(rbMicInputType, "None"); + uiRadioButtonsAppend(rbMicInputType, "Microphone"); + uiRadioButtonsAppend(rbMicInputType, "White noise"); + uiRadioButtonsAppend(rbMicInputType, "WAV file:"); + uiBoxAppend(in_ctrl, uiControl(rbMicInputType), 0); + + uiBox* path_box = uiNewHorizontalBox(); + uiBoxAppend(in_ctrl, uiControl(path_box), 0); + + txMicWavPath = uiNewEntry(); + uiBoxAppend(path_box, uiControl(txMicWavPath), 1); + + uiButton* path_browse = uiNewButton("..."); + uiButtonOnClicked(path_browse, OnMicWavBrowse, NULL); + uiBoxAppend(path_box, uiControl(path_browse), 0); + }*/ + + { + uiBox* in_ctrl = uiNewHorizontalBox(); + uiBoxSetPadded(in_ctrl, 1); + uiBoxAppend(top, uiControl(in_ctrl), 0); + + uiLabel* dummy = uiNewLabel(""); + uiBoxAppend(in_ctrl, uiControl(dummy), 1); + + uiButton* btncancel = uiNewButton("Cancel"); + uiButtonOnClicked(btncancel, OnCancel, NULL); + uiBoxAppend(in_ctrl, uiControl(btncancel), 0); + + uiButton* btnok = uiNewButton("Ok"); + uiButtonOnClicked(btnok, OnOk, NULL); + uiBoxAppend(in_ctrl, uiControl(btnok), 0); + } + + /*if (Config::AudioVolume < 0) Config::AudioVolume = 0; + else if (Config::AudioVolume > 256) Config::AudioVolume = 256; + + oldvolume = Config::AudioVolume; + + uiSliderSetValue(slVolume, Config::AudioVolume); + uiRadioButtonsSetSelected(rbMicInputType, Config::MicInputType); + uiEntrySetText(txMicWavPath, Config::MicWavPath);*/ + + uiControlShow(uiControl(win)); +} + +} diff --git a/src/libui_sdl/DlgWifiSettings.h b/src/libui_sdl/DlgWifiSettings.h new file mode 100644 index 00000000..f7b73985 --- /dev/null +++ b/src/libui_sdl/DlgWifiSettings.h @@ -0,0 +1,30 @@ +/* + Copyright 2016-2019 Arisotura + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#ifndef DLGWIFISETTINGS_H +#define DLGWIFISETTINGS_H + +namespace DlgWifiSettings +{ + +void Open(); + +} + +#endif // DLGWIFISETTINGS_H + diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp index b0d2504b..830751f3 100644 --- a/src/libui_sdl/main.cpp +++ b/src/libui_sdl/main.cpp @@ -32,6 +32,7 @@ #include "DlgEmuSettings.h" #include "DlgInputConfig.h" #include "DlgAudioSettings.h" +#include "DlgWifiSettings.h" #include "../NDS.h" #include "../GPU.h" @@ -1504,6 +1505,11 @@ void OnOpenAudioSettings(uiMenuItem* item, uiWindow* window, void* blarg) DlgAudioSettings::Open(); } +void OnOpenWifiSettings(uiMenuItem* item, uiWindow* window, void* blarg) +{ + DlgWifiSettings::Open(); +} + void OnSetSavestateSRAMReloc(uiMenuItem* item, uiWindow* window, void* param) { @@ -1848,6 +1854,8 @@ int main(int argc, char** argv) uiMenuItemOnClicked(menuitem, OnOpenHotkeyConfig, NULL); menuitem = uiMenuAppendItem(menu, "Audio settings"); uiMenuItemOnClicked(menuitem, OnOpenAudioSettings, NULL); + menuitem = uiMenuAppendItem(menu, "Wifi settings"); + uiMenuItemOnClicked(menuitem, OnOpenWifiSettings, NULL); } uiMenuAppendSeparator(menu); {