Пример #1
0
        public MetaSlabs(ObjectSet mos, long metaSlabArray, int metaSlabShift, int aShift)
        {
            mMos = mos;
            mSlabSize = 1L << metaSlabShift;

            var slabDnode = mos.ReadEntry(metaSlabArray);
            var someBytes = Program.RentBytes(checked((int)slabDnode.AvailableDataSize));
            slabDnode.Read(someBytes, 0);

            int numberOfSlabs = someBytes.Count / 8;
            mRangeMap = new RangeMap[numberOfSlabs];
            long[] ids = new long[numberOfSlabs];
            Buffer.BlockCopy(someBytes.Array, someBytes.Offset, ids, 0, someBytes.Count);

            Program.ReturnBytes(someBytes);
            someBytes = default(ArraySegment<byte>);

            for (int i = 0; i < numberOfSlabs; i++)
            {
                var id = ids[i];
                RangeMap map;
                if (id == 0)
                {
                    map = new RangeMap();
                }
                else
                {
                    map = LoadEntrysForMetaSlab(id, aShift);
                }
                mRangeMap[i] = map;
            }
        }
Пример #2
0
 /// <summary>
 /// Loads, but does not start, an implant by vpath, returning the loaded object
 /// </summary>
 public JavascriptImplant Load(string vpath, RangeMap range, string oscFormat = "/osc/{x}/{y}")
 {
     lock (Items)
     {
         var implant = new JavascriptImplant(vpath, oscFormat, range);
         Items.Add(implant);
         return(implant);
     }
 }
Пример #3
0
 public void RangeMapLadenUndSpeichern()
 {
     var r = new RangeMap<string>();
     r.Add(new Range(1, 3), "schwarz");
     r.Add(new Range(4, 7), "braun");
     var filename="TestRangeMap.xml";
     ObjectExtentions.SaveToXml(r, filename);
     var rGeladen = ObjectExtentions.LoadFromXml <RangeMap<string>>(filename);
 }
Пример #4
0
        public Implant(RangeMap activeArea)
        {
            if (activeArea == null)
            {
                throw new ArgumentNullException("RangeMap");
            }

            ImplantID  = string.Format("implant_{0:##}", nextId++);
            ActiveArea = activeArea;
        }
        public void NavigateTo()
        {
            Location lLoc = new Location();

            lLoc.Latitude   = Latitude;
            lLoc.Longitude  = Longitude;
            RangeMap.Center = lLoc;
            RangeMap.LocationToViewportPoint(lLoc);
            RangeMap.ZoomLevel = 16;
        }
Пример #6
0
        public void CheckOverlapStartAfterRange()
        {
            RangeMap map = new RangeMap();
            map.AddRange(10, 11); // - 20
            map.AddRange(30, 11); // - 40
            map.AddRange(50, 11); // - 60

            // Start before first range
            Assert.IsTrue(map.OverlapsRange(60, 2));
            Assert.IsFalse(map.OverlapsRange(61, 7));
            Assert.IsFalse(map.OverlapsRange(100, 7));
        }
Пример #7
0
        /// <summary>
        /// Loads the javascript file to be run, but does not start it.
        /// If the vpath starts with "~", then the filename is relative
        /// to the plugins folder.
        /// </summary>
        public JavascriptImplant(string vpath, string oscFormat, RangeMap activeArea) : base(activeArea)
        {
            // override the implant ID with something more useful
#warning This ImplantID will not be unique if the same implant is loaded twice!!!
            ImplantID = vpath;


            Active = true;

            ImplantType                = JavascriptImplantType.Load(vpath);
            ImplantInstance            = ImplantType.CreateInstance(this);
            ImplantInstance.osc.Format = oscFormat;
        }
Пример #8
0
        public void CheckOverlapStartAfterRange()
        {
            RangeMap map = new RangeMap();

            map.AddRange(10, 11); // - 20
            map.AddRange(30, 11); // - 40
            map.AddRange(50, 11); // - 60

            // Start before first range
            Assert.IsTrue(map.OverlapsRange(60, 2));
            Assert.IsFalse(map.OverlapsRange(61, 7));
            Assert.IsFalse(map.OverlapsRange(100, 7));
        }
