diff -u -r banshee-1-1.2.1.old/build/m4/banshee/dap-mtp.m4 banshee-1-1.2.1/build/m4/banshee/dap-mtp.m4 --- banshee-1-1.2.1.old/build/m4/banshee/dap-mtp.m4 2008-05-21 09:17:48.000000000 -0500 +++ banshee-1-1.2.1/build/m4/banshee/dap-mtp.m4 2008-09-09 22:30:48.000000000 -0500 @@ -1,6 +1,6 @@ AC_DEFUN([BANSHEE_CHECK_DAP_MTP], [ - LIBMTP_REQUIRED=0.2.0 + LIBMTP_REQUIRED=0.3.0 AC_ARG_ENABLE(mtp, AC_HELP_STRING([--disable-mtp], [Disable MTP DAP support]), , enable_mtp="yes") diff -u -r banshee-1-1.2.1.old/src/Libraries/Mtp/Mtp/Album.cs banshee-1-1.2.1/src/Libraries/Mtp/Mtp/Album.cs --- banshee-1-1.2.1.old/src/Libraries/Mtp/Mtp/Album.cs 2008-05-21 09:17:47.000000000 -0500 +++ banshee-1-1.2.1/src/Libraries/Mtp/Mtp/Album.cs 2008-09-09 22:30:48.000000000 -0500 @@ -131,7 +131,7 @@ if (saved) { saved = LIBMTP_Update_Album (device.Handle, ref album) == 0; } else { - saved = LIBMTP_Create_New_Album (device.Handle, ref album, 0) == 0; + saved = LIBMTP_Create_New_Album (device.Handle, ref album) == 0; } if (album.tracks != IntPtr.Zero) { @@ -211,7 +211,7 @@ internal static extern IntPtr LIBMTP_Get_Album (MtpDeviceHandle handle, uint albumId); // LIBMTP_album_t* [DllImport("libmtp.dll")] - internal static extern int LIBMTP_Create_New_Album (MtpDeviceHandle handle, ref AlbumStruct album, uint parentId); + internal static extern int LIBMTP_Create_New_Album (MtpDeviceHandle handle, ref AlbumStruct album); [DllImport("libmtp.dll")] internal static extern int LIBMTP_Update_Album (MtpDeviceHandle handle, ref AlbumStruct album); @@ -221,6 +221,8 @@ internal struct AlbumStruct { public uint album_id; + public uint parent_id; + public uint storage_id; [MarshalAs(UnmanagedType.LPStr)] public string name; diff -u -r banshee-1-1.2.1.old/src/Libraries/Mtp/Mtp/Folder.cs banshee-1-1.2.1/src/Libraries/Mtp/Mtp/Folder.cs --- banshee-1-1.2.1.old/src/Libraries/Mtp/Mtp/Folder.cs 2008-04-07 22:59:11.000000000 -0500 +++ banshee-1-1.2.1/src/Libraries/Mtp/Mtp/Folder.cs 2008-09-09 22:30:48.000000000 -0500 @@ -210,6 +210,7 @@ { public uint folder_id; public uint parent_id; + public uint storage_id; [MarshalAs(UnmanagedType.LPStr)] public string name; public IntPtr sibling; // LIBMTP_folder_t* public IntPtr child; // LIBMTP_folder_t* diff -u -r banshee-1-1.2.1.old/src/Libraries/Mtp/Mtp/Track.cs banshee-1-1.2.1/src/Libraries/Mtp/Mtp/Track.cs --- banshee-1-1.2.1.old/src/Libraries/Mtp/Mtp/Track.cs 2008-04-23 14:20:58.000000000 -0500 +++ banshee-1-1.2.1/src/Libraries/Mtp/Mtp/Track.cs 2008-09-09 22:44:13.000000000 -0500 @@ -129,6 +129,11 @@ set { trackStruct.usecount = value; } } + public string Composer { + get { return trackStruct.composer; } + set { trackStruct.composer = value; } + } + public Track (string filename, ulong filesize) : this (new TrackStruct (), null) { this.trackStruct.filename = filename; @@ -195,7 +200,7 @@ internal static void SendTrack (MtpDeviceHandle handle, string path, ref TrackStruct metadata, ProgressFunction callback, IntPtr data, uint parent) { - if (LIBMTP_Send_Track_From_File (handle, path, ref metadata, callback, data, parent) != 0) + if (LIBMTP_Send_Track_From_File (handle, path, ref metadata, callback, data) != 0) { LibMtpException.CheckErrorStack (handle); throw new LibMtpException (ErrorCode.General, "Could not upload the track"); @@ -227,7 +232,7 @@ private static extern int LIBMTP_Get_Track_To_File (MtpDeviceHandle handle, uint trackId, string path, ProgressFunction callback, IntPtr data); [DllImport("libmtp.dll")] - private static extern int LIBMTP_Send_Track_From_File (MtpDeviceHandle handle, string path, ref TrackStruct track, ProgressFunction callback, IntPtr data, uint parentHandle); + private static extern int LIBMTP_Send_Track_From_File (MtpDeviceHandle handle, string path, ref TrackStruct track, ProgressFunction callback, IntPtr data); [DllImport("libmtp.dll")] private static extern int LIBMTP_Update_Track_Metadata (MtpDeviceHandle handle, ref TrackStruct metadata); @@ -244,9 +249,11 @@ { public uint item_id; public uint parent_id; - + public uint storage_id; + [MarshalAs(UnmanagedType.LPStr)] public string title; [MarshalAs(UnmanagedType.LPStr)] public string artist; + [MarshalAs(UnmanagedType.LPStr)] public string composer; [MarshalAs(UnmanagedType.LPStr)] public string genre; [MarshalAs(UnmanagedType.LPStr)] public string album; [MarshalAs(UnmanagedType.LPStr)] public string date;