private void SendParameterRelatedCommands(AutoAdjustParameters parameters, bool onlyEyebrow) { var eyebrowCommands = new ReceivedCommand[] { new ReceivedCommand( VmmCommands.EyebrowLeftUpKey, parameters.EyebrowLeftUpKey ), new ReceivedCommand( VmmCommands.EyebrowLeftDownKey, parameters.EyebrowLeftDownKey ), new ReceivedCommand( VmmCommands.UseSeparatedKeyForEyebrow, $"{parameters.UseSeparatedKeyForEyebrow}" ), new ReceivedCommand( VmmCommands.EyebrowRightUpKey, parameters.EyebrowRightUpKey ), new ReceivedCommand( VmmCommands.EyebrowRightDownKey, parameters.EyebrowRightDownKey ), new ReceivedCommand( VmmCommands.EyebrowUpScale, $"{parameters.EyebrowUpScale}" ), new ReceivedCommand( VmmCommands.EyebrowDownScale, $"{parameters.EyebrowDownScale}" ), new ReceivedCommand( VmmCommands.LengthFromWristToPalm, $"{parameters.LengthFromWristToPalm}" ), new ReceivedCommand( VmmCommands.LengthFromWristToTip, $"{parameters.LengthFromWristToTip}" ), }; foreach (var cmd in eyebrowCommands) { _dispatcher.ReceiveCommand(cmd); } if (onlyEyebrow) { return; } //レイアウト調整はコレ一発でおしまいです _dispatcher.ReceiveCommand(new ReceivedCommand(VmmCommands.ResetDeviceLayout)); }
public void ReceiveCommand(ReceivedCommand command) { if (command.Command == MessageCommandNames.CommandArray) { //コマンドの一括送信を受け取ったとき: バラバラにしてキューに詰めておく var commands = CommandArrayParser.ParseCommandArray(command.Content); foreach (var c in commands) { _receivedCommands.Enqueue(c); } } else { //普通の受信 _receivedCommands.Enqueue(command); } }
private void ProcessCommand(ReceivedCommand command) { _commandsSubject.OnNext(command); }