summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2018-08-20 11:27:56 +0200
committerMax Kellermann <max@musicpd.org>2018-08-20 11:27:56 +0200
commit0b7d7fe069714615663c21921366e25a7ab61a7a (patch)
tree53399a7db68f9c3dd01f3d2694f7aa52a7e2fe41
parent616abdda26389e105de0735afdeeb2e2d5c2b292 (diff)
parentcf9613512515956bfca699ee23529ec9e459551a (diff)
Merge branch 'v0.20.x'
-rw-r--r--Makefile.am53
-rw-r--r--android/src/Main.java58
-rw-r--r--configure.ac2
-rw-r--r--src/lib/nfs/Connection.cxx4
-rw-r--r--src/storage/plugins/NfsStorage.cxx16
5 files changed, 49 insertions, 84 deletions
diff --git a/Makefile.am b/Makefile.am
index aa37de4bb..4a8847e4c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -345,6 +345,7 @@ clean-local:
rm -rf android/build
libmpd.so: $(filter %.a,$(src_mpd_LDADD)) libmain.a
+ $(AM_V_GEN)
$(AM_V_CXXLD)$(CXXLD) -shared -Wl,--no-undefined,-shared,-Bsymbolic -llog -lz -o $@ $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) src/libmain_a-Main.o $(src_mpd_LDADD) $(LIBS)
ANDROID_SDK_BUILD_TOOLS_VERSION = 27.0.0
@@ -373,17 +374,19 @@ AIDL_JAVA_FILES = $(patsubst $(srcdir)/android/src/%.aidl,android/build/src/org/
android/build/src/org/musicpd/IMain.java: android/build/src/org/musicpd/IMainCallback.java
$(AIDL_JAVA_FILES): android/build/src/org/musicpd/%.java: $(srcdir)/android/src/%.aidl
- @$(MKDIR_P) $(@D)
- @cp $< $(@D)/
- $(AIDL) -Iandroid/build/src -oandroid/build/src $(patsubst %.java,%.aidl,$@)
+ $(AM_V_GEN)
+ $(AM_V_at)$(MKDIR_P) $(@D)
+ $(AM_V_at)cp $< $(@D)/
+ $(AM_V_at)$(AIDL) -Iandroid/build/src -oandroid/build/src $(patsubst %.java,%.aidl,$@)
$(ANDROID_XML_RES_COPIES): $(ANDROID_XML_RES)
- @$(MKDIR_P) $(dir $@)
- cp $(patsubst android/build/%,$(srcdir)/android/%,$@) $@
+ $(AM_V_at)$(MKDIR_P) $(@D)
+ $(AM_V_at)cp $(patsubst android/build/%,$(srcdir)/android/%,$@) $@
android/build/resources.apk: $(ANDROID_XML_RES_COPIES) android/build/res/drawable/icon.png android/build/res/drawable/notification_icon.png
- @$(MKDIR_P) android/build/gen
- $(AAPT) package -f -m --auto-add-overlay \
+ $(AM_V_GEN)
+ $(AM_V_at)$(MKDIR_P) android/build/gen
+ $(AM_V_at)$(AAPT) package -f -m --auto-add-overlay \
--custom-package org.musicpd \
-M $(srcdir)/android/AndroidManifest.xml \
-S android/build/res \
@@ -395,42 +398,50 @@ android/build/resources.apk: $(ANDROID_XML_RES_COPIES) android/build/res/drawabl
android/build/gen/org/musicpd/R.java: android/build/resources.apk
android/build/classes.dex: $(JAVA_SOURCE_PATHS) $(AIDL_JAVA_FILES) android/build/gen/org/musicpd/R.java
- @$(MKDIR_P) $(JAVA_CLASSFILES_DIR)
- $(JAVAC) -source 1.6 -target 1.6 -Xlint:-options \
+ $(AM_V_GEN)
+ $(AM_V_at)$(MKDIR_P) $(JAVA_CLASSFILES_DIR)
+ $(AM_V_at)$(JAVAC) -source 1.6 -target 1.6 -Xlint:-options \
-cp $(ANDROID_SDK_PLATFORM_DIR)/android.jar:$(JAVA_CLASSFILES_DIR) \
-h android/build/include \
-d $(JAVA_CLASSFILES_DIR) $^
- $(DX) --dex --output $@ $(JAVA_CLASSFILES_DIR)
+ $(AM_V_at)$(DX) --dex --output $@ $(JAVA_CLASSFILES_DIR)
android/build/include/org_musicpd_Bridge.h: android/build/classes.dex
BUILT_SOURCES = android/build/include/org_musicpd_Bridge.h
android/build/lib/$(ANDROID_ABI)/libmpd.so: libmpd.so
- mkdir -p $(@D)
- rm -f $@
- $(STRIP) -o $@ $<
+ $(AM_V_GEN)
+ $(AM_V_at)$(MKDIR_P) $(@D)
+ $(AM_V_at)rm -f $@
+ $(AM_V_at)$(STRIP) -o $@ $<
android/build/res/drawable/icon.png: mpd.svg
- mkdir -p $(@D)
- rsvg-convert --width=48 --height=48 $< -o $@
+ $(AM_V_GEN)
+ $(AM_V_at)$(MKDIR_P) $(@D)
+ $(AM_V_at)rsvg-convert --width=48 --height=48 $< -o $@
android/build/res/drawable/notification_icon.png: android/build/res/drawable/icon.png
- convert $< -colorspace Gray -gamma 2.2 $@
+ $(AM_V_GEN)
+ $(AM_V_at)convert $< -colorspace Gray -gamma 2.2 $@
.DELETE_ON_ERROR: android/build/unsigned.apk
android/build/unsigned.apk: android/build/classes.dex android/build/resources.apk android/build/lib/$(ANDROID_ABI)/libmpd.so
- cp android/build/resources.apk $@
- cd $(dir $@) && zip -q -r $(notdir $@) classes.dex lib
+ $(AM_V_GEN)
+ $(AM_V_at)cp android/build/resources.apk $@
+ $(AM_V_at)cd $(@D) && zip -q -r $(@F) classes.dex lib
android/build/$(APK_NAME)-debug.apk: android/build/unsigned.apk
- jarsigner -keystore $(HOME)/.android/debug.keystore -storepass android -signedjar $@ $< androiddebugkey
+ $(AM_V_GEN)
+ $(AM_V_at)jarsigner -keystore $(HOME)/.android/debug.keystore -storepass android -signedjar $@ $< androiddebugkey
android/build/$(APK_NAME)-release-unaligned.apk: android/build/unsigned.apk
- jarsigner -digestalg SHA1 -sigalg MD5withRSA -storepass:env ANDROID_KEYSTORE_PASS -keystore $(ANDROID_KEYSTORE) -signedjar $@ $< $(ANDROID_KEY_ALIAS)
+ $(AM_V_GEN)
+ $(AM_V_at)jarsigner -digestalg SHA1 -sigalg MD5withRSA -storepass:env ANDROID_KEYSTORE_PASS -keystore $(ANDROID_KEYSTORE) -signedjar $@ $< $(ANDROID_KEY_ALIAS)
android/build/$(APK_NAME).apk: android/build/$(APK_NAME)-release-unaligned.apk
- $(ZIPALIGN) -f 4 $< $@
+ $(AM_V_GEN)
+ $(AM_V_at)$(ZIPALIGN) -f 4 $< $@
endif
diff --git a/android/src/Main.java b/android/src/Main.java
index 5a5d9d048..82eebe89c 100644
--- a/android/src/Main.java
+++ b/android/src/Main.java
@@ -156,38 +156,6 @@ public class Main extends Service implements Runnable {
sendMessage(MSG_SEND_STATUS, mStatus, 0, mError);
}
- @TargetApi(Build.VERSION_CODES.GINGERBREAD)
- private Notification buildNotificationGB(int title, int text, int icon, PendingIntent contentIntent) {
- final Notification notification = new Notification();
- notification.icon = R.drawable.icon;
- notification.contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_gb);
- notification.contentView.setImageViewResource(R.id.image, icon);
- notification.contentView.setTextViewText(R.id.title, getText(title));
- notification.contentView.setTextViewText(R.id.text, getText(text));
- notification.contentIntent = contentIntent;
- return notification;
- }
-
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- private Notification buildNotificationHC(int title, int text, int icon, PendingIntent contentIntent) {
- return new Notification.Builder(this)
- .setContentTitle(getText(title))
- .setContentText(getText(text))
- .setSmallIcon(icon)
- .setContentIntent(contentIntent)
- .getNotification();
- }
-
- @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
- private Notification buildNotificationJB(int title, int text, int icon, PendingIntent contentIntent) {
- return new Notification.Builder(this)
- .setContentTitle(getText(title))
- .setContentText(getText(text))
- .setSmallIcon(icon)
- .setContentIntent(contentIntent)
- .build();
- }
-
private void start() {
if (mThread != null)
return;
@@ -200,26 +168,12 @@ public class Main extends Service implements Runnable {
final PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
mainIntent, PendingIntent.FLAG_CANCEL_CURRENT);
- Notification notification;
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
- notification = buildNotificationJB(
- R.string.notification_title_mpd_running,
- R.string.notification_text_mpd_running,
- R.drawable.notification_icon,
- contentIntent);
- else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
- notification = buildNotificationHC(
- R.string.notification_title_mpd_running,
- R.string.notification_text_mpd_running,
- R.drawable.notification_icon,
- contentIntent);
- else
- notification = buildNotificationGB(
- R.string.notification_title_mpd_running,
- R.string.notification_text_mpd_running,
- R.drawable.notification_icon,
- contentIntent);
+ Notification notification = new Notification.Builder(this)
+ .setContentTitle(getText(R.string.notification_title_mpd_running))
+ .setContentText(getText(R.string.notification_text_mpd_running))
+ .setSmallIcon(R.drawable.notification_icon)
+ .setContentIntent(contentIntent)
+ .build();
startForeground(R.string.notification_title_mpd_running, notification);
startService(new Intent(this, Main.class));
diff --git a/configure.ac b/configure.ac
index ec3eb15dd..ac38ba5a7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -743,7 +743,7 @@ MPD_ENABLE_AUTO_PKG_LIB(smbclient, SMBCLIENT, [smbclient >= 0.2],
[smbclient input plugin], [libsmbclient not found])
dnl ----------------------------------- NFS -----------------------------
-MPD_ENABLE_AUTO_PKG(nfs, NFS, [libnfs],
+MPD_ENABLE_AUTO_PKG(nfs, NFS, [libnfs >= 1.9.5],
[NFS input plugin], [libnfs not found])
dnl --------------------------------- Qobuz -----------------------------------
diff --git a/src/lib/nfs/Connection.cxx b/src/lib/nfs/Connection.cxx
index 8abfd9bc6..6b2ef6c3c 100644
--- a/src/lib/nfs/Connection.cxx
+++ b/src/lib/nfs/Connection.cxx
@@ -47,9 +47,9 @@ NfsConnection::CancellableCallback::Stat(nfs_context *ctx,
{
assert(connection.GetEventLoop().IsInside());
- int result = nfs_stat_async(ctx, path, Callback, this);
+ int result = nfs_stat64_async(ctx, path, Callback, this);
if (result < 0)
- throw FormatRuntimeError("nfs_stat_async() failed: %s",
+ throw FormatRuntimeError("nfs_stat64_async() failed: %s",
nfs_get_error(ctx));
}
diff --git a/src/storage/plugins/NfsStorage.cxx b/src/storage/plugins/NfsStorage.cxx
index fb6a0ffd3..5dc4dc2cf 100644
--- a/src/storage/plugins/NfsStorage.cxx
+++ b/src/storage/plugins/NfsStorage.cxx
@@ -249,19 +249,19 @@ NfsStorage::MapToRelativeUTF8(const char *uri_utf8) const noexcept
}
static void
-Copy(StorageFileInfo &info, const struct stat &st) noexcept
+Copy(StorageFileInfo &info, const struct nfs_stat_64 &st) noexcept
{
- if (S_ISREG(st.st_mode))
+ if (S_ISREG(st.nfs_mode))
info.type = StorageFileInfo::Type::REGULAR;
- else if (S_ISDIR(st.st_mode))
+ else if (S_ISDIR(st.nfs_mode))
info.type = StorageFileInfo::Type::DIRECTORY;
else
info.type = StorageFileInfo::Type::OTHER;
- info.size = st.st_size;
- info.mtime = std::chrono::system_clock::from_time_t(st.st_mtime);
- info.device = st.st_dev;
- info.inode = st.st_ino;
+ info.size = st.nfs_size;
+ info.mtime = std::chrono::system_clock::from_time_t(st.nfs_mtime);
+ info.device = st.nfs_dev;
+ info.inode = st.nfs_ino;
}
class NfsGetInfoOperation final : public BlockingNfsOperation {
@@ -282,7 +282,7 @@ protected:
}
void HandleResult(gcc_unused unsigned status, void *data) noexcept override {
- Copy(info, *(const struct stat *)data);
+ Copy(info, *(const struct nfs_stat_64 *)data);
}
};