public void TestDecode_PlaybackStateChange(PlaybackState state) { var command = new PlaybackCommand(state.AsPlaybackOp(), ChannelId); var message = DecodeAndAssertMessageType <PlaybackStateChangeArgs>(command); Assert.Equal(ChannelId, message.ChannelId); Assert.Equal(state, message.State); }
public void TestZeroArgumentChannelCommandSend() { var cmd = new PlaybackCommand(PlaybackOp.Play, 42); var m = new MessageBuilder(cmd); // Even zero-argument commands have a trailing length (of 0). const uint expectedLength = 0; AssertMessage(m, cmd, expectedLength); }
public void TestDecode_MarkerChange(MarkerType marker) { var command = new PlaybackCommand(marker.AsPlaybackOp(), 42); _primitiveSource.AddUint(1001); var message = DecodeAndAssertMessageType <MarkerChangeArgs>(command); Assert.Equal(ChannelId, message.ChannelId); Assert.Equal(marker, message.Marker); Assert.Equal(1001U, message.NewValue); }
public void TestPacked_ChannelOnly() { var expected = (ushort)( CommandGroup.Playback.ToWordBits() | PlaybackOp.Play.ToWordBits() | CommandPacking.Channel(42)); var unpacked = new PlaybackCommand(PlaybackOp.Play, 42); var actual = unpacked.Packed; Assert.Equal(expected, actual); }
public void TestU32ChannelCommandSend() { var cmd = new PlaybackCommand(PlaybackOp.CuePosition, 0); const uint value = 3600; var m = new MessageBuilder(cmd).Add(value); // Being one 32-bit argument, the length should be 4. const uint expectedLength = 4; AssertMessage(m, cmd, expectedLength, actualValue => AssertEqualUint(value, actualValue)); }
public void TestFloatChannelCommandSend() { var cmd = new PlaybackCommand(PlaybackOp.Volume, 0); const float value = 0.75f; var m = new MessageBuilder(cmd).Add(value); // Floats are 32-bit, so the length should be 4. const uint expectedLength = 4; AssertMessage(m, cmd, expectedLength, actualValue => Assert.Equal(value, Assert.IsAssignableFrom <float>(actualValue), 2)); }
private async void changeTrack(PlaybackCommand command) { var session = await getSession(); if (session == null) { return; } var currentTrack = await getMediaProperty(session); bool success; switch (command) { case PlaybackCommand.Play: success = await playTrack(session); if (success) { togglePlayButton(true); } break; case PlaybackCommand.Pause: success = await pauseTrack(session); if (success) { togglePlayButton(false); } break; case PlaybackCommand.Next: success = await nextTrack(session); break; case PlaybackCommand.Prev: success = await prevTrack(session); break; } updateTrackInfo(session, currentTrack); }
public void Visit(PlaybackCommand command) { var channelId = command.ChannelId; switch (command.Op) { case PlaybackOp.Play: case PlaybackOp.Pause: case PlaybackOp.Stop: DecodePlaybackStateChange(channelId, command.Op.AsPlaybackState()); break; case PlaybackOp.Volume: DecodeVolume(); break; case PlaybackOp.Load: DecodeLoad(channelId); break; case PlaybackOp.Position when command.ModeFlag: case PlaybackOp.CuePosition when command.ModeFlag: case PlaybackOp.IntroPosition when command.ModeFlag: DecodeMarkerGet(channelId, command.Op.AsMarkerType()); break; case PlaybackOp.Position when !command.ModeFlag: case PlaybackOp.CuePosition when !command.ModeFlag: case PlaybackOp.IntroPosition when !command.ModeFlag: DecodeMarkerChange(channelId, command.Op.AsMarkerType()); break; default: ReportMalformedCommand(CommandGroup.Playback); break; } }
/// <summary> /// Initalize values. /// </summary> public NavBarViewModel() : base("Nav") { _pm = IoC.Get <PulseManager>(); _events = IoC.Get <IEventAggregator>(); _adcpConn = IoC.Get <AdcpConnection>(); _IsRecording = false; this.NotifyOfPropertyChange(() => this.IsRecording); // Set the record image SetRecorderImage(); // Warning timer _recorderTimer = new System.Timers.Timer(); _recorderTimer.Interval = 2000; // 2 seconds. _recorderTimer.Elapsed += _recorderTimer_Elapsed; _recorderTimer.AutoReset = true; _recorderTimer.Start(); // Command to go back a view BackCommand = ReactiveCommand.Create(); BackCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.Back))); // Command to go to Home View HomeCommand = ReactiveCommand.Create(); HomeCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.HomeView))); // Command to go to SmartPage View ConfigureCommand = ReactiveCommand.Create(); ConfigureCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.SmartPageView))); // Command to go to ViewData View ViewDataCommand = ReactiveCommand.Create(); ViewDataCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.ViewDataView))); //// Command to go to Playback data //PlaybackCommand = ReactiveCommand.Create(); //PlaybackCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.SelectPlaybackView))); // Select a file to playback PlaybackCommand = ReactiveCommand.Create(); PlaybackCommand.Subscribe(_ => PlaybackFile()); // Command to go to ScreenData View ScreenDataCommand = ReactiveCommand.Create(); ScreenDataCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.ScreenDataView))); // Command to go to Project View ProjectCommand = ReactiveCommand.Create(); ProjectCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.ProjectView))); // Command to go to VesselMount Options View VmOptionsCommand = ReactiveCommand.Create(); VmOptionsCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.VesselMountOptionsView))); // Command to go to Data Format View DataFormatCommand = ReactiveCommand.Create(); DataFormatCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.DataFormatView))); // Command to go to VesselMount Options View AveragingCommand = ReactiveCommand.Create(); AveragingCommand.Subscribe(_ => _events.PublishOnUIThread(new ViewNavEvent(ViewNavEvent.ViewId.AveragingView))); // Set the Clock time to Local System time on the ADCP StartTestingCommand = ReactiveCommand.CreateAsyncTask(this.WhenAny(x => x.IsTesting, x => !x.Value), _ => Task.Run(() => On_StartTesting())); // Create a command to stop testing StopTestingCommand = ReactiveCommand.CreateAsyncTask(this.WhenAny(x => x.IsTesting, x => x.Value), _ => Task.Run(() => On_StopTesting())); }
public void SendPlaybackCommand(PlaybackCommand key, string args = "") { if (!Connected) { return; } switch (key) { case PlaybackCommand.Pause: s.SendCommand("pause", args); break; case PlaybackCommand.PlayPause: if (CurrentStatus == null || CurrentStatus.PlaybackState == PlaybackState.Stopped) { s.SendCommand("play"); } else { switch (CurrentStatus.PlaybackState) { case PlaybackState.Playing: s.SendCommand("pause", "1"); break; case PlaybackState.Paused: s.SendCommand("pause", "0"); break; } } break; case PlaybackCommand.Stop: s.SendCommand("stop"); break; case PlaybackCommand.PreviousTrack: s.SendCommand("previous"); break; case PlaybackCommand.NextTrack: s.SendCommand("next"); break; case PlaybackCommand.Play: s.SendCommand("play", args); break; case PlaybackCommand.PlayID: s.SendCommand("playid", args); break; case PlaybackCommand.Seek: s.SendCommand("seek", args); break; case PlaybackCommand.SeekID: s.SendCommand("seekid", args); break; case PlaybackCommand.SeekCurr: s.SendCommand("seekcurr", args); break; } }
public void SendPlaybackCommand(PlaybackCommand key, string args = "" ) { if (!Connected) return; switch (key) { case PlaybackCommand.Pause: s.SendCommand("pause", args); break; case PlaybackCommand.PlayPause: if (CurrentStatus == null || CurrentStatus.PlaybackState == PlaybackState.Stopped) { s.SendCommand("play"); } else { switch (CurrentStatus.PlaybackState) { case PlaybackState.Playing: s.SendCommand("pause", "1"); break; case PlaybackState.Paused: s.SendCommand("pause", "0"); break; } } break; case PlaybackCommand.Stop: s.SendCommand("stop"); break; case PlaybackCommand.PreviousTrack: s.SendCommand("previous"); break; case PlaybackCommand.NextTrack: s.SendCommand("next"); break; case PlaybackCommand.Play: s.SendCommand("play", args); break; case PlaybackCommand.PlayID: s.SendCommand("playid", args); break; case PlaybackCommand.Seek: s.SendCommand("seek", args); break; case PlaybackCommand.SeekID: s.SendCommand("seekid", args); break; case PlaybackCommand.SeekCurr: s.SendCommand("seekcurr", args); break; } }