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; }
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; }
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; } }
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)); } }