// FIXME: No reason for this to use GdkPixbuf - the file is on disk already in // the artwork cache as a JPEG, so just shove the bytes from disk into the track public static void SetIpodCoverArt(IPod.Device device, IPod.Track track, string path) { try { Gdk.Pixbuf pixbuf = null; foreach (IPod.ArtworkFormat format in device.LookupArtworkFormats(IPod.ArtworkUsage.Cover)) { if (!track.HasCoverArt(format)) { // Lazily load the pixbuf if (pixbuf == null) { pixbuf = new Gdk.Pixbuf(path); } track.SetCoverArt(format, IPod.ArtworkHelpers.ToBytes(format, pixbuf)); } } if (pixbuf != null) { pixbuf.Dispose(); } } catch (Exception e) { Log.Exception(String.Format("Failed to set cover art on iPod from {0}", path), e); } }
public IpodTrackInfo (TrackInfo track) { CanSaveToDatabase = true; if (track is IpodTrackInfo) { this.track = ((IpodTrackInfo)track).IpodTrack; LoadFromIpodTrack (); } else { UpdateInfo (track); } }
public IpodTrackInfo(TrackInfo track) { if (track is IpodTrackInfo) { this.track = ((IpodTrackInfo)track).IpodTrack; LoadFromIpodTrack(); } else { AlbumArtist = track.AlbumArtist; AlbumTitle = track.AlbumTitle; ArtistName = track.ArtistName; BitRate = track.BitRate; Bpm = track.Bpm; Comment = track.Comment; Composer = track.Composer; Conductor = track.Conductor; Copyright = track.Copyright; DateAdded = track.DateAdded; DiscCount = track.DiscCount; DiscNumber = track.DiscNumber; Duration = track.Duration; FileSize = track.FileSize; Genre = track.Genre; Grouping = track.Grouping; IsCompilation = track.IsCompilation; LastPlayed = track.LastPlayed; LastSkipped = track.LastSkipped; PlayCount = track.PlayCount; Rating = track.Rating; ReleaseDate = track.ReleaseDate; SkipCount = track.SkipCount; TrackCount = track.TrackCount; TrackNumber = track.TrackNumber; TrackTitle = track.TrackTitle; Year = track.Year; MediaAttributes = track.MediaAttributes; var podcast_info = track.ExternalObject as IPodcastInfo; if (podcast_info != null) { description = podcast_info.Description; ReleaseDate = podcast_info.ReleaseDate; } } CanSaveToDatabase = true; }
public IpodTrackInfo (TrackInfo track) { if (track is IpodTrackInfo) { this.track = ((IpodTrackInfo)track).IpodTrack; LoadFromIpodTrack (); } else { AlbumArtist = track.AlbumArtist; AlbumTitle = track.AlbumTitle; ArtistName = track.ArtistName; BitRate = track.BitRate; SampleRate = track.SampleRate; Bpm = track.Bpm; Comment = track.Comment; Composer = track.Composer; Conductor = track.Conductor; Copyright = track.Copyright; DateAdded = track.DateAdded; DiscCount = track.DiscCount; DiscNumber = track.DiscNumber; Duration = track.Duration; FileSize = track.FileSize; Genre = track.Genre; Grouping = track.Grouping; IsCompilation = track.IsCompilation ; LastPlayed = track.LastPlayed; LastSkipped = track.LastSkipped; PlayCount = track.PlayCount; Rating = track.Rating; ReleaseDate = track.ReleaseDate; SkipCount = track.SkipCount; TrackCount = track.TrackCount; TrackNumber = track.TrackNumber; TrackTitle = track.TrackTitle; Year = track.Year; MediaAttributes = track.MediaAttributes; var podcast_info = track.ExternalObject as IPodcastInfo; if (podcast_info != null) { description = podcast_info.Description; ReleaseDate = podcast_info.ReleaseDate; } } CanSaveToDatabase = true; }
public IpodTrackInfo (IPod.Track track) : base () { this.track = track; LoadFromIpodTrack (); CanSaveToDatabase = true; }
public void CommitToIpod (IPod.Device device) { bool update = (track != null); if (!update) { try { track = device.TrackDatabase.CreateTrack (Uri.AbsolutePath); } catch (Exception e) { Log.Exception ("Failed to create iPod track with Uri " + Uri.AbsoluteUri, e); device.TrackDatabase.RemoveTrack (track); return; } } ExternalId = track.Id; //if the track was not in the ipod already, the CreateTrack(uri) //method updates the Uri property with the path of the new file //so we need to save it on Banshee db to be properly synced if (!update) { Uri = new SafeUri (track.Uri); } track.AlbumArtist = AlbumArtist; track.BitRate = BitRate; track.SampleRate = (ushort)SampleRate; track.BPM = (short)Bpm; track.Comment = Comment; track.Composer = Composer; track.DateAdded = DateAdded; track.TotalDiscs = DiscCount; track.DiscNumber = DiscNumber; track.Duration = Duration; track.Size = (int)FileSize; track.Grouping = Grouping; track.IsCompilation = IsCompilation; track.LastPlayed = LastPlayed; track.PlayCount = PlayCount; track.TotalTracks = TrackCount; track.TrackNumber = TrackNumber; track.Year = Year; track.DateReleased = ReleaseDate; track.Album = AlbumTitle; track.Artist = ArtistName; track.Title = TrackTitle; track.Genre = Genre; switch (Rating) { case 1: track.Rating = IPod.TrackRating.Zero; break; case 2: track.Rating = IPod.TrackRating.Two; break; case 3: track.Rating = IPod.TrackRating.Three; break; case 4: track.Rating = IPod.TrackRating.Four; break; case 5: track.Rating = IPod.TrackRating.Five; break; default: track.Rating = IPod.TrackRating.Zero; break; } if (HasAttribute (TrackMediaAttributes.Podcast)) { track.DateReleased = ReleaseDate; track.Description = description; track.RememberPosition = true; track.NotPlayedMark = track.PlayCount == 0; } if (HasAttribute (TrackMediaAttributes.VideoStream)) { if (HasAttribute (TrackMediaAttributes.Podcast)) { track.Type = IPod.MediaType.VideoPodcast; } else if (HasAttribute (TrackMediaAttributes.Music)) { track.Type = IPod.MediaType.MusicVideo; } else if (HasAttribute (TrackMediaAttributes.Movie)) { track.Type = IPod.MediaType.Movie; } else if (HasAttribute (TrackMediaAttributes.TvShow)) { track.Type = IPod.MediaType.TVShow; } else { track.Type = IPod.MediaType.Video; } } else { if (HasAttribute (TrackMediaAttributes.Podcast)) { track.Type = IPod.MediaType.Podcast; } else if (HasAttribute (TrackMediaAttributes.AudioBook)) { track.Type = IPod.MediaType.Audiobook; } else if (HasAttribute (TrackMediaAttributes.Music)) { track.Type = IPod.MediaType.Audio; } else { track.Type = IPod.MediaType.Audio; } } if (CoverArtSpec.CoverExists (ArtworkId)) { SetIpodCoverArt (device, track, CoverArtSpec.GetPath (ArtworkId)); } }
public IpodTrackInfo(IPod.Track track) : base() { this.track = track; LoadFromIpodTrack(); CanSaveToDatabase = true; }
public void CommitToIpod(IPod.Device device) { track = track ?? device.TrackDatabase.CreateTrack(); ExternalId = track.Id; try { track.Uri = new Uri(Uri.AbsoluteUri); } catch (Exception e) { Log.Exception("Failed to create System.Uri for iPod track", e); device.TrackDatabase.RemoveTrack(track); } track.AlbumArtist = AlbumArtist; track.BitRate = BitRate; track.BPM = (short)Bpm; track.Comment = Comment; track.Composer = Composer; track.DateAdded = DateAdded; track.TotalDiscs = DiscCount; track.DiscNumber = DiscNumber; track.Duration = Duration; track.Size = (int)FileSize; track.Grouping = Grouping; track.IsCompilation = IsCompilation; track.LastPlayed = LastPlayed; track.PlayCount = PlayCount; track.TotalTracks = TrackCount; track.TrackNumber = TrackNumber; track.Year = Year; track.DateReleased = ReleaseDate; track.Album = AlbumTitle; track.Artist = ArtistName; track.Title = TrackTitle; track.Genre = Genre; switch (Rating) { case 1: track.Rating = IPod.TrackRating.Zero; break; case 2: track.Rating = IPod.TrackRating.Two; break; case 3: track.Rating = IPod.TrackRating.Three; break; case 4: track.Rating = IPod.TrackRating.Four; break; case 5: track.Rating = IPod.TrackRating.Five; break; default: track.Rating = IPod.TrackRating.Zero; break; } if (HasAttribute(TrackMediaAttributes.Podcast)) { track.DateReleased = ReleaseDate; track.Description = description; track.RememberPosition = true; track.NotPlayedMark = track.PlayCount == 0; } if (HasAttribute(TrackMediaAttributes.VideoStream)) { if (HasAttribute(TrackMediaAttributes.Podcast)) { track.Type = IPod.MediaType.VideoPodcast; } else if (HasAttribute(TrackMediaAttributes.Music)) { track.Type = IPod.MediaType.MusicVideo; } else if (HasAttribute(TrackMediaAttributes.Movie)) { track.Type = IPod.MediaType.Movie; } else if (HasAttribute(TrackMediaAttributes.TvShow)) { track.Type = IPod.MediaType.TVShow; } else { track.Type = IPod.MediaType.Video; } } else { if (HasAttribute(TrackMediaAttributes.Podcast)) { track.Type = IPod.MediaType.Podcast; } else if (HasAttribute(TrackMediaAttributes.AudioBook)) { track.Type = IPod.MediaType.Audiobook; } else if (HasAttribute(TrackMediaAttributes.Music)) { track.Type = IPod.MediaType.Audio; } else { track.Type = IPod.MediaType.Audio; } } if (CoverArtSpec.CoverExists(ArtworkId)) { SetIpodCoverArt(device, track, CoverArtSpec.GetPath(ArtworkId)); } }