Пример #9
0
        IEnumerable <byte> GenerateTableOfContents(IEnumerable <MpegAudioDataFrame> mpegAudioDataFrames)
        {
            double totalDataLength = mpegAudioDataFrames.Sum(frame => frame.TotalLength);
            double totalTimeLength = mpegAudioDataFrames.Sum(frame => frame.AudioLength);

            IMap <double, double> toAbsoluteTime = new RangeMap(new OrderedRange <double>(0, 99), new OrderedRange <double>(0, totalTimeLength), Mappers.Linear);
            IMap <double, double> toRelativeData = new RangeMap(new OrderedRange <double>(0, totalDataLength), new OrderedRange <double>(0, 255), Mappers.Linear);

            for (int index = 0; index < 100; index++)
            {
                yield return((byte)toRelativeData.Map(GetDataPosition(mpegAudioDataFrames, toAbsoluteTime.Map(index))).Round());
            }
        }
Пример #10
0
        public void RangeOverlap3()
        {
            RangeMap map = new RangeMap();

            map.AddRange(10, 11);
            map.AddRange(30, 11);
            map.AddRange(50, 11);

            map.AddRange(15, 41);

            Assert.AreEqual(1, map.Ranges.Count);
            Assert.AreEqual(10, map.Ranges[0].From);
            Assert.AreEqual(60, map.Ranges[0].To);
        }
Пример #11
0
        public void RangeOverlap5()
        {
            RangeMap map = new RangeMap();

            map.AddRange(10, 11);
            map.AddRange(22, 9);
            map.AddRange(32, 9);

            map.AddRange(21, 11);

            Assert.AreEqual(1, map.Ranges.Count);
            Assert.AreEqual(10, map.Ranges[0].From);
            Assert.AreEqual(40, map.Ranges[0].To);
        }
Пример #12
0
        public void Insert()
        {
            var map = new RangeMap();

            map.Set(10, 10);
            map.Set(30, 10);
            map.Set(50, 10);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(30, 10), new Range(50, 10) }));

            map.Insert(35, 10);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(30, 20), new Range(60, 10) }));

            map.Insert(25, 10);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(40, 20), new Range(70, 10) }));
        }
Пример #13
0
        public void Set()
        {
            var map = new RangeMap();

            map.Set(10, 5);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 5) }));

            map.Set(20, 5);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 5), new Range(20, 5) }));

            map.Set(15, 5);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 15) }));

            map.Set(5, 25);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(5, 25) }));
        }
Пример #14
0
        public void RangeAfter()
        {
            RangeMap map = new RangeMap();

            map.AddRange(5, 6);
            map.AddRange(15, 3);
            map.AddRange(20, 3);

            Assert.AreEqual(3,  map.Ranges.Count);
            Assert.AreEqual(5,  map.Ranges[0].From);
            Assert.AreEqual(10,  map.Ranges[0].To);
            Assert.AreEqual(15,  map.Ranges[1].From);
            Assert.AreEqual(17, map.Ranges[1].To);
            Assert.AreEqual(20,  map.Ranges[2].From);
            Assert.AreEqual(22, map.Ranges[2].To);
        }
Пример #15
0
        public void RangeAfter()
        {
            RangeMap map = new RangeMap();

            map.AddRange(5, 6);
            map.AddRange(15, 3);
            map.AddRange(20, 3);

            Assert.AreEqual(3, map.Ranges.Count);
            Assert.AreEqual(5, map.Ranges[0].From);
            Assert.AreEqual(10, map.Ranges[0].To);
            Assert.AreEqual(15, map.Ranges[1].From);
            Assert.AreEqual(17, map.Ranges[1].To);
            Assert.AreEqual(20, map.Ranges[2].From);
            Assert.AreEqual(22, map.Ranges[2].To);
        }
Пример #16
0
        public void RangeOverlap2()
        {
            RangeMap map = new RangeMap();

            map.AddRange(10, 11);
            map.AddRange(30, 11);
            map.AddRange(50, 11);

            map.AddRange(5, 25);

            Assert.AreEqual(2, map.Ranges.Count);
            Assert.AreEqual(5, map.Ranges[0].From);
            Assert.AreEqual(40, map.Ranges[0].To);
            Assert.AreEqual(50, map.Ranges[1].From);
            Assert.AreEqual(60, map.Ranges[1].To);
        }
