| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #include "Audio/BsAudioSource.h"
- #include "Audio/BsAudio.h"
- #include "Math/BsMath.h"
- #include "Private/RTTI/BsAudioSourceRTTI.h"
- namespace bs
- {
- AudioSource::AudioSource()
- : mVelocity(BsZero), mVolume(1.0f), mPitch(1.0f), mLoop(false), mPriority(0), mMinDistance(1.0f), mAttenuation(1.0f)
- {
- }
- void AudioSource::setClip(const HAudioClip& clip)
- {
- mAudioClip = clip;
- markListenerResourcesDirty();
- }
- void AudioSource::setVelocity(const Vector3& velocity)
- {
- mVelocity = velocity;
- }
- void AudioSource::setVolume(float volume)
- {
- mVolume = Math::clamp01(volume);
- }
- void AudioSource::setPitch(float pitch)
- {
- mPitch = pitch;
- }
- void AudioSource::setIsLooping(bool loop)
- {
- mLoop = loop;
- }
- void AudioSource::setPriority(INT32 priority)
- {
- mPriority = priority;
- }
- void AudioSource::setMinDistance(float distance)
- {
- mMinDistance = distance;
- }
- void AudioSource::setAttenuation(float attenuation)
- {
- mAttenuation = attenuation;
- }
- SPtr<AudioSource> AudioSource::create()
- {
- return gAudio().createSource();
- }
- void AudioSource::getListenerResources(Vector<HResource>& resources)
- {
- if (mAudioClip != nullptr)
- resources.push_back(mAudioClip);
- }
- void AudioSource::notifyResourceChanged(const HResource& resource)
- {
- onClipChanged();
- }
- RTTITypeBase* AudioSource::getRTTIStatic()
- {
- return AudioSourceRTTI::instance();
- }
- RTTITypeBase* AudioSource::getRTTI() const
- {
- return AudioSource::getRTTIStatic();
- }
- }
|