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