/// <summary> /// Sets the normalized volume. Since different engines support /// different ranges for volume, ACAT normalizes them and /// uses an integer between 0 and 9 for the volume level /// </summary> /// <param name="normalizedVolume">normalized volume level</param> public void SetNormalizedVolume(int normalizedVolume) { ITTSValue <int> v = ActiveEngine.GetVolume(); if (v.RangeMax == 0) { return; } float fraction = (float)normalizedVolume / 9.0f; float currentValue = fraction * v.RangeMax; int volSetting = (int)Math.Round(currentValue, 0); ActiveEngine.SetVolume(volSetting); }
/// <summary> /// Form is loaded. Initialize it. /// </summary> /// <param name="sender">event sender</param> /// <param name="e">event args</param> private void VolumeSettingsScanner_Load(object sender, EventArgs e) { _scannerCommon.OnLoad(); _titleWidget = _scannerCommon.GetRootWidget().Finder.FindChild("Title"); setTitle(); ITTSValue <int> volume = Context.AppTTSManager.ActiveEngine.GetVolume(); _initialSetting = volume.Value; _volumeSelected = Context.AppTTSManager.GetNormalizedVolume().Value; _scannerCommon.GetAnimationManager().Start(_scannerCommon.GetRootWidget()); }
/// <summary> /// Returns the current normalized volume /// </summary> /// <returns>volume level</returns> public TTSValue GetNormalizedVolume() { ITTSValue <int> volume = ActiveEngine.GetVolume(); if (volume.RangeMax == 0) { return(new TTSValue(_minNormalizedVolume, _maxNormalizedVolume, 0)); } float fraction = (float)volume.Value / volume.RangeMax; float currentValue = fraction * 9.0f; int v = (int)Math.Round(currentValue, 0); if (v == 0 && volume.Value > 0) { v = 1; } return(new TTSValue(_minNormalizedVolume, _maxNormalizedVolume, v)); }