mirror of https://github.com/stella-emu/stella.git
Added autodetection for AVox-USB adaptor to UI (fixes #688).
This commit is contained in:
parent
c4dffc1210
commit
fcce8d3cbb
|
@ -37,6 +37,8 @@
|
||||||
are no longer corrupted/cut off. This includes properly supporting the
|
are no longer corrupted/cut off. This includes properly supporting the
|
||||||
2600-daptor II, which is flashable to an AVox-USB converter.
|
2600-daptor II, which is flashable to an AVox-USB converter.
|
||||||
|
|
||||||
|
* The serial port to use for an AtariVox-USB adaptor is now autodetected.
|
||||||
|
|
||||||
* Added QuadTari controller support.
|
* Added QuadTari controller support.
|
||||||
|
|
||||||
* Added option to select the audio device.
|
* Added option to select the audio device.
|
||||||
|
|
|
@ -93,6 +93,14 @@ constexpr size_t operator "" _KB(unsigned long long size)
|
||||||
return static_cast<size_t>(size * 1024);
|
return static_cast<size_t>(size * 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Output contents of a vector
|
||||||
|
template<typename T>
|
||||||
|
std::ostream& operator<< (std::ostream& out, const std::vector<T>& v) {
|
||||||
|
for(const auto& elem: v)
|
||||||
|
out << elem << " ";
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
static const string EmptyString("");
|
static const string EmptyString("");
|
||||||
|
|
||||||
// This is defined by some systems, but Stella has other uses for it
|
// This is defined by some systems, but Stella has other uses for it
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include "Widget.hxx"
|
#include "Widget.hxx"
|
||||||
#include "Font.hxx"
|
#include "Font.hxx"
|
||||||
#include "MessageBox.hxx"
|
#include "MessageBox.hxx"
|
||||||
|
#include "MediaFactory.hxx"
|
||||||
#include "InputDialog.hxx"
|
#include "InputDialog.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -222,10 +223,11 @@ void InputDialog::addDevicePortTab()
|
||||||
// Add AtariVox serial port
|
// Add AtariVox serial port
|
||||||
ypos += lineHeight + VGAP * 3;
|
ypos += lineHeight + VGAP * 3;
|
||||||
lwidth = _font.getStringWidth("AtariVox serial port ");
|
lwidth = _font.getStringWidth("AtariVox serial port ");
|
||||||
fwidth = _w - HBORDER * 2 - 2 - lwidth;
|
fwidth = _w - HBORDER * 2 - 2 - lwidth - 20;
|
||||||
new StaticTextWidget(myTab, _font, HBORDER, ypos + 2, "AtariVox serial port ");
|
VariantList items;
|
||||||
myAVoxPort = new EditTextWidget(myTab, _font, HBORDER + lwidth, ypos,
|
VarList::push_back(items, "None detected", "");
|
||||||
fwidth, fontHeight);
|
myAVoxPort = new PopUpWidget(myTab, _font, HBORDER, ypos, fwidth, lineHeight, items,
|
||||||
|
"AtariVox serial port ", lwidth, kCursorStateChanged);
|
||||||
wid.push_back(myAVoxPort);
|
wid.push_back(myAVoxPort);
|
||||||
|
|
||||||
// Add items for virtual device ports
|
// Add items for virtual device ports
|
||||||
|
@ -359,7 +361,16 @@ void InputDialog::loadConfig()
|
||||||
myAutoFireRate->setValue(settings.getInt("autofirerate"));
|
myAutoFireRate->setValue(settings.getInt("autofirerate"));
|
||||||
|
|
||||||
// AtariVox serial port
|
// AtariVox serial port
|
||||||
myAVoxPort->setText(settings.getString("avoxport"));
|
const string& avoxport = settings.getString("avoxport");
|
||||||
|
StringList ports = MediaFactory::createSerialPort()->portNames();
|
||||||
|
if(avoxport != EmptyString && !BSPF::contains(ports, avoxport))
|
||||||
|
ports.push_back(avoxport);
|
||||||
|
VariantList items;
|
||||||
|
VarList::push_back(items, "None detected", "");
|
||||||
|
for(const auto& port: ports)
|
||||||
|
VarList::push_back(items, port, port);
|
||||||
|
myAVoxPort->addItems(items);
|
||||||
|
myAVoxPort->setSelected(avoxport);
|
||||||
|
|
||||||
// EEPROM erase (only enable in emulation mode and for valid controllers)
|
// EEPROM erase (only enable in emulation mode and for valid controllers)
|
||||||
if(instance().hasConsole())
|
if(instance().hasConsole())
|
||||||
|
@ -440,7 +451,7 @@ void InputDialog::saveConfig()
|
||||||
Controller::setAutoFireRate(rate);
|
Controller::setAutoFireRate(rate);
|
||||||
|
|
||||||
// AtariVox serial port
|
// AtariVox serial port
|
||||||
settings.setValue("avoxport", myAVoxPort->getText());
|
settings.setValue("avoxport", myAVoxPort->getSelectedTag().toString());
|
||||||
|
|
||||||
// Allow all 4 joystick directions
|
// Allow all 4 joystick directions
|
||||||
bool allowall4 = myAllowAll4->getState();
|
bool allowall4 = myAllowAll4->getState();
|
||||||
|
@ -500,7 +511,7 @@ void InputDialog::setDefaults()
|
||||||
// Autofire rate
|
// Autofire rate
|
||||||
myAutoFireRate->setValue(0);
|
myAutoFireRate->setValue(0);
|
||||||
// AtariVox serial port
|
// AtariVox serial port
|
||||||
myAVoxPort->setText("");
|
myAVoxPort->setSelectedMax();
|
||||||
|
|
||||||
// Allow all 4 joystick directions
|
// Allow all 4 joystick directions
|
||||||
myAllowAll4->setState(false);
|
myAllowAll4->setState(false);
|
||||||
|
|
|
@ -94,7 +94,7 @@ class InputDialog : public Dialog
|
||||||
|
|
||||||
CheckboxWidget* mySAPort{nullptr};
|
CheckboxWidget* mySAPort{nullptr};
|
||||||
|
|
||||||
EditTextWidget* myAVoxPort{nullptr};
|
PopUpWidget* myAVoxPort{nullptr};
|
||||||
|
|
||||||
SliderWidget* myDeadzone{nullptr};
|
SliderWidget* myDeadzone{nullptr};
|
||||||
SliderWidget* myPaddleSpeed{nullptr};
|
SliderWidget* myPaddleSpeed{nullptr};
|
||||||
|
|
Loading…
Reference in New Issue