Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        /// <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");
            }
        }
Esempio n. 3
0
        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);
            }
        }