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