private void Reset() { lock (queue) { if (user_job != null) { user_job.CancelRequested -= OnCancelRequested; user_job.Finished -= OnFinished; user_job.Finish(); user_job = null; } if (transcoder != null) { transcoder.Finish(); transcoder = null; } foreach (TranscodeContext context in queue) { context.CancelledHandler(); } if (transcoding) { current_context.CancelledHandler(); transcoding = false; } queue.Clear(); } }
public override void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job) { if (track.PrimarySourceId == DbId) { Banshee.IO.File.Copy(track.Uri, uri, false); } }
public override void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job) { if (track.PrimarySource == this && track.Uri.Scheme.StartsWith("http")) { foreach (double percent in database.DownloadTrack((int)track.ExternalId, track.MimeType, uri.AbsolutePath)) { job.DetailedProgress = percent; } } }
public override void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job) { if (track_map.ContainsKey(track.TrackId)) { track_map[track.TrackId].Download(uri.LocalPath, delegate(ulong current, ulong total, IntPtr data) { job.DetailedProgress = (double)current / total; return(0); }); } else { throw new Exception("Error copying track from MTP device"); } }
private void BuildJob() { job = new BatchUserJob(Catalog.GetString("Rescanning {0} of {1}"), "system-search", "gtk-find"); job.SetResources(Resource.Cpu, Resource.Disk, Resource.Database); job.PriorityHints = PriorityHints.SpeedSensitive; job.CanCancel = true; job.CancelRequested += delegate { cancelled = true; Cancel(); }; track_sync.ProcessedItem += delegate { job.Total = track_sync.TotalCount; job.Completed = track_sync.ProcessedCount; job.Status = track_sync.Status; }; job.Register(); }
/// <summary> /// Sets the tracks of this source. All tracks previously contained in this source are purged. /// </summary> /// <param name="tracks"> /// A <see cref="List<DatabaseTrackInfo>"/> -- the list of tracks to be contained in the source /// </param> public void SetStations(List <DatabaseTrackInfo> tracks) { this.PurgeTracks(); BatchUserJob add_track_job = AddTrackJob; add_track_job.Total = tracks.Count; add_track_job.CancelRequested += OnAddTrackJobCancelRequested; this.PauseSorting(); foreach (DatabaseTrackInfo track in tracks) { AddStation(track); this.IncrementAddedTracks(); if (add_track_job_cancelled) { add_track_job_cancelled = false; Hyena.Log.Debug("[LiveRadioPluginSource]<AddStations> job cancelled"); add_track_job.Completed = add_track_job.Total; return; } } add_track_job.Finish(); this.ResumeSorting(); }
public override void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job) { Banshee.IO.File.Copy(track.Uri, uri, false); }
public virtual void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job) { Log.WarningFormat("CopyTrackTo not implemented for source {0}", this); }