diff --git a/src/musikdroid/app/build.gradle b/src/musikdroid/app/build.gradle index 668f032d5..9ca2b2a88 100644 --- a/src/musikdroid/app/build.gradle +++ b/src/musikdroid/app/build.gradle @@ -52,6 +52,7 @@ dependencies { compile 'com.google.android.exoplayer:exoplayer:r2.4.1' compile 'com.google.android.exoplayer:extension-okhttp:r2.4.1' compile 'com.github.pluscubed:recycler-fast-scroll:0.3.2@aar' + compile 'com.facebook.stetho:stetho:1.5.0' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:recyclerview-v7:25.3.1' diff --git a/src/musikdroid/app/libs/videocache-2.8.0-pre.aar b/src/musikdroid/app/libs/videocache-2.8.0-pre.aar index dd256aa7a..953b437d2 100644 Binary files a/src/musikdroid/app/libs/videocache-2.8.0-pre.aar and b/src/musikdroid/app/libs/videocache-2.8.0-pre.aar differ diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.java b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.java index 17948ac1f..82c787e51 100644 --- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.java +++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.java @@ -1,5 +1,7 @@ package io.casey.musikcube.remote; +import com.facebook.stetho.Stetho; + import io.casey.musikcube.remote.playback.StreamProxy; import io.casey.musikcube.remote.util.NetworkUtil; @@ -9,7 +11,13 @@ public class Application extends android.app.Application { @Override public void onCreate() { instance = this; + super.onCreate(); + + if (BuildConfig.DEBUG) { + Stetho.initializeWithDefaults(this); + } + NetworkUtil.init(); StreamProxy.init(this); } diff --git a/src/plugins/websocket_remote/HttpServer.cpp b/src/plugins/websocket_remote/HttpServer.cpp index 523b2ec64..51ffbb2ab 100644 --- a/src/plugins/websocket_remote/HttpServer.cpp +++ b/src/plugins/websocket_remote/HttpServer.cpp @@ -132,6 +132,10 @@ static ssize_t fileReadCallback(void *cls, uint64_t pos, char *buf, size_t max) static void fileFreeCallback(void *cls) { Range* range = static_cast(cls); if (range->file) { +#ifdef ENABLE_DEBUG + std::cerr << "******** REQUEST CLOSE: " << range->file << " ********\n\n"; +#endif + range->file->Destroy(); range->file = nullptr; } @@ -146,7 +150,7 @@ static Range* parseRange(IDataStream* file, const char* range) { result->file = file; result->total = size; result->from = 0; - result->to = (size == 0) ? 0 : size - 1; + result->to = (size <= 0) ? 0 : size - 1; if (range) { std::string str(range); @@ -166,8 +170,10 @@ static Range* parseRange(IDataStream* file, const char* range) { to = std::stoul(boost::algorithm::trim_copy(parts[1])); } - result->from = from; - result->to = (to == 0) ? 0 : to - 1; + if (to > from) { + result->from = from; + result->to = (to == 0) ? 0 : to - 1; + } } catch (...) { /* return false below */ @@ -372,7 +378,7 @@ int HttpServer::HandleRequest( Range* range = parseRange(file, rangeVal); #ifdef ENABLE_DEBUG - std::cerr << "potential response hader : " << range->HeaderValue() << std::endl; + std::cerr << "potential response header : " << range->HeaderValue() << std::endl; #endif /* ehh... */ @@ -380,7 +386,6 @@ int HttpServer::HandleRequest( #ifdef ENABLE_DEBUG std::cerr << "on demand? " << isOnDemandTranscoder << std::endl; - std::cerr << "file: " << file << std::endl; #endif /* gotta be careful with request ranges if we're transcoding. don't @@ -439,7 +444,8 @@ int HttpServer::HandleRequest( &fileFreeCallback); #ifdef ENABLE_DEBUG - std::cerr << "response length: " << length << "\n"; + std::cerr << "response length: " << ((length == 0) ? 0 : length + 1) << "\n"; + std::cerr << "id: " << file << "\n"; #endif if (response) { @@ -471,7 +477,7 @@ int HttpServer::HandleRequest( status = MHD_HTTP_PARTIAL_CONTENT; #ifdef ENABLE_DEBUG if (rangeVal) { - std::cerr << "selected partial content! " << range->HeaderValue() << "\n"; + std::cerr << "actual range header: " << range->HeaderValue() << "\n"; } #endif } @@ -500,7 +506,7 @@ int HttpServer::HandleRequest( } #ifdef ENABLE_DEBUG - std::cerr << "******** REQUEST END ********\n\n"; + std::cerr << "*******************************\n\n"; #endif return ret;