Ejemplo n.º 1
0
        private async Task SetNoiseControlAsync(NoiseControlType type)
        {
            string value;

            switch (type)
            {
            case NoiseControlType.NoiseControlMax:
                value = "anc&value=2";
                break;

            case NoiseControlType.NoiseControlOn:
                value = "anc&value=1";
                break;

            case NoiseControlType.NoiseControlOff:
                value = "off&value=1";
                break;

            case NoiseControlType.StreetMode:
                value = "aoc&value=1";
                break;

            case NoiseControlType.StreetModeMax:
                value = "aoc&value=2";
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }

            await _parrotClient.SendMessageAsync(new ParrotMessage(ResourceType.NoiseControlSet, value));
        }
Ejemplo n.º 2
0
        // Event handlers
        private async void ParrotClientOnConnectedEvent(object sender, EventArgs eventArgs)
        {
            Enabled = await GetNoiseControlEnabledAsync();

            Type = Enabled ? await GetNoiseControlAsync() : NoiseControlType.NoiseControlOff;

            // Dispatch initial event so the UI can update.
            ChangedEvent?.AsyncSafeInvoke(this, EventArgs.Empty);
        }
Ejemplo n.º 3
0
        public async Task SetTypeAsync(NoiseControlType type)
        {
            // Don't have to change if this is already the current type.
            if (Type == type)
            {
                return;
            }

            await SetNoiseControlAsync(type);

            Enabled = type != NoiseControlType.NoiseControlOff;
            Type    = type;
            ChangedEvent?.AsyncSafeInvoke(this, EventArgs.Empty);
        }
Ejemplo n.º 4
0
        private async void ParrotClientOnNotificationEvent(object sender, NotifyEventArgs notifyEventArgs)
        {
            if (notifyEventArgs.Resource != ResourceType.NoiseControlGet)
            {
                return;
            }

            var newType = await GetNoiseControlAsync();

            if (newType == Type)
            {
                return;
            }

            Type = newType;

            // Dispatch event so the UI can update.
            ChangedEvent?.AsyncSafeInvoke(this, EventArgs.Empty);
        }