Fix logic problem in get track listing functions
diff --git a/src/libmtp.c b/src/libmtp.c
index b379ce4..e05f742 100644
--- a/src/libmtp.c
+++ b/src/libmtp.c
@@ -872,6 +872,7 @@
/* Allocate dynamic space for our device */
mtp_device = (LIBMTP_mtpdevice_t *) malloc(sizeof(LIBMTP_mtpdevice_t));
+ memset(mtp_device, 0, sizeof(LIBMTP_mtpdevice_t));
/* Check if there was a memory allocation error */
if(mtp_device == NULL) {
/* There has been an memory allocation error. We are going to ignore this
@@ -3585,10 +3586,10 @@
// TODO: get this list as an intersection of the sets
// supported by the device and the from the device and
// all known audio track files?
- if (!LIBMTP_FILETYPE_IS_TRACK(mtptype) &&
+ if (!LIBMTP_FILETYPE_IS_AUDIO(mtptype) &&
// This row lets through undefined files for examination since they may be forgotten OGG files.
- (oi->ObjectFormat != PTP_OFC_Undefined &&
- (!FLAG_IRIVER_OGG_ALZHEIMER(ptp_usb) ||
+ (oi->ObjectFormat != PTP_OFC_Undefined ||
+ (!FLAG_IRIVER_OGG_ALZHEIMER(ptp_usb) &&
!FLAG_OGG_IS_UNKNOWN(ptp_usb)))
) {
//printf("Not a music track (name: %s format: %d), skipping...\n", oi->Filename, oi->ObjectFormat);
@@ -3694,10 +3695,10 @@
mtptype = map_ptp_type_to_libmtp_type(oi->ObjectFormat);
// Ignore stuff we don't know how to handle...
- if (!LIBMTP_FILETYPE_IS_TRACK(mtptype) &&
+ if (!LIBMTP_FILETYPE_IS_AUDIO(mtptype) &&
// This row lets through undefined files for examination since they may be forgotten OGG files.
- (oi->ObjectFormat != PTP_OFC_Undefined &&
- (!FLAG_IRIVER_OGG_ALZHEIMER(ptp_usb) ||
+ (oi->ObjectFormat != PTP_OFC_Undefined ||
+ (!FLAG_IRIVER_OGG_ALZHEIMER(ptp_usb) &&
!FLAG_OGG_IS_UNKNOWN(ptp_usb)))
) {
//printf("Not a music track (name: %s format: %d), skipping...\n", oi->Filename, oi->ObjectFormat);
diff --git a/src/music-players.h b/src/music-players.h
index f87689a..4c72cfe 100644
--- a/src/music-players.h
+++ b/src/music-players.h
@@ -66,7 +66,7 @@
{ "Creative", 0x041e, "ZEN Vision W", 0x4153, DEVICE_FLAG_NONE },
// Don't add 0x4155: this is a Zen Stone device which is not MTP
// Reported by Paul Kurczaba <paul@kurczaba.com>
- { "Creative", 0x041e, "ZEN", 0x4157, DEVICE_FLAG_IGNORE_HEADER_ERRORS | DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS },
+ { "Creative", 0x041e, "ZEN", 0x4157, DEVICE_FLAG_IGNORE_HEADER_ERRORS | DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
// Reported by Ringofan <mcroman@users.sourceforge.net>
{ "Creative", 0x041e, "ZEN V 2GB", 0x4158, DEVICE_FLAG_NONE },
// Reported by j norment <stormzen@gmail.com>
@@ -104,9 +104,7 @@
// From XNJB user
// Guessing on .spl flag
{ "Samsung", 0x04e8, "YP-Z5", 0x503c, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_PLAYLIST_SPL_V1 },
- // From XNJB user
- // Guessing on .spl flag
- { "Samsung", 0x04e8, "YP-Z5 2GB", 0x5041, DEVICE_FLAG_NONE | DEVICE_FLAG_PLAYLIST_SPL_V1 },
+ // Don't add 0x5041 as this is YP-Z5 in USB mode
// Contributed by anonymous person on SourceForge
{ "Samsung", 0x04e8, "YP-T7J", 0x5047, DEVICE_FLAG_NONE },
// Reported by cstrickler@gmail.com