Notable differences from upstream:
* Did not use the same #include setup for the new byuu apu and instead chose to do things more traditionally, as the latter is also much easier to deal with in Visual Studio than just including .cpp files into other .cpp files...
* MSU1 support not included (I see no need for this in a plugin meant to be used for original SNES music).
* The dynamic rate control on the APU not included (I also see no need for it in this plugin).
* The extra resamplers I added in were removed as the original hermite resampler was folded into a single non-inhertiable resampler.
* Bits of cleanup.
| ... | ... |
@@ -31,19 +31,19 @@ |
| 31 | 31 |
|
| 32 | 32 |
XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &newConfig, wxWindow *parent, const wxString &title) : XSFConfigDialog(newConfig, parent, title) |
| 33 | 33 |
{
|
| 34 |
- auto reverseStereoCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Reverse Stereo", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->reverseStereo });
|
|
| 35 |
- this->outputSizer->Add(reverseStereoCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
|
|
| 34 |
+ auto separateEchoBufferCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Separate Echo Buffer", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->separateEchoBuffer });
|
|
| 35 |
+ this->outputSizer->Add(separateEchoBufferCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
|
|
| 36 | 36 |
|
| 37 |
- auto resamplerLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Resampler"); |
|
| 38 |
- this->outputSizer->Add(resamplerLabel, { 5, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
|
|
| 39 |
- wxArrayString resamplerChoices; |
|
| 40 |
- resamplerChoices.Add("Linear Resampler");
|
|
| 41 |
- resamplerChoices.Add("Hermite Resampler");
|
|
| 42 |
- resamplerChoices.Add("Bspline Resampler");
|
|
| 43 |
- resamplerChoices.Add("Osculating Resampler");
|
|
| 44 |
- resamplerChoices.Add("Sinc Resampler");
|
|
| 45 |
- auto resamplerChoice = new wxChoice(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, resamplerChoices, 0, wxGenericValidator{ &this->resampler });
|
|
| 46 |
- this->outputSizer->Add(resamplerChoice, { 5, 1 }, { 1, 1 }, wxALL, 5);
|
|
| 37 |
+ auto interpolationLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Interpolation"); |
|
| 38 |
+ this->outputSizer->Add(interpolationLabel, { 5, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
|
|
| 39 |
+ wxArrayString interpolationChoices; |
|
| 40 |
+ interpolationChoices.Add("None");
|
|
| 41 |
+ interpolationChoices.Add("Linear");
|
|
| 42 |
+ interpolationChoices.Add("Guassian");
|
|
| 43 |
+ interpolationChoices.Add("Cubic");
|
|
| 44 |
+ interpolationChoices.Add("Sinc");
|
|
| 45 |
+ auto interpolationChoice = new wxChoice(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, interpolationChoices, 0, wxGenericValidator{ &this->interpolation });
|
|
| 46 |
+ this->outputSizer->Add(interpolationChoice, { 5, 1 }, { 1, 1 }, wxALL, 5);
|
|
| 47 | 47 |
|
| 48 | 48 |
auto muteLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Mute"); |
| 49 | 49 |
this->outputSizer->Add(muteLabel, { 6, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
|
* These were mostly copied from the old Makefile.
* The files including wxWidgets need -Wno-old-style-cast done in the code via pragmas because I do not want to disable that warning for the rest of the files. (It might've been overkill for some places where wxWidgets was included, but whatever.)
| ... | ... |
@@ -6,6 +6,13 @@ |
| 6 | 6 |
*/ |
| 7 | 7 |
|
| 8 | 8 |
#include <string> |
| 9 |
+#ifdef __GNUC__ |
|
| 10 |
+# pragma GCC diagnostic push |
|
| 11 |
+# pragma GCC diagnostic ignored "-Wold-style-cast" |
|
| 12 |
+#elif defined(__clang__) |
|
| 13 |
+# pragma clang diagnostic push |
|
| 14 |
+# pragma clang diagnostic ignored "-Wold-style-cast" |
|
| 15 |
+#endif |
|
| 9 | 16 |
#include <wx/arrstr.h> |
| 10 | 17 |
#include <wx/checkbox.h> |
| 11 | 18 |
#include <wx/choice.h> |
| ... | ... |
@@ -13,11 +20,16 @@ |
| 13 | 20 |
#include <wx/listbox.h> |
| 14 | 21 |
#include <wx/stattext.h> |
| 15 | 22 |
#include <wx/valgen.h> |
| 23 |
+#ifdef __GNUC__ |
|
| 24 |
+# pragma GCC diagnostic pop |
|
| 25 |
+#elif defined(__clang__) |
|
| 26 |
+# pragma clang diagnostic pop |
|
| 27 |
+#endif |
|
| 16 | 28 |
#include "XSFConfig.h" |
| 17 | 29 |
#include "XSFConfigDialog.h" |
| 18 | 30 |
#include "XSFConfigDialog_SNSF.h" |
| 19 | 31 |
|
| 20 |
-XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &config, wxWindow *parent, const wxString &title) : XSFConfigDialog(config, parent, title) |
|
| 32 |
+XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &newConfig, wxWindow *parent, const wxString &title) : XSFConfigDialog(newConfig, parent, title) |
|
| 21 | 33 |
{
|
| 22 | 34 |
auto reverseStereoCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Reverse Stereo", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->reverseStereo });
|
| 23 | 35 |
this->outputSizer->Add(reverseStereoCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
|
* Removes the configuration dialog boxes that used my DialogBuilder.
* Move default configuration values to be inlined within the headers.
* Moved 2SF's and GSF's XSFConfig classes to their own headers to accommodate the new wxWidgets dialog boxes.
* Make it so NCSF's SoundView dialog can be toggled on or off from the configuration dialog box.
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,43 @@ |
| 1 |
+/* |
|
| 2 |
+ * xSF - SNSF configuration dialog |
|
| 3 |
+ * By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com] |
|
| 4 |
+ * |
|
| 5 |
+ * Partially based on the vio*sf framework |
|
| 6 |
+ */ |
|
| 7 |
+ |
|
| 8 |
+#include <string> |
|
| 9 |
+#include <wx/arrstr.h> |
|
| 10 |
+#include <wx/checkbox.h> |
|
| 11 |
+#include <wx/choice.h> |
|
| 12 |
+#include <wx/gbsizer.h> |
|
| 13 |
+#include <wx/listbox.h> |
|
| 14 |
+#include <wx/stattext.h> |
|
| 15 |
+#include <wx/valgen.h> |
|
| 16 |
+#include "XSFConfig.h" |
|
| 17 |
+#include "XSFConfigDialog.h" |
|
| 18 |
+#include "XSFConfigDialog_SNSF.h" |
|
| 19 |
+ |
|
| 20 |
+XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &config, wxWindow *parent, const wxString &title) : XSFConfigDialog(config, parent, title) |
|
| 21 |
+{
|
|
| 22 |
+ auto reverseStereoCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Reverse Stereo", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->reverseStereo });
|
|
| 23 |
+ this->outputSizer->Add(reverseStereoCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
|
|
| 24 |
+ |
|
| 25 |
+ auto resamplerLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Resampler"); |
|
| 26 |
+ this->outputSizer->Add(resamplerLabel, { 5, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
|
|
| 27 |
+ wxArrayString resamplerChoices; |
|
| 28 |
+ resamplerChoices.Add("Linear Resampler");
|
|
| 29 |
+ resamplerChoices.Add("Hermite Resampler");
|
|
| 30 |
+ resamplerChoices.Add("Bspline Resampler");
|
|
| 31 |
+ resamplerChoices.Add("Osculating Resampler");
|
|
| 32 |
+ resamplerChoices.Add("Sinc Resampler");
|
|
| 33 |
+ auto resamplerChoice = new wxChoice(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, resamplerChoices, 0, wxGenericValidator{ &this->resampler });
|
|
| 34 |
+ this->outputSizer->Add(resamplerChoice, { 5, 1 }, { 1, 1 }, wxALL, 5);
|
|
| 35 |
+ |
|
| 36 |
+ auto muteLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Mute"); |
|
| 37 |
+ this->outputSizer->Add(muteLabel, { 6, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
|
|
| 38 |
+ wxArrayString muteChoices; |
|
| 39 |
+ for (int i = 0; i < 16; ++i) |
|
| 40 |
+ muteChoices.Add("BRRPCM " + std::to_string(i + 1));
|
|
| 41 |
+ auto muteListBox = new wxListBox(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, muteChoices, wxLB_MULTIPLE, wxGenericValidator{ &this->mute });
|
|
| 42 |
+ this->outputSizer->Add(muteListBox, { 6, 1 }, { 1, 1 }, wxALL, 5);
|
|
| 43 |
+} |