xref: /trunk/main/avmedia/source/macavf/macavf_player.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
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 #ifndef MACAVF_PLAYER_HXX
24e8649ecdSHerbert Dürr #define MACAVF_PLAYER_HXX
25e8649ecdSHerbert Dürr 
26e8649ecdSHerbert Dürr #include <osl/conditn.h>
27e8649ecdSHerbert Dürr #include "macavf_common.hxx"
28e8649ecdSHerbert Dürr 
29e8649ecdSHerbert Dürr #include "com/sun/star/media/XPlayer.hdl"
30e8649ecdSHerbert Dürr 
31e8649ecdSHerbert Dürr namespace avmedia { namespace macavf {
32e8649ecdSHerbert Dürr 
33e8649ecdSHerbert Dürr /*
34e8649ecdSHerbert Dürr // ----------
35e8649ecdSHerbert Dürr // - Player -
36e8649ecdSHerbert Dürr // ----------
37e8649ecdSHerbert Dürr */
38e8649ecdSHerbert Dürr 
39e8649ecdSHerbert Dürr class Player
40e8649ecdSHerbert Dürr :   public MacAVObserverHandler
41e8649ecdSHerbert Dürr ,   public ::cppu::WeakImplHelper2< ::com::sun::star::media::XPlayer,
42e8649ecdSHerbert Dürr                                     ::com::sun::star::lang::XServiceInfo >
43e8649ecdSHerbert Dürr {
44e8649ecdSHerbert Dürr public:
45*46880872SDamjan Jovanovic     explicit Player( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& );
46e8649ecdSHerbert Dürr     virtual  ~Player();
47e8649ecdSHerbert Dürr 
48e8649ecdSHerbert Dürr     bool create( const ::rtl::OUString& rURL );
4932322404SHerbert Dürr     bool create( AVAsset* );
50e8649ecdSHerbert Dürr 
51e8649ecdSHerbert Dürr     // XPlayer
52e8649ecdSHerbert Dürr     virtual void SAL_CALL start() throw (::com::sun::star::uno::RuntimeException);
53e8649ecdSHerbert Dürr     virtual void SAL_CALL stop() throw (::com::sun::star::uno::RuntimeException);
54e8649ecdSHerbert Dürr     virtual sal_Bool SAL_CALL isPlaying() throw (::com::sun::star::uno::RuntimeException);
55e8649ecdSHerbert Dürr     virtual double SAL_CALL getDuration() throw (::com::sun::star::uno::RuntimeException);
56e8649ecdSHerbert Dürr     virtual void SAL_CALL setMediaTime( double fTime ) throw (::com::sun::star::uno::RuntimeException);
57e8649ecdSHerbert Dürr     virtual double SAL_CALL getMediaTime() throw (::com::sun::star::uno::RuntimeException);
58e8649ecdSHerbert Dürr     virtual void SAL_CALL setStopTime( double fTime ) throw (::com::sun::star::uno::RuntimeException);
59e8649ecdSHerbert Dürr     virtual double SAL_CALL getStopTime() throw (::com::sun::star::uno::RuntimeException);
60e8649ecdSHerbert Dürr     virtual void SAL_CALL setRate( double fRate ) throw (::com::sun::star::uno::RuntimeException);
61e8649ecdSHerbert Dürr     virtual double SAL_CALL getRate() throw (::com::sun::star::uno::RuntimeException);
62e8649ecdSHerbert Dürr     virtual void SAL_CALL setPlaybackLoop( sal_Bool bSet ) throw (::com::sun::star::uno::RuntimeException);
63e8649ecdSHerbert Dürr     virtual sal_Bool SAL_CALL isPlaybackLoop() throw (::com::sun::star::uno::RuntimeException);
64e8649ecdSHerbert Dürr     virtual void SAL_CALL setMute( sal_Bool bSet ) throw (::com::sun::star::uno::RuntimeException);
65e8649ecdSHerbert Dürr     virtual sal_Bool SAL_CALL isMute() throw (::com::sun::star::uno::RuntimeException);
66e8649ecdSHerbert Dürr     virtual void SAL_CALL setVolumeDB( sal_Int16 nVolumeDB ) throw (::com::sun::star::uno::RuntimeException);
67e8649ecdSHerbert Dürr     virtual sal_Int16 SAL_CALL getVolumeDB() throw (::com::sun::star::uno::RuntimeException);
68e8649ecdSHerbert Dürr     virtual ::com::sun::star::awt::Size SAL_CALL getPreferredPlayerWindowSize(  ) throw (::com::sun::star::uno::RuntimeException);
69e8649ecdSHerbert Dürr     virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayerWindow > SAL_CALL createPlayerWindow( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::RuntimeException);
70e8649ecdSHerbert Dürr     virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XFrameGrabber > SAL_CALL createFrameGrabber(  ) throw (::com::sun::star::uno::RuntimeException);
71e8649ecdSHerbert Dürr     // XServiceInfo
72e8649ecdSHerbert Dürr     virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
73e8649ecdSHerbert Dürr     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
74e8649ecdSHerbert Dürr     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
75e8649ecdSHerbert Dürr 
getAVPlayer() const76e8649ecdSHerbert Dürr     AVPlayer* getAVPlayer() const { return mpPlayer; }
77e8649ecdSHerbert Dürr     virtual bool handleObservation( NSString* pKeyPath );
78e8649ecdSHerbert Dürr 
79e8649ecdSHerbert Dürr private:
80*46880872SDamjan Jovanovic     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mxContext;
81e8649ecdSHerbert Dürr 
82e8649ecdSHerbert Dürr     AVPlayer*           mpPlayer;
83e8649ecdSHerbert Dürr 
84e8649ecdSHerbert Dürr     float               mfUnmutedVolume;
85e8649ecdSHerbert Dürr     double              mfStopTime;
86e8649ecdSHerbert Dürr 
87e8649ecdSHerbert Dürr     bool                mbMuted;
88e8649ecdSHerbert Dürr     bool                mbLooping;
89e8649ecdSHerbert Dürr };
90e8649ecdSHerbert Dürr 
91e8649ecdSHerbert Dürr } // namespace macavf
92e8649ecdSHerbert Dürr } // namespace avmedia
93e8649ecdSHerbert Dürr 
94e8649ecdSHerbert Dürr #endif // MACAVF_PLAYER_HXX
95