diff options
Diffstat (limited to 'src/osd/modules/monitor')
-rw-r--r-- | src/osd/modules/monitor/monitor_common.cpp | 11 | ||||
-rw-r--r-- | src/osd/modules/monitor/monitor_common.h | 36 | ||||
-rw-r--r-- | src/osd/modules/monitor/monitor_dxgi.cpp | 24 | ||||
-rw-r--r-- | src/osd/modules/monitor/monitor_mac.cpp | 4 | ||||
-rw-r--r-- | src/osd/modules/monitor/monitor_module.h | 3 | ||||
-rw-r--r-- | src/osd/modules/monitor/monitor_sdl.cpp | 18 | ||||
-rw-r--r-- | src/osd/modules/monitor/monitor_win32.cpp | 8 |
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; |