diff options
author | Eugene Sandulenko | 2010-07-29 19:53:02 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-10-12 21:38:20 +0000 |
commit | a683a420a9e43705c972b5e74d55e319729e1a81 (patch) | |
tree | bde6e4abd417bdfaec120aa951da9a19be36b654 /engines/sword25/fmv/oggtheora/vorbisstate.cpp | |
parent | 7723d91c957d07205c51be32498d45cd0a78568f (diff) | |
download | scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.tar.gz scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.tar.bz2 scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.zip |
SWORD25: Importing original sources
svn-id: r53171
Diffstat (limited to 'engines/sword25/fmv/oggtheora/vorbisstate.cpp')
-rwxr-xr-x | engines/sword25/fmv/oggtheora/vorbisstate.cpp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/engines/sword25/fmv/oggtheora/vorbisstate.cpp b/engines/sword25/fmv/oggtheora/vorbisstate.cpp new file mode 100755 index 0000000000..683b6fd0d7 --- /dev/null +++ b/engines/sword25/fmv/oggtheora/vorbisstate.cpp @@ -0,0 +1,97 @@ +// ----------------------------------------------------------------------------- +// This file is part of Broken Sword 2.5 +// Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdörfer +// +// Broken Sword 2.5 is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Broken Sword 2.5 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Broken Sword 2.5; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// Includes +// ----------------------------------------------------------------------------- + +#include "vorbisstate.h" + +// ----------------------------------------------------------------------------- + +BS_VorbisState::BS_VorbisState() : + m_DSPStateInitialized(false), + m_BlockInitialized(false) +{ + vorbis_info_init(&m_Info); + vorbis_comment_init(&m_Comment); +} + +// ----------------------------------------------------------------------------- + +BS_VorbisState::~BS_VorbisState() +{ + if (m_BlockInitialized) vorbis_block_clear(&m_Block); + if (m_DSPStateInitialized) vorbis_dsp_clear(&m_DSPState); + vorbis_comment_clear(&m_Comment); + vorbis_info_clear(&m_Info); +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::SynthesisHeaderIn(ogg_packet * OggPacketPtr) +{ + return vorbis_synthesis_headerin(&m_Info, &m_Comment, OggPacketPtr); +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::SynthesisInit() +{ + int Result = vorbis_synthesis_init(&m_DSPState, &m_Info); + m_DSPStateInitialized = (Result == 0); + return Result; +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::BlockInit() +{ + int Result = vorbis_block_init(&m_DSPState, &m_Block); + m_BlockInitialized = (Result == 0); + return Result; +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::SynthesisPCMout(float *** PCM) +{ + return vorbis_synthesis_pcmout(&m_DSPState, PCM); +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::SynthesisRead(int Samples) +{ + return vorbis_synthesis_read(&m_DSPState, Samples); +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::Synthesis(ogg_packet * OggPacketPtr) +{ + return vorbis_synthesis(&m_Block, OggPacketPtr); +} + +// ----------------------------------------------------------------------------- + +int BS_VorbisState::SynthesisBlockIn() +{ + return vorbis_synthesis_blockin(&m_DSPState, &m_Block); +} |