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