private void SetButtonState(bool aNextPrevButtonsVisible, bool aUpdateButtonVisible, string aUpdateButtonText) { OpenHome.Xapp.JsonObject joNew = new OpenHome.Xapp.JsonObject(); joNew.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); joNew.Add("Id", new OpenHome.Xapp.JsonValueString("NextButton")); joNew.Add("Visible", new OpenHome.Xapp.JsonValueBool(aNextPrevButtonsVisible)); Send("Render", joNew); OpenHome.Xapp.JsonObject joPrev = new OpenHome.Xapp.JsonObject(); joPrev.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); joPrev.Add("Id", new OpenHome.Xapp.JsonValueString("PreviousButton")); joPrev.Add("Visible", new OpenHome.Xapp.JsonValueBool(aNextPrevButtonsVisible)); Send("Render", joPrev); OpenHome.Xapp.JsonObject joUpdate = new OpenHome.Xapp.JsonObject(); joUpdate.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); joUpdate.Add("Id", new OpenHome.Xapp.JsonValueString("UpdateButton")); joUpdate.Add("Text", new OpenHome.Xapp.JsonValueString(aUpdateButtonText)); joUpdate.Add("Visible", new OpenHome.Xapp.JsonValueBool(aUpdateButtonVisible)); Send("Render", joUpdate); iUpdateButtonText = aUpdateButtonText; OpenHome.Xapp.JsonObject joUpdateBgd = new OpenHome.Xapp.JsonObject(); joUpdateBgd.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); joUpdateBgd.Add("Id", new OpenHome.Xapp.JsonValueString("UpdateBoxFooter")); joUpdateBgd.Add("Visible", new OpenHome.Xapp.JsonValueBool(aUpdateButtonVisible)); Send("Render", joUpdateBgd); }
private OpenHome.Xapp.JsonObject GetBoxTracking(List <Box> aBoxList) { Dictionary <string, int> modelCount = new Dictionary <string, int>(); Dictionary <string, int> softwareVersionCount = new Dictionary <string, int>(); foreach (Box b in aBoxList) { if (!modelCount.ContainsKey(b.Model)) { modelCount.Add(b.Model, 1); } else { modelCount[b.Model] += 1; } string softwareVersion = b.SoftwareVersion; // log nulls and blanks as Unknown if (softwareVersion == null || softwareVersion == String.Empty) { softwareVersion = "Unknown"; } if (!softwareVersionCount.ContainsKey(softwareVersion)) { softwareVersionCount.Add(softwareVersion, 1); } else { softwareVersionCount[softwareVersion] += 1; } } var resultJson = new OpenHome.Xapp.JsonObject(); var modelsJson = new OpenHome.Xapp.JsonArray <OpenHome.Xapp.JsonObject>(); foreach (string modelName in modelCount.Keys) { OpenHome.Xapp.JsonObject modelJson = new OpenHome.Xapp.JsonObject(); modelJson.Add("Name", new OpenHome.Xapp.JsonValueString(modelName)); modelJson.Add("Value", new OpenHome.Xapp.JsonValueInt(modelCount[modelName])); modelsJson.Add(modelJson); } resultJson.Add("Models", modelsJson); var versionsJson = new OpenHome.Xapp.JsonArray <OpenHome.Xapp.JsonObject>(); foreach (string version in softwareVersionCount.Keys) { OpenHome.Xapp.JsonObject versionJson = new OpenHome.Xapp.JsonObject(); versionJson.Add("Name", new OpenHome.Xapp.JsonValueString(version)); versionJson.Add("Value", new OpenHome.Xapp.JsonValueInt(softwareVersionCount[version])); versionsJson.Add(versionJson); } resultJson.Add("Versions", versionsJson); return(resultJson); }
public void OverallProgress(int aValue) { Send("UpdateProgressText", aValue.ToString() + "%"); // Set progress bar value OpenHome.Xapp.JsonObject joUpdateProg = new OpenHome.Xapp.JsonObject(); joUpdateProg.Add("Id", new OpenHome.Xapp.JsonValueString("UpdateProgressBarFilled")); joUpdateProg.Add("Value", new OpenHome.Xapp.JsonValueString(aValue.ToString() + "%")); Send("UpdateProgress", joUpdateProg); }
protected override void OnActivated(Session aSession) { // get the page model for this session IPageModel model = GetSessionModel(aSession); // enable analytics and send page view event if tracking aSession.Tracker.SetTracking(aSession.Tracking); aSession.Tracker.TrackPageView(Id); // update any ui widgets that reflect tracking state aSession.Send("DataCollectionEnabled", aSession.Tracking); // render widgets foreach (PageDefinitions.Widget widget in iPageDefinition.Widgets) { // get the value of the data from the page model Assert.Check(model != null); System.Reflection.PropertyInfo prop = model.GetType().GetProperty(widget.DataId); string data = prop.GetValue(model, null) as string; // create the json object OpenHome.Xapp.JsonObject json = new OpenHome.Xapp.JsonObject(); // add the basic required properties json.Add("Id", new OpenHome.Xapp.JsonValueString(widget.Id)); json.Add("DataId", new OpenHome.Xapp.JsonValueString(widget.DataId)); json.Add("Value", new OpenHome.Xapp.JsonValueString(data)); // add the optional allowed values if (widget.AllowedValues != null || widget.AllowedValuesSource != null) { // get the list of string allowed values from either the widget XML or an IPageModel property string[] allowedValuesStr = (widget.AllowedValues != null) ? widget.AllowedValues : model.GetType().GetProperty(widget.AllowedValuesSource).GetValue(model, null) as string[]; // create the json array of allowed values OpenHome.Xapp.JsonArray <OpenHome.Xapp.JsonValueString> allowedValues = new OpenHome.Xapp.JsonArray <OpenHome.Xapp.JsonValueString>(); foreach (string value in allowedValuesStr) { allowedValues.Add(new OpenHome.Xapp.JsonValueString(value)); } json.Add("AllowedValues", allowedValues); } // render the widget aSession.Send(widget.XappEvent, json); } }
// IUpdateFirmwareHandler interface public void Started() { Send("UpdateBoxTitle", "Update In Progress"); Send("UpdateBoxText", ""); SetButtonState(false, false); // Set progress bar visible Send("Unhide", "UpdateProgressBar"); Send("Unhide", "UpdateProgressBarFilled"); Send("Unhide", "UpdateProgressText"); Send("UpdateProgressText", "0%"); // Set progress bar value OpenHome.Xapp.JsonObject joUpdateProg = new OpenHome.Xapp.JsonObject(); joUpdateProg.Add("Id", new OpenHome.Xapp.JsonValueString("UpdateProgressBarFilled")); joUpdateProg.Add("Value", new OpenHome.Xapp.JsonValueString("0%")); Send("UpdateProgress", joUpdateProg); }
private void RenderControls(Session aSession, string aType) { Component[] list = iPageDefinition.GetComponents(aType); foreach (Component c in list) { OpenHome.Xapp.JsonObject jo = new OpenHome.Xapp.JsonObject(); jo.Add("Type", new OpenHome.Xapp.JsonValueString(aType)); jo.Add("Id", new OpenHome.Xapp.JsonValueString(c.Id)); jo.Add("Visible", new OpenHome.Xapp.JsonValueBool(c.Visible)); jo.Add("Enabled", new OpenHome.Xapp.JsonValueBool(c.Enabled)); jo.Add("Displayed", new OpenHome.Xapp.JsonValueBool(c.Displayed)); jo.Add("Top", new OpenHome.Xapp.JsonValueString(c.Top)); jo.Add("Left", new OpenHome.Xapp.JsonValueString(c.Left)); jo.Add("HeightSet", new OpenHome.Xapp.JsonValueBool(c.HeightSet)); jo.Add("Height", new OpenHome.Xapp.JsonValueString(c.Height)); jo.Add("WidthSet", new OpenHome.Xapp.JsonValueBool(c.WidthSet)); jo.Add("Width", new OpenHome.Xapp.JsonValueString(c.Width)); jo.Add("Image", new OpenHome.Xapp.JsonValueString(c.Image)); jo.Add("BackgroundImage", new OpenHome.Xapp.JsonValueString(c.BackgroundImage)); jo.Add("Color", new OpenHome.Xapp.JsonValueString(c.Color)); jo.Add("BackgroundColor", new OpenHome.Xapp.JsonValueString(c.BackgroundColor)); // set the text to add to the DOM element if (!string.IsNullOrEmpty(c.Parameter)) { jo.Add("Text", new OpenHome.Xapp.JsonValueString(c.Parameter)); } // set the 'class' attribute of the DOM element if (!string.IsNullOrEmpty(c.Class)) { jo.Add("Class", new OpenHome.Xapp.JsonValueString(c.Class)); } aSession.Send("Render", jo); Console.WriteLine("{0} id [{1}]: message: {2}", aType, c.Id, c.Parameter); } }
private void SetSelected(Session aSession) { if ((iMacAddress != null) && (iMacAddress != "")) { Box box = iBoxSelection.Box(iMacAddress); if ((aSession.Model.SelectedBoxMacAddress != box.MacAddress) || (iShowSelected == true)) { iShowSelected = false; aSession.Model.SelectedBoxMacAddress = box.MacAddress; // make 'next' button available OpenHome.Xapp.JsonObject jo = new OpenHome.Xapp.JsonObject(); jo.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); jo.Add("Id", new OpenHome.Xapp.JsonValueString("NextButton")); jo.Add("Visible", new OpenHome.Xapp.JsonValueBool(true)); aSession.Send("Render", jo); iBoxSelection.ShowButtons(); // update display } } }
void OpenHome.Xapp.ITrackerSender.Send(string aName, OpenHome.Xapp.JsonObject aValue) { Send(aName, aValue); }
public void ShowButtons() { iBoxListDisplayed.Sort(CompareByRoom); int index = 0; int button = 0; bool morepages = false; foreach (Box box in iBoxListDisplayed) { if (box.Model == iSelectedProduct && box.State == Linn.ProductSupport.Box.EState.eOn) //if (box.Room.Contains("Jim") || box.Room.Contains("EPB")) { // filter out fake Majik DSM devices (non-HDMI) if (box.Model == "Majik DSM" && box.BoardDescription.Length > 0) { if (box.BoardDescription[0].ToLowerInvariant() == "2011 variant") { continue; } } index++; //limit to current page of 5 if (index > (iButtonPage * iButtonsPerPage)) { if (button >= iButtonsPerPage) { morepages = true; break; } else { bool selected = (iSelectedMacAddress == box.MacAddress) ? true : false; bool newbox = (box.Room == "Main Room") ? true : false; string color = selected ? "white" : "black"; string backgroundcolor = selected ? "rgb(223, 80, 92)" : "#c6bfb7"; iMacAddressList[button] = box.MacAddress; // use mac address to identify button button++; OpenHome.Xapp.JsonObject jo = new OpenHome.Xapp.JsonObject(); jo.Add("Button", new OpenHome.Xapp.JsonValueString("DeviceButton" + button)); jo.Add("Id", new OpenHome.Xapp.JsonValueString(box.MacAddress)); jo.Add("Room", new OpenHome.Xapp.JsonValueString(box.Room)); jo.Add("Name", new OpenHome.Xapp.JsonValueString(box.Name)); jo.Add("Selected", new OpenHome.Xapp.JsonValueBool(selected)); jo.Add("New", new OpenHome.Xapp.JsonValueBool(newbox)); jo.Add("Color", new OpenHome.Xapp.JsonValueString(color)); jo.Add("BackgroundColor", new OpenHome.Xapp.JsonValueString(backgroundcolor)); iSession.Send("DeviceButtonUpdate", jo); } } } } while (button < iButtonsPerPage) // clear out remaining buttons { iMacAddressList[button % iButtonsPerPage] = ""; // use mac address to identify button button++; OpenHome.Xapp.JsonObject jo = new OpenHome.Xapp.JsonObject(); jo.Add("Button", new OpenHome.Xapp.JsonValueString("DeviceButton" + button)); jo.Add("Id", new OpenHome.Xapp.JsonValueString("")); jo.Add("Room", new OpenHome.Xapp.JsonValueString("")); jo.Add("Name", new OpenHome.Xapp.JsonValueString("")); jo.Add("Selected", new OpenHome.Xapp.JsonValueBool(false)); jo.Add("New", new OpenHome.Xapp.JsonValueBool(false)); jo.Add("Color", new OpenHome.Xapp.JsonValueString("gray")); jo.Add("BackgroundColor", new OpenHome.Xapp.JsonValueString("#c6bfb7")); iSession.Send("DeviceButtonUpdate", jo); } bool visible = (morepages || iButtonPage > 0); // 'previous page' button availability OpenHome.Xapp.JsonObject joUp = new OpenHome.Xapp.JsonObject(); joUp.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); joUp.Add("Id", new OpenHome.Xapp.JsonValueString("DeviceListPageUp")); joUp.Add("Visible", new OpenHome.Xapp.JsonValueBool(visible)); joUp.Add("Enabled", new OpenHome.Xapp.JsonValueBool(iButtonPage > 0)); iSession.Send("Render", joUp); // 'next page' button availability OpenHome.Xapp.JsonObject joDown = new OpenHome.Xapp.JsonObject(); joDown.Add("Type", new OpenHome.Xapp.JsonValueString("Control")); joDown.Add("Id", new OpenHome.Xapp.JsonValueString("DeviceListPageDown")); joDown.Add("Visible", new OpenHome.Xapp.JsonValueBool(visible)); joDown.Add("Enabled", new OpenHome.Xapp.JsonValueBool(morepages)); iSession.Send("Render", joDown); }