Example #1
0
        public AccelTypeOptions(
            ComboBox accelDropdown,
            Option acceleration,
            Option scale,
            CapOptions cap,
            Option weight,
            OffsetOptions offset,
            Option limit,
            Option exponent,
            Option midpoint,
            Button writeButton,
            ActiveValueLabel accelTypeActiveValue)
        {
            AccelDropdown = accelDropdown;
            AccelDropdown.Items.Clear();
            AccelDropdown.Items.AddRange(AccelerationTypes.Keys.ToArray());
            AccelDropdown.SelectedIndexChanged += new System.EventHandler(OnIndexChanged);

            Acceleration         = acceleration;
            Scale                = scale;
            Cap                  = cap;
            Weight               = weight;
            Offset               = offset;
            Limit                = limit;
            Exponent             = exponent;
            Midpoint             = midpoint;
            WriteButton          = writeButton;
            AccelTypeActiveValue = accelTypeActiveValue;

            AccelTypeActiveValue.Left   = AccelDropdown.Left + AccelDropdown.Width;
            AccelTypeActiveValue.Height = AccelDropdown.Height;

            Layout("Off");
            ShowingDefault = true;
        }
Example #2
0
        public static bool TryGetAddressOfHeap <T>(T value, OffsetOptions options, out Pointer <byte> ptr)
        {
            if (Runtime.Info.IsStruct(value))
            {
                ptr = null;
                return(false);
            }

            ptr = AddressOfHeapInternal(value, options);
            return(true);
        }
Example #3
0
        private static Pointer <byte> AddressOfHeapInternal <T>(T value, OffsetOptions offset)
        {
            // It is already assumed value is a class type

            //var tr = __makeref(value);
            //var heapPtr = **(IntPtr**) (&tr);

            var heapPtr = AddressOf(ref value).ReadPointer();


            // NOTE:
            // Strings have their data offset by Offsets.OffsetToStringData
            // Arrays have their data offset by IntPtr.Size * 2 bytes (may be different for 32 bit)


            switch (offset)
            {
            case OffsetOptions.StringData:
            {
                Conditions.Require(Runtime.Info.IsString(value));
                string s = value as string;
                return(heapPtr + Offsets.OffsetToStringData);
            }

            case OffsetOptions.ArrayData:
            {
                Conditions.Require(Runtime.Info.IsArray(value));
                return(heapPtr + Offsets.OffsetToArrayData);
            }

            case OffsetOptions.Fields:
            {
                // todo: if the type is an array, should this return ArrayData, ...and if it's a string,
                // ... should this return StringData?

                // Skip over the MethodTable*
                return(heapPtr + Offsets.OffsetToData);
            }

            case OffsetOptions.None:
                return(heapPtr);

            case OffsetOptions.Header:
                return(heapPtr - Offsets.OffsetToData);

            default:
                throw new ArgumentOutOfRangeException(nameof(offset), offset, null);
            }
        }
 private void VlcPlayerHelper_PlayerReady()
 {
     if (vlcPlayerHelper.MediaPlayer.Fps > 0)
     {
         var frameDuration = 1.0 / vlcPlayerHelper.MediaPlayer.Fps;
         Device.BeginInvokeOnMainThread(() =>
         {
             var frameOption = OffsetOptions.FirstOrDefault(o => o.Name == "1 Frame");
             if (frameOption != null)
             {
                 OffsetOptions.Remove(frameOption);
             }
             OffsetOptions.Add(new OffsetOption("1 Frame", TimeSpan.FromSeconds(frameDuration)));
         });
     }
 }
        private void MediaPlayerHelper_MediaPlayerReady(object sender, EventArgs e)
        {
            var t = TimeSpan.FromMilliseconds(MediaHelper.MediaPlayer.Length);

            if (MediaHelper.MediaPlayer.Fps > 0)
            {
                var frameDuration = 1.0 / MediaHelper.MediaPlayer.Fps;
                var f             = OffsetOptions.FirstOrDefault(o => o.Name == "1 Frame");
                if (f != null)
                {
                    OffsetOptions.Remove(f);
                }
                OffsetOptions.Add(new OffsetOption("1 Frame", TimeSpan.FromSeconds(frameDuration)));
            }
            if (t.TotalMilliseconds != totalDuration.TotalMilliseconds)
            {
            }
        }
