/// <summary> /// Отправить сообщение "сотруднику" /// </summary> /// <param name="parSoundManagerMessage">Сообщение</param> /// <param name="parColleague">Целевой "сотрудник"</param> public override void Send(SoundManagerMessage parSoundManagerMessage, SoundManagerColleague parColleague) { if (parColleague == ViewSoundManagerColleague) { ViewSoundManagerColleague?.ProcessMessage(parSoundManagerMessage); } else if (parColleague == MainAppSoundManagerColleague) { MainAppSoundManagerColleague?.ProcessMessage(parSoundManagerMessage); } }
/// <summary> /// Обработать сообщение /// </summary> /// <param name="parSoundManagerMessage">Сообщение</param> public override void ProcessMessage(SoundManagerMessage parSoundManagerMessage) { switch (parSoundManagerMessage.MessageType) { case ESoundManagerMessageType.SoundPlay: { bool isLooped = false; if (parSoundManagerMessage is SoundManagerMessageB b) { isLooped = b.ParamBool; } OpenAlManager.Instance.Play(GetWaveSoundAssetData(Mediator.ActualResourceManager, parSoundManagerMessage.SoundAsset.LinkedAssetMetadata), isLooped); break; } case ESoundManagerMessageType.SoundPause: OpenAlManager.Instance.Pause(GetWaveSoundAssetData(Mediator.ActualResourceManager, parSoundManagerMessage.SoundAsset.LinkedAssetMetadata)); break; case ESoundManagerMessageType.SoundStop: OpenAlManager.Instance.Stop(GetWaveSoundAssetData(Mediator.ActualResourceManager, parSoundManagerMessage.SoundAsset.LinkedAssetMetadata)); break; case ESoundManagerMessageType.SoundReset: OpenAlManager.Instance.Rewind(GetWaveSoundAssetData(Mediator.ActualResourceManager, parSoundManagerMessage.SoundAsset.LinkedAssetMetadata)); break; case ESoundManagerMessageType.SoundSetLoop: { bool isLooped = false; if (parSoundManagerMessage is SoundManagerMessageB b) { isLooped = b.ParamBool; } OpenAlManager.Instance.SetIsLooped(GetWaveSoundAssetData(Mediator.ActualResourceManager, parSoundManagerMessage.SoundAsset.LinkedAssetMetadata), isLooped); break; } default: throw new ArgumentOutOfRangeException(); } }
/// <summary> /// Отправить сообщение "сотруднику" /// </summary> /// <param name="parSoundManagerMessage">Сообщение</param> /// <param name="parColleague">Целевой "сотрудник"</param> public abstract void Send(SoundManagerMessage parSoundManagerMessage, SoundManagerColleague parColleague);
/// <summary> /// Обработать сообщение /// </summary> /// <param name="parSoundManagerMessage">Сообщение</param> public abstract void ProcessMessage(SoundManagerMessage parSoundManagerMessage);
/// <summary> /// Обработать сообщение /// </summary> /// <param name="parSoundManagerMessage">Сообщение</param> public override void ProcessMessage(SoundManagerMessage parSoundManagerMessage) { // в этой версии обработка сообщений AppSoundManager'ом не требуется и не поддерживается, // но с большой долей вероятности она потребуется в будущем return; }