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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
        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;
            }
        }
Exemplo n.º 9
0
        /// <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()));
        }
Exemplo n.º 10
0
        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;
            }
        }
Exemplo n.º 11
0
        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;
            }
        }