summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/lib/osdobj_common.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/lib/osdobj_common.cpp')
-rw-r--r--src/osd/modules/lib/osdobj_common.cpp45
1 files changed, 29 insertions, 16 deletions
diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp
index b4c0d68915e..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,6 +311,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
@@ -521,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;
}
//-------------------------------------------------
@@ -564,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())
@@ -575,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);
@@ -593,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();
@@ -645,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()
@@ -673,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();