diff options
Diffstat (limited to 'slideshow/source/engine/soundplayer.cxx')
-rw-r--r-- | slideshow/source/engine/soundplayer.cxx | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/slideshow/source/engine/soundplayer.cxx b/slideshow/source/engine/soundplayer.cxx deleted file mode 100644 index 0ee0310ab..000000000 --- a/slideshow/source/engine/soundplayer.cxx +++ /dev/null @@ -1,186 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_slideshow.hxx" - -#include <canvas/debug.hxx> -#include <tools/diagnose_ex.h> -#include <canvas/verbosetrace.hxx> - -#include <comphelper/anytostring.hxx> -#include <cppuhelper/exc_hlp.hxx> - -#include <com/sun/star/lang/XMultiComponentFactory.hpp> -#include <com/sun/star/lang/NoSupportException.hpp> -#include <com/sun/star/lang/XComponent.hdl> - -#include <tools/urlobj.hxx> - -#include <avmedia/mediawindow.hxx> - -#include "soundplayer.hxx" - -#include <algorithm> - -using namespace ::com::sun::star; - - -namespace slideshow -{ - namespace internal - { - // TODO(Q3): Move the whole SoundPlayer class to avmedia. - - boost::shared_ptr<SoundPlayer> SoundPlayer::create( - EventMultiplexer & rEventMultiplexer, - const ::rtl::OUString& rSoundURL, - const uno::Reference< uno::XComponentContext>& rComponentContext ) - { - boost::shared_ptr<SoundPlayer> pPlayer( - new SoundPlayer( rEventMultiplexer, - rSoundURL, - rComponentContext ) ); - rEventMultiplexer.addPauseHandler( pPlayer ); - pPlayer->mThis = pPlayer; - return pPlayer; - } - - bool SoundPlayer::handlePause( bool bPauseShow ) - { - return bPauseShow ? stopPlayback() : startPlayback(); - } - - void SoundPlayer::dispose() - { - if( mThis ) - { - mrEventMultiplexer.removePauseHandler( mThis ); - mThis.reset(); - } - - if( mxPlayer.is() ) - { - mxPlayer->stop(); - uno::Reference<lang::XComponent> xComponent( - mxPlayer, uno::UNO_QUERY ); - if( xComponent.is() ) - xComponent->dispose(); - mxPlayer.clear(); - } - } - - SoundPlayer::SoundPlayer( - EventMultiplexer & rEventMultiplexer, - const ::rtl::OUString& rSoundURL, - const uno::Reference< uno::XComponentContext>& rComponentContext ) - : mrEventMultiplexer(rEventMultiplexer), - mThis(), - mxPlayer() - { - ENSURE_OR_THROW( rComponentContext.is(), - "SoundPlayer::SoundPlayer(): Invalid component context" ); - - try - { - const INetURLObject aURL( rSoundURL ); - mxPlayer.set( avmedia::MediaWindow::createPlayer( - aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) ), - uno::UNO_QUERY); - } - catch( uno::RuntimeException& ) - { - throw; - } - catch( uno::Exception& ) - { - } - - if( !mxPlayer.is() ) - throw lang::NoSupportException( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - "No sound support for ") ) + rSoundURL, - uno::Reference<uno::XInterface>() ); - } - - SoundPlayer::~SoundPlayer() - { - try - { - dispose(); - } - catch (uno::Exception &) { - OSL_FAIL( rtl::OUStringToOString( - comphelper::anyToString( - cppu::getCaughtException() ), - RTL_TEXTENCODING_UTF8 ).getStr() ); - } - } - - double SoundPlayer::getDuration() const - { - if( !mxPlayer.is() ) - return 0.0; - - const double nDuration( mxPlayer->getDuration() ); - if( mxPlayer->isPlaying() ) - return ::std::max( 0.0, - nDuration - mxPlayer->getMediaTime() ); - else - return nDuration; - } - - bool SoundPlayer::startPlayback() - { - if( !mxPlayer.is() ) - return false; - - if( mxPlayer->isPlaying() ) - mxPlayer->stop(); - - mxPlayer->start(); - return true; - } - - bool SoundPlayer::stopPlayback() - { - if( mxPlayer.is() ) - mxPlayer->stop(); - - return true; - } - - void SoundPlayer::setPlaybackLoop( bool bLoop ) - { - if( mxPlayer.is() ) - mxPlayer->setPlaybackLoop( bLoop ); - } - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |