public DeviceDetails createDeviceDetails(URL baseURL) { return new DeviceDetails( baseURL, friendlyName, new ManufacturerDetails(manufacturer, manufacturerURI), new ModelDetails(modelName, modelDescription, modelNumber, modelURI), serialNumber, upc, presentationURI, dlnaDocs.toArray(new DLNADoc[dlnaDocs.size()]), dlnaCaps ); }
appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.friendlyName, deviceModelDetails.getFriendlyName() ); if (deviceModelDetails.getManufacturerDetails() != null) { appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.manufacturer, deviceModelDetails.getManufacturerDetails().getManufacturer() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.manufacturerURL, deviceModelDetails.getManufacturerDetails().getManufacturerURI() ); if (deviceModelDetails.getModelDetails() != null) { appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelDescription, deviceModelDetails.getModelDetails().getModelDescription() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelName, deviceModelDetails.getModelDetails().getModelName() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelNumber, deviceModelDetails.getModelDetails().getModelNumber() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelURL,
public URL normalizeURI(URI relativeOrAbsoluteURI) { // TODO: I have one device (Netgear 834DG DSL Router) that sends a <URLBase>, and even that is wrong (port)! // This can be fixed by "re-enabling" UPnP in the upnpService after a reboot, it will then use the right port... // return URIUtil.createAbsoluteURL(getDescriptorURL(), relativeOrAbsoluteURI); if (getDetails() != null && getDetails().getBaseURL() != null) { // If we have an <URLBase>, all URIs are relative to it return URIUtil.createAbsoluteURL(getDetails().getBaseURL(), relativeOrAbsoluteURI); } else { // Otherwise, they are relative to the descriptor location return URIUtil.createAbsoluteURL(getIdentity().getDescriptorURL(), relativeOrAbsoluteURI); } }
String cleanModelNumber = null; if (getDetails() != null && getDetails().getModelDetails() != null) { ModelDetails modelDetails = getDetails().getModelDetails(); if (modelDetails.getModelName() != null) { cleanModelName = modelDetails.getModelNumber() != null && modelDetails.getModelName().endsWith(modelDetails.getModelNumber()) if (getDetails() != null && getDetails().getManufacturerDetails() != null) { if (cleanModelName != null && getDetails().getManufacturerDetails().getManufacturer() != null) { cleanModelName = cleanModelName.startsWith(getDetails().getManufacturerDetails().getManufacturer()) ? cleanModelName.substring(getDetails().getManufacturerDetails().getManufacturer().length()).trim() : cleanModelName.trim(); if (getDetails().getManufacturerDetails().getManufacturer() != null) { sb.append(getDetails().getManufacturerDetails().getManufacturer());
if (device.getDetails().getDlnaDocs() != null) { for (DLNADoc dlnaDoc : device.getDetails().getDlnaDocs()) { addIfNotNull(deviceNode, "DLNA Doc: ", dlnaDoc); addIfNotNull(deviceNode, "DLNA Caps: ", device.getDetails().getDlnaCaps()); addIfNotNull(deviceNode, "Manufacturer: ", device.getDetails().getManufacturerDetails().getManufacturer()); addIfNotNull(deviceNode, "Manufacturer URL/URI: ", device.getDetails().getManufacturerDetails().getManufacturerURI(), device); addIfNotNull(deviceNode, "Model Name: ", device.getDetails().getModelDetails().getModelName()); addIfNotNull(deviceNode, "Model #: ", device.getDetails().getModelDetails().getModelNumber()); addIfNotNull(deviceNode, "Model Description: ", device.getDetails().getModelDetails().getModelDescription()); addIfNotNull(deviceNode, "Model URL/URI: ", device.getDetails().getModelDetails().getModelURI(), device); addIfNotNull(deviceNode, "Serial #: ", device.getDetails().getSerialNumber()); addIfNotNull(deviceNode, "Universal Product Code: ", device.getDetails().getUpc()); addIfNotNull(deviceNode, "Presentation URI: ", device.getDetails().getPresentationURI(), device);
@Override public String getTitle() { return device != null ? device.getDetails().getFriendlyName() : "(NO DEVICE)"; }
public MediaServer(InetAddress localAddress) throws ValidationException { DeviceType type = new UDADeviceType(deviceType, version); DeviceDetails details = new DeviceDetails(android.os.Build.MODEL, new ManufacturerDetails(android.os.Build.MANUFACTURER), new ModelDetails("GNaP", "GNaP MediaServer for Android", "v1")); LocalService service = new AnnotationLocalServiceBinder() .read(ContentDirectoryService.class); service.setManager(new DefaultServiceManager<ContentDirectoryService>( service, ContentDirectoryService.class)); localDevice = new LocalDevice(new DeviceIdentity(udn), type, details, service); this.localAddress = localAddress; LogUtil.v(TAG, "MediaServer device created: "); LogUtil.v(TAG, "friendly name: " + details.getFriendlyName()); LogUtil.v(TAG, "manufacturer: " + details.getManufacturerDetails().getManufacturer()); LogUtil.v(TAG, "model: " + details.getModelDetails().getModelName()); // start http server try { new HttpServer(port); } catch (IOException ioe) { System.err.println("Couldn't start server:\n" + ioe); System.exit(-1); } LogUtil.v(TAG, "Started Http Server on port " + port); }
@Override public String getModelURL() { try { return device.getDetails().getModelDetails().getModelURI().toString(); } catch (Exception e) { return ""; } }
public void createLocalDevice() throws ValidationException { String version = ""; try { version = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0).versionName; } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Application version name not found"); } DeviceDetails details = new DeviceDetails( SettingsActivity.getSettingContentDirectoryName(ctx), new ManufacturerDetails(ctx.getString(R.string.app_name), ctx.getString(R.string.app_url)), new ModelDetails(ctx.getString(R.string.app_name), ctx.getString(R.string.app_url)), ctx.getString(R.string.app_name), version); List<ValidationError> l = details.validate(); for( ValidationError v : l ) { Log.e(TAG, "Validation pb for property "+ v.getPropertyName()); Log.e(TAG, "Error is " + v.getMessage()); } DeviceType type = new UDADeviceType("MediaServer", 1); localDevice = new LocalDevice(new DeviceIdentity(udn), type, details, localService); }
@Override public String getManufacturerURL() { try { return device.getDetails().getManufacturerDetails().getManufacturerURI().toString(); } catch (Exception e) { return ""; } }
@Override public void logRouterInfo() throws RouterException { final RemoteDevice device = service.getDevice(); final UDAVersion version = device.getVersion(); final DeviceDetails deviceDetails = device.getDetails(); logger.info("Service id: {}", service.getServiceId()); logger.info("Reference: {}", service.getReference()); logger.info("Display name: {}", device.getDisplayString()); logger.info("Version: {}.{}", version.getMajor(), version.getMinor()); logger.info("Control uri: {}", service.getControlURI()); logger.info("Descriptor uri: {}", service.getDescriptorURI()); logger.info("Event subscription uri: {}", service.getEventSubscriptionURI()); logger.info("Device base url: {}", deviceDetails.getBaseURL()); logger.info("Device presentation uri: {}", deviceDetails.getPresentationURI()); }
@Override public String getPresentationURL() { try { return device.getDetails().getPresentationURI().toString(); } catch (Exception e) { return ""; } }
@Override public String getSerialNumber() { try { return device.getDetails().getSerialNumber(); } catch (Exception e) { return ""; } }
menuItem = new JMenu(entry.getKey().getDetails().getFriendlyName()); for (int i = 0; i < SUPPORTED_INSTANCES; i++) { final int instanceId = i; entry.getKey().getDetails().getFriendlyName() + " (Not Compatible)" ); menuItem.setEnabled(false);
String cleanModelNumber = null; if (getDetails() != null && getDetails().getModelDetails() != null) { ModelDetails modelDetails = getDetails().getModelDetails(); if (modelDetails.getModelName() != null) { cleanModelName = modelDetails.getModelNumber() != null && modelDetails.getModelName().endsWith(modelDetails.getModelNumber()) if (getDetails() != null && getDetails().getManufacturerDetails() != null) { if (cleanModelName != null && getDetails().getManufacturerDetails().getManufacturer() != null) { cleanModelName = cleanModelName.startsWith(getDetails().getManufacturerDetails().getManufacturer()) ? cleanModelName.substring(getDetails().getManufacturerDetails().getManufacturer().length()).trim() : cleanModelName.trim(); if (getDetails().getManufacturerDetails().getManufacturer() != null) { sb.append(getDetails().getManufacturerDetails().getManufacturer());
@Override public String getModelURL() { try { return device.getDetails().getModelDetails().getModelURI().toString(); } catch (Exception e) { return ""; } }
@Override public String getManufacturerURL() { try { return device.getDetails().getManufacturerDetails().getManufacturerURI().toString(); } catch (Exception e) { return ""; } }
@Override public String getPresentationURL() { try { return device.getDetails().getPresentationURI().toString(); } catch (Exception e) { return ""; } }
@Override public String getSerialNumber() { try { return device.getDetails().getSerialNumber(); } catch (Exception e) { return ""; } }
appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.friendlyName, deviceModelDetails.getFriendlyName() ); if (deviceModelDetails.getManufacturerDetails() != null) { appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.manufacturer, deviceModelDetails.getManufacturerDetails().getManufacturer() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.manufacturerURL, deviceModelDetails.getManufacturerDetails().getManufacturerURI() ); if (deviceModelDetails.getModelDetails() != null) { appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelDescription, deviceModelDetails.getModelDetails().getModelDescription() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelName, deviceModelDetails.getModelDetails().getModelName() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelNumber, deviceModelDetails.getModelDetails().getModelNumber() ); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.modelURL,