diff options
Diffstat (limited to 'src/osd/modules/lib/osdobj_common.cpp')
-rw-r--r-- | src/osd/modules/lib/osdobj_common.cpp | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp index a8856e4ca76..016ca3a7800 100644 --- a/src/osd/modules/lib/osdobj_common.cpp +++ b/src/osd/modules/lib/osdobj_common.cpp @@ -25,6 +25,9 @@ const options_entry osd_options::s_option_entries[] = { nullptr, nullptr, OPTION_HEADER, "OSD FONT OPTIONS" }, { OSD_FONT_PROVIDER, OSDOPTVAL_AUTO, OPTION_STRING, "provider for ui font: " }, + { nullptr, nullptr, OPTION_HEADER, "OSD OUTPUT OPTIONS" }, + { OSD_OUTPUT_PROVIDER, OSDOPTVAL_AUTO, OPTION_STRING, "provider for output: " }, + { nullptr, nullptr, OPTION_HEADER, "OSD INPUT OPTIONS" }, { OSD_KEYBOARDINPUT_PROVIDER, OSDOPTVAL_AUTO, OPTION_STRING, "provider for keyboard input: " }, { OSD_MOUSEINPUT_PROVIDER, OSDOPTVAL_AUTO, OPTION_STRING, "provider for mouse input: " }, @@ -171,7 +174,8 @@ osd_common_t::osd_common_t(osd_options &options) m_keyboard_input(nullptr), m_mouse_input(nullptr), m_lightgun_input(nullptr), - m_joystick_input(nullptr) + m_joystick_input(nullptr), + m_output(nullptr) { osd_output::push(this); } @@ -245,6 +249,10 @@ void osd_common_t::register_options() REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_DINPUT); REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_XINPUT); REGISTER_MODULE(m_mod_man, JOYSTICK_NONE); + + REGISTER_MODULE(m_mod_man, OUTPUT_NONE); + REGISTER_MODULE(m_mod_man, OUTPUT_CONSOLE); + // after initialization we know which modules are supported @@ -302,6 +310,12 @@ void osd_common_t::register_options() dnames.push_back(names[i]); update_option(OSD_DEBUG_PROVIDER, dnames); + m_mod_man.get_module_names(OSD_OUTPUT_PROVIDER, 20, &num, names); + dnames.clear(); + for (int i = 0; i < num; i++) + dnames.push_back(names[i]); + update_option(OSD_OUTPUT_PROVIDER, dnames); + // Register video options and update options video_options_add("none", nullptr); #if USE_OPENGL @@ -565,6 +579,12 @@ bool osd_common_t::execute_command(const char *command) } +static void output_notifier_callback(const char *outname, INT32 value, void *param) +{ + osd_common_t *osd = (osd_common_t*)param; + osd->notify(outname, value); +} + void osd_common_t::init_subsystems() { if (!video_init()) @@ -576,8 +596,6 @@ void osd_common_t::init_subsystems() exit(-1); } - output_init(); - m_keyboard_input = select_module_options<input_module *>(options(), OSD_KEYBOARDINPUT_PROVIDER); m_mouse_input = select_module_options<input_module *>(options(), OSD_MOUSEINPUT_PROVIDER); m_lightgun_input = select_module_options<input_module *>(options(), OSD_LIGHTGUNINPUT_PROVIDER); @@ -593,6 +611,9 @@ void osd_common_t::init_subsystems() select_module_options<netdev_module *>(options(), OSD_NETDEV_PROVIDER); m_midi = select_module_options<midi_module *>(options(), OSD_MIDI_PROVIDER); + + m_output = select_module_options<output_module *>(options(), OSD_OUTPUT_PROVIDER); + machine().output().set_notifier(NULL, output_notifier_callback, this); m_mod_man.init(options()); @@ -646,16 +667,10 @@ void osd_common_t::input_resume() m_joystick_input->resume(); } -bool osd_common_t::output_init() -{ - return true; -} - void osd_common_t::exit_subsystems() { video_exit(); input_exit(); - output_exit(); } void osd_common_t::video_exit() @@ -674,10 +689,6 @@ void osd_common_t::input_exit() m_joystick_input->exit(); } -void osd_common_t::output_exit() -{ -} - void osd_common_t::osd_exit() { m_mod_man.exit(); |