Anne Marije v/d Meer
11 years ago
committed by
Florian Meißner
9 changed files with 304 additions and 31 deletions
@ -0,0 +1,69 @@
|
||||
#include <iostream> |
||||
#include <fstream> |
||||
|
||||
#include "hsResMgr.h" |
||||
#include "plFormat.h" |
||||
|
||||
#include "plDSoundBuffer.h" |
||||
|
||||
#include "plWin32VideoSound.h" |
||||
|
||||
static int uniqueID = 0; |
||||
plWin32VideoSound::plWin32VideoSound() : plWin32Sound() |
||||
{ |
||||
plWAVHeader header; |
||||
header.fFormatTag = 0x1; |
||||
header.fNumChannels = 1; |
||||
header.fBitsPerSample = 16; |
||||
fDSoundBuffer = new plDSoundBuffer(0, header, false, false, false, true); |
||||
fDSoundBuffer->SetupVoiceSource(); |
||||
uniqueID++; |
||||
hsgResMgr::ResMgr()->NewKey(plFormat("videosound#{}", uniqueID), this, plLocation::kGlobalFixedLoc); |
||||
fSoftVolume = 1.0f; |
||||
} |
||||
|
||||
plWin32VideoSound::~plWin32VideoSound() |
||||
{ |
||||
delete fDSoundBuffer; |
||||
} |
||||
|
||||
void plWin32VideoSound::UpdateSoundBuffer(unsigned char* buffer, size_t size) |
||||
{ |
||||
unsigned int bufferID = 0; |
||||
|
||||
if (fDSoundBuffer->GetAvailableBufferId(&bufferID)) |
||||
{ |
||||
fDSoundBuffer->VoiceFillBuffer(buffer, size, bufferID); |
||||
IActuallyPlay(); |
||||
} |
||||
} |
||||
|
||||
void plWin32VideoSound::IDerivedActuallyPlay() |
||||
{ |
||||
if (!fDSoundBuffer->IsPlaying()) |
||||
fDSoundBuffer->Play(); |
||||
} |
||||
|
||||
bool plWin32VideoSound::LoadSound(bool is3D) |
||||
{ |
||||
hsAssert(false, "unimplemented cause unnecessary for this class"); |
||||
return false; |
||||
} |
||||
|
||||
void plWin32VideoSound::SetStartPos(unsigned bytes) |
||||
{ |
||||
|
||||
//do nothing
|
||||
hsAssert(false, "unimplemented cause unnecessary for this class"); |
||||
} |
||||
|
||||
float plWin32VideoSound::GetActualTimeSec() |
||||
{ |
||||
hsAssert(false, "unimplemented cause unnecessary for this class"); |
||||
return 0; |
||||
} |
||||
|
||||
void plWin32VideoSound::ISetActualTime(double t) |
||||
{ |
||||
hsAssert(false, "unimplemented cause unnecessary for this class"); |
||||
} |
@ -0,0 +1,63 @@
|
||||
/*==LICENSE==*
|
||||
|
||||
CyanWorlds.com Engine - MMOG client, server and tools |
||||
Copyright (C) 2011 Cyan Worlds, Inc. |
||||
|
||||
This program 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 3 of the License, or |
||||
(at your option) any later version. |
||||
|
||||
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Additional permissions under GNU GPL version 3 section 7 |
||||
|
||||
If you modify this Program, or any covered work, by linking or |
||||
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, |
||||
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent |
||||
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK |
||||
(or a modified version of those libraries), |
||||
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, |
||||
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG |
||||
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the |
||||
licensors of this Program grant you additional |
||||
permission to convey the resulting work. Corresponding Source for a |
||||
non-source form of such a combination shall include the source code for |
||||
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered |
||||
work. |
||||
|
||||
You can contact Cyan Worlds, Inc. by email legal@cyan.com |
||||
or by snail mail at: |
||||
Cyan Worlds, Inc. |
||||
14617 N Newport Hwy |
||||
Mead, WA 99021 |
||||
|
||||
*==LICENSE==*/ |
||||
#ifndef plWin32VideoSound_h |
||||
#define plWin32VideoSound_h |
||||
|
||||
#include "plWin32Sound.h" |
||||
|
||||
class plWin32VideoSound : public plWin32Sound |
||||
{ |
||||
public: |
||||
plWin32VideoSound(); |
||||
virtual ~plWin32VideoSound(); |
||||
|
||||
void UpdateSoundBuffer(unsigned char* buffer, size_t size); |
||||
|
||||
protected: |
||||
void IDerivedActuallyPlay(void); |
||||
bool LoadSound(bool is3D); |
||||
void SetStartPos(unsigned bytes); |
||||
float GetActualTimeSec(); |
||||
void ISetActualTime(double t); |
||||
|
||||
}; |
||||
#endif |
@ -0,0 +1,38 @@
|
||||
if(Opus_INCLUDE_DIR AND Opus_LIBRARY) |
||||
set(Opus_FIND_QUIETLY TRUE) |
||||
endif() |
||||
|
||||
|
||||
find_path(Opus_INCLUDE_DIR opus.h |
||||
/usr/local/include |
||||
/usr/include |
||||
) |
||||
|
||||
find_library(Opus_LIBRARY NAMES opus |
||||
PATHS /usr/local/lib /usr/lib) |
||||
|
||||
find_library(Celt_LIBRARY NAMES celt |
||||
PATHS /usr/local/lib /usr/lib) |
||||
|
||||
find_library(Silk_LIBRARY NAMES silk_common |
||||
PATHS /usr/local/lib /usr/lib) |
||||
|
||||
set(Opus_LIBRARIES |
||||
${Opus_LIBRARY} |
||||
${Celt_LIBRARY} |
||||
${Silk_LIBRARY}) |
||||
|
||||
|
||||
if(Opus_INCLUDE_DIR AND Opus_LIBRARY) |
||||
set(Opus_FOUND TRUE) |
||||
endif() |
||||
|
||||
if (Opus_FOUND) |
||||
if(NOT Opus_FIND_QUIETLY) |
||||
message(STATUS "Found libopus: ${Opus_INCLUDE_DIR}") |
||||
endif() |
||||
else() |
||||
if(Opus_FIND_REQUIRED) |
||||
message(FATAL_ERROR "Could not find libopus") |
||||
endif() |
||||
endif() |
Loading…
Reference in new issue