diff options
author | Noel Grandin <noelgrandin@collabora.co.uk> | 2023-03-10 15:45:51 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-11 05:54:26 +0000 |
commit | 770580ba8e9546aa7b960c8b622b936ba6cf9d37 (patch) | |
tree | 52b0433da4da7886903250c10f16c0f4914eedc1 /avmedia | |
parent | b6977dad4535532d9bd897282f52806885862c83 (diff) |
osl::Mutex->std::mutex in avmedia::win::Window
Change-Id: I4e6e7fd03c4aa7847edbc48bccac88ec361c8237
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148637
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'avmedia')
-rw-r--r-- | avmedia/source/win/window.cxx | 87 | ||||
-rw-r--r-- | avmedia/source/win/window.hxx | 13 |
2 files changed, 46 insertions, 54 deletions
diff --git a/avmedia/source/win/window.cxx b/avmedia/source/win/window.cxx index 4f4ef47456e6..2f453347f7cd 100644 --- a/avmedia/source/win/window.cxx +++ b/avmedia/source/win/window.cxx @@ -98,7 +98,6 @@ static WNDCLASSW* lcl_getWndClass() } Window::Window( Player& rPlayer ) : - maListeners( maMutex ), meZoomLevel( media::ZoomLevel_NOT_AVAILABLE ), mrPlayer( rPlayer ), mnFrameWnd( nullptr ), @@ -349,62 +348,74 @@ void SAL_CALL Window::setFocus( ) void SAL_CALL Window::addWindowListener( const uno::Reference< awt::XWindowListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maWindowListeners.addInterface( g, xListener ); } void SAL_CALL Window::removeWindowListener( const uno::Reference< awt::XWindowListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maWindowListeners.removeInterface( g, xListener ); } void SAL_CALL Window::addFocusListener( const uno::Reference< awt::XFocusListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maFocusListeners.addInterface( g, xListener ); } void SAL_CALL Window::removeFocusListener( const uno::Reference< awt::XFocusListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maFocusListeners.removeInterface( g, xListener ); } void SAL_CALL Window::addKeyListener( const uno::Reference< awt::XKeyListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maKeyListeners.addInterface( g, xListener ); } void SAL_CALL Window::removeKeyListener( const uno::Reference< awt::XKeyListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maKeyListeners.removeInterface( g, xListener ); } void SAL_CALL Window::addMouseListener( const uno::Reference< awt::XMouseListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maMouseListeners.addInterface( g, xListener ); } void SAL_CALL Window::removeMouseListener( const uno::Reference< awt::XMouseListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maMouseListeners.removeInterface( g, xListener ); } void SAL_CALL Window::addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maMouseMotionListeners.addInterface( g, xListener ); } void SAL_CALL Window::removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maMouseMotionListeners.removeInterface( g, xListener ); } void SAL_CALL Window::addPaintListener( const uno::Reference< awt::XPaintListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maPaintListeners.addInterface( g, xListener ); } void SAL_CALL Window::removePaintListener( const uno::Reference< awt::XPaintListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maPaintListeners.removeInterface( g, xListener ); } void SAL_CALL Window::dispose( ) @@ -413,64 +424,38 @@ void SAL_CALL Window::dispose( ) void SAL_CALL Window::addEventListener( const uno::Reference< lang::XEventListener >& xListener ) { - maListeners.addInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maEventListeners.addInterface( g, xListener ); } void SAL_CALL Window::removeEventListener( const uno::Reference< lang::XEventListener >& xListener ) { - maListeners.removeInterface( cppu::UnoType<decltype(xListener)>::get(), xListener ); + std::unique_lock g(maMutex); + maEventListeners.removeInterface( g, xListener ); } void Window::fireMousePressedEvent( const css::awt::MouseEvent& rEvt ) { - comphelper::OInterfaceContainerHelper2* pContainer = maListeners.getContainer( cppu::UnoType<awt::XMouseListener>::get()); - - if( pContainer ) - { - comphelper::OInterfaceIteratorHelper2 aIter( *pContainer ); - - while( aIter.hasMoreElements() ) - static_cast< awt::XMouseListener* >( aIter.next() )->mousePressed( rEvt ); - } + std::unique_lock g(maMutex); + maMouseListeners.notifyEach(g, &awt::XMouseListener::mousePressed, rEvt); } void Window::fireMouseReleasedEvent( const css::awt::MouseEvent& rEvt ) { - comphelper::OInterfaceContainerHelper2* pContainer = maListeners.getContainer( cppu::UnoType<awt::XMouseListener>::get()); - - if( pContainer ) - { - comphelper::OInterfaceIteratorHelper2 aIter( *pContainer ); - - while( aIter.hasMoreElements() ) - static_cast< awt::XMouseListener* >( aIter.next() )->mouseReleased( rEvt ); - } + std::unique_lock g(maMutex); + maMouseListeners.notifyEach(g, &awt::XMouseListener::mouseReleased, rEvt); } void Window::fireMouseMovedEvent( const css::awt::MouseEvent& rEvt ) { - comphelper::OInterfaceContainerHelper2* pContainer = maListeners.getContainer( cppu::UnoType<awt::XMouseMotionListener>::get()); - - if( pContainer ) - { - comphelper::OInterfaceIteratorHelper2 aIter( *pContainer ); - - while( aIter.hasMoreElements() ) - static_cast< awt::XMouseMotionListener* >( aIter.next() )->mouseMoved( rEvt ); - } + std::unique_lock g(maMutex); + maMouseMotionListeners.notifyEach(g, &awt::XMouseMotionListener::mouseMoved, rEvt); } void Window::fireSetFocusEvent( const css::awt::FocusEvent& rEvt ) { - comphelper::OInterfaceContainerHelper2* pContainer = maListeners.getContainer( cppu::UnoType<awt::XFocusListener>::get()); - - if( pContainer ) - { - comphelper::OInterfaceIteratorHelper2 aIter( *pContainer ); - - while( aIter.hasMoreElements() ) - static_cast< awt::XFocusListener* >( aIter.next() )->focusGained( rEvt ); - } + std::unique_lock g(maMutex); + maFocusListeners.notifyEach(g, &awt::XFocusListener::focusGained, rEvt); } OUString SAL_CALL Window::getImplementationName( ) diff --git a/avmedia/source/win/window.hxx b/avmedia/source/win/window.hxx index 39d5aec626c4..0ab691ffbb82 100644 --- a/avmedia/source/win/window.hxx +++ b/avmedia/source/win/window.hxx @@ -25,7 +25,8 @@ #include "wincommon.hxx" #include <cppuhelper/implbase.hxx> -#include <comphelper/multicontainer2.hxx> +#include <comphelper/interfacecontainer4.hxx> +#include <mutex> #include <com/sun/star/media/XPlayerWindow.hpp> @@ -95,8 +96,14 @@ public: private: - ::osl::Mutex maMutex; - comphelper::OMultiTypeInterfaceContainerHelper2 maListeners; + std::mutex maMutex; + comphelper::OInterfaceContainerHelper4<css::awt::XWindowListener> maWindowListeners; + comphelper::OInterfaceContainerHelper4<css::awt::XFocusListener> maFocusListeners; + comphelper::OInterfaceContainerHelper4<css::awt::XKeyListener> maKeyListeners; + comphelper::OInterfaceContainerHelper4<css::awt::XMouseListener> maMouseListeners; + comphelper::OInterfaceContainerHelper4<css::awt::XMouseMotionListener> maMouseMotionListeners; + comphelper::OInterfaceContainerHelper4<css::awt::XPaintListener> maPaintListeners; + comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> maEventListeners; css::media::ZoomLevel meZoomLevel; Player& mrPlayer; HWND mnFrameWnd; |