/// <summary> /// Get the list of users. /// </summary> /// <returns>The List of user or null on error.</returns> public Dictionary <string, Whitelist> GetUserList() { string url = BridgeUrl + "/config"; CommResult comres = Comm.SendRequest(new Uri(url), WebRequestType.Get); if (comres.Status == WebExceptionStatus.Success) { BridgeSettings brs = Serializer.DeserializeToObject <BridgeSettings>(comres.Data); if (brs != null) { return(brs.whitelist); } LastCommandMessages.AddMessage(Serializer.DeserializeToObject <List <IMessage> >(comres.Data)); return(null); } ProcessCommandFailure(url, comres.Status); return(null); }
/// <summary> /// Get the list of users. /// </summary> /// <returns>The List of user or null on error.</returns> public async Task <Dictionary <string, Whitelist> > GetUserListAsyncTask() { string url = BridgeUrl + "/config"; HttpResult comres = await HueHttpClient.SendRequestAsyncTask(new Uri(url), WebRequestType.Get); if (comres.Success) { BridgeSettings brs = Serializer.DeserializeToObject <BridgeSettings>(comres.Data); if (brs != null) { return(brs.whitelist); } LastCommandMessages.AddMessage(Serializer.DeserializeToObject <List <IMessage> >(comres.Data)); return(null); } BridgeNotResponding?.Invoke(this, new BridgeNotRespondingEventArgs(this, url, WebExceptionStatus.NameResolutionFailure)); return(null); }
/// <summary> /// Get the bridge Settings. /// </summary> /// <returns>The Settings of the bridge.</returns> public async Task <BridgeSettings> GetBridgeSettingsAsyncTask() { string url = BridgeUrl + "/config"; CommResult comres = await Comm.SendRequestAsyncTask(new Uri(url), WebRequestType.Get); if (comres.Status == WebExceptionStatus.Success) { BridgeSettings bs = Serializer.DeserializeToObject <BridgeSettings>(comres.Data); if (bs != null) { return(bs); } LastCommandMessages.AddMessage(Serializer.DeserializeToObject <List <IMessage> >(comres.Data)); return(null); } ProcessCommandFailure(url, comres.Status); return(null); }
/// <summary> /// Get the bridge Settings. /// </summary> /// <returns>The Settings of the bridge.</returns> public BridgeSettings GetBridgeSettings() { string url = BridgeUrl + "/config"; HttpResult comres = HueHttpClient.SendRequest(new Uri(url), WebRequestType.Get); if (comres.Success) { BridgeSettings bs = Serializer.DeserializeToObject <BridgeSettings>(comres.Data); if (bs != null) { return(bs); } LastCommandMessages.AddMessage(Serializer.DeserializeToObject <List <IMessage> >(comres.Data)); return(null); } BridgeNotResponding?.Invoke(this, new BridgeNotRespondingEventArgs(this, url, WebExceptionStatus.NameResolutionFailure)); return(null); }
/// <summary> /// Check if there is an update available on the bridge . (Does not force the bridge to check for an update) /// </summary> /// <returns>Software Update or null.</returns> public bool CheckUpdateAvailable() { HttpResult comres = HueHttpClient.SendRequest(new Uri(BridgeUrl + "/config"), WebRequestType.Get); if (comres.Success) { BridgeSettings brs = Serializer.DeserializeToObject <BridgeSettings>(comres.Data); if (brs != null) { return(brs.swupdate.updatestate == 2); } else { LastCommandMessages.AddMessage(Serializer.DeserializeToObject <List <IMessage> >(HueHttpClient.LastJson)); } } BridgeNotResponding?.Invoke(this, new BridgeNotRespondingEventArgs(this, BridgeUrl + "/config", WebExceptionStatus.NameResolutionFailure)); return(false); }
/// <summary> /// Check if the bridge is autorized with the current ApiKey /// </summary> /// <returns></returns> public bool CheckAuthorization() { bool authorization = false; if (ApiKey == String.Empty) { return(false); } BridgeSettings bs = GetBridgeSettings(); if (bs == null) { return(false); } if (bs.portalservices != null) { authorization = true; } return(authorization); }
public BridgeSettingsView(BridgeSettings brs) { _brs = brs; CommandResult comres2 = BridgeStore.SelectedBridge.GetTimeZones(); if (!comres2.Success) { return; } _listtimezones = (List <string>)comres2.resultobject; HelperResult hr = HueObjectHelper.GetBridgeUsers(BridgeStore.SelectedBridge); if (!hr.Success) { return; } _listusers = new ObservableCollection <Whitelist>((List <Whitelist>)hr.Hrobject); int winhue = _listusers.FindIndex(x => x.id == BridgeStore.SelectedBridge.ApiKey); _listusers.RemoveAt(winhue); }
/// <summary> /// Check if there is an update available on the bridge async. (Does not force the bridge to check for an update) /// </summary> /// <returns>Software Update or null.</returns> public async Task <bool> CheckUpdateAvailableAsyncTask() { CommResult comres = await Comm.SendRequestAsyncTask(new Uri(BridgeUrl + "/config"), WebRequestType.Get); switch (comres.Status) { case WebExceptionStatus.Success: BridgeSettings brs = Serializer.DeserializeToObject <BridgeSettings>(comres.Data); if (brs != null) { if (brs.swupdate.updatestate == 2) { UpdateAvailable = true; return(true); } return(false); } else { LastCommandMessages.AddMessage(Serializer.DeserializeToObject <List <IMessage> >(Comm.Lastjson)); } break; case WebExceptionStatus.Timeout: LastCommandMessages.AddMessage(new Error() { address = BridgeUrl + "/config", description = "A Timeout occured.", type = 65535 }); break; default: LastCommandMessages.AddMessage(new Error() { address = BridgeUrl + "/config", description = "A unknown error occured.", type = 65535 }); break; } return(false); }
static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); var configuration = builder.Build(); var address = configuration["UI24R-Url"]; var midiInputDevice = configuration["MIDI-Input-Name"]; var midiOutputDevice = configuration["MIDI-Output-Name"]; var protocol = configuration["Protocol"]; var syncID = configuration["SyncID"]; var viewDebugMessage = configuration["DebugMessages"] == "true"; var recButtonBahavior = configuration["DefaultRecButton"]; var channelRecButtonBahavior = configuration["DefaultChannelRecButton"]; var auxButtonBehavior = configuration["AuxButtonBehavior"]; //var controller = new BehringerUniversalMIDI(); var controller = MIDIControllerFactory.GetMidiController(protocol); if (args.Length > 0) { WriteMIDIDeviceNames(controller); } else { Console.WriteLine("Create Bridge Object"); if (midiInputDevice == null || midiOutputDevice == null) { if (midiInputDevice == null) { Console.WriteLine("The input device name is mandantory in the config file. (MIDI-Input-Name)"); } if (midiOutputDevice == null) { Console.WriteLine("The ouput device name is mandantory in the config file. (MIDI-Output-Name)"); } WriteMIDIDeviceNames(controller); } else { Console.WriteLine("Set controller message event...."); controller.MessageReceived += (obj, e) => { lock (balanceLock) { Console.WriteLine(e.Message); } }; Console.WriteLine("Connect input device..."); controller.ConnectInputDevice(midiInputDevice); Console.WriteLine("Connect output device..."); controller.ConnectOutputDevice(midiOutputDevice); } Action <string, bool> messageWriter = (string messages, bool isDebugMessage) => { if (!isDebugMessage || (isDebugMessage && viewDebugMessage)) { var m = messages.Split('\n'); foreach (var message in m) { if (!message.StartsWith("3:::RTA^") && !message.StartsWith("RTA^") && !message.StartsWith("3:::VU2^") && !message.StartsWith("VU2^") ) { lock (balanceLock) { Console.WriteLine(message); } } } } }; Console.WriteLine("Start bridge..."); BridgeSettings settings = new BridgeSettings(address, controller, messageWriter); if (syncID != null) { settings.SyncID = syncID; } if (recButtonBahavior != null) { switch (recButtonBahavior.ToLower()) { case "onlymtk": settings.RecButtonBehavior = BridgeSettings.RecButtonBehaviorEnum.OnlyMTK; break; case "only2track": settings.RecButtonBehavior = BridgeSettings.RecButtonBehaviorEnum.OnlyTwoTrack; break; default: settings.RecButtonBehavior = BridgeSettings.RecButtonBehaviorEnum.TwoTrackAndMTK; break; } } if (channelRecButtonBahavior != null) { switch (channelRecButtonBahavior.ToLower()) { case "phantom": settings.ChannelRecButtonBehavior = BridgeSettings.ChannelRecButtonBehaviorEnum.Phantom; break; default: settings.ChannelRecButtonBehavior = BridgeSettings.ChannelRecButtonBehaviorEnum.Rec; break; } } if (auxButtonBehavior != null) { switch (auxButtonBehavior.ToLower()) { case "lock": settings.AuxButtonBehavior = BridgeSettings.AuxButtonBehaviorEnum.Lock; break; default: settings.AuxButtonBehavior = BridgeSettings.AuxButtonBehaviorEnum.Release; break; } } using (UI24RBridge bridge = new UI24RBridge(settings)) { while (!Console.KeyAvailable) { } } } }