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