diff -Nru libprotocol-java-1.1/build.xml libprotocol-java-1.2/build.xml --- libprotocol-java-1.1/build.xml 2015-10-18 08:34:14.000000000 +0000 +++ libprotocol-java-1.2/build.xml 2015-10-19 22:37:34.000000000 +0000 @@ -3,7 +3,7 @@ - + diff -Nru libprotocol-java-1.1/changelog libprotocol-java-1.2/changelog --- libprotocol-java-1.1/changelog 2015-10-18 08:27:51.000000000 +0000 +++ libprotocol-java-1.2/changelog 2015-10-19 22:40:12.000000000 +0000 @@ -1,8 +1,11 @@ -protocol version 1.1: +protocol version 1.2 : +upnp : fixage du port d'écoute udp + +protocol version 1.1 : Fix bug : exception lorsque que l'on clique sur annuler au choix du fichier fix bug : ajout des images au jar -protocol version 1: +protocol version 1 : Découverte et intéraction avec différents protocoles : upnp, airplay, chromecast upnp : découverte et intéraction opérationnelles airplay : découverte opérationnelle diff -Nru libprotocol-java-1.1/debian/changelog libprotocol-java-1.2/debian/changelog --- libprotocol-java-1.1/debian/changelog 2015-10-18 08:31:13.000000000 +0000 +++ libprotocol-java-1.2/debian/changelog 2015-10-19 22:56:40.000000000 +0000 @@ -1,3 +1,9 @@ +libprotocol-java (1.2-0ubuntu1) vivid; urgency=medium + + * fixage du port d'écoute udp + + -- Jonathan Le Greneur Tue, 20 Oct 2015 00:55:57 +0200 + libprotocol-java (1.1-0ubuntu1) vivid; urgency=medium * bug fix ajout des images au jar diff -Nru libprotocol-java-1.1/debian/libprotocol-java.install libprotocol-java-1.2/debian/libprotocol-java.install --- libprotocol-java-1.1/debian/libprotocol-java.install 2015-10-18 08:31:32.000000000 +0000 +++ libprotocol-java-1.2/debian/libprotocol-java.install 2015-10-19 22:57:59.000000000 +0000 @@ -1 +1 @@ -jar/protocol-1.1.jar usr/share/java +jar/protocol-1.2.jar usr/share/java diff -Nru libprotocol-java-1.1/debian/libprotocol-java.links libprotocol-java-1.2/debian/libprotocol-java.links --- libprotocol-java-1.1/debian/libprotocol-java.links 2015-10-18 08:31:40.000000000 +0000 +++ libprotocol-java-1.2/debian/libprotocol-java.links 2015-10-19 22:58:05.000000000 +0000 @@ -1 +1 @@ -usr/share/java/protocol-1.1.jar usr/share/java/protocol.jar +usr/share/java/protocol-1.2.jar usr/share/java/protocol.jar diff -Nru libprotocol-java-1.1/druzy/protocol/ChromecastRenderer.java libprotocol-java-1.2/druzy/protocol/ChromecastRenderer.java --- libprotocol-java-1.1/druzy/protocol/ChromecastRenderer.java 2015-10-04 22:43:03.000000000 +0000 +++ libprotocol-java-1.2/druzy/protocol/ChromecastRenderer.java 2015-10-18 18:12:08.000000000 +0000 @@ -6,10 +6,12 @@ import java.net.URI; import java.net.URL; import java.security.GeneralSecurityException; +import java.sql.Time; import javax.swing.ImageIcon; import druzy.server.RestrictedFileServer; +import druzy.utils.TimeUtils; import su.litvak.chromecast.api.v2.ChromeCast; import su.litvak.chromecast.api.v2.Status; @@ -143,4 +145,16 @@ return true; } + @Override + public Time getDuration(){ + try { + System.out.println(chromecast.getMediaStatus()); + if (chromecast.getMediaStatus()==null) return TimeUtils.secondsToTime(0); + else return TimeUtils.secondsToTime(chromecast.getMediaStatus().media.duration.intValue()); + } catch (IOException e) { + e.printStackTrace(); + return TimeUtils.secondsToTime(0); + } + + } } diff -Nru libprotocol-java-1.1/druzy/protocol/DiscovererFactory.java libprotocol-java-1.2/druzy/protocol/DiscovererFactory.java --- libprotocol-java-1.1/druzy/protocol/DiscovererFactory.java 2015-09-03 21:44:29.000000000 +0000 +++ libprotocol-java-1.2/druzy/protocol/DiscovererFactory.java 2015-10-19 10:29:11.000000000 +0000 @@ -17,10 +17,12 @@ Set> set=reflect.getSubTypesOf(Discoverer.class); for (Class disco:set){ - try { - ret.add(disco.newInstance()); - } catch (Exception e) { - e.printStackTrace(); + if (!disco.equals(AbstractDiscoverer.class)){ + try { + ret.add(disco.newInstance()); + } catch (Exception e) { + e.printStackTrace(); + } } } diff -Nru libprotocol-java-1.1/druzy/protocol/Global.java libprotocol-java-1.2/druzy/protocol/Global.java --- libprotocol-java-1.1/druzy/protocol/Global.java 2015-10-18 08:26:39.000000000 +0000 +++ libprotocol-java-1.2/druzy/protocol/Global.java 2015-10-19 22:36:08.000000000 +0000 @@ -4,7 +4,7 @@ public class Global { - public static final Version VERSION=new Version("1.1"); + public static final Version VERSION=new Version("1.2"); private Global() {} diff -Nru libprotocol-java-1.1/druzy/protocol/UpnpRendererDiscoverer.java libprotocol-java-1.2/druzy/protocol/UpnpRendererDiscoverer.java --- libprotocol-java-1.1/druzy/protocol/UpnpRendererDiscoverer.java 2015-10-17 13:20:14.000000000 +0000 +++ libprotocol-java-1.2/druzy/protocol/UpnpRendererDiscoverer.java 2015-10-19 22:49:31.000000000 +0000 @@ -1,7 +1,11 @@ package druzy.protocol; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.MulticastSocket; import java.util.ArrayList; import java.util.List; +import java.util.logging.Logger; import org.fourthline.cling.DefaultUpnpServiceConfiguration; import org.fourthline.cling.UpnpService; @@ -9,6 +13,12 @@ import org.fourthline.cling.registry.DefaultRegistryListener; import org.fourthline.cling.registry.Registry; import org.fourthline.cling.registry.RegistryListener; +import org.fourthline.cling.transport.impl.DatagramIOImpl; +import org.fourthline.cling.transport.Router; +import org.fourthline.cling.transport.spi.DatagramIO; +import org.fourthline.cling.transport.spi.DatagramProcessor; +import org.fourthline.cling.transport.spi.InitializationException; +import org.fourthline.cling.transport.spi.NetworkAddressFactory; import org.fourthline.cling.model.message.header.DeviceTypeHeader; import org.fourthline.cling.model.message.header.UDNHeader; import org.fourthline.cling.model.message.header.UpnpHeader; @@ -22,6 +32,7 @@ private int port=18040; private int portFile=18041; + private int portDatagram=18042; public static final String UPNP_NAMESPACE="schemas-upnp-org"; public static final String MEDIA_RENDERER_TYPE="MediaRenderer"; @@ -31,7 +42,39 @@ public UpnpRendererDiscoverer() { super(); if (upnpService==null){ - upnpService=new UpnpServiceImpl(new DefaultUpnpServiceConfiguration(port)); + upnpService=new UpnpServiceImpl(new DefaultUpnpServiceConfiguration(port){ + @SuppressWarnings("rawtypes") + @Override + public DatagramIO createDatagramIO(NetworkAddressFactory networkAddressFactory){ + DatagramIOImpl d=(DatagramIOImpl) super.createDatagramIO(networkAddressFactory); + DatagramIOImpl result=new DatagramIOImpl(d.getConfiguration()){ + @Override + public void init(InetAddress bindAddress, Router router, DatagramProcessor datagramProcessor) throws InitializationException { + this.router = router; + this.datagramProcessor = datagramProcessor; + + try { + + // TODO: UPNP VIOLATION: The spec does not prohibit using the 1900 port here again, however, the + // Netgear ReadyNAS miniDLNA implementation will no longer answer if it has to send search response + // back via UDP unicast to port 1900... so we use an ephemeral port + Logger.getLogger(DatagramIO.class.getName()).info("Creating bound socket (for datagram input/output) on: " + bindAddress); + localAddress = new InetSocketAddress(bindAddress, 18042); + socket = new MulticastSocket(localAddress); + socket.setTimeToLive(configuration.getTimeToLive()); + socket.setReceiveBufferSize(32768); // Keep a backlog of incoming datagrams if we are not fast enough + + } catch (Exception ex) { + throw new InitializationException("Could not initialize " + getClass().getSimpleName() + ": " + ex); + } + } + + }; + + return result; + } + }); + } } @@ -100,6 +143,7 @@ ArrayList list=new ArrayList(); list.add(port); list.add(portFile); + list.add(portDatagram); return list; }