diff --git a/src/SFML/Window/macOS/HIDInputManager.hpp b/src/SFML/Window/macOS/HIDInputManager.hpp index 5778477d4..64935c5c5 100644 --- a/src/SFML/Window/macOS/HIDInputManager.hpp +++ b/src/SFML/Window/macOS/HIDInputManager.hpp @@ -41,7 +41,7 @@ namespace sf::priv { -using IOHIDElements = std::vector>; +using IOHIDElements = std::vector>; //////////////////////////////////////////////////////////// /// \brief sf::priv::InputImpl helper @@ -247,7 +247,7 @@ private: /// \return a retained, non-empty __CFSet pointer of IOHIDDeviceRef or a null pointer /// //////////////////////////////////////////////////////////// - CFPtr copyDevices(std::uint32_t page, std::uint32_t usage); + CFPtr copyDevices(std::uint32_t page, std::uint32_t usage); //////////////////////////////////////////////////////////// /// \brief Check if a key is pressed @@ -287,8 +287,8 @@ private: //////////////////////////////////////////////////////////// // Member data //////////////////////////////////////////////////////////// - CFPtr<__IOHIDManager> m_manager{}; ///< Underlying HID Manager - bool m_keysInitialized{}; ///< Has initializeKeyboard been called at least once? + CFPtr m_manager; ///< Underlying HID Manager + bool m_keysInitialized{}; ///< Has initializeKeyboard been called at least once? EnumArray m_keys; ///< All the keys on any connected keyboard EnumArray m_keyToScancodeMapping{}; ///< Mapping from Key to Scancode EnumArray m_scancodeToKeyMapping{}; ///< Mapping from Scancode to Key diff --git a/src/SFML/Window/macOS/HIDInputManager.mm b/src/SFML/Window/macOS/HIDInputManager.mm index 3f2b78f4e..85f906a75 100644 --- a/src/SFML/Window/macOS/HIDInputManager.mm +++ b/src/SFML/Window/macOS/HIDInputManager.mm @@ -78,11 +78,11 @@ CFDictionaryRef HIDInputManager::copyDevicesMask(std::uint32_t page, std::uint32 &kCFTypeDictionaryValueCallBacks); // Add the page value. - auto value = CFPtr(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &page)); + auto value = CFPtr(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &page)); CFDictionarySetValue(dict, CFSTR(kIOHIDDeviceUsagePageKey), value.get()); // Add the usage value (which is only valid if page value exists). - value = CFPtr(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &usage)); + value = CFPtr(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &usage)); CFDictionarySetValue(dict, CFSTR(kIOHIDDeviceUsageKey), value.get()); return dict; @@ -710,7 +710,7 @@ String HIDInputManager::getDescription(Keyboard::Scancode code) HIDInputManager::HIDInputManager() { // Create an HID Manager reference - m_manager = CFPtr<__IOHIDManager>(IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone)); + m_manager = CFPtr(IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone)); const IOReturn openStatus = IOHIDManagerOpen(m_manager.get(), kIOHIDOptionsTypeNone); if (openStatus != kIOReturnSuccess) @@ -770,8 +770,7 @@ void HIDInputManager::initializeKeyboard() //////////////////////////////////////////////////////////// void HIDInputManager::loadKeyboard(IOHIDDeviceRef keyboard) { - const auto underlying = CFPtr( - IOHIDDeviceCopyMatchingElements(keyboard, nullptr, kIOHIDOptionsTypeNone)); + const auto underlying = CFPtr(IOHIDDeviceCopyMatchingElements(keyboard, nullptr, kIOHIDOptionsTypeNone)); if ((underlying == nullptr) || (CFArrayGetCount(underlying.get()) == 0)) { err() << "Detected a keyboard without any keys." << std::endl; @@ -809,7 +808,7 @@ void HIDInputManager::buildMappings() m_scancodeToKeyMapping.fill(Keyboard::Key::Unknown); // Get the current keyboard layout - const auto tis = CFPtr<__TISInputSource>(TISCopyCurrentKeyboardLayoutInputSource()); + const auto tis = CFPtr(TISCopyCurrentKeyboardLayoutInputSource()); const auto* layoutData = static_cast(TISGetInputSourceProperty(tis.get(), kTISPropertyUnicodeKeyLayoutData)); if (layoutData == nullptr) @@ -927,14 +926,14 @@ void HIDInputManager::freeUp() //////////////////////////////////////////////////////////// -CFPtr HIDInputManager::copyDevices(std::uint32_t page, std::uint32_t usage) +CFPtr HIDInputManager::copyDevices(std::uint32_t page, std::uint32_t usage) { // Filter and keep only the requested devices - const auto mask = CFPtr(copyDevicesMask(page, usage)); + const auto mask = CFPtr(copyDevicesMask(page, usage)); IOHIDManagerSetDeviceMatching(m_manager.get(), mask.get()); - auto devices = CFPtr(IOHIDManagerCopyDevices(m_manager.get())); + auto devices = CFPtr(IOHIDManagerCopyDevices(m_manager.get())); if (devices == nullptr) return nullptr; diff --git a/src/SFML/Window/macOS/HIDJoystickManager.cpp b/src/SFML/Window/macOS/HIDJoystickManager.cpp index b203c0c58..4432b5cfc 100644 --- a/src/SFML/Window/macOS/HIDJoystickManager.cpp +++ b/src/SFML/Window/macOS/HIDJoystickManager.cpp @@ -61,9 +61,9 @@ unsigned int HIDJoystickManager::getJoystickCount() //////////////////////////////////////////////////////////// -CFPtr HIDJoystickManager::copyJoysticks() +CFPtr HIDJoystickManager::copyJoysticks() { - return CFPtr(IOHIDManagerCopyDevices(m_manager)); + return CFPtr(IOHIDManagerCopyDevices(m_manager)); } @@ -72,14 +72,14 @@ HIDJoystickManager::HIDJoystickManager() { m_manager = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); - const auto mask0 = CFPtr( + const auto mask0 = CFPtr( HIDInputManager::copyDevicesMask(kHIDPage_GenericDesktop, kHIDUsage_GD_Joystick)); - const auto mask1 = CFPtr( + const auto mask1 = CFPtr( HIDInputManager::copyDevicesMask(kHIDPage_GenericDesktop, kHIDUsage_GD_GamePad)); std::array maskArray = {mask0.get(), mask1.get()}; - const auto mask = CFPtr( + const auto mask = CFPtr( CFArrayCreate(nullptr, reinterpret_cast(maskArray.data()), maskArray.size(), nullptr)); IOHIDManagerSetDeviceMatchingMultiple(m_manager, mask.get()); diff --git a/src/SFML/Window/macOS/HIDJoystickManager.hpp b/src/SFML/Window/macOS/HIDJoystickManager.hpp index 620c84639..706d2913e 100644 --- a/src/SFML/Window/macOS/HIDJoystickManager.hpp +++ b/src/SFML/Window/macOS/HIDJoystickManager.hpp @@ -78,7 +78,7 @@ public: /// \return a retained __CFSet pointer of IOHIDDeviceRef or a null pointer /// //////////////////////////////////////////////////////////// - CFPtr copyJoysticks(); + CFPtr copyJoysticks(); private: //////////////////////////////////////////////////////////// diff --git a/src/SFML/Window/macOS/InputImpl.mm b/src/SFML/Window/macOS/InputImpl.mm index 5944f3870..12b1220de 100644 --- a/src/SFML/Window/macOS/InputImpl.mm +++ b/src/SFML/Window/macOS/InputImpl.mm @@ -212,7 +212,7 @@ void setMousePosition(Vector2i position) const CGPoint pos = CGPointMake(position.x / scale, position.y / scale); // Place the cursor. - const auto event = CFPtr<__CGEvent>( + const auto event = CFPtr( CGEventCreateMouseEvent(nullptr, kCGEventMouseMoved, pos, diff --git a/src/SFML/Window/macOS/JoystickImpl.cpp b/src/SFML/Window/macOS/JoystickImpl.cpp index 91d80d962..75c7efe2c 100644 --- a/src/SFML/Window/macOS/JoystickImpl.cpp +++ b/src/SFML/Window/macOS/JoystickImpl.cpp @@ -132,7 +132,7 @@ bool JoystickImpl::isConnected(unsigned int index) if (connectedCount > openedCount) { // Get all devices - const auto devices = CFPtr(HIDJoystickManager::getInstance().copyJoysticks()); + const auto devices = CFPtr(HIDJoystickManager::getInstance().copyJoysticks()); if (devices != nullptr) { @@ -209,7 +209,7 @@ bool JoystickImpl::open(unsigned int index) m_identification.productId = getDeviceUint(self, CFSTR(kIOHIDProductIDKey), m_index); // Get a list of all elements attached to the device. - const auto elements = CFPtr(IOHIDDeviceCopyMatchingElements(self, nullptr, kIOHIDOptionsTypeNone)); + const auto elements = CFPtr(IOHIDDeviceCopyMatchingElements(self, nullptr, kIOHIDOptionsTypeNone)); if (elements == nullptr) return false; @@ -218,7 +218,7 @@ bool JoystickImpl::open(unsigned int index) const CFIndex elementsCount = CFArrayGetCount(elements.get()); for (int i = 0; i < elementsCount; ++i) { - auto element = std::shared_ptr(CFPtr<__IOHIDElement>( + auto element = std::shared_ptr(CFPtr( static_cast(const_cast(CFArrayGetValueAtIndex(elements.get(), i))))); switch (IOHIDElementGetUsagePage(element.get())) { diff --git a/src/SFML/Window/macOS/Utils.hpp b/src/SFML/Window/macOS/Utils.hpp index a877bb14a..4c443ac10 100644 --- a/src/SFML/Window/macOS/Utils.hpp +++ b/src/SFML/Window/macOS/Utils.hpp @@ -28,6 +28,7 @@ // Headers //////////////////////////////////////////////////////////// #include +#include namespace sf::priv @@ -50,5 +51,5 @@ struct CFDeleter /// //////////////////////////////////////////////////////////// template -using CFPtr = std::unique_ptr; +using CFPtr = std::unique_ptr, CFDeleter>; } // namespace sf::priv diff --git a/src/SFML/Window/macOS/VideoModeImpl.cpp b/src/SFML/Window/macOS/VideoModeImpl.cpp index 40203e8ab..78948bb5e 100644 --- a/src/SFML/Window/macOS/VideoModeImpl.cpp +++ b/src/SFML/Window/macOS/VideoModeImpl.cpp @@ -44,7 +44,7 @@ std::vector VideoModeImpl::getFullscreenModes() std::vector modes; // Retrieve all modes available for main screen only. - const auto cgmodes = CFPtr(CGDisplayCopyAllDisplayModes(CGMainDisplayID(), nullptr)); + const auto cgmodes = CFPtr(CGDisplayCopyAllDisplayModes(CGMainDisplayID(), nullptr)); if (cgmodes == nullptr) { diff --git a/src/SFML/Window/macOS/cg_sf_conversion.mm b/src/SFML/Window/macOS/cg_sf_conversion.mm index ac5f363f1..352676bfd 100644 --- a/src/SFML/Window/macOS/cg_sf_conversion.mm +++ b/src/SFML/Window/macOS/cg_sf_conversion.mm @@ -39,7 +39,7 @@ namespace sf::priv unsigned int modeBitsPerPixel(CGDisplayModeRef mode) { // Compare encoding. - const auto pixEnc = CFPtr(CGDisplayModeCopyPixelEncoding(mode)); + const auto pixEnc = CFPtr(CGDisplayModeCopyPixelEncoding(mode)); if (CFStringCompare(pixEnc.get(), CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) return 32; if (CFStringCompare(pixEnc.get(), CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)