コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        /// <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();
            }
        }
コード例 #3
0
 /// <summary>
 /// Отправить сообщение "сотруднику"
 /// </summary>
 /// <param name="parSoundManagerMessage">Сообщение</param>
 /// <param name="parColleague">Целевой "сотрудник"</param>
 public abstract void Send(SoundManagerMessage parSoundManagerMessage, SoundManagerColleague parColleague);
コード例 #4
0
 /// <summary>
 /// Обработать сообщение
 /// </summary>
 /// <param name="parSoundManagerMessage">Сообщение</param>
 public abstract void ProcessMessage(SoundManagerMessage parSoundManagerMessage);
コード例 #5
0
 /// <summary>
 /// Обработать сообщение
 /// </summary>
 /// <param name="parSoundManagerMessage">Сообщение</param>
 public override void ProcessMessage(SoundManagerMessage parSoundManagerMessage)
 {
     // в этой версии обработка сообщений AppSoundManager'ом не требуется и не поддерживается,
     // но с большой долей вероятности она потребуется в будущем
     return;
 }