public void OwnTypes() { //Added the follow to automatically own Speech Base types that have no owner. OSAEObjectType oType = OSAEObjectTypeManager.ObjectTypeLoad("IPCAM"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, pName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant, oType.Tooltip); Log.Info("IPCam Plugin took ownership of the IPCAM Object Type."); } else { Log.Info("IPCam Plugin correctly owns the IPCAM Object Type."); } oType = OSAEObjectTypeManager.ObjectTypeLoad("IP CAMERA"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, pName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant, oType.Tooltip); Log.Info("IPCam Plugin took ownership of the IP CAMERA Object Type."); } else { Log.Info("IPCam Plugin correctly owns the IP CAMERA Object Type."); } }
private void loadDetails() { OSAEObject obj = OSAEObjectManager.GetObjectByName(gvObjects.DataKeys[Int32.Parse(hdnSelectedRow.Text)]["object_name"].ToString()); txtName.Text = obj.Name; txtDescr.Text = obj.Description; txtAddress.Text = obj.Address; ddlContainer.SelectedValue = obj.Container; if (obj.State.Value != "") { ddlState.SelectedValue = obj.State.Value; } ddlType.SelectedValue = obj.Type; if (obj.Enabled == 1) { chkEnabled.Checked = true; } else { chkEnabled.Checked = false; } OSAEObjectType objtype = OSAEObjectTypeManager.ObjectTypeLoad(obj.Type); txtOwned.Text = objtype.OwnedBy; }
public void OwnTypes() { //Added the follow to automatically own Speech Base types that have no owner. OSAEObjectType oType = OSAEObjectTypeManager.ObjectTypeLoad("ANDROID"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, pName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant); Log.Info("Android Plugin took ownership of the ANDROID Object Type."); } else { Log.Info("Android Plugin correctly owns the ANDROID Object Type."); } oType = OSAEObjectTypeManager.ObjectTypeLoad("ANDROID DEVICE"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, pName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant); Log.Info("Android Plugin took ownership of the ANDROID DEVICE Object Type."); } else { Log.Info("Android Plugin correctly owns the ANDROID DEVICE Object Type."); } }
protected void btnAdd_Click(object sender, EventArgs e) { int owner = 0, container = 0, systype = 0, hideevents = 0; if (chkOwner.Checked) { owner = 1; } if (chkContainer.Checked) { container = 1; } if (chkSysType.Checked) { systype = 1; } if (chkHideEvents.Checked) { hideevents = 1; } OSAEObjectTypeManager.ObjectTypeAdd(txtName.Text, txtDescr.Text, ddlOwnedBy.SelectedValue, ddlBaseType.SelectedValue, owner, systype, container, hideevents); txtName.Text = ""; txtDescr.Text = ""; chkOwner.Checked = false; chkContainer.Checked = false; chkSysType.Checked = false; chkHideEvents.Checked = false; ddlOwnedBy.SelectedValue = ""; ddlBaseType.SelectedValue = ""; loadObjectTypes(); }
private void checkAPIKey() { try { Log.Info("Checking if REST API Key exist"); string cRAK = OSAE.OSAEObjectPropertyManager.GetObjectPropertyValue("Rest", "APIKEY").Value; if (cRAK == " " || cRAK == "" || cRAK.Length < 32) { Log.Info("REST API Key found, but is not valid."); Log.Info("Creating a new REST API Key..."); OSAEObjectPropertyManager.ObjectPropertySet("Rest", "APIKEY", OSAESecurity.GenerateAPIKey(), "Rest"); } else { Log.Info("REST API Key found."); } } catch { Log.Info("REST API Key does not exist.."); Log.Info("Creating Rest Plugin property: APIKEY."); OSAEObjectTypeManager.ObjectTypePropertyAdd("Rest", "APIKEY", "String", "", "", false, true, "This is the Rest Plugin API Key. This property is used by remote clients and devices to encrypt and decrypt user information for authentication."); Log.Info("Generating a new REST API Key..."); OSAEObjectPropertyManager.ObjectPropertySet("Rest", "APIKEY", OSAESecurity.GenerateAPIKey(), "Rest"); } }
protected void btnUpdate_Click(object sender, EventArgs e) { int owner = 0, container = 0, systype = 0, hideevents = 0; if (chkOwner.Checked) { owner = 1; } if (chkContainer.Checked) { container = 1; } if (chkSysType.Checked) { systype = 1; } if (chkHideEvents.Checked) { hideevents = 1; } OSAEObjectTypeManager.ObjectTypeUpdate(hdnSelectedObjectName.Text, txtName.Text, txtDescr.Text, ddlOwnedBy.SelectedValue, ddlBaseType.SelectedValue, owner, systype, container, hideevents); hdnSelectedObjectName.Text = txtName.Text; loadObjectTypes(); }
public void OwnTypes() { //Added the follow to automatically own WUnderground Base types that have no owner. OSAEObjectType oType = OSAEObjectTypeManager.ObjectTypeLoad("WUNDERGROUND"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, pName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant, oType.Tooltip); Log.Info("WUnderground Plugin took ownership of the WUNDERGROUND Object Type."); } else { Log.Info("WUnderground Plugin correctly owns the WUNDERGROUND Object Type."); } //Added the follow for SYSTEM to automatically own Weather Base types that have no owner. oType = OSAEObjectTypeManager.ObjectTypeLoad("WUNDERGROUND"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, "SYSTEM", oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant, oType.Tooltip); Log.Info("SYSTEM took ownership of the WEATHER Object Type."); } else { Log.Info("SYSTEM Plugin correctly owns the WEATHER Object Type."); } }
protected void btnPropDelete_Click(object sender, EventArgs e) { OSAEObjectTypeManager.ObjectTypePropertyDelete(txtPropName.Text, hdnSelectedObjectName.Text); txtPropName.Text = ""; txtPropDefault.Text = ""; loadProperties(); }
private void checkSecurityKey() { try { Log.Info("Checking if System Security Key exist"); string cSSK = OSAE.OSAEObjectPropertyManager.GetObjectPropertyValue("System", "SecurityKey").Value; if (cSSK == " " || cSSK == "" || cSSK.Length < 16) { Log.Info("System Security Key found, but is not valid."); Log.Info("Generating a new Security Key..."); OSAEObjectPropertyManager.ObjectPropertySet("System", "SecurityKey", OSAESecurity.GenerateSecurityKey(), "Rest"); } else { Log.Info("System Security Key found."); } } catch { Log.Info("System Security Key does not exist.."); Log.Info("Creating System object property: SecurityKey."); OSAEObjectTypeManager.ObjectTypePropertyAdd("System", "SecurityKey", "String", "", "", false, true, "This key is used in HTTP and Rest authorization. Must be 16 characters."); Log.Info("Generating a new Security Key..."); OSAEObjectPropertyManager.ObjectPropertySet("System", "SecurityKey", OSAESecurity.GenerateSecurityKey(), "Rest"); } }
public override void RunInterface(string pluginName) { pName = pluginName; OSAEObjectTypeManager.ObjectTypeUpdate("KILLAWATT MODULE", "KILLAWATT MODULE", "Kill-A-Watt Module", pName, "KILLAWATT MODULE", 0, 0, 0, 1); xb = new xbee(Int32.Parse(OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Port").Value)); xb.xbeePacketReceived += new xbee.xbeePacketReceivedEventHandler(xb_xbeePacketReceived); }
public override void RunInterface(string pluginName) { this.Log.Debug("Running interface"); pName = pluginName; OSAEObjectTypeManager.ObjectTypeUpdate("XBMC SYSTEM", "XBMC SYSTEM", "XBMC System", pluginName, "XBMC SYSTEM", 0, 0, 0, 1); OSAEObjectCollection XBMCInstances = OSAEObjectManager.GetObjectsByType("XBMC System"); foreach (OSAEObject obj in XBMCInstances) { string ip = "", username = "", password = ""; int port = 0; foreach (OSAEObjectProperty p in obj.Properties) { switch (p.Name) { case "IP": ip = p.Value; break; case "Port": port = Int32.Parse(p.Value); break; case "Username": username = p.Value; break; case "Password": password = p.Value; break; } } this.Log.Debug("Creating new XBMC System connection: " + obj.Name + " - " + ip); try { XBMCSystem system = new XBMCSystem(obj.Name, ip, port, username, password); if (system.Connect()) { Systems.Add(system); } } catch (Exception ex) { this.Log.Error("Error connecting to XBMC system: " + ex.Message + " - " + ex.InnerException.Message); } } Clock = new System.Timers.Timer(); Clock.Interval = 5000; Clock.Elapsed += new ElapsedEventHandler(Timer_Tick); Clock.Start(); }
protected void btnPropSave_Click(object sender, EventArgs e) { if (ddlPropType.SelectedValue == "Object Type" & ddlBaseType2.SelectedValue == "") { Response.Write("<script>alert('You must select an Object Type!');</script>"); } else { OSAEObjectTypeManager.ObjectTypePropertyUpdate(gvProperties.DataKeys[gvProperties.SelectedIndex]["property_name"].ToString(), txtPropName.Text, ddlPropType.SelectedValue, ddlBaseType2.SelectedValue, txtPropDefault.Text, hdnSelectedObjectName.Text, chkTrackChanges.Checked, chkRequired.Checked, txtPropertyTooltip.Text); } }
public override void RunInterface(string pluginName) { pName = pluginName; Log = new General.OSAELog(pName); Log.Info("Running Interface!"); OSAEObjectType objt = OSAEObjectTypeManager.ObjectTypeLoad("RADIO THERMOSTAT DEVICE"); OSAEObjectTypeManager.ObjectTypeUpdate(objt.Name, objt.Name, "Radio Thermostat Device", pName, "RADIO THERMOSTAT DEVICE", objt.Owner, objt.SysType, objt.Container, objt.HideRedundant); OSAEObjectCollection devices = OSAEObjectManager.GetObjectsByType("RADIO THERMOSTAT DEVICE"); foreach (OSAEObject obj in devices) { ThermostatLib.SystemInfo si = ThermostatLib.SystemInfo.Load(obj.Address); Log.Info("---------------------------------"); Log.Info("Device Name: " + ThermostatLib.SystemInfo.LoadSystemName(obj.Address)); Log.Info("API Version: " + si.ApiVersion.ToString()); Log.Info("Firmware Version: " + si.FirmwareVersion); Log.Info("UUID: " + si.UUID); Log.Info("WLAN Version: " + si.WlanFirmwareVersion); Log.Info("Model: " + ThermostatLib.SystemInfo.LoadModelName(obj.Address)); Log.Info("Operating Mode: " + ThermostatLib.SystemInfo.LoadOperatingMode(obj.Address)); ThermostatLib.Services services = ThermostatLib.Services.Load(obj.Address); string service = ""; foreach (ThermostatLib.HttpdHandler handler in services.Handlers) { service = ""; service += handler.Url + " ("; if (handler.AllowsGet && handler.AllowsPost) { service += "GET, POST"; } else { if (handler.AllowsGet) { service += "GET"; } if (handler.AllowsPost) { service += "POST"; } } service += ")"; Log.Info("Service: " + service); } } Clock = new System.Timers.Timer(); Clock.Interval = Int32.Parse(OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Poll Interval").Value) * 60000; Clock.Start(); Clock.Elapsed += new ElapsedEventHandler(Timer_Tick); }
public override void RunInterface(string pluginName) { pName = pluginName; Log = new General.OSAELog(pName); OSAEObjectType objt = OSAEObjectTypeManager.ObjectTypeLoad("KILLAWATT MODULE"); OSAEObjectTypeManager.ObjectTypeUpdate(objt.Name, objt.Name, objt.Description, pName, "THING", objt.Owner, objt.SysType, objt.Container, objt.HideRedundant, objt.Tooltip); xb = new xbee(Int32.Parse(OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Port").Value)); xb.xbeePacketReceived += new xbee.xbeePacketReceivedEventHandler(xb_xbeePacketReceived); }
protected void btnPropAdd_Click(object sender, EventArgs e) { if (ddlPropType.SelectedValue == "Object Type" & ddlBaseType2.SelectedValue == "") { Response.Write("<script>alert('You must select an Object Type!');</script>"); } else { OSAEObjectTypeManager.ObjectTypePropertyAdd(hdnSelectedObjectName.Text, txtPropName.Text, ddlPropType.SelectedValue, ddlBaseType2.SelectedItem.ToString(), txtPropDefault.Text, chkTrackChanges.Checked, chkRequired.Checked, txtPropertyTooltip.Text); loadProperties(); } }
private void loadDetails() { OSAEObjectType type = OSAEObjectTypeManager.ObjectTypeLoad(gvObjectTypes.DataKeys[Int32.Parse(hdnSelectedRow.Text)]["object_type"].ToString()); txtName.Text = type.Name; txtDescr.Text = type.Description; ddlOwnedBy.SelectedValue = type.OwnedBy; ddlBaseType.SelectedValue = type.BaseType; chkContainer.Checked = type.Container; chkHideEvents.Checked = type.HideRedundant; chkOwner.Checked = type.Owner; chkSysType.Checked = type.SysType; }
protected void btnDelete_Click(object sender, EventArgs e) { OSAEObjectTypeManager.ObjectTypeDelete(hdnSelectedObjectName.Text); txtName.Text = ""; txtDescr.Text = ""; chkOwner.Checked = false; chkContainer.Checked = false; chkSysType.Checked = false; chkHideEvents.Checked = false; ddlOwnedBy.SelectedValue = ""; ddlBaseType.SelectedValue = ""; loadObjectTypes(); }
public void OwnTypes() { //Added the follow to automatically own Speech Base types that have no owner. OSAEObjectType oType = OSAEObjectTypeManager.ObjectTypeLoad("NETWORK MONITOR"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, gAppName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant, oType.Tooltip); Log.Info("Network Monitor Plugin took ownership of the NETWORK MONITOR Object Type."); } else { Log.Info("Network Monitor Plugin correctly owns the NETWORK MONITOR Object Type."); } }
public void OwnTypes() { //Added the follow to automatically own PubNub Base types that have no owner. OSAEObjectType oType = OSAEObjectTypeManager.ObjectTypeLoad("PUBNUB"); if (oType.OwnedBy == "") { OSAEObjectTypeManager.ObjectTypeUpdate(oType.Name, oType.Name, oType.Description, gAppName, oType.BaseType, oType.Owner, oType.SysType, oType.Container, oType.HideRedundant); Log.Info("PubNub Plugin took ownership of the PubNub Object Type."); } else { Log.Info("The PubNub Plugin correctly owns the PubNub Object Type."); } }
protected void btnMethodDelete_Click(object sender, EventArgs e) { OSAEObjectTypeManager.ObjectTypeMethodDelete(txtMethodName.Text, hdnSelectedObjectName.Text); loadMethods(); int selectedRow = Int32.Parse(hdnSelectedMethodRow.Text) - 1; if (selectedRow < 0) { hdnSelectedMethodRow.Text = ""; } else { hdnSelectedMethodRow.Text = selectedRow.ToString(); } }
protected void btnEventDelete_Click(object sender, EventArgs e) { OSAEObjectTypeManager.ObjectTypeEventDelete(txtEventName.Text, hdnSelectedObjectName.Text); txtEventName.Text = ""; txtEventLabel.Text = ""; loadEvents(); int selectedRow = Int32.Parse(hdnSelectedEventRow.Text) - 1; if (selectedRow < 0) { hdnSelectedEventRow.Text = ""; } else { hdnSelectedEventRow.Text = selectedRow.ToString(); } }
protected void btnPropDelete_Click(object sender, EventArgs e) { OSAEObjectTypeManager.ObjectTypePropertyDelete(txtPropName.Text, hdnSelectedObjectName.Text); txtPropName.Text = ""; txtPropDefault.Text = ""; loadProperties(); int selectedRow = Int32.Parse(hdnSelectedPropRow.Text) - 1; if (selectedRow < 0) { hdnSelectedPropRow.Text = ""; } else { hdnSelectedPropRow.Text = selectedRow.ToString(); } }
public override void RunInterface(string pluginName) { Log.Info("Starting Android plugin"); pName = pluginName; OSAEObjectTypeManager.ObjectTypeUpdate("Android Device", "Android Device", "Android Device", pluginName, "Android Device", false, false, false, true); //connect to devices OSAEObjectCollection objects = OSAEObjectManager.GetObjectsByType("Android Device"); foreach (OSAEObject obj in objects) { createdevice(obj); } Log.Debug("Run Interface Complete"); }
private void loadDetails() { OSAEObjectType type = OSAEObjectTypeManager.ObjectTypeLoad(gvObjectTypes.DataKeys[gvObjectTypes.SelectedIndex]["object_type"].ToString()); txtName.Text = type.Name; txtDescr.Text = type.Description; try { ddlOwnedBy.SelectedValue = type.OwnedBy; } catch { } ddlBaseType.SelectedValue = type.BaseType; chkContainer.Checked = type.Container; chkHideEvents.Checked = type.HideRedundant; chkOwner.Checked = type.Owner; chkSysType.Checked = type.SysType; applyObjectSecurity(type.Name); }
public override void RunInterface(string pluginName) { log("Running interface", true); pName = pluginName; OSAEObjectTypeManager.ObjectTypeUpdate("Android Device", "Android Device", "Android Device", pluginName, "Android Device", 0, 0, 0, 1); //connect to devices OSAEObjectCollection objects = OSAEObjectManager.GetObjectsByType("Android Device"); foreach (OSAEObject obj in objects) { createdevice(obj); } log("Run Interface Complete", true); }
public override void RunInterface(string pluginName) { logging.AddToLog("Running interface", false); pName = pluginName; OSAEObjectTypeManager.ObjectTypeUpdate("XBMC SYSTEM", "XBMC SYSTEM", "XBMC System", pluginName, "XBMC SYSTEM", 0, 0, 0, 1); OSAEObjectCollection XBMCInstances = OSAEObjectManager.GetObjectsByType("XBMC System"); foreach (OSAEObject obj in XBMCInstances) { string ip = "", username = "", password = ""; int port = 0; foreach (OSAEObjectProperty p in obj.Properties) { switch (p.Name) { case "IP": ip = p.Value; break; case "Port": port = Int32.Parse(p.Value); break; case "Username": username = p.Value; break; case "Password": password = p.Value; break; } } logging.AddToLog("Creating new XBMC System connection: " + obj.Name + " - " + ip, false); XBMCSystem system = new XBMCSystem(obj.Name, ip, port, username, password); system.Connect(); Systems.Add(system); } //Clock = new System.Timers.Timer(); //Clock.Interval = 5000; //Clock.Start(); //Clock.Elapsed += new ElapsedEventHandler(Timer_Tick); }
public void updateFeeds() { this.Log.Debug("Trying to get all feed Urls:" + pName); DataSet ds = new DataSet(); ds = OSAEObjectPropertyManager.ObjectPropertyArrayGetAll(pName, "Feeds"); foreach (DataRow dr in ds.Tables[0].Rows) { try { this.Log.Debug("Fetching feed: " + dr["item_name"].ToString()); WebClient webClient = new WebClient(); string strSource = webClient.DownloadString(dr["item_name"].ToString()); webClient.Dispose(); XmlDocument xml = new XmlDocument(); xml.LoadXml(strSource); string feedTitle = xml.SelectSingleNode("/rss/channel/title").InnerText; this.Log.Debug("Feeds title: " + feedTitle); if (OSAEObjectPropertyManager.GetObjectPropertyValue(pName, feedTitle).Value == "") { this.Log.Debug("Adding property to object type"); OSAEObjectTypeManager.ObjectTypePropertyAdd(feedTitle, "List", "", "RSS", false); } OSAEObjectPropertyManager.ObjectPropertyArrayDeleteAll(pName, feedTitle); this.Log.Debug("Cleared feed data"); XmlNodeList xnList = xml.SelectNodes("/rss/channel/item"); foreach (XmlNode xn in xnList) { string content = xn.SelectSingleNode("title").InnerText + " - " + xn.SelectSingleNode("description").InnerText; content = Regex.Replace(content, "<.*?>", string.Empty); this.Log.Debug("Added item to feed data: " + content); OSAEObjectPropertyManager.ObjectPropertyArrayAdd(pName, feedTitle, content, ""); } } catch (Exception ex) { this.Log.Error("Error", ex); } } }
protected void Page_PreRender(object sender, EventArgs e) { if (ddlPropType.SelectedItem.ToString() == "Object Type") { ddlBaseType2.SelectedValue = gvProperties.DataKeys[gvProperties.SelectedIndex]["property_object_type"].ToString(); ddlBaseType2.Visible = true; lblPropObjectType.Visible = true; } else { ddlBaseType2.SelectedValue = ""; ddlBaseType2.Visible = false; lblPropObjectType.Visible = false; } if (hdnSelectedStateRow.Text != "") { txtStateName.Text = gvStates.DataKeys[Int32.Parse(hdnSelectedStateRow.Text)]["state_name"].ToString();//hdnSelectedStateName.Text; txtStateLabel.Text = gvStates.DataKeys[Int32.Parse(hdnSelectedStateRow.Text)]["state_label"].ToString(); txtStateTooltip.Text = gvStates.DataKeys[Int32.Parse(hdnSelectedStateRow.Text)]["state_tooltip"].ToString(); } if (hdnSelectedMethodRow.Text != "") { txtMethodName.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["method_name"].ToString();//hdnSelectedMethodName.Text; txtMethodLabel.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["method_label"].ToString(); txtParam1Label.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["param_1_label"].ToString(); txtParam2Label.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["param_2_label"].ToString(); txtParam1Default.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["param_1_default"].ToString(); txtParam2Default.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["param_2_default"].ToString(); txtMethodTooltip.Text = gvMethods.DataKeys[Int32.Parse(hdnSelectedMethodRow.Text)]["method_tooltip"].ToString(); } if (hdnSelectedEventRow.Text != "") { txtEventName.Text = gvEvents.DataKeys[Int32.Parse(hdnSelectedEventRow.Text)]["event_name"].ToString();//hdnSelectedEventName.Text; txtEventLabel.Text = gvEvents.DataKeys[Int32.Parse(hdnSelectedEventRow.Text)]["event_label"].ToString(); txtEventTooltip.Text = gvEvents.DataKeys[Int32.Parse(hdnSelectedEventRow.Text)]["event_tooltip"].ToString(); } if (hdnSelectedObjectName.Text != "") { lblExportScript.Text = OSAEObjectTypeManager.ObjectTypeExport(hdnSelectedObjectName.Text); } }
public override void RunInterface(string pluginName) { pName = pluginName; Log = new General.OSAELog(pName); Log.Info("Initializing Plugin"); OSAEObjectType objt = OSAEObjectTypeManager.ObjectTypeLoad("SQUEEZEBOX"); OSAEObjectTypeManager.ObjectTypeUpdate(objt.Name, objt.Name, objt.Description, pName, "SQUEEZEBOX", objt.Owner, objt.SysType, objt.Container, objt.HideRedundant); sbsAddress = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Server Address").Value; sbsPort = Int32.Parse(OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "CLI Port").Value); ttsSave = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "TTS Save Path").Value; ttsPlay = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "TTS Play Path").Value; Log.Info("address: " + sbsAddress); Log.Info("port: " + sbsPort); sbs.mHost = sbsAddress; sbs.mPort = sbsPort; StringCollection players = sbs.GetPlayers(); OSAEObjectCollection objects = OSAEObjectManager.GetObjectsByType("SQUEEZEBOX"); Log.Info("Found " + sbs.GetPlayerCount().ToString() + " players"); foreach (string player in players) { Log.Info("Found player: " + player); string[] sb = player.Split(' '); bool found = false; foreach (OSAEObject obj in objects) { if (obj.Address == sb[0]) { Log.Info("Found matching object: " + obj.Name); found = true; } } if (!found) { Log.Info("No object found. Adding to OSA"); OSAEObjectManager.ObjectAdd(sb[1], "", sb[1], "SQUEEZEBOX", sb[0], "", 30, true); } } }
public override void RunInterface(string pluginName) { pName = pluginName; logging.AddToLog("Initializing Plugin", true); OSAEObjectTypeManager.ObjectTypeUpdate("SQUEEZEBOX", "SQUEEZEBOX", "Squeezebox", pName, "SQUEEZEBOX", 0, 0, 0, 1); sbsAddress = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Server Address").Value; sbsPort = Int32.Parse(OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "CLI Port").Value); ttsSave = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "TTS Save Path").Value; ttsPlay = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "TTS Play Path").Value; logging.AddToLog("address: " + sbsAddress, true); logging.AddToLog("port: " + sbsPort, true); sbs.mHost = sbsAddress; sbs.mPort = sbsPort; StringCollection players = sbs.GetPlayers(); OSAEObjectCollection objects = OSAEObjectManager.GetObjectsByType("SQUEEZEBOX"); logging.AddToLog("Found " + sbs.GetPlayerCount().ToString() + " players", true); foreach (string player in players) { logging.AddToLog("Found player: " + player, true); string[] sb = player.Split(' '); bool found = false; foreach (OSAEObject obj in objects) { if (obj.Address == sb[0]) { logging.AddToLog("Found matching object: " + obj.Name, true); found = true; } } if (!found) { logging.AddToLog("No object found. Adding to OSA", true); OSAEObjectManager.ObjectAdd(sb[1], sb[1], "SQUEEZEBOX", sb[0], "", true); } } }