Example #1
0
        private CachedAudioEffectProvider()
        {
            sourceFolder = AppDomain.CurrentDomain.BaseDirectory + "\\AudioEffects\\";

            //init lists
            RadioTransmissionStart = new List <CachedAudioEffect>();
            RadioTransmissionEnd   = new List <CachedAudioEffect>();

            LoadRadioStartAndEndEffects();

            KY58EncryptionTransmitTone = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.KY_58_TX);
            KY58EncryptionEndTone      = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.KY_58_RX);

            NATOTone = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.NATO_TONE);

            MIDSTransmitTone = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.MIDS_TX);
            MIDSEndTone      = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.MIDS_TX_END);

            HAVEQUICKTone = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.HAVEQUICK_TONE);

            FMNoise  = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.FM_NOISE);
            VHFNoise = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.VHF_NOISE);
            UHFNoise = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.UHF_NOISE);
            HFNoise  = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.HF_NOISE);

            //sort out volume (if needed)
            ChangeVolumeOfEffect(HAVEQUICKTone, GlobalSettingsKeys.HQToneVolume);
            ChangeVolumeOfEffect(NATOTone, GlobalSettingsKeys.NATOToneVolume);
            ChangeVolumeOfEffect(FMNoise, GlobalSettingsKeys.FMNoiseVolume);
            ChangeVolumeOfEffect(UHFNoise, GlobalSettingsKeys.UHFNoiseVolume);
            ChangeVolumeOfEffect(VHFNoise, GlobalSettingsKeys.VHFNoiseVolume);
            ChangeVolumeOfEffect(HFNoise, GlobalSettingsKeys.HFNoiseVolume);
        }
        public CachedLoopingAudioProvider(IWaveProvider source, WaveFormat waveFormat, CachedAudioEffect.AudioEffectTypes effectType)
        {
            this.WaveFormat = waveFormat;
            var effect = new CachedAudioEffect(effectType);

            _audioEffectShort = ConversionHelpers.ByteArrayToShortArray(effect.AudioEffectBytes);

            this.source = source;
        }
Example #3
0
        public AudioManager(ConcurrentDictionary <string, SRClient> clientsList)
        {
            _clientsList = clientsList;

            _cachedAudioEffects =
                new CachedAudioEffect[Enum.GetNames(typeof(CachedAudioEffect.AudioEffectTypes)).Length];
            for (var i = 0; i < _cachedAudioEffects.Length; i++)
            {
                _cachedAudioEffects[i] = new CachedAudioEffect((CachedAudioEffect.AudioEffectTypes)i);
            }
        }
        public AudioManager(bool windowsN)
        {
            this.windowsN = windowsN;

            _cachedAudioEffects =
                new CachedAudioEffect[Enum.GetNames(typeof(CachedAudioEffect.AudioEffectTypes)).Length];
            for (var i = 0; i < _cachedAudioEffects.Length; i++)
            {
                _cachedAudioEffects[i] = new CachedAudioEffect((CachedAudioEffect.AudioEffectTypes)i);
            }
        }
        private void CreateAudioEffectDouble(CachedAudioEffect effect)
        {
            if (effect.Loaded)
            {
                var effectShort  = ConversionHelpers.ByteArrayToShortArray(effect.AudioEffectBytes);
                var effectDouble = new double[effectShort.Length];

                for (int i = 0; i < effectShort.Length; i++)
                {
                    effectDouble[i] = ((effectShort[i] / 32768f));
                }
                effect.AudioEffectDouble = effectDouble;
            }
        }
        public CachedLoopingAudioProvider(IWaveProvider source, WaveFormat waveFormat, CachedAudioEffect.AudioEffectTypes effectType)
        {
            this.WaveFormat = waveFormat;
            var effect = new CachedAudioEffect(effectType);

            _audioEffectShort = ConversionHelpers.ByteArrayToShortArray(effect.AudioEffectBytes);

            var vol = Settings.GlobalSettingsStore.Instance.GetClientSetting(GlobalSettingsKeys.NATOToneVolume)
                      .FloatValue;

            for (int i = 0; i < _audioEffectShort.Length; i++)
            {
                _audioEffectShort[i] = (short)(_audioEffectShort[i] * vol);
            }

            this.source = source;
        }
Example #7
0
        private void ChangeVolumeOfEffect(CachedAudioEffect effect, GlobalSettingsKeys key)
        {
            if (effect.Loaded)
            {
                var effectShort  = ConversionHelpers.ByteArrayToShortArray(effect.AudioEffectBytes);
                var effectDouble = new double[effectShort.Length];

                var vol = Settings.GlobalSettingsStore.Instance.GetClientSetting(key)
                          .FloatValue;

                for (int i = 0; i < effectShort.Length; i++)
                {
                    effectDouble[i] = ((effectShort[i] / 32768f) * vol);
                }
                effect.AudioEffectDouble = effectDouble;
            }
        }
Example #8
0
        private void LoadRadioStartAndEndEffects()
        {
            var audioEffectsList = Directory.EnumerateFiles(sourceFolder);

            //might need to split the path - we'll see
            foreach (var effectPath in audioEffectsList)
            {
                var effect = effectPath.Split(Path.DirectorySeparatorChar).Last();

                if (effect.ToLowerInvariant().StartsWith(CachedAudioEffect.AudioEffectTypes.RADIO_TRANS_START
                                                         .ToString().ToLowerInvariant()))
                {
                    var audioEffect = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.RADIO_TRANS_START, effect, effectPath);

                    if (audioEffect.AudioEffectBytes != null)
                    {
                        RadioTransmissionStart.Add(audioEffect);
                    }
                }
                else if (effect.ToLowerInvariant().StartsWith(CachedAudioEffect.AudioEffectTypes.RADIO_TRANS_END
                                                              .ToString().ToLowerInvariant()))
                {
                    var audioEffect = new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.RADIO_TRANS_END, effect, effectPath);

                    if (audioEffect.AudioEffectBytes != null)
                    {
                        RadioTransmissionEnd.Add(audioEffect);
                    }
                }
            }

            //IF the audio folder is missing - to avoid a crash, init with a blank one
            if (RadioTransmissionStart.Count == 0)
            {
                RadioTransmissionStart.Add(new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.RADIO_TRANS_START));
            }
            if (RadioTransmissionEnd.Count == 0)
            {
                RadioTransmissionEnd.Add(new CachedAudioEffect(CachedAudioEffect.AudioEffectTypes.RADIO_TRANS_END));
            }
        }