From 6471d5337d542fde05ece58b9337a60b3411fe8b Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 8 Dec 2014 15:43:44 -0800 Subject: Upgrade to Cling 2.0.1, up min SDK to 4.0+ --- AndroidManifest.xml | 4 +- libs/cling-core-1.0.5.jar | Bin 551922 -> 0 bytes libs/cling-core-2.0.1.jar | Bin 0 -> 686501 bytes libs/cling-support-1.0.5.jar | Bin 359154 -> 0 bytes libs/cling-support-2.0.1.jar | Bin 0 -> 490043 bytes libs/javax.servlet-3.0.0.v201112011016.jar | Bin 0 -> 200387 bytes libs/jetty-all-8.1.16.v20140903.jar | Bin 0 -> 1880786 bytes libs/seamless-http-1.1.0.jar | Bin 0 -> 21646 bytes libs/seamless-util-1.1.0.jar | Bin 0 -> 94456 bytes libs/seamless-xml-1.1.0.jar | Bin 0 -> 63142 bytes libs/teleal-common-1.0.13.jar | Bin 231831 -> 0 bytes src/github/daneren2005/dsub/domain/DLNADevice.java | 2 +- .../dsub/provider/DLNARouteProvider.java | 129 +++++++++++++++++---- .../daneren2005/dsub/service/DLNAController.java | 53 +++++---- 14 files changed, 138 insertions(+), 50 deletions(-) delete mode 100644 libs/cling-core-1.0.5.jar create mode 100644 libs/cling-core-2.0.1.jar delete mode 100644 libs/cling-support-1.0.5.jar create mode 100644 libs/cling-support-2.0.1.jar create mode 100644 libs/javax.servlet-3.0.0.v201112011016.jar create mode 100644 libs/jetty-all-8.1.16.v20140903.jar create mode 100644 libs/seamless-http-1.1.0.jar create mode 100644 libs/seamless-util-1.1.0.jar create mode 100644 libs/seamless-xml-1.1.0.jar delete mode 100644 libs/teleal-common-1.0.13.jar diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 25734167..bbedcea4 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -30,7 +30,7 @@ - + @@ -86,7 +86,7 @@ - + diff --git a/libs/cling-core-1.0.5.jar b/libs/cling-core-1.0.5.jar deleted file mode 100644 index 8079f329..00000000 Binary files a/libs/cling-core-1.0.5.jar and /dev/null differ diff --git a/libs/cling-core-2.0.1.jar b/libs/cling-core-2.0.1.jar new file mode 100644 index 00000000..632d3038 Binary files /dev/null and b/libs/cling-core-2.0.1.jar differ diff --git a/libs/cling-support-1.0.5.jar b/libs/cling-support-1.0.5.jar deleted file mode 100644 index a0ca6363..00000000 Binary files a/libs/cling-support-1.0.5.jar and /dev/null differ diff --git a/libs/cling-support-2.0.1.jar b/libs/cling-support-2.0.1.jar new file mode 100644 index 00000000..7fa28604 Binary files /dev/null and b/libs/cling-support-2.0.1.jar differ diff --git a/libs/javax.servlet-3.0.0.v201112011016.jar b/libs/javax.servlet-3.0.0.v201112011016.jar new file mode 100644 index 00000000..b1354096 Binary files /dev/null and b/libs/javax.servlet-3.0.0.v201112011016.jar differ diff --git a/libs/jetty-all-8.1.16.v20140903.jar b/libs/jetty-all-8.1.16.v20140903.jar new file mode 100644 index 00000000..25b1d324 Binary files /dev/null and b/libs/jetty-all-8.1.16.v20140903.jar differ diff --git a/libs/seamless-http-1.1.0.jar b/libs/seamless-http-1.1.0.jar new file mode 100644 index 00000000..98ec884a Binary files /dev/null and b/libs/seamless-http-1.1.0.jar differ diff --git a/libs/seamless-util-1.1.0.jar b/libs/seamless-util-1.1.0.jar new file mode 100644 index 00000000..12026b7f Binary files /dev/null and b/libs/seamless-util-1.1.0.jar differ diff --git a/libs/seamless-xml-1.1.0.jar b/libs/seamless-xml-1.1.0.jar new file mode 100644 index 00000000..1e740877 Binary files /dev/null and b/libs/seamless-xml-1.1.0.jar differ diff --git a/libs/teleal-common-1.0.13.jar b/libs/teleal-common-1.0.13.jar deleted file mode 100644 index 2d6403ef..00000000 Binary files a/libs/teleal-common-1.0.13.jar and /dev/null differ diff --git a/src/github/daneren2005/dsub/domain/DLNADevice.java b/src/github/daneren2005/dsub/domain/DLNADevice.java index ba4c2777..2de84013 100644 --- a/src/github/daneren2005/dsub/domain/DLNADevice.java +++ b/src/github/daneren2005/dsub/domain/DLNADevice.java @@ -22,7 +22,7 @@ package github.daneren2005.dsub.domain; import android.os.Parcel; import android.os.Parcelable; -import org.teleal.cling.model.meta.Device; +import org.fourthline.cling.model.meta.Device; /** * Created by Scott on 11/1/2014. diff --git a/src/github/daneren2005/dsub/provider/DLNARouteProvider.java b/src/github/daneren2005/dsub/provider/DLNARouteProvider.java index 44cde0ef..3601e696 100644 --- a/src/github/daneren2005/dsub/provider/DLNARouteProvider.java +++ b/src/github/daneren2005/dsub/provider/DLNARouteProvider.java @@ -33,19 +33,20 @@ import android.support.v7.media.MediaRouteProvider; import android.support.v7.media.MediaRouteProviderDescriptor; import android.util.Log; -import org.teleal.cling.android.AndroidUpnpService; -import org.teleal.cling.android.AndroidUpnpServiceImpl; -import org.teleal.cling.model.action.ActionInvocation; -import org.teleal.cling.model.message.UpnpResponse; -import org.teleal.cling.model.meta.Device; -import org.teleal.cling.model.meta.LocalDevice; -import org.teleal.cling.model.meta.RemoteDevice; -import org.teleal.cling.model.meta.StateVariable; -import org.teleal.cling.model.meta.StateVariableAllowedValueRange; -import org.teleal.cling.model.types.ServiceType; -import org.teleal.cling.registry.Registry; -import org.teleal.cling.registry.RegistryListener; -import org.teleal.cling.support.renderingcontrol.callback.GetVolume; +import org.eclipse.jetty.util.log.Logger; +import org.fourthline.cling.android.AndroidUpnpService; +import org.fourthline.cling.android.AndroidUpnpServiceImpl; +import org.fourthline.cling.model.action.ActionInvocation; +import org.fourthline.cling.model.message.UpnpResponse; +import org.fourthline.cling.model.meta.Device; +import org.fourthline.cling.model.meta.LocalDevice; +import org.fourthline.cling.model.meta.RemoteDevice; +import org.fourthline.cling.model.meta.StateVariable; +import org.fourthline.cling.model.meta.StateVariableAllowedValueRange; +import org.fourthline.cling.model.types.ServiceType; +import org.fourthline.cling.registry.Registry; +import org.fourthline.cling.registry.RegistryListener; +import org.fourthline.cling.support.renderingcontrol.callback.GetVolume; import java.util.ArrayList; import java.util.HashMap; @@ -58,9 +59,6 @@ import github.daneren2005.dsub.service.DLNAController; import github.daneren2005.dsub.service.DownloadService; import github.daneren2005.dsub.service.RemoteController; -/** - * Created by Scott on 11/28/13. - */ public class DLNARouteProvider extends MediaRouteProvider { private static final String TAG = DLNARouteProvider.class.getSimpleName(); public static final String CATEGORY_DLNA = "github.daneren2005.dsub.DLNA"; @@ -75,6 +73,10 @@ public class DLNARouteProvider extends MediaRouteProvider { public DLNARouteProvider(Context context) { super(context); + + // Use custom logger + org.eclipse.jetty.util.log.Log.setLog(new JettyAndroidLog()); + this.downloadService = (DownloadService) context; dlnaServiceConnection = new ServiceConnection() { @Override @@ -83,12 +85,12 @@ public class DLNARouteProvider extends MediaRouteProvider { dlnaService.getRegistry().addListener(new RegistryListener() { @Override public void remoteDeviceDiscoveryStarted(Registry registry, RemoteDevice remoteDevice) { - + Log.i(TAG, "Stared DLNA discovery"); } @Override public void remoteDeviceDiscoveryFailed(Registry registry, RemoteDevice remoteDevice, Exception e) { - + Log.w(TAG, "Failed to discover DLNA devices"); } @Override @@ -138,7 +140,10 @@ public class DLNARouteProvider extends MediaRouteProvider { dlnaService = null; } }; - context.bindService(new Intent(context, AndroidUpnpServiceImpl.class), dlnaServiceConnection, Context.BIND_AUTO_CREATE); + + if(!context.getApplicationContext().bindService(new Intent(context, AndroidUpnpServiceImpl.class), dlnaServiceConnection, Context.BIND_AUTO_CREATE)) { + Log.e(TAG, "Failed to bind to DLNA service"); + } } private void broadcastDescriptors() { @@ -189,7 +194,7 @@ public class DLNARouteProvider extends MediaRouteProvider { } private void deviceAdded(final Device device) { - final org.teleal.cling.model.meta.Service renderingControl = device.findService(new ServiceType("schemas-upnp-org", "RenderingControl")); + final org.fourthline.cling.model.meta.Service renderingControl = device.findService(new ServiceType("schemas-upnp-org", "RenderingControl")); if(renderingControl == null) { return; } @@ -235,6 +240,8 @@ public class DLNARouteProvider extends MediaRouteProvider { adding.remove(id); } }); + } else { + adding.remove(id); } } private void deviceRemoved(Device device) { @@ -302,4 +309,86 @@ public class DLNARouteProvider extends MediaRouteProvider { broadcastDescriptors(); } } + + public static class JettyAndroidLog implements Logger { + final private static java.util.logging.Logger log = java.util.logging.Logger.getLogger("Jetty"); + + public static boolean __isIgnoredEnabled = false; + public String _name; + + public JettyAndroidLog() { + this (JettyAndroidLog.class.getName()); + } + + public JettyAndroidLog(String name) { + _name = name; + } + + public String getName () { + return _name; + } + + public void debug(Throwable th) { + // Log.d(TAG, "", th); + } + + public void debug(String msg, Throwable th) { + // Log.d(TAG, msg, th); + } + + public void debug(String msg, Object... args) { + // Log.d(TAG, msg); + } + + public Logger getLogger(String name) { + return new JettyAndroidLog(name); + } + + public void info(String msg, Object... args) { + Log.i(TAG, msg); + } + + public void info(Throwable th) { + Log.i(TAG, "", th); + } + + public void info(String msg, Throwable th) { + Log.i(TAG, msg, th); + } + + public boolean isDebugEnabled() { + return false; + } + + public void warn(Throwable th) { + Log.w(TAG, "", th); + } + + public void warn(String msg, Object... args) { + Log.w(TAG, msg); + } + + public void warn(String msg, Throwable th) { + Log.w(TAG, msg, th); + } + + public boolean isIgnoredEnabled () { + return __isIgnoredEnabled; + } + + + public void ignore(Throwable ignored) { + if (__isIgnoredEnabled) { + warn("IGNORED", ignored); + } + } + + public void setIgnoredEnabled(boolean enabled) { + __isIgnoredEnabled = enabled; + } + + public void setDebugEnabled(boolean enabled) { + + } + } } diff --git a/src/github/daneren2005/dsub/service/DLNAController.java b/src/github/daneren2005/dsub/service/DLNAController.java index 2448b088..522bf586 100644 --- a/src/github/daneren2005/dsub/service/DLNAController.java +++ b/src/github/daneren2005/dsub/service/DLNAController.java @@ -19,31 +19,30 @@ import android.content.SharedPreferences; import android.os.Looper; import android.util.Log; -import org.teleal.cling.controlpoint.ControlPoint; -import org.teleal.cling.controlpoint.SubscriptionCallback; -import org.teleal.cling.model.action.ActionInvocation; -import org.teleal.cling.model.gena.CancelReason; -import org.teleal.cling.model.gena.GENASubscription; -import org.teleal.cling.model.message.UpnpResponse; -import org.teleal.cling.model.meta.Device; -import org.teleal.cling.model.meta.StateVariable; -import org.teleal.cling.model.state.StateVariableValue; -import org.teleal.cling.model.types.ServiceType; -import org.teleal.cling.support.avtransport.callback.Pause; -import org.teleal.cling.support.avtransport.callback.Play; -import org.teleal.cling.support.avtransport.callback.Seek; -import org.teleal.cling.support.avtransport.callback.SetAVTransportURI; -import org.teleal.cling.support.avtransport.callback.Stop; -import org.teleal.cling.support.avtransport.lastchange.AVTransportLastChangeParser; -import org.teleal.cling.support.avtransport.lastchange.AVTransportVariable; -import org.teleal.cling.support.contentdirectory.DIDLParser; -import org.teleal.cling.support.lastchange.LastChange; -import org.teleal.cling.support.model.DIDLContent; -import org.teleal.cling.support.model.SeekMode; -import org.teleal.cling.support.model.item.Item; -import org.teleal.cling.support.model.item.MusicTrack; -import org.teleal.cling.support.model.item.VideoItem; -import org.teleal.cling.support.renderingcontrol.callback.SetVolume; +import org.fourthline.cling.controlpoint.ControlPoint; +import org.fourthline.cling.controlpoint.SubscriptionCallback; +import org.fourthline.cling.model.action.ActionInvocation; +import org.fourthline.cling.model.gena.CancelReason; +import org.fourthline.cling.model.gena.GENASubscription; +import org.fourthline.cling.model.message.UpnpResponse; +import org.fourthline.cling.model.meta.Device; +import org.fourthline.cling.model.state.StateVariableValue; +import org.fourthline.cling.model.types.ServiceType; +import org.fourthline.cling.support.avtransport.callback.Pause; +import org.fourthline.cling.support.avtransport.callback.Play; +import org.fourthline.cling.support.avtransport.callback.Seek; +import org.fourthline.cling.support.avtransport.callback.SetAVTransportURI; +import org.fourthline.cling.support.avtransport.callback.Stop; +import org.fourthline.cling.support.avtransport.lastchange.AVTransportLastChangeParser; +import org.fourthline.cling.support.avtransport.lastchange.AVTransportVariable; +import org.fourthline.cling.support.contentdirectory.DIDLParser; +import org.fourthline.cling.support.lastchange.LastChange; +import org.fourthline.cling.support.model.DIDLContent; +import org.fourthline.cling.support.model.SeekMode; +import org.fourthline.cling.support.model.item.Item; +import org.fourthline.cling.support.model.item.MusicTrack; +import org.fourthline.cling.support.model.item.VideoItem; +import org.fourthline.cling.support.renderingcontrol.callback.SetVolume; import java.text.SimpleDateFormat; import java.util.Date; @@ -120,7 +119,7 @@ public class DLNAController extends RemoteController { boolean failed = false; for(StateVariableValue val: m.values()) { if(val.toString().indexOf("TransportStatus val=\"ERROR_OCCURRED\"") != -1) { - Log.w(TAG, "Failed to load with event: val.toString()"); + Log.w(TAG, "Failed to load with event: " + val.toString()); failed = true; } } @@ -195,7 +194,7 @@ public class DLNAController extends RemoteController { public void shutdown() { controlPoint.execute(new Stop(device.renderer.findService(new ServiceType("schemas-upnp-org", "AVTransport"))) { @Override - public void failure(ActionInvocation invocation, org.teleal.cling.model.message.UpnpResponse operation, String defaultMessage) { + public void failure(ActionInvocation invocation, org.fourthline.cling.model.message.UpnpResponse operation, String defaultMessage) { Log.w(TAG, "Stop failed: " + defaultMessage); } }); -- cgit v1.2.3