Example #6
0
 public override void Reset()
 {
     gameObject = null;
     fingerId   = new FsmInt
     {
         UseVariable = true
     };
     touchBegan        = null;
     touchMoved        = null;
     touchStationary   = null;
     touchEnded        = null;
     touchCanceled     = null;
     storeFingerId     = null;
     storeHitPoint     = null;
     normalizeHitPoint = false;
     storeOffset       = null;
     relativeTo        = OffsetOptions.Center;
     normalizeOffset   = true;
     everyFrame        = true;
 }
        public override void Reset()
        {
            gameObject = null;
            fingerId = new FsmInt { UseVariable = true };

            touchBegan = null;
            touchMoved = null;
            touchStationary = null;
            touchEnded = null;
            touchCanceled = null;

            storeFingerId = null;
            storeHitPoint = null;
            normalizeHitPoint = false;
            storeOffset = null;
            relativeTo = OffsetOptions.Center;
            normalizeOffset = true;

            everyFrame = true;
        }
Example #8
0
        public static AccelGUI Construct(
            RawAcceleration form,
            ManagedAccel activeAccel,
            Chart accelerationChart,
            Chart accelerationChartY,
            Chart velocityChart,
            Chart velocityChartY,
            Chart gainChart,
            Chart gainChartY,
            ComboBox accelTypeDropX,
            ComboBox accelTypeDropY,
            Button writeButton,
            ButtonBase toggleButton,
            ToolStripMenuItem showVelocityGainToolStripMenuItem,
            ToolStripMenuItem showLastMouseMoveMenuItem,
            ToolStripMenuItem wholeVectorToolStripMenuItem,
            ToolStripMenuItem byVectorComponentToolStripMenuItem,
            ToolStripMenuItem velocityGainCapToolStripMenuItem,
            ToolStripMenuItem legacyCapToolStripMenuItem,
            ToolStripMenuItem gainOffsetToolStripMenuItem,
            ToolStripMenuItem legacyOffsetToolStripMenuItem,
            ToolStripMenuItem autoWriteMenuItem,
            ToolStripMenuItem scaleMenuItem,
            ToolStripTextBox dpiTextBox,
            ToolStripTextBox pollRateTextBox,
            TextBox sensitivityBoxX,
            TextBox sensitivityBoxY,
            TextBox rotationBox,
            TextBox weightBoxX,
            TextBox weightBoxY,
            TextBox capBoxX,
            TextBox capBoxY,
            TextBox offsetBoxX,
            TextBox offsetBoxY,
            TextBox accelerationBoxX,
            TextBox accelerationBoxY,
            TextBox scaleBoxX,
            TextBox scaleBoxY,
            TextBox limitBoxX,
            TextBox limitBoxY,
            TextBox expBoxX,
            TextBox expBoxY,
            TextBox midpointBoxX,
            TextBox midpointBoxY,
            CheckBox sensXYLock,
            CheckBox byComponentXYLock,
            Label lockXYLabel,
            Label sensitivityLabel,
            Label rotationLabel,
            Label weightLabelX,
            Label weightLabelY,
            Label capLabelX,
            Label capLabelY,
            Label offsetLabelX,
            Label offsetLabelY,
            Label constantOneLabelX,
            Label constantOneLabelY,
            Label scaleLabelX,
            Label scaleLabelY,
            Label limitLabelX,
            Label limitLabelY,
            Label expLabelX,
            Label expLabelY,
            Label constantThreeLabelX,
            Label constantThreeLabelY,
            Label activeValueTitleX,
            Label activeValueTitleY,
            Label sensitivityActiveXLabel,
            Label sensitivityActiveYLabel,
            Label rotationActiveLabel,
            Label weightActiveXLabel,
            Label weightActiveYLabel,
            Label capActiveXLabel,
            Label capActiveYLabel,
            Label offsetActiveLabelX,
            Label offsetActiveLabelY,
            Label accelerationActiveLabelX,
            Label accelerationActiveLabelY,
            Label scaleActiveLabelX,
            Label scaleActiveLabelY,
            Label limitActiveLabelX,
            Label limitActiveLabelY,
            Label expActiveLabelX,
            Label expActiveLabelY,
            Label midpointActiveLabelX,
            Label midpointActiveLabelY,
            Label accelTypeActiveLabelX,
            Label accelTypeActiveLabelY,
            Label optionSetXTitle,
            Label optionSetYTitle,
            Label mouseLabel)
        {
            var accelCalculator = new AccelCalculator(
                new Field(dpiTextBox.TextBox, form, Constants.DefaultDPI),
                new Field(pollRateTextBox.TextBox, form, Constants.DefaultPollRate));

            var accelCharts = new AccelCharts(
                form,
                new ChartXY(accelerationChart, accelerationChartY, Constants.SensitivityChartTitle),
                new ChartXY(velocityChart, velocityChartY, Constants.VelocityChartTitle),
                new ChartXY(gainChart, gainChartY, Constants.GainChartTitle),
                showVelocityGainToolStripMenuItem,
                showLastMouseMoveMenuItem,
                writeButton,
                accelCalculator);

            var sensitivity = new OptionXY(
                sensitivityBoxX,
                sensitivityBoxY,
                sensXYLock,
                form,
                1,
                sensitivityLabel,
                new ActiveValueLabelXY(
                    new ActiveValueLabel(sensitivityActiveXLabel, activeValueTitleX),
                    new ActiveValueLabel(sensitivityActiveYLabel, activeValueTitleX)),
                "Sens Multiplier");

            var rotation = new Option(
                rotationBox,
                form,
                0,
                rotationLabel,
                0,
                new ActiveValueLabel(rotationActiveLabel, activeValueTitleX),
                "Rotation");

            var optionSetYLeft = rotation.Left + rotation.Width;

            var weightX = new Option(
                weightBoxX,
                form,
                1,
                weightLabelX,
                0,
                new ActiveValueLabel(weightActiveXLabel, activeValueTitleX),
                "Weight");

            var weightY = new Option(
                weightBoxY,
                form,
                1,
                weightLabelY,
                optionSetYLeft,
                new ActiveValueLabel(weightActiveYLabel, activeValueTitleY),
                "Weight");

            var capX = new Option(
                capBoxX,
                form,
                0,
                capLabelX,
                0,
                new ActiveValueLabel(capActiveXLabel, activeValueTitleX),
                "Cap");

            var capY = new Option(
                capBoxY,
                form,
                0,
                capLabelY,
                optionSetYLeft,
                new ActiveValueLabel(capActiveYLabel, activeValueTitleY),
                "Cap");

            var offsetX = new Option(
                offsetBoxX,
                form,
                0,
                offsetLabelX,
                0,
                new ActiveValueLabel(offsetActiveLabelX, activeValueTitleX),
                "Offset");

            var offsetY = new Option(
                offsetBoxY,
                form,
                0,
                offsetLabelY,
                optionSetYLeft,
                new ActiveValueLabel(offsetActiveLabelY, activeValueTitleY),
                "Offset");

            var offsetOptionsX = new OffsetOptions(
                gainOffsetToolStripMenuItem,
                legacyOffsetToolStripMenuItem,
                offsetX);

            var offsetOptionsY = new OffsetOptions(
                gainOffsetToolStripMenuItem,
                legacyOffsetToolStripMenuItem,
                offsetY);

            var accelerationX = new Option(
                new Field(accelerationBoxX, form, 0),
                constantOneLabelX,
                new ActiveValueLabel(accelerationActiveLabelX, activeValueTitleX),
                0);

            var accelerationY = new Option(
                new Field(accelerationBoxY, form, 0),
                constantOneLabelY,
                new ActiveValueLabel(accelerationActiveLabelY, activeValueTitleY),
                optionSetYLeft);

            var scaleX = new Option(
                new Field(scaleBoxX, form, 0),
                scaleLabelX,
                new ActiveValueLabel(scaleActiveLabelX, activeValueTitleX),
                0);

            var scaleY = new Option(
                new Field(scaleBoxY, form, 0),
                scaleLabelY,
                new ActiveValueLabel(scaleActiveLabelY, activeValueTitleY),
                optionSetYLeft);

            var limitX = new Option(
                new Field(limitBoxX, form, 2),
                limitLabelX,
                new ActiveValueLabel(limitActiveLabelX, activeValueTitleX),
                0);

            var limitY = new Option(
                new Field(limitBoxY, form, 2),
                limitLabelY,
                new ActiveValueLabel(limitActiveLabelY, activeValueTitleY),
                optionSetYLeft);

            var exponentX = new Option(
                new Field(expBoxX, form, 2),
                expLabelX,
                new ActiveValueLabel(expActiveLabelX, activeValueTitleX),
                0);

            var exponentY = new Option(
                new Field(expBoxY, form, 2),
                expLabelY,
                new ActiveValueLabel(expActiveLabelY, activeValueTitleY),
                optionSetYLeft);

            var midpointX = new Option(
                new Field(midpointBoxX, form, 0),
                constantThreeLabelX,
                new ActiveValueLabel(midpointActiveLabelX, activeValueTitleX),
                0);

            var midpointY = new Option(
                new Field(midpointBoxY, form, 0),
                constantThreeLabelY,
                new ActiveValueLabel(midpointActiveLabelY, activeValueTitleY),
                optionSetYLeft);

            var capOptionsX = new CapOptions(
                velocityGainCapToolStripMenuItem,
                legacyCapToolStripMenuItem,
                capX);

            var capOptionsY = new CapOptions(
                velocityGainCapToolStripMenuItem,
                legacyCapToolStripMenuItem,
                capY);

            var accelerationOptionsX = new AccelTypeOptions(
                accelTypeDropX,
                accelerationX,
                scaleX,
                capOptionsX,
                weightX,
                offsetOptionsX,
                limitX,
                exponentX,
                midpointX,
                writeButton,
                new ActiveValueLabel(accelTypeActiveLabelX, activeValueTitleX));

            var accelerationOptionsY = new AccelTypeOptions(
                accelTypeDropY,
                accelerationY,
                scaleY,
                capOptionsY,
                weightY,
                offsetOptionsY,
                limitY,
                exponentY,
                midpointY,
                writeButton,
                new ActiveValueLabel(accelTypeActiveLabelY, activeValueTitleY));

            var optionsSetX = new AccelOptionSet(
                optionSetXTitle,
                activeValueTitleX,
                rotationBox.Top + rotationBox.Height + Constants.OptionVerticalSeperation,
                accelerationOptionsX);

            var optionsSetY = new AccelOptionSet(
                optionSetYTitle,
                activeValueTitleY,
                rotationBox.Top + rotationBox.Height + Constants.OptionVerticalSeperation,
                accelerationOptionsY);

            var applyOptions = new ApplyOptions(
                wholeVectorToolStripMenuItem,
                byVectorComponentToolStripMenuItem,
                byComponentXYLock,
                optionsSetX,
                optionsSetY,
                sensitivity,
                rotation,
                lockXYLabel,
                accelCharts);

            var settings = new SettingsManager(
                activeAccel,
                accelCalculator.DPI,
                accelCalculator.PollRate,
                autoWriteMenuItem,
                showLastMouseMoveMenuItem,
                showVelocityGainToolStripMenuItem);

            var mouseWatcher = new MouseWatcher(form, mouseLabel, accelCharts, accelCalculator.PollRate);

            return(new AccelGUI(
                       form,
                       accelCalculator,
                       accelCharts,
                       settings,
                       applyOptions,
                       writeButton,
                       toggleButton,
                       mouseWatcher,
                       scaleMenuItem));
        }
Example #9
0
 public static Pointer <byte> AddressOfHeap <T>(T value, OffsetOptions offset = OffsetOptions.None) where T : class
 => AddressOfHeapInternal(value, offset);