diff options
Diffstat (limited to 'src/emu/uiswlist.c')
-rw-r--r-- | src/emu/uiswlist.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/emu/uiswlist.c b/src/emu/uiswlist.c index 136e142eab4..44fcb9efd4d 100644 --- a/src/emu/uiswlist.c +++ b/src/emu/uiswlist.c @@ -157,7 +157,7 @@ ui_menu_software_list::entry_info *ui_menu_software_list::append_software_entry( return entry; } -ui_menu_software_list::ui_menu_software_list(running_machine &machine, render_container *container, const software_list_config *_swlist, const char *_interface, astring &_result) : ui_menu(machine, container), result(_result) +ui_menu_software_list::ui_menu_software_list(running_machine &machine, render_container *container, const software_list_device *_swlist, const char *_interface, astring &_result) : ui_menu(machine, container), result(_result) { swlist = _swlist; interface = _interface; @@ -171,7 +171,7 @@ ui_menu_software_list::~ui_menu_software_list() void ui_menu_software_list::populate() { - const software_list *list = software_list_open(machine().options(), swlist->list_name, false, NULL); + const software_list *list = software_list_open(machine().options(), swlist->list_name(), false, NULL); // build up the list of entries for the menu if (list) @@ -313,7 +313,7 @@ void ui_menu_software_list::handle() } /* list of available software lists - i.e. cartridges, floppies */ -ui_menu_software::ui_menu_software(running_machine &machine, render_container *container, const char *_interface, const software_list_config **_result) : ui_menu(machine, container) +ui_menu_software::ui_menu_software(running_machine &machine, render_container *container, const char *_interface, const software_list_device **_result) : ui_menu(machine, container) { interface = _interface; result = _result; @@ -324,13 +324,12 @@ void ui_menu_software::populate() bool haveCompatible = false; // Add original software lists for this system - for (const device_t *dev = machine().config().devicelist().first(SOFTWARE_LIST); dev != NULL; dev = dev->typenext()) + software_list_device_iterator iter(machine().config().root_device()); + for (const software_list_device *swlist = iter.first(); swlist != NULL; swlist = iter.next()) { - const software_list_config *swlist = (const software_list_config *)downcast<const legacy_device_base *>(dev)->inline_config(); - - if (swlist->list_type == SOFTWARE_LIST_ORIGINAL_SYSTEM) + if (swlist->list_type() == SOFTWARE_LIST_ORIGINAL_SYSTEM) { - const software_list *list = software_list_open(machine().options(), swlist->list_name, false, NULL); + const software_list *list = software_list_open(machine().options(), swlist->list_name(), false, NULL); if (list) { @@ -352,13 +351,11 @@ void ui_menu_software::populate() } // Add compatible software lists for this system - for (const device_t *dev = machine().config().devicelist().first(SOFTWARE_LIST); dev != NULL; dev = dev->typenext()) + for (const software_list_device *swlist = iter.first(); swlist != NULL; swlist = iter.next()) { - const software_list_config *swlist = (const software_list_config *)downcast<const legacy_device_base *>(dev)->inline_config(); - - if (swlist->list_type == SOFTWARE_LIST_COMPATIBLE_SYSTEM) + if (swlist->list_type() == SOFTWARE_LIST_COMPATIBLE_SYSTEM) { - const software_list *list = software_list_open(machine().options(), swlist->list_name, false, NULL); + const software_list *list = software_list_open(machine().options(), swlist->list_name(), false, NULL); if (list) { @@ -396,7 +393,7 @@ void ui_menu_software::handle() if (event != NULL && event->iptkey == IPT_UI_SELECT) { // ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_software_list(machine(), container, (software_list_config *)event->itemref, image))); - *result = (software_list_config *)event->itemref; + *result = (software_list_device *)event->itemref; ui_menu::stack_pop(machine()); } } |