Exemple #1
0
        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();
            }
        }
Exemple #2
0
 public override void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job)
 {
     if (track.PrimarySourceId == DbId)
     {
         Banshee.IO.File.Copy(track.Uri, uri, false);
     }
 }
Exemple #3
0
 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;
         }
     }
 }
Exemple #4
0
 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);
 }
Exemple #8
0
 public virtual void CopyTrackTo(DatabaseTrackInfo track, SafeUri uri, BatchUserJob job)
 {
     Log.WarningFormat("CopyTrackTo not implemented for source {0}", this);
 }