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); }
/// <summary> /// 唤醒任务线程 /// </summary> public virtual void Resume() { if (_cancelTokenSource == null) { return; } ContinueEvent.Set(); LogHelper.Debug($"{Name}部件唤醒。"); }
/// <summary> /// 暂停任务线程 /// </summary> public virtual void Pause() { if (_cancelTokenSource == null) { return; } ContinueEvent.Reset(); LogHelper.Debug($"{Name}部件暂停。"); }
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)); } }
public static void Continue() { ContinueEvent?.Invoke(); GameData.CurrentScreen = GameData.Screens.InGameScreen; }