xref: /AOO42X/main/avmedia/source/macavf/macavf_window.hxx (revision 9bce9b0d387299c68bd81d539e1478357a103de5)
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