- fixes related to the wx 2nd run support (not yet complete)
- siminterface: don't create plugin parameter if it already exists - wx: make sure all plugins are loaded when creating plugin control dialog - USB HC's: fixed removal of parameters when unloading plugin
This commit is contained in:
parent
86c7033a63
commit
1425e2370c
@ -1383,7 +1383,9 @@ bx_bool bx_real_sim_c::opt_plugin_ctrl(const char *plugname, bx_bool load)
|
|||||||
if (load != PLUG_device_present(plugname)) {
|
if (load != PLUG_device_present(plugname)) {
|
||||||
if (load) {
|
if (load) {
|
||||||
if (PLUG_load_opt_plugin(plugname)) {
|
if (PLUG_load_opt_plugin(plugname)) {
|
||||||
new bx_param_bool_c(base, plugname, "", "", 1);
|
if (base->get_by_name(plugname) == NULL) {
|
||||||
|
new bx_param_bool_c(base, plugname, "", "", 1);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
BX_PANIC(("optional plugin '%s' not found", plugname));
|
BX_PANIC(("optional plugin '%s' not found", plugname));
|
||||||
|
@ -593,11 +593,13 @@ PluginControlDialog::PluginControlDialog(
|
|||||||
buttonSizer->Add(btn, 0, wxALL, 5);
|
buttonSizer->Add(btn, 0, wxALL, 5);
|
||||||
btn = new wxButton(this, wxID_OK, BTNLABEL_OK);
|
btn = new wxButton(this, wxID_OK, BTNLABEL_OK);
|
||||||
buttonSizer->Add(btn, 0, wxALL, 5);
|
buttonSizer->Add(btn, 0, wxALL, 5);
|
||||||
// add loaded plugins to the listbox
|
// make sure all plugins are loaded and add them to the listbox
|
||||||
bx_list_c *plugin_ctrl = (bx_list_c*) SIM->get_param(BXPN_PLUGIN_CTRL);
|
bx_list_c *plugin_ctrl = (bx_list_c*) SIM->get_param(BXPN_PLUGIN_CTRL);
|
||||||
unsigned count = plugin_ctrl->get_size();
|
unsigned count = plugin_ctrl->get_size();
|
||||||
for (unsigned i = 0; i < count; i++) {
|
for (unsigned i = 0; i < count; i++) {
|
||||||
pluglist->Insert(wxString(plugin_ctrl->get(i)->get_name(), wxConvUTF8), i);
|
bx_param_bool_c *plugin = (bx_param_bool_c*)plugin_ctrl->get(i);
|
||||||
|
SIM->opt_plugin_ctrl(plugin->get_name(), 1);
|
||||||
|
pluglist->Insert(wxString(plugin->get_name(), wxConvUTF8), i);
|
||||||
}
|
}
|
||||||
btn_load->Enable(0);
|
btn_load->Enable(0);
|
||||||
btn_unload->Enable(0);
|
btn_unload->Enable(0);
|
||||||
@ -636,7 +638,7 @@ void PluginControlDialog::OnEvent(wxCommandEvent& event)
|
|||||||
if (SIM->opt_plugin_ctrl(buf, 1)) {
|
if (SIM->opt_plugin_ctrl(buf, 1)) {
|
||||||
tmpname.Printf(wxT("Plugin '%s' loaded"), buf);
|
tmpname.Printf(wxT("Plugin '%s' loaded"), buf);
|
||||||
wxMessageBox(tmpname, wxT("Plugin Control"), wxOK | wxICON_INFORMATION, this);
|
wxMessageBox(tmpname, wxT("Plugin Control"), wxOK | wxICON_INFORMATION, this);
|
||||||
pluglist->Insert(tmpname, pluglist->GetCount());
|
pluglist->Insert(wxString(buf, wxConvUTF8), pluglist->GetCount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -122,8 +122,8 @@ void libusb_ohci_LTX_plugin_fini(void)
|
|||||||
{
|
{
|
||||||
SIM->unregister_addon_option("usb_ohci");
|
SIM->unregister_addon_option("usb_ohci");
|
||||||
bx_list_c *menu = (bx_list_c*)SIM->get_param("ports.usb");
|
bx_list_c *menu = (bx_list_c*)SIM->get_param("ports.usb");
|
||||||
menu->remove("usb_ohci");
|
|
||||||
delete theUSB_OHCI;
|
delete theUSB_OHCI;
|
||||||
|
menu->remove("ohci");
|
||||||
}
|
}
|
||||||
|
|
||||||
// the device object
|
// the device object
|
||||||
|
@ -95,8 +95,8 @@ void libusb_uhci_LTX_plugin_fini(void)
|
|||||||
{
|
{
|
||||||
SIM->unregister_addon_option("usb_uhci");
|
SIM->unregister_addon_option("usb_uhci");
|
||||||
bx_list_c *menu = (bx_list_c*)SIM->get_param("ports.usb");
|
bx_list_c *menu = (bx_list_c*)SIM->get_param("ports.usb");
|
||||||
menu->remove("usb_uhci");
|
|
||||||
delete theUSB_UHCI;
|
delete theUSB_UHCI;
|
||||||
|
menu->remove("uhci");
|
||||||
}
|
}
|
||||||
|
|
||||||
// the device object
|
// the device object
|
||||||
|
@ -119,8 +119,8 @@ void libusb_xhci_LTX_plugin_fini(void)
|
|||||||
{
|
{
|
||||||
SIM->unregister_addon_option("usb_xhci");
|
SIM->unregister_addon_option("usb_xhci");
|
||||||
bx_list_c *menu = (bx_list_c*)SIM->get_param("ports.usb");
|
bx_list_c *menu = (bx_list_c*)SIM->get_param("ports.usb");
|
||||||
menu->remove("usb_xhci");
|
|
||||||
delete theUSB_XHCI;
|
delete theUSB_XHCI;
|
||||||
|
menu->remove("xhci");
|
||||||
}
|
}
|
||||||
|
|
||||||
// the device object
|
// the device object
|
||||||
|
Loading…
Reference in New Issue
Block a user