private void OnDownloaderStateChanged(DBus.ObjectPath path, TorrentState from, TorrentState to)
 {
     if (downloader.GetState() == TorrentState.Seeding)
     {
         SetProgress(100);
         SetStatus(TaskStatus.Succeeded);
         OnTaskCompleted(null, false);
     }
 }
Beispiel #2
0
        public Metadata(TrackInfo track)
        {
            data_store = new Dictionary <string, object> ();

            if (track == null)
            {
                // Managed dbus doesn't like null or empty dictionaries
                data_store["mpris:trackid"] = String.Concat(object_path, "Empty");
                return;
            }

            // The trackid must be formatted like a dbus object path
            data_store["mpris:trackid"] = new DBus.ObjectPath(String.Concat(object_path, track.CacheModelId, track.CacheEntryId));
            SetInfo("mpris:length", (long)track.Duration.TotalMilliseconds * 1000);
            SetInfo("xesam:url", track.Uri.ToString());
            SetInfo("xesam:title", track.TrackTitle);
            SetInfo("xesam:album", track.AlbumTitle);
            if (!String.IsNullOrEmpty(track.ArtistName))
            {
                SetInfo("xesam:artist", new string [] { track.ArtistName });
            }
            if (!String.IsNullOrEmpty(track.AlbumArtist))
            {
                SetInfo("xesam:albumArtist", new string [] { track.AlbumArtist });
            }
            if (!String.IsNullOrEmpty(track.Genre))
            {
                SetInfo("xesam:genre", new string [] { track.Genre });
            }
            if (!String.IsNullOrEmpty(track.Comment))
            {
                SetInfo("xesam:comment", new string [] { track.Comment });
            }

            if (track.TrackNumber > 0)
            {
                data_store["xesam:trackNumber"] = track.TrackNumber;
            }

            if (track.ReleaseDate.Ticks > 0)
            {
                SetInfo("xesam:contentCreated", track.ReleaseDate.ToString("s"));
            }

            if (track.Rating > 0)
            {
                // Scale is 0.0 to 1.0
                SetInfo("xesam:userRating", (double)track.Rating / 5);
            }

            string artid = track.ArtworkId;

            if (artid != null)
            {
                SetInfo("mpris:artUrl", String.Concat("file://", CoverArtSpec.GetPath(artid)));
            }
        }
Beispiel #3
0
        public Metadata(TrackInfo track)
        {
            data_store = new Dictionary<string, object> ();

            if (track == null) {
                // Managed dbus doesn't like null or empty dictionaries
                data_store["mpris:trackid"] = String.Concat (object_path, "Empty");
                return;
            }

            // The trackid must be formatted like a dbus object path
            data_store["mpris:trackid"] = new DBus.ObjectPath (String.Concat (object_path, track.CacheModelId, track.CacheEntryId));
            SetInfo ("mpris:length", (long)track.Duration.TotalMilliseconds * 1000);
            SetInfo ("xesam:url", track.Uri.ToString ());
            SetInfo ("xesam:title", track.TrackTitle);
            SetInfo ("xesam:album", track.AlbumTitle);
            if (!String.IsNullOrEmpty (track.ArtistName)) {
                SetInfo ("xesam:artist", new string [] {track.ArtistName});
            }
            if (!String.IsNullOrEmpty (track.AlbumArtist)) {
                SetInfo ("xesam:albumArtist", new string [] {track.AlbumArtist});
            }
            if (!String.IsNullOrEmpty (track.Genre)) {
                SetInfo ("xesam:genre", new string [] {track.Genre});
            }
            if (!String.IsNullOrEmpty (track.Comment)) {
                SetInfo ("xesam:comment", new string [] {track.Comment});
            }

            if (track.TrackNumber > 0) {
                data_store["xesam:trackNumber"] = track.TrackNumber;
            }

            if (track.ReleaseDate.Ticks > 0) {
                SetInfo ("xesam:contentCreated", track.ReleaseDate.ToString ("s"));
            }

            if (track.Rating > 0) {
                // Scale is 0.0 to 1.0
                SetInfo ("xesam:userRating", (double)track.Rating / 5);
            }

            string artid = track.ArtworkId;
            if (artid != null) {
                SetInfo ("mpris:artUrl", String.Concat ("file://", CoverArtSpec.GetPath (artid)));
            }
        }