예제 #1
0
        public override Task RunTask(int taskId)
        {
            switch (taskId)
            {
            case 0:
                MessageBroker.Send(VolumeUpCommand.Default, Uid);
                break;

            case 1:
                MessageBroker.Send(VolumeDownCommand.Default, Uid);
                break;

            case 2:
                MessageBroker.Send(TurnOnCommand.Default, Uid);
                break;

            case 3:
                MessageBroker.Send(TurnOffCommand.Default, Uid);
                break;

            case 4:
                MessageBroker.Send(MuteCommand.Default, Uid);
                break;

            case 5:
                MessageBroker.Send(InputSetCommand.Create("HDMI"), Uid);
                break;
            }

            return(Task.CompletedTask);
        }
예제 #2
0
        protected async Task SetInput(InputSetCommand message)
        {
            if (_fullState == null)
            {
                throw new ArgumentException("Cannot change input source on Denon device because device info was not downloaded from device");
            }
            var inputName = message.AsString(MessageProperties.InputSource);
            var input     = _fullState.TranslateInputName(inputName, _zone.ToString());

            if (input?.Length == 0)
            {
                throw new ArgumentException($"Input {inputName} was not found on available device input sources");
            }

            var control = new DenonControlQuery
            {
                Command    = input,
                Api        = "formiPhoneAppDirect",
                ReturnNode = "",
                Zone       = "",
                Address    = _hostName
            };

            await MessageBroker.QueryService <DenonControlQuery, string>(control).ConfigureAwait(false);

            _input = await UpdateState(InputSourceState.StateName, _input, inputName).ConfigureAwait(false);
        }
예제 #3
0
        protected async Task Handle(InputSetCommand message)
        {
            var inputName = message.AsString(MessageProperties.InputSource);

            var source = "";

            if (inputName == "HDMI")
            {
                source = "KEY_HDMI";
            }
            else if (inputName == "AV")
            {
                source = "KEY_AV1";
            }
            else if (inputName == "COMPONENT")
            {
                source = "KEY_COMPONENT1";
            }
            else if (inputName == "TV")
            {
                source = "KEY_TV";
            }

            if (source?.Length == 0)
            {
                throw new ArgumentException($"Input {inputName} was not found on Samsung available device input sources");
            }

            var cmd = GetCommand(source);
            await MessageBroker.SendToService(cmd).ConfigureAwait(false);

            _input = await UpdateState(InputSourceState.StateName, _input, inputName).ConfigureAwait(false);
        }
예제 #4
0
        public static InputSetCommand Create(string input)
        {
            var command = new InputSetCommand
            {
                InputSource = input
            };

            return(command);
        }
예제 #5
0
        public override async Task RunTask(int taskId)
        {
            switch (taskId)
            {
            case 0:
                MessageBroker.Send(VolumeUpCommand.Default, Uid);
                break;

            case 1:
                MessageBroker.Send(VolumeDownCommand.Default, Uid);
                break;

            case 2:
                MessageBroker.Send(TurnOnCommand.Default, Uid);
                break;

            case 3:
                MessageBroker.Send(TurnOffCommand.Default, Uid);
                break;

            case 4:
                MessageBroker.Send(VolumeSetCommand.Create(40), Uid);
                break;

            case 5:
                MessageBroker.Send(MuteCommand.Default, Uid);
                break;

            case 6:
                MessageBroker.Send(UnmuteCommand.Default, Uid);
                break;

            case 7:
                MessageBroker.Send(InputSetCommand.Create("HDMI1"), Uid);
                break;

            case 8:

                var command = new SonyRegisterQuery();
                var result  = await MessageBroker.Request <SonyRegisterQuery, string>(command, "Sony");

                ConsoleEx.WriteTitleLine("Enter PIN from TV:");
                var pin = Console.ReadLine();
                command.PIN = pin;
                result      = await MessageBroker.Request <SonyRegisterQuery, string>(command, "Sony");

                Console.WriteLine($"Device was registered successfully. Application hash: {result}");
                break;
            }
        }
예제 #6
0
        protected async Task Handle(InputSetCommand message)
        {
            var inputName = message.AsString(MessageProperties.InputSource);

            var cmd = new ComputerCommand
            {
                Address = _hostname,
                Service = "InputSource",
                Message = new InputSourcePost {
                    Input = inputName
                }
            };
            await MessageBroker.SendToService(cmd).ConfigureAwait(false);

            _input = await UpdateState(InputSourceState.StateName, _input, inputName).ConfigureAwait(false);
        }
예제 #7
0
        protected async Task Handle(InputSetCommand message)
        {
            var inputName = message.AsString(MessageProperties.InputSource);

            if (!_inputSourceMap.ContainsKey(inputName))
            {
                throw new ArgumentException($"Input {inputName} was not found on available device input sources");
            }

            var code = _inputSourceMap[inputName];

            var cmd = GetControlCommand(code);
            await MessageBroker.QueryService <SonyControlQuery, string>(cmd);

            _input = await UpdateState(InputSourceState.StateName, _input, inputName);
        }
예제 #8
0
        public override async Task RunTask(int taskId)
        {
            switch (taskId)
            {
            case 0:
                MessageBroker.Send(VolumeUpCommand.Default, Uid);
                break;

            case 1:
                MessageBroker.Send(VolumeDownCommand.Default, Uid);
                break;

            case 2:
                MessageBroker.Send(TurnOnCommand.Default, Uid);
                break;

            case 3:
                MessageBroker.Send(TurnOffCommand.Default, Uid);
                break;

            case 4:
                MessageBroker.Send(VolumeSetCommand.Create(40), Uid);
                break;

            case 5:
                MessageBroker.Send(MuteCommand.Default, Uid);
                break;

            case 6:
                MessageBroker.Send(UnmuteCommand.Default, Uid);
                break;

            case 7:
                MessageBroker.Send(InputSetCommand.Create("DVD"), Uid);
                break;

            case 8:
                MessageBroker.Send(ModeSetCommand.Create("Movie"), Uid);
                break;

            case 9:
                var capabilities = await MessageBroker.Request <CapabilitiesQuery, IReadOnlyCollection <string> >(CapabilitiesQuery.Default, Uid);

                ConsoleEx.WriteTitleLine($"Capabilities of '{Uid}': {string.Join(", ", capabilities)}");
                break;

            case 10:
                var supportedStates = await MessageBroker.Request <SupportedStatesQuery, IReadOnlyCollection <string> >(SupportedStatesQuery.Default, Uid);

                ConsoleEx.WriteTitleLine($"Supported states of '{Uid}': {string.Join(", ", supportedStates)}");
                break;

            case 11:
                var states = await MessageBroker.Request <StateQuery, IReadOnlyDictionary <string, string> >(StateQuery.Default, Uid);

                ConsoleEx.WriteTitleLine($"State of '{Uid}': {string.Join(", ", states.ToFormatedString())}");
                break;
            }

            return;
        }