Example #1
0
 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);
 }
Example #2
0
        /// <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;
        }
Example #3
0
        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);
        }
Example #5
0
 /// <summary> 刷新界面显示 </summary>
 private void InitView()
 {
     volumeimg.Width = 318 * VolumeValue / 100d;
     Utility.INIFILE.SetValue("MAIN", "SystemVolumn", VolumeValue.ToString());
 }
Example #6
0
 public TimeSpanVolume(VolumeValue volume, TimeSpan timeSpan)
 {
     TimeSpan = timeSpan;
     Volume   = volume;
 }
Example #7
0
 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);
 }
Example #8
0
 /// <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)
 {
 }
Example #9
0
        /// <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);
        }