Пример #17
0
        public void Unset()
        {
            var map = new RangeMap();

            map.Set(10, 50);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 50) }));

            map.Unset(20, 10);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(30, 30) }));

            map.Unset(40, 10);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(30, 10), new Range(50, 10) }));

            map.Unset(15, 40);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 5), new Range(55, 5) }));
        }
        private void MapWithPushpins_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            // Disables the default mouse double-click action.
            e.Handled = true;

            // Determin the location to place the pushpin at on the map.

            //Get the mouse click coordinates
            Point mousePosition = e.GetPosition(this);
            //Convert the mouse coordinates to a locatoin on the map
            Location pinLocation = RangeMap.ViewportPointToLocation(mousePosition);

            // The pushpin to add to the map.
            bool shooter = false;
            bool target  = false;

            foreach (Pushpin lpp in RangeMap.Children)
            {
                if (lpp.Name == "Shooter")
                {
                    shooter = true;
                }
                if (lpp.Name == "Target")
                {
                    target = true;
                }
            }
            if (!shooter)
            {
                Pushpin ShooterLoc = new Pushpin();
                ShooterLoc.Location = pinLocation;
                ShooterLoc.Name     = "Shooter";
                ShooterLoc.Content  = "Shooter";
                // Adds the pushpin to the map.
                RangeMap.Children.Add(ShooterLoc);
            }
            else if (!target)
            {
                Pushpin TargetLoc = new Pushpin();
                TargetLoc.Location = pinLocation;
                TargetLoc.Name     = "Target";
                TargetLoc.Content  = "Target";
                // Adds the pushpin to the map.
                RangeMap.Children.Add(TargetLoc);
            }
        }
Пример #19
0
        // ********************************************************************************
        /// <summary>
        /// Checks target language for forbidden terms
        /// </summary>
        /// <param name="src"></param>
        /// <param name="trn"></param>
        /// <param name="token"></param>
        /// <param name="checker"></param>
        /// <created>UPh,20.03.2016</created>
        /// <changed>UPh,20.03.2016</changed>
        // ********************************************************************************
        public void DoCheckProhibitedTerm(string text, CPAIToken token, CPAITokenCheck checker)
        {
            RangeMap ranges = new RangeMap();

            List <TerminologyResultArgs> results = _Query.RequestSyncProhibitedTerminology(text, 0);

            // Results come sorted by word range. Longer sections (number of words in term) come first
            foreach (TerminologyResultArgs result in results)
            {
                if (result.Status != TermStatus.prohibited)
                {
                    continue;
                }

                checker.ErrorOutput(token, string.Format("ET: Prohibited term used: {0}", result.Term1));
            }
        }
Пример #20
0
        // ********************************************************************************
        /// <summary>
        ///
        /// </summary>
        /// <param name="src"></param>
        /// <param name="trn"></param>
        /// <returns></returns>
        /// <created>UPh,29.11.2015</created>
        /// <changed>UPh,29.11.2015</changed>
        // ********************************************************************************
        public void DoCheckTermUsage(string src, string trn, CPAIToken token, CPAITokenCheck checker)
        {
            RangeMap ranges = new RangeMap();

            List <TerminologyResultArgs> results = _Query.RequestSyncTerminology(src, 0);

            int _CurrentFrom = -1;
            int _CurrentLen  = -1;

            string strMissingTerm = "";

            // Results come sorted by word range. Longer sections (number of words in term) come first
            foreach (TerminologyResultArgs result in results)
            {
                if (ranges.OverlapsRange(result.FindFrom, result.FindLen))
                {
                    continue; // Range already checked
                }
                if (_CurrentFrom != result.FindFrom ||
                    _CurrentLen != result.FindLen)
                {
                    if (strMissingTerm.Length > 0)
                    {
                        checker.ErrorOutput(token, string.Format("ET: Missing term {0}", strMissingTerm));
                    }

                    strMissingTerm = "";
                    _CurrentFrom   = result.FindFrom;
                    _CurrentLen    = result.FindLen;
                    strMissingTerm = src.Substring(_CurrentFrom, _CurrentLen);
                }

                if (trn.IndexOf(result.Term2, StringComparison.InvariantCultureIgnoreCase) >= 0)
                {
                    // Term found. Mark section as ok
                    ranges.AddRange(result.FindFrom, result.FindLen);
                    strMissingTerm = "";
                }
            }

            if (strMissingTerm.Length > 0)
            {
                checker.ErrorOutput(token, string.Format("ET: Missing term {0}", strMissingTerm));
            }
        }
