Beispiel #1
0
        async void UpdateImage(string imageKey)
        {
            _apiImage = new RoonApiImage(_api);
            RoonApiImage.Image image = new RoonApiImage.Image
            {
                ImageKey = imageKey,
                Options  = new RoonApiImage.Options
                {
                    Format = "image/png",
                    Height = 512,
                    Width  = 512,
                    Scale  = RoonApiImage.EScale.fill
                }
            };
            byte[] data = await _apiImage.GetImage(image);

            Bitmap bitmap;

            using (MemoryStream stream = new MemoryStream(data))
            {
                bitmap           = new Bitmap(stream);
                pictureBox.Image = bitmap;
            }
        }
Beispiel #2
0
        public Test()
        {
            InitializeComponent();

            // Init Logger
            _loggerFactory = new LoggerFactory();
            LogLevel logLevel;

            Enum.TryParse(Properties.Settings.Default.LogLevel, out logLevel);
            _loggerFactory.AddDebug(logLevel);

            // Init Roon Api
            _api          = new RoonApi(OnPaired, OnUnPaired, Properties.Settings.Default.PersistDirectory, _loggerFactory.CreateLogger("RoonApi"));
            _apiTransport = new RoonApiTransport(_api);
            _apiImage     = new RoonApiImage(_api);
            _apiBrowse    = new RoonApiBrowse(_api);
            _apiStatus    = new RoonApiStatus(_api, "All systems roger");

            _layout = new List <RoonApiSettings.LayoutBase>(new RoonApiSettings.LayoutBase[]
            {
                new RoonApiSettings.LayoutLabel("*A string setting*"),
                new RoonApiSettings.LayoutString("A string setting", "text", 20)
                {
                    SubTitle = "subtitle"
                },
                new RoonApiSettings.LayoutButton("A Button", "button", "1"),
                new RoonApiSettings.LayoutDropDown("A combo setting", "combo", new RoonApiSettings.LayoutDropDownValue[] {
                    new RoonApiSettings.LayoutDropDownValue("text1"),
                    new RoonApiSettings.LayoutDropDownValue("text2"),
                    new RoonApiSettings.LayoutDropDownValue("text3")
                })
            });
            _values = new Dictionary <string, string>();
            _values.Add("text", "*hudriwudri*");
            _values.Add("button", "true");
            _values.Add("combo", "text2");

            _apiSettings = new RoonApiSettings(_api, _layout, _values, new RoonApiSettings.Functions {
                ButtonPressed = (bp) => {
                    return(Task.FromResult(true));
                },
                SaveSettings = (s) =>
                {
                    //values["text"] = "HASERROR";
                    //layout[0].Error = "Her is an error";
                    _values["combo"] = s.Settings.Values["combo"];
                    if (_values["combo"] == "text3")
                    {
                        return(Task.FromResult(true));
                    }
                    else
                    {
                        return(Task.FromResult(false));
                    }
                }
            });

            // Init Controls
            _apiControlVolume = new RoonApiControlVolume(_api, true);
            RoonApiControlVolume.Volume volume = new RoonApiControlVolume.Volume
            {
                DisplayName = "Ric Volume Control",
                VolumeMax   = 100,
                VolumeStep  = 1,
                VolumeType  = "number",
                VolumeValue = 4
            };
            _apiControlVolume.AddControl(volume, new RoonApiControlVolume.VolumeFunctions {
                SetVolume = (arg) => { System.Diagnostics.Debug.WriteLine($"SETVOLUME {arg.Mode} {arg.Value}"); return(Task.FromResult(true)); },
                Mute      = (arg) => { System.Diagnostics.Debug.WriteLine($"MUTE {arg.Mute} "); return(Task.FromResult(true)); }
            });

            _apiControlSource = new RoonApiControlSource(_api, true);
            RoonApiControlSource.Source source = new RoonApiControlSource.Source
            {
                DisplayName     = "Ric Source Control",
                SupportsStandBy = true,
                Status          = RoonApiControlSource.EStatus.selected
            };
            _apiControlSource.AddControl(source, new RoonApiControlSource.SourceFunctions {
                SetStandby     = (arg) => { System.Diagnostics.Debug.WriteLine($"STATE {arg.Status}"); return(Task.FromResult(true)); },
                SetConvenience = (arg) => { System.Diagnostics.Debug.WriteLine($"SETCONVENIENCE"); return(Task.FromResult(true)); }
            });

            // Init Service Registration
            _roonRegister = new RoonApi.RoonRegister
            {
                DisplayName      = "RICs Roon API Test",
                DisplayVersion   = "1.0.0",
                Publisher        = "Christian Riedl",
                Email            = "*****@*****.**",
                WebSite          = "https://github.com/christian-riedl/roon-extension-test",
                ExtensionId      = "com.ric.test",
                Token            = null,
                OptionalServices = new string[0],
                RequiredServices = new string[] { RoonApi.ServiceTransport, RoonApi.ServiceImage, RoonApi.ServiceBrowse, },
                ProvidedServices = new string[] { RoonApi.ServiceStatus, RoonApi.ServicePairing, RoonApi.ServiceSettings, RoonApi.ServicePing, RoonApi.ControlVolume, RoonApi.ControlSource }
            };

            // Init UI
            textIpAddress.Text            = Properties.Settings.Default.MyIPAddress;
            textRoonCoreName.Text         = Properties.Settings.Default.RoonCoreName;
            textPersistenceDirectory.Text = Properties.Settings.Default.PersistDirectory;
            comboLogLevel.Items.AddRange(Enum.GetNames(typeof(LogLevel)));
            comboLogLevel.SelectedItem          = Properties.Settings.Default.LogLevel;
            comboLogLevel.SelectedValueChanged += (s, e) => Properties.Settings.Default.LogLevel = comboLogLevel.SelectedItem.ToString();
            comboLoop.Items.AddRange(Enum.GetNames(typeof(RoonApiTransport.ELoop)));
            _itemStack       = new Stack <string>();
            _setZoneSettings = true;
            _setOutputVolume = true;
        }