internal static void UpdateTrackMetadata(MtpDeviceHandle handle, ref TrackStruct metadata) { if (LIBMTP_Update_Track_Metadata(handle, ref metadata) != 0) { throw new LibMtpException(ErrorCode.General); } }
internal static void SendTrack(MtpDeviceHandle handle, string path, ref TrackStruct metadata, ProgressFunction callback, IntPtr data) { 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"); } }
public List <Track> GetAllTracks(ProgressFunction callback) { IntPtr ptr = Track.GetTrackListing(Handle, callback, IntPtr.Zero); List <Track> tracks = new List <Track>(); while (ptr != IntPtr.Zero) { TrackStruct track = (TrackStruct)Marshal.PtrToStructure(ptr, typeof(TrackStruct)); Track.DestroyTrack(ptr); tracks.Add(new Track(track, this)); ptr = track.next; } return(tracks); }
public List <Track> GetAllTracks(ProgressFunction callback) { IntPtr ptr = Track.GetTrackListing(Handle, callback, IntPtr.Zero); List <Track> tracks = new List <Track>(); while (ptr != IntPtr.Zero) { // Destroy the struct after we use it to avoid potential referencing of freed memory. TrackStruct track = (TrackStruct)Marshal.PtrToStructure(ptr, typeof(TrackStruct)); tracks.Add(new Track(track, this)); Track.DestroyTrack(ptr); ptr = track.next; } return(tracks); }
private static extern int LIBMTP_Update_Track_Metadata(MtpDeviceHandle handle, ref TrackStruct metadata);
private static extern int LIBMTP_Send_Track_From_File(MtpDeviceHandle handle, string path, ref TrackStruct track, ProgressFunction callback, IntPtr data);
internal Track(TrackStruct track, MtpDevice device) { this.device = device; this.trackStruct = track; }
internal static void UpdateTrackMetadata(MtpDeviceHandle handle, ref TrackStruct metadata) { if (LIBMTP_Update_Track_Metadata (handle, ref metadata) != 0) throw new LibMtpException (ErrorCode.General); }
internal static void SendTrack(MtpDeviceHandle handle, string path, ref TrackStruct metadata, ProgressFunction callback, IntPtr data) { 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"); } }