1e8649ecdSHerbert Dürr /************************************************************** 2e8649ecdSHerbert Dürr * 3e8649ecdSHerbert Dürr * Licensed to the Apache Software Foundation (ASF) under one 4e8649ecdSHerbert Dürr * or more contributor license agreements. See the NOTICE file 5e8649ecdSHerbert Dürr * distributed with this work for additional information 6e8649ecdSHerbert Dürr * regarding copyright ownership. The ASF licenses this file 7e8649ecdSHerbert Dürr * to you under the Apache License, Version 2.0 (the 8e8649ecdSHerbert Dürr * "License"); you may not use this file except in compliance 9e8649ecdSHerbert Dürr * with the License. You may obtain a copy of the License at 10e8649ecdSHerbert Dürr * 11e8649ecdSHerbert Dürr * http://www.apache.org/licenses/LICENSE-2.0 12e8649ecdSHerbert Dürr * 13e8649ecdSHerbert Dürr * Unless required by applicable law or agreed to in writing, 14e8649ecdSHerbert Dürr * software distributed under the License is distributed on an 15e8649ecdSHerbert Dürr * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16e8649ecdSHerbert Dürr * KIND, either express or implied. See the License for the 17e8649ecdSHerbert Dürr * specific language governing permissions and limitations 18e8649ecdSHerbert Dürr * under the License. 19e8649ecdSHerbert Dürr * 20e8649ecdSHerbert Dürr *************************************************************/ 21e8649ecdSHerbert Dürr 22e8649ecdSHerbert Dürr #ifndef MACAVF_WINDOW_HXX 23e8649ecdSHerbert Dürr #define MACAVF_WINDOW_HXX 24e8649ecdSHerbert Dürr 25e8649ecdSHerbert Dürr #include "macavf_common.hxx" 26e8649ecdSHerbert Dürr 27e8649ecdSHerbert Dürr #include <cppuhelper/interfacecontainer.h> 28e8649ecdSHerbert Dürr 29e8649ecdSHerbert Dürr #include "com/sun/star/media/XPlayerWindow.hdl" 30e8649ecdSHerbert Dürr 31e8649ecdSHerbert Dürr // --------------- 32e8649ecdSHerbert Dürr // - MyMediaView - 33e8649ecdSHerbert Dürr // --------------- 34e8649ecdSHerbert Dürr 35e8649ecdSHerbert Dürr @interface MyMediaView : NSView 36e8649ecdSHerbert Dürr @property (nonatomic, readonly, strong) AVPlayer* player; 37e8649ecdSHerbert Dürr @property (nonatomic, readonly, strong) AVPlayerLayer* playerLayer; 38e8649ecdSHerbert Dürr @property (nonatomic, retain) NSURL* videoURL; 39e8649ecdSHerbert Dürr - (void) play; 40e8649ecdSHerbert Dürr @end 41e8649ecdSHerbert Dürr 42e8649ecdSHerbert Dürr namespace avmedia { namespace macavf { 43e8649ecdSHerbert Dürr 44e8649ecdSHerbert Dürr // --------------- 45e8649ecdSHerbert Dürr // - Window - 46e8649ecdSHerbert Dürr // --------------- 47e8649ecdSHerbert Dürr 48e8649ecdSHerbert Dürr class Player; 49e8649ecdSHerbert Dürr 50e8649ecdSHerbert Dürr class Window 51e8649ecdSHerbert Dürr : public MacAVObserverHandler 52e8649ecdSHerbert Dürr , public ::cppu::WeakImplHelper2 < ::com::sun::star::media::XPlayerWindow, 53e8649ecdSHerbert Dürr ::com::sun::star::lang::XServiceInfo > 54e8649ecdSHerbert Dürr { 55e8649ecdSHerbert Dürr public: 56e8649ecdSHerbert Dürr 57*652e100fSDamjan Jovanovic Window( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& i_rxContext, 58e8649ecdSHerbert Dürr Player& i_rPlayer, 59e8649ecdSHerbert Dürr NSView* i_pParentView 60e8649ecdSHerbert Dürr ); 61e8649ecdSHerbert Dürr virtual ~Window(); 62e8649ecdSHerbert Dürr 63e8649ecdSHerbert Dürr bool create( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ); 64e8649ecdSHerbert Dürr void processGraphEvent(); 65e8649ecdSHerbert Dürr void updatePointer(); 66e8649ecdSHerbert Dürr 67e8649ecdSHerbert Dürr // XPlayerWindow 68e8649ecdSHerbert Dürr virtual void SAL_CALL update( ) throw (::com::sun::star::uno::RuntimeException); 69e8649ecdSHerbert Dürr virtual sal_Bool SAL_CALL setZoomLevel( ::com::sun::star::media::ZoomLevel ZoomLevel ) throw (::com::sun::star::uno::RuntimeException); 70e8649ecdSHerbert Dürr virtual ::com::sun::star::media::ZoomLevel SAL_CALL getZoomLevel( ) throw (::com::sun::star::uno::RuntimeException); 71e8649ecdSHerbert Dürr virtual void SAL_CALL setPointerType( sal_Int32 nPointerType ) throw (::com::sun::star::uno::RuntimeException); 72e8649ecdSHerbert Dürr 73e8649ecdSHerbert Dürr // XWindow 74e8649ecdSHerbert Dürr virtual void SAL_CALL setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags ) throw (::com::sun::star::uno::RuntimeException); 75e8649ecdSHerbert Dürr virtual ::com::sun::star::awt::Rectangle SAL_CALL getPosSize( ) throw (::com::sun::star::uno::RuntimeException); 76e8649ecdSHerbert Dürr virtual void SAL_CALL setVisible( sal_Bool Visible ) throw (::com::sun::star::uno::RuntimeException); 77e8649ecdSHerbert Dürr virtual void SAL_CALL setEnable( sal_Bool Enable ) throw (::com::sun::star::uno::RuntimeException); 78e8649ecdSHerbert Dürr virtual void SAL_CALL setFocus( ) throw (::com::sun::star::uno::RuntimeException); 79e8649ecdSHerbert Dürr virtual void SAL_CALL addWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 80e8649ecdSHerbert Dürr virtual void SAL_CALL removeWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 81e8649ecdSHerbert Dürr virtual void SAL_CALL addFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 82e8649ecdSHerbert Dürr virtual void SAL_CALL removeFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 83e8649ecdSHerbert Dürr virtual void SAL_CALL addKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 84e8649ecdSHerbert Dürr virtual void SAL_CALL removeKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 85e8649ecdSHerbert Dürr virtual void SAL_CALL addMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 86e8649ecdSHerbert Dürr virtual void SAL_CALL removeMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 87e8649ecdSHerbert Dürr virtual void SAL_CALL addMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 88e8649ecdSHerbert Dürr virtual void SAL_CALL removeMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 89e8649ecdSHerbert Dürr virtual void SAL_CALL addPaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 90e8649ecdSHerbert Dürr virtual void SAL_CALL removePaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 91e8649ecdSHerbert Dürr 92e8649ecdSHerbert Dürr // XComponent 93e8649ecdSHerbert Dürr virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException); 94e8649ecdSHerbert Dürr virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 95e8649ecdSHerbert Dürr virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); 96e8649ecdSHerbert Dürr 97e8649ecdSHerbert Dürr // XServiceInfo 98e8649ecdSHerbert Dürr virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException); 99e8649ecdSHerbert Dürr virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); 100e8649ecdSHerbert Dürr virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); 101e8649ecdSHerbert Dürr 102e8649ecdSHerbert Dürr virtual bool handleObservation( NSString* pKeyPath ); 103e8649ecdSHerbert Dürr 104e8649ecdSHerbert Dürr private: 105e8649ecdSHerbert Dürr 106*652e100fSDamjan Jovanovic ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mxContext; 107e8649ecdSHerbert Dürr 108e8649ecdSHerbert Dürr ::osl::Mutex maMutex; 109e8649ecdSHerbert Dürr ::cppu::OMultiTypeInterfaceContainerHelper maListeners; 110e8649ecdSHerbert Dürr ::com::sun::star::media::ZoomLevel meZoomLevel; 111e8649ecdSHerbert Dürr Player& mrPlayer; 112e8649ecdSHerbert Dürr int mnPointerType; 113e8649ecdSHerbert Dürr 114e8649ecdSHerbert Dürr NSView* mpView; // parent-view == movie-view 115e8649ecdSHerbert Dürr AVPlayerLayer* mpPlayerLayer; 116e8649ecdSHerbert Dürr 117e8649ecdSHerbert Dürr void ImplLayoutVideoWindow(); 118e8649ecdSHerbert Dürr }; 119e8649ecdSHerbert Dürr 120e8649ecdSHerbert Dürr } // namespace macavf 121e8649ecdSHerbert Dürr } // namespace avmedia 122e8649ecdSHerbert Dürr 123e8649ecdSHerbert Dürr #endif // _WINDOW_HXX 124