public static void main(String[] args) throws Exception { System.out.println("Starting Cling..."); UpnpService upnpService = new UpnpServiceImpl(); long noOfDevices = args.length == 1 ? Long.valueOf(args[0]) : 10; System.out.println("Registering BinaryLight devices: " + noOfDevices); for (long i = 0; i <= noOfDevices; i++) { LocalService service = new AnnotationLocalServiceBinder().read(DemoBinaryLight.class); service.setManager(new DefaultServiceManager(service, DemoBinaryLight.class)); upnpService.getRegistry().addDevice( DemoBinaryLight.createDefaultDevice(UDN.uniqueSystemIdentifier(Long.toString(i)), "Device: " + i, service) ); } System.out.println("Completed device registration"); } }
public void beforeShutdown(Registry registry) { System.out.println( "Before shutdown, the registry has devices: " + registry.getDevices().size() ); }
public void onServiceConnected(ComponentName className, IBinder service) { upnpService = (AndroidUpnpService) service; // Clear the list listAdapter.clear(); // Get ready for future device advertisements upnpService.getRegistry().addListener(registryListener); // Now add all devices to the list we already know about for (Device device : upnpService.getRegistry().getDevices()) { registryListener.deviceAdded(device); } // Search asynchronously for all devices, they will respond soon upnpService.getControlPoint().search(); }
protected void removeDevice() { LocalDevice device; if ((device = upnpService.getRegistry().getLocalDevice(DEMO_DEVICE_UDN, true)) != null) { upnpService.getRegistry().removeDevice(device); } }
public void onCreate(@Observes CreateDemoDevice createDemoDevice) { if (upnpService.getRegistry().getLocalDevice(DEMO_DEVICE_UDN, true) != null) { Workbench.Log.MAIN.info("Local demo device already exists!"); return; upnpService.getRegistry().addDevice( DemoBinaryLight.createDefaultDevice(DEMO_DEVICE_UDN, service) );
notifiedStart = getUpnpService().getRegistry().notifyDiscoveryStart(describedDevice); getUpnpService().getRegistry().notifyDiscoveryFailure( describedDevice, new DescriptorBindingException("Device service description failed: " + rd) getUpnpService().getRegistry().addDevice(hydratedDevice); getUpnpService().getRegistry().notifyDiscoveryFailure(describedDevice, ex); log.warning("Cause was: " + Exceptions.unwrap(ex)); if (describedDevice != null && notifiedStart) getUpnpService().getRegistry().notifyDiscoveryFailure(describedDevice, ex); log.warning("Cause was: " + ex.toString()); if (describedDevice != null && notifiedStart) getUpnpService().getRegistry().notifyDiscoveryFailure(describedDevice, ex);
public void start(@Observes Start start) { log.info(">>> Starting managed UPnP service..."); // First start the registry before we can receive messages through the transport getRegistry().addListener(registryListenerAdapter); enableRouterEvent.fire(new EnableRouter()); log.info("<<< Managed UPnP service started successfully"); }
if (getUpnpService().getRegistry().update(rdIdentity)) { log.finer("Remote device was already known: " + udn); return; boolean removed = getUpnpService().getRegistry().removeDevice(rd); if (removed) { log.fine("Removed remote device from registry: " + rd);
private void establishLocalSubscription(LocalService service) { if (getControlPoint().getRegistry().getLocalDevice(service.getDevice().getIdentity().getUdn(), false) == null) { log.fine("Local device service is currently not registered, failing subscription immediately"); failed(null, null, new IllegalStateException("Local device is not registered")); getControlPoint().getRegistry().addLocalSubscription(localSubscription); log.log(Level.FINE, "Exception root cause: ", Exceptions.unwrap(ex)); if (localSubscription != null) getControlPoint().getRegistry().removeLocalSubscription(localSubscription); failed(localSubscription, null, ex);
public void onServiceConnected(ComponentName className, IBinder service) { Log.d(TAG, "DLNA-----DlnaAndRemoteSearch---onServiceConnected"); mUpnpService = (AndroidUpnpService) service; mUpnpService.getControlPoint().getRegistry().removeAllRemoteDevices();// 先清除掉之前的,再搜索 mUpnpService.getRegistry().addListener(mDefaultRegistryListener); mUpnpService.getControlPoint().search(); }
@Override protected void onDestroy() { super.onDestroy(); if (upnpService != null) { upnpService.getRegistry().removeListener(registryListener); } // This will stop the UPnP service if nobody else is bound to it getApplicationContext().unbindService(serviceConnection); } // DOC:SERVICE_BINDING
public boolean removeDevice(LocalDevice localDevice) { return upnpService.getRegistry().removeDevice(localDevice); }
@Override public void onRefreshDevices() { registry.removeAllRemoteDevices(); searchEvent.fire(new Search(1)); }
protected LocalService<SwitchPower> getSwitchPowerService() { if (upnpService == null) return null; LocalDevice binaryLightDevice; if ((binaryLightDevice = upnpService.getRegistry().getLocalDevice(udn, true)) == null) return null; return (LocalService<SwitchPower>) binaryLightDevice.findService(new UDAServiceType("SwitchPower", 1)); } // DOC:SERVICE_BINDING
notifiedStart = getUpnpService().getRegistry().notifyDiscoveryStart(describedDevice); getUpnpService().getRegistry().notifyDiscoveryFailure( describedDevice, new DescriptorBindingException("Device service description failed: " + rd) getUpnpService().getRegistry().addDevice(hydratedDevice); getUpnpService().getRegistry().notifyDiscoveryFailure(describedDevice, ex); log.warning("Cause was: " + Exceptions.unwrap(ex)); if (describedDevice != null && notifiedStart) getUpnpService().getRegistry().notifyDiscoveryFailure(describedDevice, ex); log.warning("Cause was: " + ex.toString()); if (describedDevice != null && notifiedStart) getUpnpService().getRegistry().notifyDiscoveryFailure(describedDevice, ex);
public UpnpServiceImpl(UpnpServiceConfiguration configuration, RegistryListener... registryListeners) { this.configuration = configuration; log.info(">>> Starting UPnP service..."); log.info("Using configuration: " + getConfiguration().getClass().getName()); // Instantiation order is important: Router needs to start its network services after registry is ready this.protocolFactory = createProtocolFactory(); this.registry = createRegistry(protocolFactory); for (RegistryListener registryListener : registryListeners) { this.registry.addListener(registryListener); } this.router = createRouter(protocolFactory, registry); try { this.router.enable(); } catch (RouterException ex) { throw new RuntimeException("Enabling network router failed: " + ex, ex); } this.controlPoint = createControlPoint(protocolFactory, registry); log.info("<<< UPnP service started successfully"); }
if (getUpnpService().getRegistry().update(rdIdentity)) { log.finer("Remote device was already known: " + udn); return; boolean removed = getUpnpService().getRegistry().removeDevice(rd); if (removed) { log.fine("Removed remote device from registry: " + rd);
private void establishLocalSubscription(LocalService service) { if (getControlPoint().getRegistry().getLocalDevice(service.getDevice().getIdentity().getUdn(), false) == null) { log.fine("Local device service is currently not registered, failing subscription immediately"); failed(null, null, new IllegalStateException("Local device is not registered")); getControlPoint().getRegistry().addLocalSubscription(localSubscription); log.log(Level.FINE, "Exception root cause: ", Exceptions.unwrap(ex)); if (localSubscription != null) getControlPoint().getRegistry().removeLocalSubscription(localSubscription); failed(localSubscription, null, ex);
public void removeListener(UpnpRegistryListener listener) { upnpService.getRegistry().removeListener(listener); }
@Override public void removeDevice(LocalDevice localDevice) { upnpServiceListener.getUpnpService().getRegistry().removeDevice(localDevice); }