private static void BitSwarm_MetadataReceived(object source, BitSwarm.MetadataReceivedArgs e) { lock (lockRefresh) { torrent = e.Torrent; view = View.Torrent; Console.Clear(); Console.WriteLine(bitSwarm.DumpTorrent()); PrintMenu(); } System.Threading.Thread tmp = new System.Threading.Thread(() => { lock (lockRefresh) { System.Threading.Thread.Sleep(3000); Console.Clear(); Console.WriteLine(bitSwarm.DumpStats()); PrintMenu(); view = View.Stats; } }); tmp.IsBackground = true; tmp.Start(); }
private void BitSwarm_MetadataReceived(object source, BitSwarm.MetadataReceivedArgs e) { if (InvokeRequired) { BeginInvoke(new Action(() => BitSwarm_MetadataReceived(source, e))); return; } else { torrent = e.Torrent; output.Text += bitSwarm.DumpTorrent().Replace("\n", "\r\n"); for (int i = 0; i < torrent.file.paths.Count; i++) { listBox1.Items.Add(torrent.file.paths[i]); } listBox1.BeginUpdate(); for (int i = 0; i < listBox1.Items.Count; i++) { listBox1.SetSelected(i, true); } listBox1.EndUpdate(); button2.Enabled = true; } }
private void OnMetadataReceived(BitSwarm.MetadataReceivedArgs e, Action <string> writeLog, Action <IList <string> > onMetadataReceived) { const string EventType = "MetadataReceived"; for (int i = 0; i < e.Torrent.data.files.Length; i++) { var file = e.Torrent.data.files[i]; if (file == null) { continue; } writeLog($"[{EventType}] {file.Filename} ({ByteSize.FromBytes(file.Size)})"); } onMetadataReceived(_torrent.file.paths); }
private void MetadataReceived(object source, BitSwarm.MetadataReceivedArgs e) { Log("Metadata Received"); torrent = e.Torrent; List <string> paths = new List <string>(); List <long> lengths = new List <long>(); foreach (string path in torrent.file.paths) { paths.Add(path); } foreach (long length in torrent.file.lengths) { lengths.Add(length); } MediaFilesClbk?.BeginInvoke(paths, lengths, null, null); }
private static void BitSwarm_MetadataReceived(object source, BitSwarm.MetadataReceivedArgs e) { string selectedFile = null; List <string> movieFiles = Utils.GetMoviesSorted(e.Torrent.file.paths); // Choose file from available video files WriteLine($"======= Available files ({movieFiles.Count}) ======="); foreach (var file in movieFiles) { selectedFile = file; WriteLine(" + " + selectedFile); break; } // Prepare BitSwarm & LibVLC for the selected file bitSwarm.IncludeFiles(new List <string>() { selectedFile }); using var media = new Media(libVLC, new StreamMediaInput(e.Torrent.GetTorrentStream(selectedFile))); mediaPlayer = new MediaPlayer(media); // Start VLC Player Thread player = new Thread(() => { mediaPlayer.Play(); }); player.IsBackground = true; player.Start(); // Simulate Seek after 40secs at 50% of the movie //Thread seekSample = new Thread(() => //{ // Thread.Sleep(40000); // WriteLine("Seeking Sample at 50%"); // mediaPlayer.Position = 0.5f; //}); //seekSample.IsBackground = true; //seekSample.Start(); }
private void MetadataReceived(object source, BitSwarm.MetadataReceivedArgs e) { Torrent = e.Torrent; sortedPaths = Utils.GetMoviesSorted(Torrent.file.paths); Log("Metadata Received"); Torrent = e.Torrent; List <string> paths = new List <string>(); List <long> lengths = new List <long>(); foreach (string path in Torrent.file.paths) { paths.Add(path); } foreach (long length in Torrent.file.lengths) { lengths.Add(length); } player.MediaFilesClbk?.BeginInvoke(paths, lengths, null, null); }