Пример #21
0
        public void Delete()
        {
            var map = new RangeMap();

            map.Set(10, 10);
            map.Set(30, 10);
            map.Set(50, 10);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(30, 10), new Range(50, 10) }));

            map.Delete(35, 5);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(30, 5), new Range(45, 10) }));

            map.Delete(20, 5);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10), new Range(25, 5), new Range(40, 10) }));

            map.Delete(15, 30);
            Assert.That(new List <Range>(map), Is.EquivalentTo(new Range[] { new Range(10, 10) }));
        }
        public void CanMapToMqtt(decimal mqttMin, decimal mqttMax, string googleValue, object value, string expectedResult)
        {
            // Arrange
            var mapper = new RangeMap
            {
                Google  = googleValue,
                MqttMin = mqttMin,
                MqttMax = mqttMax
            };

            // Act
            var matches = mapper.MatchesGoogle(value);
            var result  = mapper.ConvertToMqtt(value);

            // Assert
            Assert.True(matches);
            Assert.Equal(expectedResult, result);
        }
Пример #23
0
        public void CheckOverlapStartBeforeRange()
        {
            RangeMap map = new RangeMap();
            map.AddRange(10, 11); // - 20
            map.AddRange(30, 11); // - 40
            map.AddRange(50, 11); // - 60

            // Start before first range
            Assert.IsFalse(map.OverlapsRange(5, 5)); // - 9
            Assert.IsTrue(map.OverlapsRange(5, 6));  // - 10
            Assert.IsTrue(map.OverlapsRange(5, 21)); // - 25
            Assert.IsTrue(map.OverlapsRange(5, 80)); // - 84

            // Start before last range
            Assert.IsFalse(map.OverlapsRange(45, 5)); // - 49
            Assert.IsTrue(map.OverlapsRange(45, 6));  //
            Assert.IsTrue(map.OverlapsRange(45, 21)); //
            Assert.IsTrue(map.OverlapsRange(45, 80)); //
        }
Пример #24
0
        public void CheckOverlapStartInRange()
        {
            RangeMap map = new RangeMap();
            map.AddRange(10, 11); // - 20
            map.AddRange(30, 11); // - 40
            map.AddRange(50, 11); // - 60

            // Start before first range
            Assert.IsTrue(map.OverlapsRange(15, 2));
            Assert.IsTrue(map.OverlapsRange(15, 7));
            Assert.IsTrue(map.OverlapsRange(15, 15));
            Assert.IsTrue(map.OverlapsRange(15, 80));

            // Start in last range
            Assert.IsTrue(map.OverlapsRange(55, 2));
            Assert.IsTrue(map.OverlapsRange(55, 7));
            Assert.IsTrue(map.OverlapsRange(55, 15));
            Assert.IsTrue(map.OverlapsRange(55, 80));
        }
Пример #25
0
        static Krach.Graphics.Color StretchColor(double stretchFactor)
        {
            Krach.Graphics.Color baseColor = Krach.Graphics.Color.FromHsv(0, 0, 0);

            OrderedRange <double> source      = new OrderedRange <double>(0.75, 1.0);
            OrderedRange <double> destination = new OrderedRange <double>(0.0, 1.0);

            IMap <double, double> amplifier = new RangeMap(source, destination, Mappers.Linear);

            if (stretchFactor < 1)
            {
                return(Krach.Graphics.Color.InterpolateRgb(Colors.Blue, baseColor, Scalars.InterpolateLinear, amplifier.Map((1.0 * stretchFactor).Clamp(source))));
            }
            if (stretchFactor > 1)
            {
                return(Krach.Graphics.Color.InterpolateRgb(Colors.Red, baseColor, Scalars.InterpolateLinear, amplifier.Map((1.0 / stretchFactor).Clamp(source))));
            }

            return(baseColor);
        }
