blob: 21a072fbb5af881d1b0314013b38c80ad01bac71 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#include "UnityPrefix.h"
#if ENABLE_AUDIO_FMOD
#include "AudioSourceFilter.h"
IMPLEMENT_CLASS(AudioFilter)
IMPLEMENT_OBJECT_SERIALIZE (AudioFilter)
INSTANTIATE_TEMPLATE_TRANSFER (AudioFilter)
AudioFilter::~AudioFilter ()
{
Cleanup();
}
void AudioFilter::Cleanup()
{
if (m_DSP)
{
m_DSP->release();
m_DSP = NULL;
}
}
void AudioFilter::AddToManager()
{
if (!m_DSP)
Init();
Update();
Assert(m_DSP);
Assert(m_Type != FMOD_DSP_TYPE_UNKNOWN);
m_DSP->setBypass(false);
}
void AudioFilter::RemoveFromManager()
{
if (m_DSP)
m_DSP->setBypass(true);
}
void AudioFilter::AwakeFromLoad(AwakeFromLoadMode mode)
{
Super::AwakeFromLoad(mode);
Update();
}
void AudioFilter::Init()
{
if (m_DSP == NULL && m_Type != FMOD_DSP_TYPE_FORCEINT)
{
FMOD_RESULT result = GetAudioManager().GetFMODSystem()->createDSPByType(m_Type, &m_DSP);
Assert (result == FMOD_OK);
result = m_DSP->setBypass(!GetEnabled());
Assert (result == FMOD_OK);
}
}
FMOD::DSP* AudioFilter::GetDSP()
{
if (!m_DSP)
Init();
return m_DSP;
}
template<class TransferFunction>
void AudioFilter::Transfer (TransferFunction& transfer)
{
Super::Transfer (transfer);
}
#endif //ENABLE_AUDIO
|