summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/lib/osdobj_common.cpp
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-04-09 12:07:59 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2016-04-09 15:19:43 +0200
commit2f974586d644d6e8b9469ed4c2bf6fa432924f22 (patch)
tree60b26800e73d99b09a38ada8b93bb22d2c9a5b5c /src/osd/modules/lib/osdobj_common.cpp
parent39c9c8c5dc0941d0ff5732b6a8c55448ded71cf6 (diff)
Added none and console output providers (nw)
Diffstat (limited to 'src/osd/modules/lib/osdobj_common.cpp')
-rw-r--r--src/osd/modules/lib/osdobj_common.cpp37
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();