public void SaveSettings() { new XDocument( new XElement(Tag_Root, new XElement(Tag_NamedPipeAddress, NamedPipeAddress), new XElement(Tag_AutoConnect, AutoConnect.ToString()), new XElement(Tag_TimePaddingForLoop, TimePaddingForLoop.ToString()), new XElement(Tag_LoopSelection, LoopSelection.ToString()), new XElement(Tag_LoopNumber, LoopNumber.ToString()), new XElement(Tag_PlayMode, PlayMode.ToString()), new XElement(Tag_Volume, new XElement(Tag_VolumeValue, VolumeValue.ToString()), new XElement(Tag_VolumeMute, VolumeMute.ToString())), new XElement(Tag_Documents, DocumentByDocumentGuid.Select(x => new XElement(Tag_Document, new XAttribute(Att_Document_Id, x.Key), new XElement(Tag_Document_Name, x.Value.Name), new XElement(Tag_Media, x.Value.Media)))), new XElement(Tag_MinimalSeverityToShowInLog, MinimalSeverityToShowInLog.ToString()), new XElement(Tag_Window, new XElement(Tag_Top, WindowTop.ToString()), new XElement(Tag_Left, WindowLeft.ToString()), new XElement(Tag_Width, WindowWidth.ToString()), new XElement(Tag_Height, WindowHeight.ToString()), new XElement(Tag_Maximized, WindowMaximized.ToString()), new XElement(Tag_AlwaysOnTop, AlwaysOnTop.ToString())), new XElement(Tag_VlcLibPath, VlcLibPath), new XElement(Tag_DoNotAskAgain, FontMissingWindowDoNotAskAgain.ToString())) ).Save(SettingsPath); }
/// <summary> /// /// </summary> /// <param name="volume">Volume level</param> /// <param name="_start">begin of time line</param> /// <param name="_end">end of time line</param> public TimeLineVolume(VolumeValue volume, TimeSpan _start, TimeSpan _end) { start = new TimeSpan(); End = _end; Volume = volume; Start = _start; }
public override string GetStepParameters() { var parameters = new List <string>(); parameters.Add(Name != null ? Name.ToStepValue() : "$"); parameters.Add(Description != null ? Description.ToStepValue() : "$"); parameters.Add(Unit != null ? Unit.ToStepValue() : "$"); parameters.Add(VolumeValue != null ? VolumeValue.ToStepValue() : "$"); parameters.Add(Formula != null ? Formula.ToStepValue() : "$"); return(string.Join(", ", parameters.ToArray())); }
public void DDVH_ctor_Test() { int numberOfVoxels = 100; var doses = PhysicalDoseValue .Range(start: 0, stop: 100, step: 1, bIncludeLastValue: true, unit: PhysicalDoseValue.DoseUnit.GY) .Take(numberOfVoxels); var volumes = Enumerable.Repeat(VolumeValue.New(8, VolumeValue.VolumeUnit.MM3), numberOfVoxels); var tuples = doses.Zip(volumes, (dose, volume) => Tuple.Create(dose, volume)); var dvpoints = tuples.ToDVPoints(); var settings = DVHSettingsFactory <PhysicalDoseValue> .FromMinMax(min : 0, max : 200, numberOfBins : 200, doseUnit : PhysicalDoseValue.DoseUnit.GY, volumeUnit : VolumeValue.VolumeUnit.MM3); var ddvh = DVHFactory <PhysicalDoseValue> .FromDifferentialDoseVolumePairs(type : DVHType.DIFFERENTIAL, settings : settings, pairs : dvpoints); }
/// <summary> 刷新界面显示 </summary> private void InitView() { volumeimg.Width = 318 * VolumeValue / 100d; Utility.INIFILE.SetValue("MAIN", "SystemVolumn", VolumeValue.ToString()); }
public TimeSpanVolume(VolumeValue volume, TimeSpan timeSpan) { TimeSpan = timeSpan; Volume = volume; }
internal override void SetXML(XmlElement xml, BaseClassIfc host, HashSet <int> processed) { base.SetXML(xml, host, processed); xml.SetAttribute("VolumeValue", VolumeValue.ToString()); setAttribute(xml, "Formula", Formula); }
/// <summary> /// do same thing as method Split, but create in dir only parts where VolumeValue equals argument /// </summary> /// <param name="timeLines">time lines</param> /// <param name="value">value that stays</param> public void Cut(TimeLineVolume[] timeLines, VolumeValue value) { }
/// <summary> /// detect volume level in audio file /// </summary> /// <param name="amplitudeSilenceThreshold">amplitude Threshold ( between 1 and 0 )</param> /// <param name="Millisec">we split all audio on millisec blocks and detect this block as silence or sound</param> /// <returns> /// List of Time duration and Volume level ( Sound or Silence ) /// </returns> private List <TimeSpanVolume> DetectVolumeLevel( float amplitudeSilenceThreshold, int Millisec) { if (amplitudeSilenceThreshold > 1 || amplitudeSilenceThreshold < 0) { throw new ArgumentOutOfRangeException($"amplitudeSilenceThreshold ({amplitudeSilenceThreshold}) can't be more than 1 or less than 0"); } List <TimeSpanVolume> TimeSpanVolumes = new List <TimeSpanVolume>(); // safe old position of cursor long oldPosition = AudioReader.Position; // define blockSamples by millisec TimeSpan timeSpan = TimeSpan.FromMilliseconds(Millisec); // number of Samples we ananlyze for 1 time int blockSamples = MillisecToSamplesBlock(Millisec); // buffer BufferSize = MillisecToSamplesBlock(Millisec); float[] amplitudeArray = new float[BufferSize]; // end of file bool eof = false; while (!eof) { int ReadedSamples = AudioReader.Read(amplitudeArray, 0, amplitudeArray.Length); if (ReadedSamples == 0) { eof = true; } // Samples that is not divided on blockSamples int RemainSamples = ReadedSamples % blockSamples; ReadedSamples -= RemainSamples; // MAIN ANALYZE for (int i = 0; i < ReadedSamples; i += blockSamples) { float average = 0; // one block can be not completed ( size of block not equals blockSamples ) int analyzedSamples = 0; // i + j < amplitudeArray.Length - out of the range for (int j = 0; j < blockSamples && i + j < amplitudeArray.Length; j++) { // amplitude can be negative float sampleLocal = Math.Abs(amplitudeArray[i + j]); average += sampleLocal; analyzedSamples++; } average /= analyzedSamples; // DETECT Is Silence bool isSilenceRemain = average < amplitudeSilenceThreshold ? true : false; VolumeValue volumeRemain = isSilenceRemain ? VolumeValue.Silence : VolumeValue.Noise; // add timespan to list TimeSpanVolume spanRemain = new TimeSpanVolume(volumeRemain, timeSpan); TimeSpanVolumes.Add(spanRemain); } // Remain ANALYZE // if Remain samples is not 0, that means we need to analyze it separately (last samples is not clear for dividing it on blocks) float averageRemain = 0; for (int i = ReadedSamples; i < ReadedSamples + RemainSamples; i++) { float sampleLocal = Math.Abs(amplitudeArray[i]); averageRemain += sampleLocal; } averageRemain /= RemainSamples; // check if Time span is not empty TimeSpan remainTimeSpan = TimeSpan.FromMilliseconds(SamplesBlockToMillisec(RemainSamples)); if (remainTimeSpan > TimeSpan.Zero) { // DETECT Is Silence bool isSilence = averageRemain < amplitudeSilenceThreshold ? true : false; VolumeValue volume = isSilence ? VolumeValue.Silence : VolumeValue.Noise; // add timespan to list TimeSpanVolume span = new TimeSpanVolume(volume, remainTimeSpan); TimeSpanVolumes.Add(span); } } AudioReader.Position = oldPosition; TimeSpanVolumes.TrimExcess(); //TimeSpanVolumes = SqueezeListOfTimeSpans(TimeSpanVolumes); return(TimeSpanVolumes); }