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 extends Discoverer> 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;
}