summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/monitor
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/monitor')
-rw-r--r--src/osd/modules/monitor/monitor_common.cpp11
-rw-r--r--src/osd/modules/monitor/monitor_common.h36
-rw-r--r--src/osd/modules/monitor/monitor_dxgi.cpp24
-rw-r--r--src/osd/modules/monitor/monitor_mac.cpp4
-rw-r--r--src/osd/modules/monitor/monitor_module.h3
-rw-r--r--src/osd/modules/monitor/monitor_sdl.cpp18
-rw-r--r--src/osd/modules/monitor/monitor_win32.cpp8
7 files changed, 51 insertions, 53 deletions
diff --git a/src/osd/modules/monitor/monitor_common.cpp b/src/osd/modules/monitor/monitor_common.cpp
index 8f935db7da2..f6a338d327c 100644
--- a/src/osd/modules/monitor/monitor_common.cpp
+++ b/src/osd/modules/monitor/monitor_common.cpp
@@ -5,12 +5,15 @@
*
*/
-#include "emu.h"
-#include <algorithm>
-
#include "monitor_common.h"
+
+#include "modules/lib/osdobj_common.h"
#include "modules/osdwindow.h"
+#include "osdcore.h"
+
+#include <algorithm>
+
std::shared_ptr<osd_monitor_info> monitor_module_base::pick_monitor(osd_options& options, int index)
{
// get the aspect ratio
@@ -93,7 +96,7 @@ float monitor_module_base::get_aspect(const char* defdata, const char* data, int
return float(num) / float(den);
}
-int monitor_module_base::init(const osd_options& options)
+int monitor_module_base::init(osd_interface &osd, const osd_options &options)
{
if (!m_initialized)
{
diff --git a/src/osd/modules/monitor/monitor_common.h b/src/osd/modules/monitor/monitor_common.h
index 4316722c9bb..4b1d17d2f1f 100644
--- a/src/osd/modules/monitor/monitor_common.h
+++ b/src/osd/modules/monitor/monitor_common.h
@@ -4,11 +4,17 @@
* monitor_common.h
*
*/
-#ifndef __MONITOR_COMMON_H__
-#define __MONITOR_COMMON_H__
+#ifndef MAME_OSD_MONITOR_MONITOR_COMMON_H
+#define MAME_OSD_MONITOR_MONITOR_COMMON_H
-#include "modules/lib/osdobj_common.h"
+#pragma once
+
+#include "monitor_module.h"
+
+#include <cstdint>
#include <map>
+#include <memory>
+
//============================================================
// monitor_module_base
@@ -16,32 +22,30 @@
class monitor_module_base : public monitor_module
{
-private:
- std::map<std::uint64_t, std::shared_ptr<osd_monitor_info>> m_monitor_index;
-
-protected:
- bool m_initialized;
-
public:
- monitor_module_base(const char* type, const char* name)
- : monitor_module(type, name),
- m_initialized(false)
+ monitor_module_base(const char* type, const char* name) :
+ monitor_module(type, name),
+ m_initialized(false)
{
}
std::shared_ptr<osd_monitor_info> pick_monitor(osd_options& options, int index) override;
std::shared_ptr<osd_monitor_info> monitor_from_handle(std::uint64_t handle) override;
- int init(const osd_options& options) override;
+ int init(osd_interface &osd, const osd_options& options) override;
void exit() override;
protected:
- virtual int init_internal(const osd_options& options) = 0;
+ virtual int init_internal(const osd_options &options) = 0;
void add_monitor(std::shared_ptr<osd_monitor_info> monitor);
+ bool m_initialized;
+
private:
- std::shared_ptr<osd_monitor_info> pick_monitor_internal(osd_options& options, int index);
static float get_aspect(const char *defdata, const char *data, int report_error);
+
+ std::map<std::uint64_t, std::shared_ptr<osd_monitor_info> > m_monitor_index;
+ std::shared_ptr<osd_monitor_info> pick_monitor_internal(osd_options& options, int index);
};
-#endif
+#endif // MAME_OSD_MONITOR_MONITOR_COMMON_H
diff --git a/src/osd/modules/monitor/monitor_dxgi.cpp b/src/osd/modules/monitor/monitor_dxgi.cpp
index 3eadadced24..d4ab80d2f33 100644
--- a/src/osd/modules/monitor/monitor_dxgi.cpp
+++ b/src/osd/modules/monitor/monitor_dxgi.cpp
@@ -5,11 +5,10 @@
*
*/
-#include "emu.h"
#include "modules/osdmodule.h"
#include "monitor_module.h"
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
// standard windows headers
#include <windows.h>
@@ -20,6 +19,7 @@
#include "strconv.h"
#include "modules/lib/osdlib.h"
#include "monitor_common.h"
+#include "osdcore.h"
#include "window.h"
#include "windows/video.h"
@@ -79,7 +79,6 @@ public:
if (!m_initialized)
return nullptr;
-#if defined(OSD_WINDOWS)
RECT p;
p.top = rect.top();
p.left = rect.left();
@@ -89,13 +88,6 @@ public:
auto nearest = monitor_from_handle(reinterpret_cast<std::uintptr_t>(MonitorFromRect(&p, MONITOR_DEFAULTTONEAREST)));
assert(nearest != nullptr);
return nearest;
-#elif defined(OSD_UWP)
- if (list().size() == 0)
- return nullptr;
-
- // For now just return first monitor
- return list()[0];
-#endif
}
// Currently this method implementation is duplicated from the win32 module
@@ -105,17 +97,9 @@ public:
if (!m_initialized)
return nullptr;
-#if defined(OSD_WINDOWS)
auto nearest = monitor_from_handle(reinterpret_cast<std::uintptr_t>(MonitorFromWindow(static_cast<const win_window_info &>(window).platform_window(), MONITOR_DEFAULTTONEAREST)));
assert(nearest != nullptr);
return nearest;
-#elif defined(OSD_UWP)
- if (list().size() == 0)
- return nullptr;
-
- // For now just return first monitor
- return list()[0];
-#endif
}
protected:
@@ -164,9 +148,9 @@ protected:
// if we're verbose, print the list of monitors
{
- for (auto monitor : list())
+ for (const auto &monitor : list())
{
- osd_printf_verbose("Video: Monitor %I64u = \"%s\" %s\n", monitor->oshandle(), monitor->devicename().c_str(), monitor->is_primary() ? "(primary)" : "");
+ osd_printf_verbose("Video: Monitor %u = \"%s\" %s\n", monitor->oshandle(), monitor->devicename(), monitor->is_primary() ? "(primary)" : "");
}
}
diff --git a/src/osd/modules/monitor/monitor_mac.cpp b/src/osd/modules/monitor/monitor_mac.cpp
index 74523105cf0..e81afa7ffae 100644
--- a/src/osd/modules/monitor/monitor_mac.cpp
+++ b/src/osd/modules/monitor/monitor_mac.cpp
@@ -8,7 +8,6 @@
//
//============================================================
-#include "emu.h"
#include "modules/osdmodule.h"
#include "monitor_module.h"
@@ -21,6 +20,7 @@
#include "modules/osdwindow.h"
#include "monitor_common.h"
+#include "osdcore.h"
#include "window.h"
//============================================================
@@ -115,7 +115,7 @@ protected:
// allocate a new monitor info
std::shared_ptr<osd_monitor_info> monitor = std::make_shared<mac_monitor_info>(*this, displayList[disp], temp, 1.0f);
- osd_printf_verbose("Adding monitor %s (%d x %d)\n", monitor->devicename().c_str(),
+ osd_printf_verbose("Adding monitor %s (%d x %d)\n", monitor->devicename(),
monitor->position_size().width(), monitor->position_size().height());
// guess the aspect ratio assuming square pixels
diff --git a/src/osd/modules/monitor/monitor_module.h b/src/osd/modules/monitor/monitor_module.h
index 3244e7fd42b..38e7e02fec2 100644
--- a/src/osd/modules/monitor/monitor_module.h
+++ b/src/osd/modules/monitor/monitor_module.h
@@ -8,6 +8,7 @@
#ifndef MAME_OSD_MODULES_MONITOR_MONITORMODULE_H
#define MAME_OSD_MODULES_MONITOR_MONITORMODULE_H
+#include <cstdint>
#include <vector>
#include "modules/osdmodule.h"
@@ -53,7 +54,7 @@ public:
float aspect() const { return m_aspect; }
float pixel_aspect() const { return m_aspect / (float(m_pos_size.width()) / float(m_pos_size.height())); }
- void update_resolution(const int new_width, const int new_height) const { m_pos_size.resize(new_width, new_height); }
+ void update_resolution(const int new_width, const int new_height) { m_pos_size = m_pos_size.resize(new_width, new_height); }
void set_aspect(const float a) { m_aspect = a; }
bool is_primary() const { return m_is_primary; }
diff --git a/src/osd/modules/monitor/monitor_sdl.cpp b/src/osd/modules/monitor/monitor_sdl.cpp
index b32ade230e1..679c7a4f97d 100644
--- a/src/osd/modules/monitor/monitor_sdl.cpp
+++ b/src/osd/modules/monitor/monitor_sdl.cpp
@@ -5,19 +5,24 @@
*
*/
-#include "emu.h"
#include "modules/osdmodule.h"
#include "monitor_module.h"
#if defined(OSD_SDL)
-#include <algorithm>
-#include <SDL2/SDL.h>
+#include "monitor_common.h"
+#include "modules/lib/osdobj_common.h"
#include "modules/osdwindow.h"
-#include "monitor_common.h"
+
+#include "osdcore.h"
#include "window.h"
+#include <SDL2/SDL.h>
+
+#include <algorithm>
+
+
inline osd_rect SDL_Rect_to_osd_rect(const SDL_Rect &r)
{
return osd_rect(r.x, r.y, r.w, r.h);
@@ -118,8 +123,9 @@ protected:
// allocate a new monitor info
std::shared_ptr<osd_monitor_info> monitor = std::make_shared<sdl_monitor_info>(*this, i, temp, 1.0f);
- osd_printf_verbose("Adding monitor %s (%d x %d)\n", monitor->devicename().c_str(),
- monitor->position_size().width(), monitor->position_size().height());
+ osd_printf_verbose("Adding monitor %s (%d x %d)\n",
+ monitor->devicename(),
+ monitor->position_size().width(), monitor->position_size().height());
// guess the aspect ratio assuming square pixels
monitor->set_aspect(static_cast<float>(monitor->position_size().width()) / static_cast<float>(monitor->position_size().height()));
diff --git a/src/osd/modules/monitor/monitor_win32.cpp b/src/osd/modules/monitor/monitor_win32.cpp
index 5a7405c463c..1766ca358a1 100644
--- a/src/osd/modules/monitor/monitor_win32.cpp
+++ b/src/osd/modules/monitor/monitor_win32.cpp
@@ -5,7 +5,6 @@
*
*/
-#include "emu.h"
#include "modules/osdmodule.h"
#include "monitor_module.h"
@@ -15,6 +14,7 @@
#include <windows.h>
#undef interface
+#include "osdcore.h"
#include "strconv.h"
#include "windows/video.h"
#include "window.h"
@@ -94,9 +94,9 @@ protected:
// if we're verbose, print the list of monitors
{
- for (auto monitor : list())
+ for (const auto &monitor : list())
{
- osd_printf_verbose("Video: Monitor %I64u = \"%s\" %s\n", monitor->oshandle(), monitor->devicename().c_str(), monitor->is_primary() ? "(primary)" : "");
+ osd_printf_verbose("Video: Monitor %u = \"%s\" %s\n", monitor->oshandle(), monitor->devicename(), monitor->is_primary() ? "(primary)" : "");
}
}
@@ -106,7 +106,7 @@ protected:
private:
static BOOL CALLBACK monitor_enum_callback(HMONITOR handle, HDC dc, LPRECT rect, LPARAM data)
{
- win32_monitor_module* self = reinterpret_cast<win32_monitor_module*>(data);
+ auto* self = reinterpret_cast<win32_monitor_module*>(data);
MONITORINFOEX info;
BOOL result;