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