xref: /trunk/main/avmedia/source/macavf/macavf_window.cxx (revision cf6516809c57e1bb0a940545cca99cdad54d4ce2)
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 
23e8649ecdSHerbert Dürr #include <com/sun/star/awt/SystemPointer.hpp>
24e8649ecdSHerbert Dürr #include <com/sun/star/awt/PosSize.hpp>
25e8649ecdSHerbert Dürr 
26e8649ecdSHerbert Dürr #include "macavf_window.hxx"
27e8649ecdSHerbert Dürr #include "macavf_player.hxx"
28e8649ecdSHerbert Dürr 
29e8649ecdSHerbert Dürr using namespace ::com::sun::star;
30e8649ecdSHerbert Dürr 
31e8649ecdSHerbert Dürr 
32e8649ecdSHerbert Dürr namespace avmedia { namespace macavf {
33e8649ecdSHerbert Dürr 
34e8649ecdSHerbert Dürr // ---------------
35e8649ecdSHerbert Dürr // - Window -
36e8649ecdSHerbert Dürr // ---------------
37e8649ecdSHerbert Dürr 
Window(const uno::Reference<uno::XComponentContext> & i_rxContext,Player & i_rPlayer,NSView * i_pParentView)38*46880872SDamjan Jovanovic Window::Window( const uno::Reference< uno::XComponentContext >& i_rxContext, Player& i_rPlayer, NSView* i_pParentView )
39*46880872SDamjan Jovanovic :   mxContext( i_rxContext )
40e8649ecdSHerbert Dürr ,   maListeners( maMutex )
41e8649ecdSHerbert Dürr ,   meZoomLevel( media::ZoomLevel_NOT_AVAILABLE )
42e8649ecdSHerbert Dürr ,   mrPlayer( i_rPlayer )
43e8649ecdSHerbert Dürr ,   mnPointerType( awt::SystemPointer::ARROW )
44e8649ecdSHerbert Dürr ,   mpView( i_pParentView )
45e8649ecdSHerbert Dürr ,   mpPlayerLayer( NULL )
46e8649ecdSHerbert Dürr {
47e8649ecdSHerbert Dürr     OSL_TRACE ("Constructing an avmedia::macavf::Window");
48e8649ecdSHerbert Dürr     if( !mpView ) // sanity check
49e8649ecdSHerbert Dürr         return;
50e8649ecdSHerbert Dürr 
51e8649ecdSHerbert Dürr     // check the media asset for video content
52e8649ecdSHerbert Dürr     AVPlayer* pAVPlayer = mrPlayer.getAVPlayer();
53e8649ecdSHerbert Dürr     AVAsset* pMovie = [[pAVPlayer currentItem] asset];
54e8649ecdSHerbert Dürr     const int nVideoCount = [pMovie tracksWithMediaType:AVMediaTypeVideo].count;
55e8649ecdSHerbert Dürr     const int nAudioCount = [pMovie tracksWithMediaType:AVMediaTypeAudio].count;
56e8649ecdSHerbert Dürr     OSL_TRACE( "Found %d video and %d audio tracks.", nVideoCount, nAudioCount );
57e8649ecdSHerbert Dürr     (void)nAudioCount;
58e8649ecdSHerbert Dürr     if( nVideoCount <= 0 )
59e8649ecdSHerbert Dürr         return;
60e8649ecdSHerbert Dürr 
61e8649ecdSHerbert Dürr     // setup the AVPlayerLayer
62e8649ecdSHerbert Dürr     [pAVPlayer retain];
63e8649ecdSHerbert Dürr     [pAVPlayer pause];
64e8649ecdSHerbert Dürr     mpPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:pAVPlayer];
65e8649ecdSHerbert Dürr     [mpPlayerLayer retain];
66e8649ecdSHerbert Dürr     [mpPlayerLayer setFrame:[mpView frame]];
67e8649ecdSHerbert Dürr     [mpPlayerLayer setHidden:YES];
68e8649ecdSHerbert Dürr     [mpPlayerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
69e8649ecdSHerbert Dürr     [mpPlayerLayer addObserver:getObserver() forKeyPath:@"readyForDisplay" options:0 context:this];
70e8649ecdSHerbert Dürr 
71e8649ecdSHerbert Dürr     // setup the target view
72e8649ecdSHerbert Dürr     [mpView setWantsLayer:YES];
73e8649ecdSHerbert Dürr     [mpView.layer addSublayer:mpPlayerLayer];
74e8649ecdSHerbert Dürr }
75e8649ecdSHerbert Dürr 
76e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
77e8649ecdSHerbert Dürr 
~Window()78e8649ecdSHerbert Dürr Window::~Window()
79e8649ecdSHerbert Dürr {
80e8649ecdSHerbert Dürr     [mpPlayerLayer removeObserver:getObserver() forKeyPath:@"readyForDisplay"];
81e8649ecdSHerbert Dürr     [mpPlayerLayer release];
82e8649ecdSHerbert Dürr }
83e8649ecdSHerbert Dürr 
84e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
85e8649ecdSHerbert Dürr 
create(const::com::sun::star::uno::Sequence<::com::sun::star::uno::Any> & aArguments)86e8649ecdSHerbert Dürr bool Window::create( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
87e8649ecdSHerbert Dürr {
88e8649ecdSHerbert Dürr     return true;
89e8649ecdSHerbert Dürr }
90e8649ecdSHerbert Dürr 
91e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
92e8649ecdSHerbert Dürr 
handleObservation(NSString * pKeyPath)93e8649ecdSHerbert Dürr bool Window::handleObservation( NSString* pKeyPath )
94e8649ecdSHerbert Dürr {
95e8649ecdSHerbert Dürr     OSL_TRACE( "AVPlayer::handleObservation key=\"%s\"", [pKeyPath UTF8String]);
96e8649ecdSHerbert Dürr     const BOOL bReadyForDisplay = [mpPlayerLayer isReadyForDisplay];
97e8649ecdSHerbert Dürr     [mpPlayerLayer setHidden:!bReadyForDisplay];
98e8649ecdSHerbert Dürr     return true;
99e8649ecdSHerbert Dürr }
100e8649ecdSHerbert Dürr 
101e8649ecdSHerbert Dürr // XPlayerWindow
102e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
103e8649ecdSHerbert Dürr 
update()104e8649ecdSHerbert Dürr void SAL_CALL Window::update()
105e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
106e8649ecdSHerbert Dürr {}
107e8649ecdSHerbert Dürr 
108e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
109e8649ecdSHerbert Dürr 
setZoomLevel(media::ZoomLevel eZoomLevel)110e8649ecdSHerbert Dürr sal_Bool SAL_CALL Window::setZoomLevel( media::ZoomLevel eZoomLevel )
111e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
112e8649ecdSHerbert Dürr {
113e8649ecdSHerbert Dürr     return false;
114e8649ecdSHerbert Dürr }
115e8649ecdSHerbert Dürr 
116e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
117e8649ecdSHerbert Dürr 
getZoomLevel()118e8649ecdSHerbert Dürr media::ZoomLevel SAL_CALL Window::getZoomLevel(  )
119e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
120e8649ecdSHerbert Dürr {
121e8649ecdSHerbert Dürr     return meZoomLevel;
122e8649ecdSHerbert Dürr }
123e8649ecdSHerbert Dürr 
124e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
125e8649ecdSHerbert Dürr 
setPointerType(sal_Int32 nPointerType)126e8649ecdSHerbert Dürr void SAL_CALL Window::setPointerType( sal_Int32 nPointerType )
127e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
128e8649ecdSHerbert Dürr {
129e8649ecdSHerbert Dürr     mnPointerType = nPointerType;
130e8649ecdSHerbert Dürr }
131e8649ecdSHerbert Dürr 
132e8649ecdSHerbert Dürr // XWindow
133e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
134e8649ecdSHerbert Dürr 
setPosSize(sal_Int32 X,sal_Int32 Y,sal_Int32 Width,sal_Int32 Height,sal_Int16 Flags)135e8649ecdSHerbert Dürr void SAL_CALL Window::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags )
136e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
137e8649ecdSHerbert Dürr {
138e8649ecdSHerbert Dürr     OSL_TRACE( "AVWindow::setPosSize( %dx%d%+d%+d)", (int)Width,(int)Height,(int)X,(int)Y);//######
139e8649ecdSHerbert Dürr     if( !mpView )
140e8649ecdSHerbert Dürr         return;
141e8649ecdSHerbert Dürr     NSRect aRect = [mpView frame];
142e8649ecdSHerbert Dürr     // NOTE: if( (Flags & awt::PosSize::WIDTH) )
143e8649ecdSHerbert Dürr     aRect.size.width = Width;
144e8649ecdSHerbert Dürr     // NOTE: if( (Flags & awt::PosSize::HEIGHT) )
145e8649ecdSHerbert Dürr     aRect.size.height = Height;
146e8649ecdSHerbert Dürr 
147e8649ecdSHerbert Dürr     [mpView setFrameSize: aRect.size];
148e8649ecdSHerbert Dürr     [mpPlayerLayer setFrame: [mpView frame]];
149e8649ecdSHerbert Dürr }
150e8649ecdSHerbert Dürr 
151e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
152e8649ecdSHerbert Dürr 
getPosSize()153e8649ecdSHerbert Dürr awt::Rectangle SAL_CALL Window::getPosSize()
154e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
155e8649ecdSHerbert Dürr {
156e8649ecdSHerbert Dürr     awt::Rectangle aRet;
157e8649ecdSHerbert Dürr 
158e8649ecdSHerbert Dürr     NSRect aRect = [mpView frame];
159e8649ecdSHerbert Dürr     aRet.X = aRet.Y = 0;
160e8649ecdSHerbert Dürr     aRet.Width = aRect.size.width;
161e8649ecdSHerbert Dürr     aRet.Height = aRect.size.height;
162e8649ecdSHerbert Dürr 
163e8649ecdSHerbert Dürr     return aRet;
164e8649ecdSHerbert Dürr }
165e8649ecdSHerbert Dürr 
166e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
167e8649ecdSHerbert Dürr 
setVisible(sal_Bool bVisible)168e8649ecdSHerbert Dürr void SAL_CALL Window::setVisible( sal_Bool bVisible )
169e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
170e8649ecdSHerbert Dürr {
171e8649ecdSHerbert Dürr     OSL_TRACE ("Window::setVisible(%d)", bVisible);
172e8649ecdSHerbert Dürr }
173e8649ecdSHerbert Dürr 
174e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
175e8649ecdSHerbert Dürr 
setEnable(sal_Bool bEnable)176e8649ecdSHerbert Dürr void SAL_CALL Window::setEnable( sal_Bool bEnable )
177e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
178e8649ecdSHerbert Dürr {
179e8649ecdSHerbert Dürr     OSL_TRACE ("Window::setEnable(%d)", bEnable);
180e8649ecdSHerbert Dürr }
181e8649ecdSHerbert Dürr 
182e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
183e8649ecdSHerbert Dürr 
setFocus()184e8649ecdSHerbert Dürr void SAL_CALL Window::setFocus()
185e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
186e8649ecdSHerbert Dürr {
187e8649ecdSHerbert Dürr     OSL_TRACE ("Window::setFocus");
188e8649ecdSHerbert Dürr }
189e8649ecdSHerbert Dürr 
190e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
191e8649ecdSHerbert Dürr 
addWindowListener(const uno::Reference<awt::XWindowListener> & xListener)192e8649ecdSHerbert Dürr void SAL_CALL Window::addWindowListener( const uno::Reference< awt::XWindowListener >& xListener )
193e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
194e8649ecdSHerbert Dürr {
195e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
196e8649ecdSHerbert Dürr }
197e8649ecdSHerbert Dürr 
198e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
199e8649ecdSHerbert Dürr 
removeWindowListener(const uno::Reference<awt::XWindowListener> & xListener)200e8649ecdSHerbert Dürr void SAL_CALL Window::removeWindowListener( const uno::Reference< awt::XWindowListener >& xListener )
201e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
202e8649ecdSHerbert Dürr {
203e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
204e8649ecdSHerbert Dürr }
205e8649ecdSHerbert Dürr 
206e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
207e8649ecdSHerbert Dürr 
addFocusListener(const uno::Reference<awt::XFocusListener> & xListener)208e8649ecdSHerbert Dürr void SAL_CALL Window::addFocusListener( const uno::Reference< awt::XFocusListener >& xListener )
209e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
210e8649ecdSHerbert Dürr {
211e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
212e8649ecdSHerbert Dürr }
213e8649ecdSHerbert Dürr 
214e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
215e8649ecdSHerbert Dürr 
removeFocusListener(const uno::Reference<awt::XFocusListener> & xListener)216e8649ecdSHerbert Dürr void SAL_CALL Window::removeFocusListener( const uno::Reference< awt::XFocusListener >& xListener )
217e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
218e8649ecdSHerbert Dürr {
219e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
220e8649ecdSHerbert Dürr }
221e8649ecdSHerbert Dürr 
222e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
223e8649ecdSHerbert Dürr 
addKeyListener(const uno::Reference<awt::XKeyListener> & xListener)224e8649ecdSHerbert Dürr void SAL_CALL Window::addKeyListener( const uno::Reference< awt::XKeyListener >& xListener )
225e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
226e8649ecdSHerbert Dürr {
227e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
228e8649ecdSHerbert Dürr }
229e8649ecdSHerbert Dürr 
230e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
231e8649ecdSHerbert Dürr 
removeKeyListener(const uno::Reference<awt::XKeyListener> & xListener)232e8649ecdSHerbert Dürr void SAL_CALL Window::removeKeyListener( const uno::Reference< awt::XKeyListener >& xListener )
233e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
234e8649ecdSHerbert Dürr {
235e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
236e8649ecdSHerbert Dürr }
237e8649ecdSHerbert Dürr 
238e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
239e8649ecdSHerbert Dürr 
addMouseListener(const uno::Reference<awt::XMouseListener> & xListener)240e8649ecdSHerbert Dürr void SAL_CALL Window::addMouseListener( const uno::Reference< awt::XMouseListener >& xListener )
241e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
242e8649ecdSHerbert Dürr {
243e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
244e8649ecdSHerbert Dürr }
245e8649ecdSHerbert Dürr 
246e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
247e8649ecdSHerbert Dürr 
removeMouseListener(const uno::Reference<awt::XMouseListener> & xListener)248e8649ecdSHerbert Dürr void SAL_CALL Window::removeMouseListener( const uno::Reference< awt::XMouseListener >& xListener )
249e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
250e8649ecdSHerbert Dürr {
251e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
252e8649ecdSHerbert Dürr }
253e8649ecdSHerbert Dürr 
254e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
255e8649ecdSHerbert Dürr 
addMouseMotionListener(const uno::Reference<awt::XMouseMotionListener> & xListener)256e8649ecdSHerbert Dürr void SAL_CALL Window::addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener )
257e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
258e8649ecdSHerbert Dürr {
259e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
260e8649ecdSHerbert Dürr }
261e8649ecdSHerbert Dürr 
262e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
263e8649ecdSHerbert Dürr 
removeMouseMotionListener(const uno::Reference<awt::XMouseMotionListener> & xListener)264e8649ecdSHerbert Dürr void SAL_CALL Window::removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener )
265e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
266e8649ecdSHerbert Dürr {
267e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
268e8649ecdSHerbert Dürr }
269e8649ecdSHerbert Dürr 
270e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
271e8649ecdSHerbert Dürr 
addPaintListener(const uno::Reference<awt::XPaintListener> & xListener)272e8649ecdSHerbert Dürr void SAL_CALL Window::addPaintListener( const uno::Reference< awt::XPaintListener >& xListener )
273e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
274e8649ecdSHerbert Dürr {
275e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
276e8649ecdSHerbert Dürr }
277e8649ecdSHerbert Dürr 
278e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
279e8649ecdSHerbert Dürr 
removePaintListener(const uno::Reference<awt::XPaintListener> & xListener)280e8649ecdSHerbert Dürr void SAL_CALL Window::removePaintListener( const uno::Reference< awt::XPaintListener >& xListener )
281e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
282e8649ecdSHerbert Dürr {
283e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
284e8649ecdSHerbert Dürr }
285e8649ecdSHerbert Dürr 
286e8649ecdSHerbert Dürr 
287e8649ecdSHerbert Dürr // XComponent
288e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
289e8649ecdSHerbert Dürr 
dispose()290e8649ecdSHerbert Dürr void SAL_CALL Window::dispose(  )
291e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
292e8649ecdSHerbert Dürr {
293e8649ecdSHerbert Dürr }
294e8649ecdSHerbert Dürr 
295e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
296e8649ecdSHerbert Dürr 
addEventListener(const uno::Reference<lang::XEventListener> & xListener)297e8649ecdSHerbert Dürr void SAL_CALL Window::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
298e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
299e8649ecdSHerbert Dürr {
300e8649ecdSHerbert Dürr     maListeners.addInterface( getCppuType( &xListener ), xListener );
301e8649ecdSHerbert Dürr }
302e8649ecdSHerbert Dürr 
303e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
304e8649ecdSHerbert Dürr 
removeEventListener(const uno::Reference<lang::XEventListener> & xListener)305e8649ecdSHerbert Dürr void SAL_CALL Window::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
306e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
307e8649ecdSHerbert Dürr {
308e8649ecdSHerbert Dürr     maListeners.removeInterface( getCppuType( &xListener ), xListener );
309e8649ecdSHerbert Dürr }
310e8649ecdSHerbert Dürr 
311e8649ecdSHerbert Dürr // XServiceInfo
312e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
313e8649ecdSHerbert Dürr 
getImplementationName()314e8649ecdSHerbert Dürr ::rtl::OUString SAL_CALL Window::getImplementationName(  )
315e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
316e8649ecdSHerbert Dürr {
317e8649ecdSHerbert Dürr     return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_MACAVF_WINDOW_IMPLEMENTATIONNAME ) );
318e8649ecdSHerbert Dürr }
319e8649ecdSHerbert Dürr 
320e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
321e8649ecdSHerbert Dürr 
supportsService(const::rtl::OUString & ServiceName)322e8649ecdSHerbert Dürr sal_Bool SAL_CALL Window::supportsService( const ::rtl::OUString& ServiceName )
323e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
324e8649ecdSHerbert Dürr {
325e8649ecdSHerbert Dürr     return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( AVMEDIA_MACAVF_WINDOW_SERVICENAME ) );
326e8649ecdSHerbert Dürr }
327e8649ecdSHerbert Dürr 
328e8649ecdSHerbert Dürr // ------------------------------------------------------------------------------
329e8649ecdSHerbert Dürr 
getSupportedServiceNames()330e8649ecdSHerbert Dürr uno::Sequence< ::rtl::OUString > SAL_CALL Window::getSupportedServiceNames(  )
331e8649ecdSHerbert Dürr     throw (uno::RuntimeException)
332e8649ecdSHerbert Dürr {
333e8649ecdSHerbert Dürr     uno::Sequence< ::rtl::OUString > aRet(1);
334e8649ecdSHerbert Dürr     aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( AVMEDIA_MACAVF_WINDOW_SERVICENAME ) );
335e8649ecdSHerbert Dürr 
336e8649ecdSHerbert Dürr     return aRet;
337e8649ecdSHerbert Dürr }
338e8649ecdSHerbert Dürr 
339e8649ecdSHerbert Dürr } // namespace macavf
340e8649ecdSHerbert Dürr } // namespace avmedia
341