-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMusicTrack.cs
50 lines (44 loc) · 1.41 KB
/
MusicTrack.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using Banshee.Sources;
using Banshee.Collection;
using Banshee.Collection.Database;
namespace Banshee.GoogleMusic
{
public class MusicTrack : DatabaseTrackInfo
{
private static long id = 0;
public MusicTrack (Google.Music.Track track, string url, PrimarySource source) : base()
{
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, new System.Globalization.GregorianCalendar(), DateTimeKind.Utc);
AlbumArtist = track.albumArtist;
AlbumArtistSort = track.albumArtistNorm;
ArtistName = track.artist;
ArtistNameSort = track.artistNorm;
AlbumTitle = track.album;
AlbumTitleSort = track.albumNorm;
Bpm = track.beatsPerMinute;
CanPlay = true;
CanSaveToDatabase = false;
Comment = track.comment;
Composer = track.composer;
DateAdded = epoch.AddTicks(track.creationDate*10);
DiscCount = track.totalDiscs;
DiscNumber = track.disc;
Duration = TimeSpan.FromMilliseconds(track.durationMillis);
Genre = track.genre;
LastPlayed = epoch.AddTicks(track.lastPlayed*10);
MediaAttributes = TrackMediaAttributes.AudioStream | TrackMediaAttributes.Music;
MimeType = "audio/mp3";
PlayCount = track.playCount;
Rating = track.rating;
TrackCount = track.totalTracks;
TrackNumber = track.track;
TrackTitle = track.title;
TrackTitleSort = track.titleNorm;
Year = track.year;
Uri = new Hyena.SafeUri(url);
ExternalId = ++id;
PrimarySource = source;
}
}
}