public Station(Pandora p, JToken d) { SkipLimitReached = false; SkipLimitTime = DateTime.MinValue; _pandora = p; ID = d["stationId"].ToString(); IdToken = d["stationToken"].ToString(); IsCreator = !d["isShared"].ToObject <bool>(); IsQuickMix = d["isQuickMix"].ToObject <bool>(); Name = d["stationName"].ToString(); InfoUrl = (string)d["stationDetailUrl"]; RefreshSeeds(); if (IsQuickMix) { Name = "Quick Mix"; _pandora.QuickMixStationIDs.Clear(); var qmIDs = d["quickMixStationIds"].ToObject <string[]>(); foreach (var qmid in qmIDs) { _pandora.QuickMixStationIDs.Add((string)qmid); } } bool downloadArt = true; if (!_pandora.ImageCachePath.Equals("") && File.Exists(ArtCacheFile)) { try { ArtImage = File.ReadAllBytes(ArtCacheFile); } catch (Exception) { Log.O("Error retrieving image cache file: " + ArtCacheFile); downloadArt = true; } downloadArt = false; } if (downloadArt) { var value = d.SelectToken("artUrl"); if (value != null) { ArtUrl = value.ToString(); if (ArtUrl != String.Empty) { try { ArtImage = PRequest.ByteRequest(ArtUrl); if (ArtImage.Length > 0) { File.WriteAllBytes(ArtCacheFile, ArtImage); } } catch (Exception) { Log.O("Error saving image cache file: " + ArtCacheFile); } } } //} } }
public Song(Pandora p, JToken song) { metaDict = new Dictionary <object, object>(); _pandora = p; TrackToken = (string)song["trackToken"]; Artist = (string)song["artistName"]; Album = (string)song["albumName"]; AmazonAlbumID = (string)song["amazonAlbumDigitalAsin"]; AmazonTrackID = (string)song["amazonSongDigitalAsin"]; var aacUrl = string.Empty; try { aacUrl = (string)song["audioUrlMap"]["highQuality"]["audioUrl"]; } catch { } if (_pandora.AudioFormat == PAudioFormat.AACPlus) { if (aacUrl == string.Empty) { throw new PandoraException(ErrorCodes.NO_AUDIO_URLS); } AudioUrl = aacUrl; } else { string[] songUrls = null; try { if (song["additionalAudioUrl"].HasValues) { songUrls = song["additionalAudioUrl"].ToObject <string[]>(); } else { songUrls = new string[] { (string)song["additionalAudioUrl"] } }; } catch { } if (songUrls == null || songUrls.Length == 0) { if (aacUrl != string.Empty) { AudioUrl = aacUrl; } else { throw new PandoraException(ErrorCodes.NO_AUDIO_URLS); } } else if (songUrls.Length == 1) { AudioUrl = songUrls[0]; } else if (songUrls.Length > 1) { if (_pandora.AudioFormat == PAudioFormat.MP3_HIFI) { if (songUrls.Length >= 2) { AudioUrl = songUrls[1]; } else { AudioUrl = songUrls[0]; } } else //default to PAudioFormat.MP3 { AudioUrl = songUrls[0]; } } } double gain = 0.0; double.TryParse(((string)song["trackGain"]), out gain); FileGain = gain; Rating = (((int)song["songRating"]) > 0 ? SongRating.love : SongRating.none); StationID = (string)song["stationId"]; SongTitle = (string)song["songName"]; SongDetailUrl = (string)song["songDetailUrl"]; ArtistDetailUrl = (string)song["artistDetailUrl"]; AlbumDetailUrl = (string)song["albumDetailUrl"]; AlbumArtUrl = (string)song["albumArtUrl"]; Tired = false; StartTime = DateTime.MinValue; Finished = false; PlaylistTime = Time.Unix(); if (!AlbumArtUrl.IsNullOrEmpty()) { try { AlbumImage = PRequest.ByteRequest(AlbumArtUrl); } catch { } } }
public void SetStationSortOrder(Pandora.SortOrder order) { _pandora.StationSortOrder = order; }
public bool Initialize(string bassRegEmail = "", string bassRegKey = "") { _cqman = new ControlQueryManager(); _cqman.NextRequest += _cqman_NextRequest; _cqman.PauseRequest += _cqman_PauseRequest; _cqman.PlayRequest += _cqman_PlayRequest; _cqman.StopRequest += _cqman_StopRequest; _cqman.PlayStateRequest += _cqman_PlayStateRequest; _cqman.SetSongMetaRequest += _cqman_SetSongMetaRequest; _sessionWatcher = new SessionWatcher(); RegisterPlayerControlQuery(_sessionWatcher); _pandora = new Pandora(); _pandora.ConnectionEvent += _pandora_ConnectionEvent; _pandora.StationUpdateEvent += _pandora_StationUpdateEvent; _pandora.FeedbackUpdateEvent += _pandora_FeedbackUpdateEvent; _pandora.LoginStatusEvent += _pandora_LoginStatusEvent; _pandora.StationsUpdatingEvent += _pandora_StationsUpdatingEvent; _pandora.QuickMixSavedEvent += _pandora_QuickMixSavedEvent; _bass = new BassAudioEngine(bassRegEmail, bassRegKey); _bass.PlaybackProgress += bass_PlaybackProgress; _bass.PlaybackStateChanged += bass_PlaybackStateChanged; _bass.PlaybackStart += bass_PlaybackStart; _bass.PlaybackStop += bass_PlaybackStop; _bass.InitBass(); _playlist = new Playlist(); _playlist.MaxPlayed = 8; _playlist.PlaylistLow += _playlist_PlaylistLow; _playlist.PlayedSongQueued += _playlist_PlayedSongQueued; _playlist.PlayedSongDequeued += _playlist_PlayedSongDequeued; DailySkipLimitReached = false; DailySkipLimitTime = DateTime.MinValue; LoggedIn = false; return true; }
public Song(Pandora p, JToken song) { metaDict = new Dictionary<object, object>(); _pandora = p; TrackToken = (string)song["trackToken"]; Artist = (string)song["artistName"]; Album = (string)song["albumName"]; AmazonAlbumID = (string)song["amazonAlbumDigitalAsin"]; AmazonTrackID = (string)song["amazonSongDigitalAsin"]; var aacUrl = string.Empty; try { aacUrl = (string)song["audioUrlMap"]["highQuality"]["audioUrl"]; } catch { } if (_pandora.AudioFormat == PAudioFormat.AACPlus) { if(aacUrl == string.Empty) throw new PandoraException(ErrorCodes.NO_AUDIO_URLS); AudioUrl = aacUrl; } else { string[] songUrls = null; try { if(song["additionalAudioUrl"].HasValues) songUrls = song["additionalAudioUrl"].ToObject<string[]>(); else songUrls = new string[]{(string)song["additionalAudioUrl"]}; } catch { } if (songUrls == null || songUrls.Length == 0) { if (aacUrl != string.Empty) AudioUrl = aacUrl; else throw new PandoraException(ErrorCodes.NO_AUDIO_URLS); } else if (songUrls.Length == 1) { AudioUrl = songUrls[0]; } else if (songUrls.Length > 1) { if (_pandora.AudioFormat == PAudioFormat.MP3_HIFI) { if (songUrls.Length >= 2) AudioUrl = songUrls[1]; else AudioUrl = songUrls[0]; } else //default to PAudioFormat.MP3 { AudioUrl = songUrls[0]; } } } double gain = 0.0; double.TryParse(((string)song["trackGain"]), out gain); FileGain = gain; Rating = (((int)song["songRating"]) > 0 ? SongRating.love : SongRating.none); StationID = (string)song["stationId"]; SongTitle = (string)song["songName"]; SongDetailUrl = (string)song["songDetailUrl"]; ArtistDetailUrl = (string)song["artistDetailUrl"]; AlbumDetailUrl = (string)song["albumDetailUrl"]; AlbumArtUrl = (string)song["albumArtUrl"]; Tired = false; StartTime = DateTime.MinValue; Finished = false; PlaylistTime = Time.Unix(); if (!AlbumArtUrl.IsNullOrEmpty()) { try { AlbumImage = PRequest.ByteRequest(AlbumArtUrl); } catch { } } }
public Station(Pandora p, JToken d) { SkipLimitReached = false; SkipLimitTime = DateTime.MinValue; _pandora = p; ID = d["stationId"].ToString(); IdToken = d["stationToken"].ToString(); IsCreator = !d["isShared"].ToObject<bool>(); IsQuickMix = d["isQuickMix"].ToObject<bool>(); Name = d["stationName"].ToString(); InfoUrl = (string)d["stationDetailUrl"]; if (IsQuickMix) { Name = "Quick Mix"; _pandora.QuickMixStationIDs.Clear(); var qmIDs = d["quickMixStationIds"].ToObject<string[]>(); foreach(var qmid in qmIDs) _pandora.QuickMixStationIDs.Add((string) qmid); } bool downloadArt = true; if (!_pandora.ImageCachePath.Equals("") && File.Exists(ArtCacheFile)) { try { ArtImage = File.ReadAllBytes(ArtCacheFile); } catch (Exception) { Log.O("Error retrieving image cache file: " + ArtCacheFile); downloadArt = true; } downloadArt = false; } if (downloadArt) { var value = d.SelectToken("artUrl"); if (value != null) { ArtUrl = value.ToString(); if (ArtUrl != String.Empty) { try { ArtImage = PRequest.ByteRequest(ArtUrl); if (ArtImage.Length > 0) File.WriteAllBytes(ArtCacheFile, ArtImage); } catch (Exception) { Log.O("Error saving image cache file: " + ArtCacheFile); } } } //} } }