Пример #26
0
        public void RangeBetween()
        {
            RangeMap map = new RangeMap();

            map.AddRange(5, 6);
            map.AddRange(30, 3);
            map.AddRange(15, 3);

            Assert.AreEqual(3, map.Ranges.Count);
            Assert.AreEqual(5, map.Ranges[0].From);
            Assert.AreEqual(10, map.Ranges[0].To);
            Assert.AreEqual(15, map.Ranges[1].From);
            Assert.AreEqual(17, map.Ranges[1].To);
            Assert.AreEqual(30, map.Ranges[2].From);
            Assert.AreEqual(32, map.Ranges[2].To);

            map.AddRange(20, 5);
            Assert.AreEqual(4, map.Ranges.Count);
            Assert.AreEqual(20, map.Ranges[2].From);
            Assert.AreEqual(24, map.Ranges[2].To);
        }
Пример #27
0
        public void CheckOverlapStartInRange()
        {
            RangeMap map = new RangeMap();

            map.AddRange(10, 11); // - 20
            map.AddRange(30, 11); // - 40
            map.AddRange(50, 11); // - 60

            // Start before first range
            Assert.IsTrue(map.OverlapsRange(15, 2));
            Assert.IsTrue(map.OverlapsRange(15, 7));
            Assert.IsTrue(map.OverlapsRange(15, 15));
            Assert.IsTrue(map.OverlapsRange(15, 80));


            // Start in last range
            Assert.IsTrue(map.OverlapsRange(55, 2));
            Assert.IsTrue(map.OverlapsRange(55, 7));
            Assert.IsTrue(map.OverlapsRange(55, 15));
            Assert.IsTrue(map.OverlapsRange(55, 80));
        }
Пример #28
0
        public void CheckOverlapStartBeforeRange()
        {
            RangeMap map = new RangeMap();

            map.AddRange(10, 11); // - 20
            map.AddRange(30, 11); // - 40
            map.AddRange(50, 11); // - 60

            // Start before first range
            Assert.IsFalse(map.OverlapsRange(5, 5)); // - 9
            Assert.IsTrue(map.OverlapsRange(5, 6));  // - 10
            Assert.IsTrue(map.OverlapsRange(5, 21)); // - 25
            Assert.IsTrue(map.OverlapsRange(5, 80)); // - 84


            // Start before last range
            Assert.IsFalse(map.OverlapsRange(45, 5)); // - 49
            Assert.IsTrue(map.OverlapsRange(45, 6));  //
            Assert.IsTrue(map.OverlapsRange(45, 21)); //
            Assert.IsTrue(map.OverlapsRange(45, 80)); //
        }
Пример #29
0
        unsafe RangeMap LoadEntrysForMetaSlab(long dnEntry, int sm_shift)
        {
            RangeMap ret = new RangeMap();

            var dn = mMos.ReadEntry(dnEntry);
            if (dn.Type != dmu_object_type_t.SPACE_MAP || dn.BonusType != dmu_object_type_t.SPACE_MAP_HEADER)
                throw new Exception("Not a space map.");

            var head = dn.GetBonus<space_map_obj>();

            if (head.smo_object != dnEntry)
                throw new Exception();

            if (head.smo_objsize > int.MaxValue)
                throw new Exception("Holy cow, this space map is greater than 2GB, what is wrong with your VDev!?!?");

            var someBytes = Program.RentBytes((int)head.smo_objsize);
            dn.Read(someBytes, 0);
            for (int i = 0; i < someBytes.Count; i += 8)
            {
                var ent = Program.ToStruct<spaceMapEntry>(someBytes.SubSegment(i, sizeof(spaceMapEntry)));
                if (ent.IsDebug)
                    continue;

                ulong offset = (ent.Offset << sm_shift);
                ulong range = ent.Run << sm_shift;
                //Console.WriteLine("\t    [{4,6}]    {0}  range: {1:x10}-{2:x10}  size: {3:x6}", ent.Type, offset, offset + range, range, i / 8);
                if (ent.Type == SpaceMapEntryType.A)
                {
                    ret.AddRange(offset, range);
                }
                else if (ent.Type == SpaceMapEntryType.F)
                {
                    ret.RemoveRange(offset, range);
                }
            }
            Program.ReturnBytes(someBytes);

            return ret;
        }
