public static synchronized void xml2d(String uuid, String xml, Renderer item) { try { Document doc = db.parse(new ByteArrayInputStream(xml.getBytes())); // doc.getDocumentElement().normalize(); NodeList ids = doc.getElementsByTagName("InstanceID"); for (int i = 0; i < ids.getLength(); i++) { NodeList c = ids.item(i).getChildNodes(); String id = ((Element) ids.item(i)).getAttribute("val"); // if (DEBUG) LOGGER.debug("InstanceID: " + id); if (item == null) { item = rendererMap.get(uuid, id); } item.data.put("InstanceID", id); for (int n = 0; n < c.getLength(); n++) { if (c.item(n).getNodeType() != Node.ELEMENT_NODE) { // LOGGER.debug("skip this " + c.item(n)); continue; } Element e = (Element) c.item(n); String name = e.getTagName(); String val = e.getAttribute("val"); if (DEBUG) { LOGGER.debug(name + ": " + val); } item.data.put(name, val); } item.alert(); } } catch (Exception e) { LOGGER.debug("Error parsing xml: " + e); } }
public static boolean isUpnpControllable(String uuid) { // Disable manually for Panasonic TVs since they lie if (rendererMap.containsKey(uuid) && !getDeviceDetailsString(getDevice(uuid)).contains("VIERA")) { return rendererMap.get(uuid, "0").controls != 0; } return false; }
protected void rendererUpdated(Device d) { String uuid = getUUID(d); if (rendererMap.containsKey(uuid)) { if (rendererMap.get(uuid, "0").needsRenewal()) { LOGGER.debug("Renewing subscriptions to ", getFriendlyName(d)); subscribeAll(d, uuid); } rendererMap.mark(uuid, ACTIVE, true); } }
public static Map<String, String> getData(String uuid, String instanceID) { return rendererMap.get(uuid, instanceID).data; }
public static void connect(String uuid, String instanceID, ActionListener listener) { rendererMap.get(uuid, instanceID).connect(listener); }
public static Renderer getRenderer(String uuid) { if (rendererMap.containsKey(uuid)) { return rendererMap.get(uuid, "0"); } return null; }
protected Renderer rendererFound(Device d, String uuid) { // Create an instance return rendererMap.get(uuid, "0"); }
public static boolean isActive(String uuid, String id) { if (rendererMap.containsKey(uuid, id)) { return rendererMap.get(uuid, id).active; } return false; }