/// <summary> /// Prepare song. Fetch source URL. /// </summary> /// <returns></returns> private IEnumerator PrepareSong() { if (m_currentSong == null) { OnError("No song specified"); yield break; } OnLoading(); m_isSongSourceLoaded = false; if (!m_network.CallGet(string.Concat(VStrings.APIV2, "genres/", m_currentSong.Playlist, "/musics/", m_currentSong.Id), SourceReceivedCallback)) { m_network.CancelCalls(); OnError("Can't get song source"); yield break; } float timeOut = Time.realtimeSinceStartup + VSettings.BaseTimeOut; while (!m_isSongSourceLoaded) { if (Time.realtimeSinceStartup > timeOut) { m_network.CancelCalls(); OnTimedOut(); StopAllCoroutines(); yield break; } yield return(null); } }
/// <summary> /// Download banner texture and audio clip /// </summary> /// <param name="url"></param> /// <returns></returns> private IEnumerator PrepareAd(string url) { m_isAdPrepared = true; // Fetch banner texture m_isBannerTextureLoaded = false; string bannerUrl = m_currentAd.GetBannerImageUrl(); if (!string.IsNullOrEmpty(bannerUrl)) { m_adContainsBanner = true; m_network.GetTextureFromSource(bannerUrl, TextureReceivedCallback); float timeOut = Time.realtimeSinceStartup + VSettings.BaseTimeOut; while (!m_isBannerTextureLoaded) { if (Time.realtimeSinceStartup > timeOut) { m_network.CancelCalls(); OnError("Texture loading timed out"); yield break; } yield return(null); } } else { m_adContainsBanner = false; } // Fetch audio clip m_isAudioClipLoaded = false; if (!string.IsNullOrEmpty(url)) { m_network.GetAudioClipFromSource(url, AudioClipReceivedCallback); float timeOut = Time.realtimeSinceStartup + VSettings.BaseTimeOut; while (m_isAudioClipLoaded) { if (Time.realtimeSinceStartup > timeOut) { m_network.CancelCalls(); OnError("Ad audio loading timed out"); yield break; } yield return(null); } } else { OnError("Ad URL is empty"); } }
private IEnumerator DownloadCatalogueAndSettings() { m_isWaitingResponse = true; if (!m_network.CallGet(VStrings.CATALOGUE, ProcessCatalogueCallback)) { OnFinished(false, "error: could not download catalogue"); yield break; } float timeOut = Time.realtimeSinceStartup + VSettings.BaseTimeOut; while (m_isWaitingResponse) { if (Time.realtimeSinceStartup > timeOut) { m_isWaitingResponse = false; m_network.CancelCalls(); OnFinished(false, "error: downloading catalogue timed out"); StopAllCoroutines(); yield break; } yield return(null); } }