X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=monitor%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fupnpmonitor%2FMain.java;fp=monitor%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fupnpmonitor%2FMain.java;h=8fc5b778dd49d5ae58d9712ad36ca9ecece547e4;hb=f69194edc31d6dce4371d6af6d3bb558cdf77757;hp=0000000000000000000000000000000000000000;hpb=85c484d7c5ced3752072aa52d45ce6736b7a8f7d;p=upnpmonitor diff --git a/monitor/src/main/java/org/wamblee/upnpmonitor/Main.java b/monitor/src/main/java/org/wamblee/upnpmonitor/Main.java new file mode 100644 index 0000000..8fc5b77 --- /dev/null +++ b/monitor/src/main/java/org/wamblee/upnpmonitor/Main.java @@ -0,0 +1,74 @@ +package org.wamblee.upnpmonitor; + +import java.util.logging.Logger; + +import org.teleal.cling.UpnpService; +import org.teleal.cling.UpnpServiceImpl; +import org.teleal.cling.controlpoint.ControlPoint; +import org.teleal.cling.model.message.header.DeviceTypeHeader; +import org.teleal.cling.model.meta.Device; +import org.teleal.cling.model.types.DeviceType; +import org.teleal.cling.registry.DefaultRegistryListener; +import org.teleal.cling.registry.Registry; +import org.teleal.cling.registry.RegistryListener; + +public class Main { + + private static final Logger LOGGER = Logger.getLogger(Main.class.getName()); + + public static class UpnpStack { + private UpnpService upnpService; + private ControlPoint controlPoint; + private DeviceType deviceType; + + public UpnpStack() { + RegistryListener listener = new DefaultRegistryListener() { + @Override + public void deviceAdded(Registry aRegistry, Device aDevice) { + super.deviceAdded(aRegistry, aDevice); + System.out.println("Device added: " + + aDevice.getDisplayString()); + System.out.println(aDevice.getType()); + } + + @Override + public void deviceRemoved(Registry aRegistry, Device aDevice) { + super.deviceRemoved(aRegistry, aDevice); + System.out.println("Device removed: " + + aDevice.getDisplayString()); + } + }; + upnpService = new UpnpServiceImpl(listener); + controlPoint = upnpService.getControlPoint(); + deviceType = new DeviceType("schemas-upnp-org", "MediaServer"); + + } + + public void search() { + controlPoint.search(new DeviceTypeHeader(deviceType)); + } + + public void shutdown() { + upnpService.shutdown(); + } + } + + public static void main(String[] aArgs) throws Exception { + + Runtime.getRuntime().addShutdownHook(new Thread() { + @Override + public void run() { + System.out.println("Shutdown hook"); + } + }); + + for (;;) { + UpnpStack stack = new UpnpStack(); + stack.search(); + Thread.sleep(10000); + stack.shutdown(); + + } + + } +}