Пример #30
0
        RangeMap NewMap()
        {
            /*
             * 0    0    1    1    2    2    3    3    4    4    5    5    6    6    7    7    8    8
             * 0    5    0    5    0    5    0    5    0    5    0    5    0    5    0    5    0    5
             * .....*****.....*****.....*****.....*****.....*****.....*****.....*****.....*****......
             * ......................................................................................
             * ......................................................................................
             *
             *                      75
             * 05    25    45    65
             *    15          55
             *          35
             */

            var result = new RangeMap();

            foreach (var start in new int[] { 35, 15, 55, 5, 25, 45, 65, 75 })
            {
                result.Set(start, 5);
            }

            return(result);
        }
Пример #31
0
        // ********************************************************************************
        /// <summary>
        /// 
        /// </summary>
        /// <param name="src"></param>
        /// <param name="trn"></param>
        /// <returns></returns>
        /// <created>UPh,29.11.2015</created>
        /// <changed>UPh,29.11.2015</changed>
        // ********************************************************************************
        public void DoCheckTermUsage(string src, string trn, CPAIToken token, CPAITokenCheck checker)
        {
            RangeMap ranges = new RangeMap();

            List<TerminologyResultArgs> results = _Query.RequestSyncTerminology(src, 0);

            int _CurrentFrom = -1;
            int _CurrentLen  = -1;

            string strMissingTerm = "";

            // Results come sorted by word range. Longer sections (number of words in term) come first
            foreach (TerminologyResultArgs result in results)
            {
                if (ranges.OverlapsRange(result.FindFrom, result.FindLen))
                    continue; // Range already checked

                if (_CurrentFrom != result.FindFrom ||
                    _CurrentLen  != result.FindLen)
                {
                    if (strMissingTerm.Length > 0)
                        checker.ErrorOutput(token, string.Format("ET: Missing term {0}", strMissingTerm));

                    strMissingTerm = "";
                    _CurrentFrom = result.FindFrom;
                    _CurrentLen  = result.FindLen;
                    strMissingTerm = src.Substring(_CurrentFrom, _CurrentLen);
                }

                if (trn.IndexOf(result.Term2, StringComparison.InvariantCultureIgnoreCase) >= 0)
                {
                    // Term found. Mark section as ok
                    ranges.AddRange(result.FindFrom, result.FindLen);
                    strMissingTerm = "";
                }
            }

            if (strMissingTerm.Length > 0)
                checker.ErrorOutput(token, string.Format("ET: Missing term {0}", strMissingTerm));
        }
Пример #32
0
        // ********************************************************************************
        /// <summary>
        /// Checks target language for forbidden terms
        /// </summary>
        /// <param name="src"></param>
        /// <param name="trn"></param>
        /// <param name="token"></param>
        /// <param name="checker"></param>
        /// <created>UPh,20.03.2016</created>
        /// <changed>UPh,20.03.2016</changed>
        // ********************************************************************************
        public void DoCheckProhibitedTerm(string text, CPAIToken token, CPAITokenCheck checker)
        {
            RangeMap ranges = new RangeMap();

            List<TerminologyResultArgs> results = _Query.RequestSyncProhibitedTerminology(text, 0);

            // Results come sorted by word range. Longer sections (number of words in term) come first
            foreach (TerminologyResultArgs result in results)
            {
                if (result.Status != TermStatus.prohibited)
                    continue;

                checker.ErrorOutput(token, string.Format("ET: Prohibited term used: {0}", result.Term1));
            }
        }
