void output_init(running_machine &machine) { /* add pause callback */ machine.add_notifier(MACHINE_NOTIFY_PAUSE, machine_notify_delegate(FUNC(output_pause), &machine)); machine.add_notifier(MACHINE_NOTIFY_RESUME, machine_notify_delegate(FUNC(output_resume), &machine)); /* get a callback when done */ machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(output_exit), &machine)); /* reset the lists */ memset(itemtable, 0, sizeof(itemtable)); global_notifylist.reset(); }
static void output_exit(running_machine &machine) { output_item *item; int hash; /* remove all items */ for (hash = 0; hash < HASH_SIZE; hash++) for (item = itemtable[hash]; item != nullptr; ) { output_item *next = item->next; /* free the name and the item */ global_free(item); item = next; } /* remove all global notifiers */ global_notifylist.reset(); }