diff options
Diffstat (limited to 'src/osd/modules/lib/osdobj_common.cpp')
-rw-r--r-- | src/osd/modules/lib/osdobj_common.cpp | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp index a1ab9ab7677..32f1a6047ac 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); } @@ -198,11 +202,11 @@ void osd_common_t::register_options() REGISTER_MODULE(m_mod_man, FONT_SDL); REGISTER_MODULE(m_mod_man, FONT_NONE); + REGISTER_MODULE(m_mod_man, SOUND_XAUDIO2); REGISTER_MODULE(m_mod_man, SOUND_DSOUND); REGISTER_MODULE(m_mod_man, SOUND_COREAUDIO); REGISTER_MODULE(m_mod_man, SOUND_JS); REGISTER_MODULE(m_mod_man, SOUND_SDL); - REGISTER_MODULE(m_mod_man, SOUND_XAUDIO2); REGISTER_MODULE(m_mod_man, SOUND_NONE); #ifdef SDLMAME_MACOSX @@ -241,10 +245,16 @@ void osd_common_t::register_options() REGISTER_MODULE(m_mod_man, LIGHTGUN_NONE); REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_SDL); + REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_WINHYBRID); 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); + REGISTER_MODULE(m_mod_man, OUTPUT_NETWORK); + + // after initialization we know which modules are supported const char *names[20]; @@ -301,8 +311,17 @@ 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 + video_options_add("opengl", nullptr); +#endif video_register(); update_option(OSDOPTION_VIDEO, m_video_names); } @@ -518,9 +537,9 @@ void osd_common_t::customize_input_type_list(simple_list<input_type_entry> &type // list of OS-dependent slider values. //------------------------------------------------- -slider_state* osd_common_t::get_slider_list() +std::vector<ui_menu_item> osd_common_t::get_slider_list() { - return nullptr; + return m_sliders; } //------------------------------------------------- @@ -561,6 +580,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()) @@ -572,8 +597,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); @@ -590,6 +613,9 @@ void osd_common_t::init_subsystems() 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()); input_init(); @@ -642,16 +668,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() @@ -670,10 +690,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(); |