Beispiel #1
0
        public MidiEvent Read(MidiReader reader, ReadingSettings settings, byte currentStatusByte)
        {
            SystemRealTimeEvent systemRealTimeEvent = null;

            switch (currentStatusByte)
            {
            case EventStatusBytes.SystemRealTime.ActiveSensing:
                systemRealTimeEvent = new ActiveSensingEvent();
                break;

            case EventStatusBytes.SystemRealTime.Continue:
                systemRealTimeEvent = new ContinueEvent();
                break;

            case EventStatusBytes.SystemRealTime.Reset:
                systemRealTimeEvent = new ResetEvent();
                break;

            case EventStatusBytes.SystemRealTime.Start:
                systemRealTimeEvent = new StartEvent();
                break;

            case EventStatusBytes.SystemRealTime.Stop:
                systemRealTimeEvent = new StopEvent();
                break;

            case EventStatusBytes.SystemRealTime.TimingClock:
                systemRealTimeEvent = new TimingClockEvent();
                break;
            }

            systemRealTimeEvent.Read(reader, settings, MidiEvent.UnknownContentSize);
            return(systemRealTimeEvent);
        }
Beispiel #2
0
 /// <summary>
 ///     唤醒任务线程
 /// </summary>
 public virtual void Resume()
 {
     if (_cancelTokenSource == null)
     {
         return;
     }
     ContinueEvent.Set();
     LogHelper.Debug($"{Name}部件唤醒。");
 }
Beispiel #3
0
 /// <summary>
 ///     暂停任务线程
 /// </summary>
 public virtual void Pause()
 {
     if (_cancelTokenSource == null)
     {
         return;
     }
     ContinueEvent.Reset();
     LogHelper.Debug($"{Name}部件暂停。");
 }
Beispiel #4
0
        void HandleMessage(string msg, dynamic args, Request request)
        {
            LogDebug("(in)  " + request.type + " " + msg);
            LogVerbose("... " + JsonConvert.SerializeObject(request));

            args = args ?? new { };

            try
            {
                switch (msg)
                {
                case "initialize":
                    var cap = new Capabilities();
                    InitializeEvent?.Invoke(request, cap);
                    Send(request, cap);
                    Initialized();
                    break;

                case "configurationDone":
                    ConfigurationDoneEvent?.Invoke(request);
                    break;

                case "launch":
                    LaunchEvent?.Invoke(request, JsonConvert.SerializeObject(args));
                    break;

                case "attach":
                    AttachEvent?.Invoke(request, JsonConvert.SerializeObject(args));
                    break;

                case "disconnect":
                    DisconnectEvent?.Invoke(request);
                    break;

                case "next":
                    StepOverEvent?.Invoke(request);
                    break;

                case "continue":
                    ContinueEvent?.Invoke(request);
                    break;

                case "stepIn":
                    StepInEvent?.Invoke(request);
                    break;

                case "stepOut":
                    StepOutEvent?.Invoke(request);
                    break;

                case "pause":
                    PauseEvent?.Invoke(request);
                    break;

                case "threads":
                    GetThreadsEvent?.Invoke(request);
                    break;

                case "scopes":
                    GetScopesEvent?.Invoke(request, (int)args.frameId);
                    break;

                case "stackTrace":
                    GetStackTraceEvent?.Invoke(request);
                    break;

                case "variables":
                    _tempVariables.Clear();
                    GetVariablesEvent?.Invoke(request, (int)args.variablesReference, _tempVariables);
                    Send(request, new VariablesResponseBody(_tempVariables));
                    break;

                case "setVariable":

                    var variable = new Variable((string)args.name, (string)args.value, "", (int)args.variablesReference);

                    SetVariableEvent?.Invoke(
                        request, variable
                        );

                    Send(
                        request,
                        new SetVariableResponseBody(variable.value, variable.variablesReference)
                        );

                    break;

                case "loadedSources":
                    GetLoadedSourcesEvent?.Invoke(request);
                    break;

                case "source":
                    GetSourceEvent?.Invoke(request);
                    break;

                case "evaluate":

                    string resultEval = "";
                    EvaluateEvent?.Invoke(
                        request, (int)args.frameId, (string)args.context, (string)args.expression, (bool)(args.format?.hex ?? false),
                        ref resultEval
                        );

                    Send(
                        request,
                        new EvaluateResponseBody(
                            resultEval
                            )
                        );

                    break;

                case "completions":
                    GetCompletionsEvent?.Invoke(
                        request, (int)args.frameId, (int)args.line, (int)args.column, (string )args.text
                        );
                    break;


                case "setBreakpoints":
                    SetBreakpointsEvent?.Invoke(request);
                    break;


//                    case "runInTerminal":
//                        OnRunInTerminal?.Invoke( pRequest );
//                        break;


//                    case "setFunctionBreakpoints":
//                        SetFunctionBreakpoints( pResponse, pArgs );
//                        break;

//                    case "setExceptionBreakpoints":
//                        SetExceptionBreakpoints( pResponse, pArgs );
//                        break;

                default:

                    CustomRequestEvent?.Invoke(request);

                    if (!request.responded)
                    {
                        Log(
                            Logging.Severity.Error,
                            string.Format("Request not handled: '{0}' [{1}]", msg, Convert.Encode(request.arguments.ToString()))
                            );
                    }

                    break;
                }
            }
            catch (Exception e)
            {
                Log(
                    Logging.Severity.Error,
                    $"Error during request '{Convert.Encode( request.arguments.ToString() )}' [{msg}] (exception: {e.Message})\n{e}"
                    );

                Send(new Response(request, errorMsg: e.Message));
            }
        }
Beispiel #5
0
 public static void Continue()
 {
     ContinueEvent?.Invoke();
     GameData.CurrentScreen = GameData.Screens.InGameScreen;
 }