re3/src/audio/DMAudio.cpp

408 lines
7.2 KiB
C++
Raw Normal View History

2019-05-18 12:39:39 +02:00
#include "common.h"
2020-04-17 15:31:11 +02:00
2019-05-18 12:39:39 +02:00
#include "DMAudio.h"
2019-08-15 03:43:00 +02:00
#include "MusicManager.h"
#include "AudioManager.h"
#include "AudioScriptObject.h"
2019-08-15 03:43:00 +02:00
#include "sampman.h"
2019-05-18 12:39:39 +02:00
2020-04-17 07:54:14 +02:00
cDMAudio DMAudio;
2019-05-19 21:28:10 +02:00
2019-08-15 03:43:00 +02:00
void
cDMAudio::Initialise(void)
{
AudioManager.Initialise();
}
void
cDMAudio::Terminate(void)
{
AudioManager.Terminate();
}
void
cDMAudio::Service(void)
{
AudioManager.Service();
}
int32
cDMAudio::CreateEntity(eAudioType type, void *UID)
2019-08-15 03:43:00 +02:00
{
2019-08-27 20:50:59 +02:00
return AudioManager.CreateEntity(type, (CPhysical *)UID);
2019-08-15 03:43:00 +02:00
}
void
cDMAudio::DestroyEntity(int32 audioEntity)
{
AudioManager.DestroyEntity(audioEntity);
}
bool8
cDMAudio::GetEntityStatus(int32 audioEntity)
{
return AudioManager.GetEntityStatus(audioEntity);
}
2019-08-15 03:43:00 +02:00
void
2021-05-22 12:08:26 +02:00
cDMAudio::SetEntityStatus(int32 audioEntity, bool8 status)
2019-08-15 03:43:00 +02:00
{
AudioManager.SetEntityStatus(audioEntity, status);
}
void
cDMAudio::PlayOneShot(int32 audioEntity, uint16 oneShot, float volume)
{
AudioManager.PlayOneShot(audioEntity, oneShot, volume);
}
void
cDMAudio::DestroyAllGameCreatedEntities(void)
{
AudioManager.DestroyAllGameCreatedEntities();
}
2020-06-27 23:01:51 +02:00
void
2021-07-29 00:52:49 +02:00
cDMAudio::SetOutputMode(bool8 surround)
2020-06-27 23:01:51 +02:00
{
AudioManager.SetOutputMode(surround);
2020-06-27 23:01:51 +02:00
}
void
cDMAudio::SetMP3BoostVolume(uint8 volume)
{
uint8 vol = volume;
if (vol > MAX_VOLUME) vol = MAX_VOLUME;
AudioManager.SetMP3BoostVolume(vol);
}
2019-08-15 03:43:00 +02:00
void
cDMAudio::SetEffectsMasterVolume(uint8 volume)
{
uint8 vol = volume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
AudioManager.SetEffectsMasterVolume(vol);
}
void
cDMAudio::SetMusicMasterVolume(uint8 volume)
{
uint8 vol = volume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
AudioManager.SetMusicMasterVolume(vol);
}
void
cDMAudio::SetEffectsFadeVol(uint8 volume)
{
uint8 vol = volume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
AudioManager.SetEffectsFadeVol(vol);
2019-08-15 03:43:00 +02:00
}
void
cDMAudio::SetMusicFadeVol(uint8 volume)
{
uint8 vol = volume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
AudioManager.SetMusicFadeVol(vol);
2019-08-15 03:43:00 +02:00
}
uint8
cDMAudio::GetNum3DProvidersAvailable(void)
{
return AudioManager.GetNum3DProvidersAvailable();
}
char *
cDMAudio::Get3DProviderName(uint8 id)
{
return AudioManager.Get3DProviderName(id);
}
2020-05-04 19:33:48 +02:00
int8 cDMAudio::AutoDetect3DProviders(void)
{
return AudioManager.AutoDetect3DProviders();
2020-05-04 19:33:48 +02:00
}
2019-08-15 03:43:00 +02:00
int8
cDMAudio::GetCurrent3DProviderIndex(void)
{
return AudioManager.GetCurrent3DProviderIndex();
}
int8
cDMAudio::SetCurrent3DProvider(uint8 which)
{
return AudioManager.SetCurrent3DProvider(which);
}
void
cDMAudio::SetSpeakerConfig(int32 config)
{
AudioManager.SetSpeakerConfig(config);
}
2021-05-22 12:08:26 +02:00
bool8
2019-08-15 03:43:00 +02:00
cDMAudio::IsMP3RadioChannelAvailable(void)
{
return AudioManager.IsMP3RadioChannelAvailable();
}
void
cDMAudio::ReleaseDigitalHandle(void)
{
AudioManager.ReleaseDigitalHandle();
}
void
cDMAudio::ReacquireDigitalHandle(void)
{
AudioManager.ReacquireDigitalHandle();
}
void
2021-05-22 12:08:26 +02:00
cDMAudio::SetDynamicAcousticModelingStatus(bool8 status)
2019-08-15 03:43:00 +02:00
{
2021-08-18 14:49:06 +02:00
#ifdef AUDIO_REFLECTIONS
2019-08-15 03:43:00 +02:00
AudioManager.SetDynamicAcousticModelingStatus(status);
2021-08-18 14:49:06 +02:00
#endif
2019-08-15 03:43:00 +02:00
}
2021-05-22 12:08:26 +02:00
bool8
2019-08-15 03:43:00 +02:00
cDMAudio::CheckForAnAudioFileOnCD(void)
{
return AudioManager.CheckForAnAudioFileOnCD();
}
char
cDMAudio::GetCDAudioDriveLetter(void)
{
return AudioManager.GetCDAudioDriveLetter();
}
2021-05-22 12:08:26 +02:00
bool8
2019-08-15 03:43:00 +02:00
cDMAudio::IsAudioInitialised(void)
{
return AudioManager.IsAudioInitialised();
}
void
cDMAudio::ResetPoliceRadio()
{
AudioManager.ResetPoliceRadio();
}
2019-08-15 03:43:00 +02:00
void
2019-08-27 22:46:41 +02:00
cDMAudio::ReportCrime(eCrimeType crime, const CVector &pos)
2019-08-15 03:43:00 +02:00
{
2020-10-22 11:38:09 +02:00
AudioManager.ReportCrime(crime, pos);
2019-08-15 03:43:00 +02:00
}
int32
cDMAudio::CreateLoopingScriptObject(cAudioScriptObject *scriptObject)
{
2020-08-20 13:47:53 +02:00
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
2019-08-15 03:43:00 +02:00
if ( AEHANDLE_IS_OK(audioEntity) )
2021-05-22 12:08:26 +02:00
AudioManager.SetEntityStatus(audioEntity, TRUE);
2019-08-15 03:43:00 +02:00
return audioEntity;
}
void
cDMAudio::DestroyLoopingScriptObject(int32 audioEntity)
{
AudioManager.DestroyEntity(audioEntity);
}
void
cDMAudio::CreateOneShotScriptObject(cAudioScriptObject *scriptObject)
{
2020-08-20 13:47:53 +02:00
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
2019-08-15 03:43:00 +02:00
if ( AEHANDLE_IS_OK(audioEntity) )
{
2021-05-22 12:08:26 +02:00
AudioManager.SetEntityStatus(audioEntity, TRUE);
2019-08-15 03:43:00 +02:00
AudioManager.PlayOneShot(audioEntity, scriptObject->AudioId, 0.0f);
}
}
void
cDMAudio::PlaySuspectLastSeen(float x, float y, float z)
{
AudioManager.PlaySuspectLastSeen(x, y, z);
}
void
cDMAudio::ReportCollision(CEntity *entityA, CEntity *entityB, uint8 surfaceTypeA, uint8 surfaceTypeB, float collisionPower, float velocity)
{
AudioManager.ReportCollision(entityA, entityB, surfaceTypeA, surfaceTypeB, collisionPower, velocity);
}
void
cDMAudio::PlayFrontEndSound(uint16 frontend, uint32 volume)
{
AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, frontend, (float)volume);
}
void
2020-10-25 08:42:24 +01:00
cDMAudio::PlayRadioAnnouncement(uint32 announcement)
2019-08-15 03:43:00 +02:00
{
MusicManager.PlayAnnouncement(announcement);
}
void
2021-05-22 12:08:26 +02:00
cDMAudio::PlayFrontEndTrack(uint32 track, bool8 frontendFlag)
2019-08-15 03:43:00 +02:00
{
MusicManager.PlayFrontEndTrack(track, frontendFlag);
}
void
cDMAudio::StopFrontEndTrack(void)
{
MusicManager.StopFrontEndTrack();
}
void
cDMAudio::ResetTimers(uint32 time)
{
AudioManager.ResetTimers(time);
}
void
cDMAudio::ChangeMusicMode(uint8 mode)
{
MusicManager.ChangeMusicMode(mode);
}
void
2020-10-25 08:42:24 +01:00
cDMAudio::PreloadCutSceneMusic(uint32 track)
2019-08-15 03:43:00 +02:00
{
MusicManager.PreloadCutSceneMusic(track);
}
void
cDMAudio::PlayPreloadedCutSceneMusic(void)
{
MusicManager.PlayPreloadedCutSceneMusic();
}
void
cDMAudio::StopCutSceneMusic(void)
{
MusicManager.StopCutSceneMusic();
}
void
2020-06-08 09:34:31 +02:00
cDMAudio::PreloadMissionAudio(uint8 slot, Const char *missionAudio)
2019-08-15 03:43:00 +02:00
{
2020-06-08 09:34:31 +02:00
AudioManager.PreloadMissionAudio(slot, missionAudio);
2019-08-15 03:43:00 +02:00
}
uint8
2020-06-08 09:34:31 +02:00
cDMAudio::GetMissionAudioLoadingStatus(uint8 slot)
2019-08-15 03:43:00 +02:00
{
2020-06-08 09:34:31 +02:00
return AudioManager.GetMissionAudioLoadingStatus(slot);
2019-08-15 03:43:00 +02:00
}
void
2020-06-08 09:34:31 +02:00
cDMAudio::SetMissionAudioLocation(uint8 slot, float x, float y, float z)
2019-08-15 03:43:00 +02:00
{
2020-06-08 09:34:31 +02:00
AudioManager.SetMissionAudioLocation(slot, x, y, z);
2019-08-15 03:43:00 +02:00
}
void
2020-06-08 09:34:31 +02:00
cDMAudio::PlayLoadedMissionAudio(uint8 slot)
2019-08-15 03:43:00 +02:00
{
2020-06-08 09:34:31 +02:00
AudioManager.PlayLoadedMissionAudio(slot);
2019-08-15 03:43:00 +02:00
}
2021-07-29 00:52:49 +02:00
bool8
cDMAudio::IsMissionAudioSamplePlaying(uint8 slot)
{
return AudioManager.IsMissionAudioSamplePlaying(slot);
}
2021-05-22 12:08:26 +02:00
bool8
2020-06-08 09:34:31 +02:00
cDMAudio::IsMissionAudioSampleFinished(uint8 slot)
2019-08-15 03:43:00 +02:00
{
2020-06-08 09:34:31 +02:00
return AudioManager.IsMissionAudioSampleFinished(slot);
2019-08-15 03:43:00 +02:00
}
void
2020-06-08 09:34:31 +02:00
cDMAudio::ClearMissionAudio(uint8 slot)
2019-08-15 03:43:00 +02:00
{
2020-06-08 09:34:31 +02:00
AudioManager.ClearMissionAudio(slot);
2019-08-15 03:43:00 +02:00
}
2021-07-29 00:52:49 +02:00
const char *
cDMAudio::GetMissionAudioLoadedLabel(uint8 slot)
{
return AudioManager.GetMissionAudioLoadedLabel(slot);
}
2020-02-06 18:35:24 +01:00
uint8
2019-08-15 03:43:00 +02:00
cDMAudio::GetRadioInCar(void)
{
return MusicManager.GetRadioInCar();
}
void
cDMAudio::SetRadioInCar(uint32 radio)
{
MusicManager.SetRadioInCar(radio);
}
void
2020-10-25 08:42:24 +01:00
cDMAudio::SetRadioChannel(uint32 radio, int32 pos)
2019-08-15 03:43:00 +02:00
{
MusicManager.SetRadioChannelByScript(radio, pos);
}
void
2021-05-22 12:08:26 +02:00
cDMAudio::SetStartingTrackPositions(bool8 isStartGame)
{
MusicManager.SetStartingTrackPositions(isStartGame);
}
float *
cDMAudio::GetListenTimeArray()
{
return MusicManager.GetListenTimeArray();
}
uint32
cDMAudio::GetFavouriteRadioStation()
{
return MusicManager.GetFavouriteRadioStation();
}
int32
cDMAudio::GetRadioPosition(uint32 station)
{
return MusicManager.GetRadioPosition(station);
}
void
2021-05-22 12:08:26 +02:00
cDMAudio::SetPedTalkingStatus(CPed *ped, bool8 status)
{
return AudioManager.SetPedTalkingStatus(ped, status);
}
void
2020-10-25 08:42:24 +01:00
cDMAudio::SetPlayersMood(uint8 mood, uint32 time)
{
return AudioManager.SetPlayersMood(mood, time);
}
void
2021-05-22 12:08:26 +02:00
cDMAudio::ShutUpPlayerTalking(bool8 state)
{
AudioManager.m_bIsPlayerShutUp = state;
}