Пример #33
0
        /// <summary>
        /// Overwrites the current session settings from a parsed
        /// JSON object.
        /// </summary>
        private static void Deserialize(UserSession session, SessionFileFormat file)
        {
            // devices must loaded first for implant loaded to work
            session.Devices.ClearAll();
            foreach (var item in file.devices)
            {
                try
                {
                    session.Devices.MapByName(item.deviceName, item.mappedAs);
                    var mapping = session.Devices.GetMappedDeviceByName(item.deviceName);
                    mapping.Enabled = item.enabled;
                }
                catch (Exception ex)
                {
                    LPConsole.WriteLine("SessionFile", ex.Message);
                }
            }
            session.Devices.AutoMap();

            // load the implants
            session.Implants.ClearAll();
            foreach (var item in file.implants)
            {
                RangeMap range;
                if (item.activeArea == null)
                {
                    range = new RangeMap(MIDI.MappedMidiDevice.CreateNullDevice());
                }
                else
                {
                    range = item.activeArea.ToRangeMap();
                }
                if (item.status != "not loaded")
                {
                    var implant = session.Implants.Load(item.vpath, range, item.oscFormat);

                    // important to load session values first so the init doesn't screw it up
                    if (item.doubleValues != null)
                    {
                        implant.ImplantInstance.session.DoubleValues.Clear();
                        foreach (var key in item.doubleValues.Keys)
                        {
                            implant.ImplantInstance.session.DoubleValues.Add(key, item.doubleValues[key]);
                        }
                    }
                    if (item.stringValues != null)
                    {
                        implant.ImplantInstance.session.StringValues.Clear();
                        foreach (var key in item.stringValues.Keys)
                        {
                            implant.ImplantInstance.session.StringValues.Add(key, item.stringValues[key]);
                        }
                    }


                    implant.AssignedMode = item.assignedMode;
                    if (item.status == "running")
                    {
                        implant.ServerInit();
                    }
                }
            }
            session.MidiMap.Mappings.Clear();
            foreach (var item in file.midiMap)
            {
                var m = new OscToMidiMap();
                m.ID              = item.id;
                m.OscSource       = item.oscSource;
                m.OscAddress      = item.oscAddress;
                m.OscValueFrom    = item.oscValueFrom;
                m.OscValueTo      = item.oscValueTo;
                m.MidiDestination = item.midiDestination;
                m.MidiType        = item.midiType.GetMidiMessageType(); //OscToMidiMap.FromString(item.midiType);
                m.MidiNote        = item.midiNote;
                m.MidiValueFrom   = item.midiValueFrom;
                m.MidiValueTo     = item.midiValueTo;
                session.MidiMap.Mappings.Add(m);
            }
        }
Пример #34
0
        public void RangeBetween()
        {
            RangeMap map = new RangeMap();

            map.AddRange(5, 6);
            map.AddRange(30, 3);
            map.AddRange(15, 3);

            Assert.AreEqual(3,  map.Ranges.Count);
            Assert.AreEqual(5,  map.Ranges[0].From);
            Assert.AreEqual(10,  map.Ranges[0].To);
            Assert.AreEqual(15,  map.Ranges[1].From);
            Assert.AreEqual(17, map.Ranges[1].To);
            Assert.AreEqual(30,  map.Ranges[2].From);
            Assert.AreEqual(32, map.Ranges[2].To);

            map.AddRange(20, 5);
            Assert.AreEqual(4,  map.Ranges.Count);
            Assert.AreEqual(20,  map.Ranges[2].From);
            Assert.AreEqual(24, map.Ranges[2].To);
        }
Пример #35
0
        public void RangeOverlap3()
        {
            RangeMap map = new RangeMap();
            map.AddRange(10, 11);
            map.AddRange(30, 11);
            map.AddRange(50, 11);

            map.AddRange(15, 41);

            Assert.AreEqual(1, map.Ranges.Count);
            Assert.AreEqual(10, map.Ranges[0].From);
            Assert.AreEqual(60, map.Ranges[0].To);
        }
Пример #36
0
        public void RangeOverlap4()
        {
            RangeMap map = new RangeMap();
            map.AddRange(10, 11);
            map.AddRange(30, 11);
            map.AddRange(50, 11);

            map.AddRange(21, 9);

            Assert.AreEqual(2, map.Ranges.Count);
            Assert.AreEqual(10, map.Ranges[0].From);
            Assert.AreEqual(40, map.Ranges[0].To);
            Assert.AreEqual(50, map.Ranges[1].From);
            Assert.AreEqual(60, map.Ranges[1].To);
        }
Пример #37
0
        public void RangeOverlap5()
        {
            RangeMap map = new RangeMap();
            map.AddRange(10, 11);
            map.AddRange(22, 9);
            map.AddRange(32, 9);

            map.AddRange(21, 11);

            Assert.AreEqual(1, map.Ranges.Count);
            Assert.AreEqual(10, map.Ranges[0].From);
            Assert.AreEqual(40, map.Ranges[0].To);
        }
Пример #38
0
        public void CheckOverlapWithEmptyRanges()
        {
            RangeMap map = new RangeMap();

            Assert.IsFalse(map.OverlapsRange(5, 5));
        }
Пример #39
0
        public void CheckOverlapWithEmptyRanges()
        {
            RangeMap map = new RangeMap();

            Assert.IsFalse(map.OverlapsRange(5, 5));
        }