2019-05-18 10:39:39 +00:00
|
|
|
#include "common.h"
|
2020-04-17 13:31:11 +00:00
|
|
|
|
2019-05-18 10:39:39 +00:00
|
|
|
#include "DMAudio.h"
|
2019-08-15 01:43:00 +00:00
|
|
|
#include "MusicManager.h"
|
|
|
|
#include "AudioManager.h"
|
2020-01-25 10:41:22 +00:00
|
|
|
#include "AudioScriptObject.h"
|
2019-08-15 01:43:00 +00:00
|
|
|
#include "sampman.h"
|
2020-05-04 17:33:48 +00:00
|
|
|
#include "Text.h"
|
2020-05-11 02:55:57 +00:00
|
|
|
#include "crossplatform.h"
|
2019-05-18 10:39:39 +00:00
|
|
|
|
2020-04-17 05:54:14 +00:00
|
|
|
cDMAudio DMAudio;
|
2019-05-19 19:28:10 +00:00
|
|
|
|
2019-08-15 01:43:00 +00:00
|
|
|
void
|
|
|
|
cDMAudio::Initialise(void)
|
|
|
|
{
|
|
|
|
AudioManager.Initialise();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::Terminate(void)
|
|
|
|
{
|
|
|
|
AudioManager.Terminate();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::Service(void)
|
|
|
|
{
|
|
|
|
AudioManager.Service();
|
|
|
|
}
|
|
|
|
|
|
|
|
int32
|
2020-05-16 17:29:13 +00:00
|
|
|
cDMAudio::CreateEntity(eAudioType type, void *UID)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2019-08-27 18:50:59 +00:00
|
|
|
return AudioManager.CreateEntity(type, (CPhysical *)UID);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::DestroyEntity(int32 audioEntity)
|
|
|
|
{
|
|
|
|
AudioManager.DestroyEntity(audioEntity);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetEntityStatus(int32 audioEntity, uint8 status)
|
|
|
|
{
|
|
|
|
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 21:01:51 +00:00
|
|
|
void
|
|
|
|
cDMAudio::SetMonoMode(uint8 mono)
|
|
|
|
{
|
|
|
|
AudioManager.SetMonoMode(mono);
|
|
|
|
}
|
|
|
|
|
2020-09-09 16:37:44 +00:00
|
|
|
void
|
|
|
|
cDMAudio::SetMP3BoostVolume(uint8 volume)
|
|
|
|
{
|
|
|
|
uint8 vol = volume;
|
|
|
|
if (vol > MAX_VOLUME) vol = MAX_VOLUME;
|
|
|
|
|
|
|
|
AudioManager.SetMP3BoostVolume(vol);
|
|
|
|
}
|
|
|
|
|
2019-08-15 01:43:00 +00: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;
|
|
|
|
|
2020-05-16 17:29:13 +00:00
|
|
|
AudioManager.SetEffectsFadeVol(vol);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetMusicFadeVol(uint8 volume)
|
|
|
|
{
|
|
|
|
uint8 vol = volume;
|
|
|
|
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
|
|
|
|
|
2020-05-16 17:29:13 +00:00
|
|
|
AudioManager.SetMusicFadeVol(vol);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
uint8
|
|
|
|
cDMAudio::GetNum3DProvidersAvailable(void)
|
|
|
|
{
|
|
|
|
return AudioManager.GetNum3DProvidersAvailable();
|
|
|
|
}
|
|
|
|
|
|
|
|
char *
|
|
|
|
cDMAudio::Get3DProviderName(uint8 id)
|
|
|
|
{
|
|
|
|
return AudioManager.Get3DProviderName(id);
|
|
|
|
}
|
|
|
|
|
2020-05-04 17:33:48 +00:00
|
|
|
int8 cDMAudio::AutoDetect3DProviders(void)
|
|
|
|
{
|
2020-09-09 16:37:44 +00:00
|
|
|
return AudioManager.AutoDetect3DProviders();
|
2020-05-04 17:33:48 +00:00
|
|
|
}
|
|
|
|
|
2019-08-15 01:43:00 +00: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);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
|
|
cDMAudio::IsMP3RadioChannelAvailable(void)
|
|
|
|
{
|
|
|
|
return AudioManager.IsMP3RadioChannelAvailable();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::ReleaseDigitalHandle(void)
|
|
|
|
{
|
|
|
|
AudioManager.ReleaseDigitalHandle();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::ReacquireDigitalHandle(void)
|
|
|
|
{
|
|
|
|
AudioManager.ReacquireDigitalHandle();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetDynamicAcousticModelingStatus(uint8 status)
|
|
|
|
{
|
|
|
|
AudioManager.SetDynamicAcousticModelingStatus(status);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
|
|
cDMAudio::CheckForAnAudioFileOnCD(void)
|
|
|
|
{
|
|
|
|
return AudioManager.CheckForAnAudioFileOnCD();
|
|
|
|
}
|
|
|
|
|
|
|
|
char
|
|
|
|
cDMAudio::GetCDAudioDriveLetter(void)
|
|
|
|
{
|
|
|
|
return AudioManager.GetCDAudioDriveLetter();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
|
|
cDMAudio::IsAudioInitialised(void)
|
|
|
|
{
|
|
|
|
return AudioManager.IsAudioInitialised();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2019-08-27 20:46:41 +00:00
|
|
|
cDMAudio::ReportCrime(eCrimeType crime, const CVector &pos)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2019-08-27 18:50:59 +00:00
|
|
|
AudioManager.ReportCrime(crime, &pos);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int32
|
|
|
|
cDMAudio::CreateLoopingScriptObject(cAudioScriptObject *scriptObject)
|
|
|
|
{
|
2020-08-20 11:47:53 +00:00
|
|
|
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
|
2019-08-15 01:43:00 +00:00
|
|
|
|
|
|
|
if ( AEHANDLE_IS_OK(audioEntity) )
|
|
|
|
AudioManager.SetEntityStatus(audioEntity, true);
|
|
|
|
|
|
|
|
return audioEntity;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::DestroyLoopingScriptObject(int32 audioEntity)
|
|
|
|
{
|
|
|
|
AudioManager.DestroyEntity(audioEntity);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::CreateOneShotScriptObject(cAudioScriptObject *scriptObject)
|
|
|
|
{
|
2020-08-20 11:47:53 +00:00
|
|
|
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
|
2019-08-15 01:43:00 +00:00
|
|
|
|
|
|
|
if ( AEHANDLE_IS_OK(audioEntity) )
|
|
|
|
{
|
|
|
|
AudioManager.SetEntityStatus(audioEntity, true);
|
|
|
|
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
|
|
|
|
cDMAudio::PlayRadioAnnouncement(uint8 announcement)
|
|
|
|
{
|
|
|
|
MusicManager.PlayAnnouncement(announcement);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::PlayFrontEndTrack(uint8 track, uint8 frontendFlag)
|
|
|
|
{
|
|
|
|
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
|
|
|
|
cDMAudio::PreloadCutSceneMusic(uint8 track)
|
|
|
|
{
|
|
|
|
MusicManager.PreloadCutSceneMusic(track);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::PlayPreloadedCutSceneMusic(void)
|
|
|
|
{
|
|
|
|
MusicManager.PlayPreloadedCutSceneMusic();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::StopCutSceneMusic(void)
|
|
|
|
{
|
|
|
|
MusicManager.StopCutSceneMusic();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2020-06-08 07:34:31 +00:00
|
|
|
cDMAudio::PreloadMissionAudio(uint8 slot, Const char *missionAudio)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2020-06-08 07:34:31 +00:00
|
|
|
AudioManager.PreloadMissionAudio(slot, missionAudio);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
uint8
|
2020-06-08 07:34:31 +00:00
|
|
|
cDMAudio::GetMissionAudioLoadingStatus(uint8 slot)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2020-06-08 07:34:31 +00:00
|
|
|
return AudioManager.GetMissionAudioLoadingStatus(slot);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2020-06-08 07:34:31 +00:00
|
|
|
cDMAudio::SetMissionAudioLocation(uint8 slot, float x, float y, float z)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2020-06-08 07:34:31 +00:00
|
|
|
AudioManager.SetMissionAudioLocation(slot, x, y, z);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2020-06-08 07:34:31 +00:00
|
|
|
cDMAudio::PlayLoadedMissionAudio(uint8 slot)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2020-06-08 07:34:31 +00:00
|
|
|
AudioManager.PlayLoadedMissionAudio(slot);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool
|
2020-06-08 07:34:31 +00:00
|
|
|
cDMAudio::IsMissionAudioSampleFinished(uint8 slot)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2020-06-08 07:34:31 +00:00
|
|
|
return AudioManager.IsMissionAudioSampleFinished(slot);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2020-06-08 07:34:31 +00:00
|
|
|
cDMAudio::ClearMissionAudio(uint8 slot)
|
2019-08-15 01:43:00 +00:00
|
|
|
{
|
2020-06-08 07:34:31 +00:00
|
|
|
AudioManager.ClearMissionAudio(slot);
|
2019-08-15 01:43:00 +00:00
|
|
|
}
|
|
|
|
|
2020-02-06 17:35:24 +00:00
|
|
|
uint8
|
2019-08-15 01:43:00 +00:00
|
|
|
cDMAudio::GetRadioInCar(void)
|
|
|
|
{
|
|
|
|
return MusicManager.GetRadioInCar();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetRadioInCar(uint32 radio)
|
|
|
|
{
|
|
|
|
MusicManager.SetRadioInCar(radio);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetRadioChannel(int8 radio, int32 pos)
|
|
|
|
{
|
|
|
|
MusicManager.SetRadioChannelByScript(radio, pos);
|
|
|
|
}
|
2020-09-09 16:37:44 +00:00
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetStartingTrackPositions(uint8 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
|
|
|
|
cDMAudio::SetPedTalkingStatus(CPed *ped, uint8 status)
|
|
|
|
{
|
|
|
|
return AudioManager.SetPedTalkingStatus(ped, status);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::SetPlayersMood(uint8 mood, int32 time)
|
|
|
|
{
|
|
|
|
return AudioManager.SetPlayersMood(mood, time);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
cDMAudio::ShutUpPlayerTalking(uint8 state)
|
|
|
|
{
|
|
|
|
AudioManager.m_bIsPlayerShutUp = state;
|
|
|
|
}
|