public void RefreshMetaData() { TorrentMetaData meta = new TorrentMetaData(); TorrentMetaData.GetTorrentMetaData((Int32)Handle, ref meta); // All this is ugly but needed, so that the property changed event gets fired to update our view model Id = Handle; Name = meta.Name; InfoHash = meta.InfoHash; TotalSize = meta.TotalSize; NumPeers = meta.NumPeers; NumSeeds = meta.NumSeeds; DownloadSpeed = meta.DownloadSpeed; UploadSpeed = meta.UploadSpeed; State = meta.State; Eta = meta.Eta; TotalPieces = meta.TotalPieces; PieceSize = meta.PieceSize; NumPiecesDownloaded = meta.PiecesDownloaded; TorrentFilename = meta.FileName; DownloadFolder = meta.TargetFolder; TimeElapsedSinceStarted = meta.TimeSinceStarted; Comment = meta.Comment; CreationDate = meta.CreationDate; for (int i = 0; i < Peers.Count; i++) { Peer peer = Peers[i]; peer.RefreshMetaData(Handle); } }
public static extern void GetTorrentMetaData(Int32 torrentId, ref TorrentMetaData meta);