コード例 #1
0
        private void LstArtistes_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.lstAlbums.SelectedIndexChanged -= new System.EventHandler(this.LstAlbums_SelectedIndexChanged);

            selectedArtist = (Artist)lstArtistes.SelectedItem;

            lblArtisteNom.Text       = selectedArtist.name;
            picArtiste.ImageLocation = selectedArtist.picture;
            lklDeezerLien.Text       = selectedArtist.link;

            grbArtisteInfos.Visible = true;


            selectedArtistDetail       = DeezerApi.getDetailsArtistById(selectedArtist.id);
            btnEcouterExtraits.Enabled = true;

            if (selectedArtistDetail.nbAlbums == 0)
            {
                //MessageBox.Show("Désolé, les extrait pour '" + selectedArtist.name + "' ne sont pas disponibles...", "Zik'nCo : Avertissement ",MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lblMessage.Text = "Désolé, les extrait pour '" + selectedArtist.name + "' ne sont pas disponibles...";
                erp.SetError(btnEcouterExtraits, "Aucun extrait pour cette artiste");
            }
            else
            {
                lblMessage.Text = "";
                List <Album> lesAlbums = selectedArtistDetail.getLesAlbums();

                lstAlbums.DataSource    = lesAlbums;
                lstAlbums.DisplayMember = "title";


                this.lstAlbums.SelectedIndexChanged += new System.EventHandler(this.LstAlbums_SelectedIndexChanged);
                LstAlbums_SelectedIndexChanged(this, new EventArgs());
            }
        }
コード例 #2
0
        protected override void SetMediaPosition(double pos)
        {
            Logger.LogTrace("DeezerRenderer::SetMediaPosition pos={0}", pos);

            if (FilterState != FilterState.Stopped)
            {
                if (_dzPlayer != IntPtr.Zero)
                {
                    dz_error_t err;

                    int resumePos = (int)pos;
                    if (resumePos != RenderPosition)
                    {
                        err = DeezerApi.dz_player_seek(_dzPlayer, null, IntPtr.Zero, (UInt64)(resumePos * 1e6));
                        DeezerApi.HandleDzErrorCode("dz_player_seek", err);
                    }

                    if (_evtPlayerPaused.WaitOne(DZ_OPERATION_TIMEOUT) == false)
                    {
                        DeezerApi.HandleDzErrorCode("[Event toggled by dz_player_seek]", dz_error_t.DZ_ERROR_PLAYER_SEEK_TIMEOUT);
                    }

                    Logger.LogTrace("[Event toggled by dz_player_seek] => DZ_PLAYER_EVENT_RENDER_TRACK_PAUSED");
                }
            }
        }
コード例 #3
0
        private void rechercherAlbum()
        {
            List <Album> lesAlbums = new List <Album>();

            String albumRecherche = txtBoxRecherche.Text;


            lesAlbums = DeezerApi.getAllAlbumsByName(albumRecherche);



            lblMessage.Text = string.Empty;

            if (lesAlbums.Count == 0)
            {
                lblMessage.Text = "Désolé, l'album " + albumRecherche + " n'est pas sur Deezer";
                erp.SetError(txtBoxRecherche, "Album inconnu");
            }
            else
            {
                this.lstBoxAlbum.SelectedIndexChanged -= new System.EventHandler(this.LstBoxAlbum_SelectedIndexChanged);

                lstBoxAlbum.DataSource    = lesAlbums;
                lstBoxAlbum.DisplayMember = "title";

                this.lstBoxAlbum.SelectedIndexChanged += new System.EventHandler(this.LstBoxAlbum_SelectedIndexChanged);

                erp.SetError(txtBoxRecherche, string.Empty);
                LstBoxAlbum_SelectedIndexChanged(this, new EventArgs());
            }
        }
コード例 #4
0
        private void rechercherArtistes()
        {
            List <Artist> lesArtistes = new List <Artist>();

            String artisteRecherche = txtArtisteRecherche.Text;

            lesArtistes = DeezerApi.getAllArtistsByName(artisteRecherche);



            lblMessage.Text = string.Empty;

            if (lesArtistes.Count == 0)
            {
                //.MessageBox.Show("Désolé, l'artiste " + artisteRecherche + "n'est pas sur Deezer", "Zik'nCo : Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lblMessage.Text = "Désolé, l'artiste " + artisteRecherche + "n'est pas sur Deezer";
                erp.SetError(txtArtisteRecherche, "Artiste inconnu");
            }
            else
            {
                lstArtistes.DataSource    = lesArtistes;
                lstArtistes.DisplayMember = "name";
                erp.SetError(txtArtisteRecherche, string.Empty);
                grbArtisteInfos.Visible = true;
            }
        }
コード例 #5
0
ファイル: FrmDemarrage.cs プロジェクト: DrTableBasse/Zik-nCo
        private void bntRechercher_Click(object sender, EventArgs e)
        {
            //Artist monArtist = new Artist();
            //déclaration et instanciation de la collection (liste) d'artistes
            List <Artist> lesArtistes = new List <Artist>();



            //string recherche = "zaz";
            string recherche = txtArtisteRecherche.Text;

            //monArtist = DeezerApi.getFirstArtistByName(recherche);
            //affection de la collection
            lesArtistes = DeezerApi.getAllArtistsByName(recherche);

            //if (monArtist == null)
            if (lesArtistes.Count == 0)
            {
                // Console.WriteLine("\n Désolé, l'artiste " + recherche + " est inconnu sur Deezer. Vérifiez l'orthographe");
                MessageBox.Show("\n Désolé, l'artiste '" + recherche + "' est inconnu sur Deezer. Vérifiez l'orthographe", "Zick'nCo : Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            else
            {
                //alimentation de la liste lstArtistes par la collection lesArtistes dans le DataSource.
                lstArtistes.DataSource    = lesArtistes;
                lstArtistes.DisplayMember = "name";
            }
        }
コード例 #6
0
ファイル: FrmDemarrage.cs プロジェクト: DrTableBasse/Zik-nCo
        private void btnEcouterExtraits_Click(object sender, EventArgs e)
        {
            Artist selectedArtistDetails = new Artist();

            selectedArtistDetails = DeezerApi.getDetailsArtistById(selectedArtist.id);

            if (selectedArtistDetails.nbAlbums == 0)
            {
                MessageBox.Show("Désolé, les extraits pour '" + selectedArtist.name + "' ne sont pas disponibles...", "Zik'nCo : Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                FrmLecteurMultimedia formulaire = new FrmLecteurMultimedia();
                List <Album>         lesAlbums  = selectedArtistDetails.getLesAlbums();
                foreach (Album unAlbum in lesAlbums)
                {
                    List <Track> lesTracks = unAlbum.getLesTracks();
                    foreach (Track unTrack in lesTracks)
                    {
                        //On lit chaque titre de chaque Album de l'artiste
                        WMPLib.IWMPMedia unMedia = formulaire.wmpLecteur.newMedia(unTrack.preview);
                        formulaire.wmpLecteur.currentPlaylist.appendItem(unMedia);
                    }
                }
                formulaire.Show();

                formulaire.wmpLecteur.Ctlcontrols.play();
            }
        }
コード例 #7
0
        //private void ResetAllEvents()
        //{
        //    _evtAppUserOfflineAvailable.Reset();
        //    _evtAppUserLoginOK.Reset();
        //    _evtPlayerPaused.Reset();
        //    _evtPlayerStreamReadyAfterSeek.Reset();
        //    _evtQueueListLoaded.Reset();
        //    _evtPlayerPlaybackStarted.Reset();
        //}

        protected override void DoStopRenderer()
        {
            StackTrace st = new StackTrace();

            Logger.LogTrace("DeezerRenderer::DoStopRenderer call Stack = {0}", st.ToString());

            if (FilterState != FilterState.Stopped)
            {
                if (_dzPlayer != IntPtr.Zero)
                {
                    dz_error_t err;

                    _evtPlayerPlaybackStopped.Reset();

                    err = DeezerApi.dz_player_stop(_dzPlayer, null, IntPtr.Zero);
                    DeezerApi.HandleDzErrorCode("dz_player_stop", err);

                    if (_evtPlayerPlaybackStopped.WaitOne(DZ_OPERATION_TIMEOUT) == false)
                    {
                        DeezerApi.HandleDzErrorCode("dz_player_pause", dz_error_t.DZ_ERROR_PLAYER_STOP_TIMEOUT);
                    }

                    RenderPosition = 0;

                    Logger.LogTrace("dz_player_stop => Success");
                }
            }
        }
コード例 #8
0
        private void frmCoverFlow_Load(object sender, EventArgs e)
        {
            selectedArtistDetails = DeezerApi.getDetailsArtistById("71069");

            lesAlbums = selectedArtistDetails.getLesAlbums();

            // On utilise un WebClient pour télécharger les images des pochettes d'album
            // (le cover flow ne peut afficher que des images locales)
            WebClient wClient = new WebClient();
            string    nomImage;
            int       i;

            for (i = 0; i < lesAlbums.Count; i++)
            {
                nomImage = "image" + i + ".jpg";

                //Téléchargement de l'image de l'artiste pour affichage dans le cover flow
                wClient.DownloadFile(lesAlbums[i].cover, nomImage);

                //Création de la vignette d'album (pochette). Premier paramètre : titre (title)
                Card c = new Card(lesAlbums[i].title, nomImage);

                //Ajout au cover flow
                iC3DAlbums.IndexCards.Add(c);
            }

            iC3DAlbums.IndexCards.LoadTexturesToMemory();
            // Lorsque le cover flow est affiché, on charge les titres du premier album
            chargerTitresSelectedAlbum();

            //   wmpLecteur.CurrentItemChange -= new EventHandler(wmpLecteur_CurrentItemChange);
        }
コード例 #9
0
        protected override void DoStartRendererWithHint(RenderingStartHint startHint)
        {
            dz_error_t err;

            _needNaturalNext = false;

            Logger.LogTrace("DeezerRenderer::DoStartRendererWithHint startHint={0}", startHint);

            if (renderMediaName == null || renderMediaName.Length <= 0)
            {
                return;
            }

            CheckIfInitialized();

            if (_dzConnect == IntPtr.Zero || _dzPlayer == IntPtr.Zero)
            {
                DeezerApi.HandleDzErrorCode("DeezerRenderer::DoStartRendererWithHint", dz_error_t.DZ_ERROR_CLASS_INSTANTIATION);
            }

            // --------------------------------------------------------------------
            _evtQueueListLoaded.Reset();
            err = DeezerApi.dz_player_load(_dzPlayer, null, IntPtr.Zero, renderMediaName);
            DeezerApi.HandleDzErrorCode("dz_player_load", err);

            if (_evtQueueListLoaded.WaitOne(DZ_OPERATION_TIMEOUT) == false)
            {
                DeezerApi.HandleDzErrorCode("dz_player_load", dz_error_t.DZ_ERROR_PLAYER_LOAD_TIMEOUT);
            }

            Logger.LogTrace("dz_player_load => Success");

            // --------------------------------------------------------------------

            // --------------------------------------------------------------------
            // Start playback using dz_player_play
            // This will trigger DZ_PLAYER_EVENT_RENDER_TRACK_START
            // Upon completion, _evtPlayerPlaybackStarted will be set.
            _evtPlayerPlaybackStarted.Reset();

            err = DeezerApi.dz_player_play(_dzPlayer, null, IntPtr.Zero,
                                           dz_player_play_command_t.DZ_PLAYER_PLAY_CMD_START_TRACKLIST,
                                           DeezerInterop.PlayerApi.Constants.DZ_INDEX_IN_QUEUELIST_CURRENT);

            DeezerApi.HandleDzErrorCode("dz_player_play", err);

            if (_evtPlayerPlaybackStarted.WaitOne(DZ_OPERATION_TIMEOUT) == false)
            {
                DeezerApi.HandleDzErrorCode("dz_player_play", dz_error_t.DZ_ERROR_PLAYER_PLAY_TIMEOUT);
            }

            Logger.LogTrace("dz_player_play => Success");
            // --------------------------------------------------------------------
        }
コード例 #10
0
        protected override void SetAudioVolume(int vol)
        {
            if (_dzPlayer != IntPtr.Zero)
            {
                dz_error_t err;

                Logger.LogTrace("DeezerRenderer::SetAudioVolume vol={0}", vol);

                err = DeezerApi.dz_player_set_output_volume(_dzPlayer, null, IntPtr.Zero, vol);

                DeezerApi.HandleDzErrorCode("dz_player_set_output_volume", err);
            }
        }
コード例 #11
0
        private void OnApplicationConnectEvent(IntPtr handle, IntPtr evtHandle, IntPtr userData)
        {
            dz_connect_event_t evtType = DeezerApi.dz_connect_event_get_type(evtHandle);

            Logger.LogTrace("DeezerRenderer::OnApplicationConnectEvent evtType={0}", evtType);

            switch (evtType)
            {
            case dz_connect_event_t.DZ_CONNECT_EVENT_USER_OFFLINE_AVAILABLE:
                _evtAppUserOfflineAvailable.Set();
                break;

            case dz_connect_event_t.DZ_CONNECT_EVENT_USER_LOGIN_OK:
                _evtAppUserLoginOK.Set();
                break;
            }
        }
コード例 #12
0
        private void btnRecherche_Click(object sender, EventArgs e)
        {
            recherche = txtAlbumRecherche.Text;
            lesAlbums = DeezerApi.getAllAlbumsByName(recherche);

            if (txtAlbumRecherche.Text == string.Empty)
            {
                erp.SetError(txtAlbumRecherche, MESSAGE_SAISIE_ALBUM);
                lblMessage.Text = MESSAGE_SAISIE_ALBUM;
            }
            else
            {
                Cursor.Current  = Cursors.WaitCursor;
                lblMessage.Text = MESSAGE_RECHERCHE_ALBUM;
                lblMessage.Refresh();
                rechercherArtistes();
            }
        }
コード例 #13
0
        private void lstAlbum_SelectedIndexChanged(object sender, EventArgs e)
        {
            selectedAlbum = (Album)lstAlbum.SelectedItem;

            selectedAlbum = DeezerApi.getDetailsAlbumById(selectedAlbum.id);

            lstTitresAlbum.DataSource    = selectedAlbum.getLesTracks();
            lstTitresAlbum.DisplayMember = "title";


            lstTitresAlbum.SelectedIndexChanged += new System.EventHandler(this.lstTitresAlbum_SelectedIndexChanged);
            lstTitresAlbum_SelectedIndexChanged(this, new EventArgs());


            lblArtistName.Text          = selectedAlbum.theArtist.name;
            picCoverAlbum.ImageLocation = selectedAlbum.cover;

            picArtist.ImageLocation = selectedAlbum.theArtist.picture;
        }
コード例 #14
0
        private void CleanupAppContext()
        {
            Logger.LogTrace("DeezerRenderer::CleanupAppContext => Cleaning up app context ...");

            dz_error_t err;

            if (_dzPlayer != IntPtr.Zero)
            {
                //_evtPlayerDeactivated.Reset();
                //_dzPlayerDeactivatedCB = new dz_activity_operation_callback(OnPlayerDeactivated);

                err = DeezerApi.dz_player_deactivate(_dzPlayer, _dzPlayerDeactivatedCB, IntPtr.Zero);

                DeezerApi.HandleDzErrorCode("dz_player_deactivate", err, false);

                //_evtPlayerDeactivated.WaitOne(DZ_OPERATION_TIMEOUT);
                Thread.Sleep(2000);

                Logger.LogTrace("dz_player_deactivate => Assuming Success");

                DeezerApi.dz_object_release(_dzPlayer);
                _dzPlayer = IntPtr.Zero;
            }

            if (_dzConnect != IntPtr.Zero)
            {
                //_evtConnectDeactivated.Reset();
                //_dzConnectDeactivatedCB = new dz_activity_operation_callback(OnConnectDeactivated);

                err = DeezerApi.dz_connect_deactivate(_dzConnect, _dzConnectDeactivatedCB, IntPtr.Zero);

                DeezerApi.HandleDzErrorCode("dz_connect_deactivate", err, false);

                //_evtConnectDeactivated.WaitOne(DZ_OPERATION_TIMEOUT);
                Thread.Sleep(2000);

                Logger.LogTrace("dz_connect_deactivate => Assuming Success");

                DeezerApi.dz_object_release(_dzConnect);
                _dzConnect = IntPtr.Zero;
            }
        }
コード例 #15
0
        private void BtnEcouterExtrait_Click(object sender, EventArgs e)
        {
            FrmLecteurMultemedia formulaire = new FrmLecteurMultemedia();


            selectedAlbum       = (Album)lstBoxAlbum.SelectedItem;
            selectedAlbumDetail = DeezerApi.getDetailsAlbumById(selectedAlbum.id);


            List <Track> lesTracks = selectedAlbumDetail.getLesTracks();

            foreach (Track unTrack in lesTracks)
            {
                WMPLib.IWMPMedia unMedia = formulaire.wmpLecteur.newMedia(unTrack.preview);
                formulaire.wmpLecteur.currentPlaylist.appendItem(unMedia);
            }

            formulaire.Show();
            formulaire.wmpLecteur.Ctlcontrols.play();
        }
コード例 #16
0
        protected override void DoResumeRenderer(double fromPosition)
        {
            Logger.LogTrace("DeezerRenderer::DoResumeRenderer fromPosition={0}", fromPosition);

            dz_error_t err;

            if (_evtPlayerPaused.WaitOne(DZ_OPERATION_TIMEOUT) == false)
            {
                DeezerApi.HandleDzErrorCode("DeezerRenderer::DoResumeRenderer", dz_error_t.DZ_ERROR_PLAYER_PAUSE_NOT_STARTED);
            }

            Logger.LogTrace("DeezerRenderer::DoResumeRenderer player is now paused.");

            if (FilterState == FilterState.Paused)
            {
                if (_dzPlayer != IntPtr.Zero)
                {
                    int resumePos = (int)fromPosition;
                    if (resumePos != RenderPosition)
                    {
                        // dz_player_seek will trigger DZ_PLAYER_EVENT_MEDIASTREAM_DATA_READY_AFTER_SEEK
                        // Upon completion, _evtPlayerStreamReadyAfterSeek will be set.
                        _evtPlayerStreamReadyAfterSeek.Reset();
                        err = DeezerApi.dz_player_seek(_dzPlayer, null, IntPtr.Zero, (UInt64)(resumePos * 1e6));
                        DeezerApi.HandleDzErrorCode("dz_player_seek", err);

                        if (_evtPlayerStreamReadyAfterSeek.WaitOne(DZ_OPERATION_TIMEOUT) == false)
                        {
                            DeezerApi.HandleDzErrorCode("dz_player_seek", dz_error_t.DZ_ERROR_PLAYER_SEEK_TIMEOUT);
                        }

                        Logger.LogTrace("dz_player_seek => DZ_PLAYER_EVENT_MEDIASTREAM_DATA_READY_AFTER_SEEK");
                    }

                    err = DeezerApi.dz_player_resume(_dzPlayer, null, IntPtr.Zero);
                    DeezerApi.HandleDzErrorCode("dz_player_resume", err);
                }
            }
        }
コード例 #17
0
        private void LstBoxAlbum_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <Album> lesAlbums = new List <Album>();

            selectedAlbum = (Album)lstBoxAlbum.SelectedItem;


            selectedAlbumDetail = DeezerApi.getDetailsAlbumById(selectedAlbum.id);

            lblNomAlbum.Text         = selectedAlbum.title;
            lblNomArtiste.Text       = selectedAlbum.theArtist.name;
            picAlbum.ImageLocation   = selectedAlbum.cover;
            picArtiste.ImageLocation = selectedAlbum.theArtist.picture;
            linkAlbum.Text           = selectedAlbumDetail.link;

            btnEcouterExtrait.Enabled = true;


            lblMessage.Text = "";
            List <Track> lesTracks = selectedAlbumDetail.getLesTracks();

            lstBoxTitre.DataSource    = lesTracks;
            lstBoxTitre.DisplayMember = "title";
        }
コード例 #18
0
        private void FrmPlaylist_Load(object sender, EventArgs e)
        {
            Artist       theArtist    = DeezerApi.getFirstArtistByName("STROMAE");
            List <Album> lesAlbums    = DeezerApi.getAllAlbumsByArtist(theArtist);
            Album        premierAlbum = lesAlbums[0];

            premierAlbum = DeezerApi.getDetailsAlbumById(premierAlbum.id);
            List <Track> lesTracks = premierAlbum.getLesTracks();
            int          i         = 0;

            while (i < lesTracks.Count)
            {
                Track unTrack = lesTracks[i];
                lstGauche.Items.Add(unTrack);
                lstGauche.DisplayMember = "name";
                i++;
            }

            lstGauche.SelectedIndex = 0;

            btnVersGaucheUn.Enabled   = false;
            btnVersGaucheTous.Enabled = false;
            btnJouerExtraits.Enabled  = false;
        }
コード例 #19
0
        protected override void DoPauseRenderer()
        {
            Logger.LogTrace("DeezerRenderer::DoPauseRenderer");

            if (FilterState == FilterState.Running)
            {
                if (_dzPlayer != IntPtr.Zero)
                {
                    dz_error_t err;

                    _evtPlayerPaused.Reset();

                    err = DeezerApi.dz_player_pause(_dzPlayer, null, IntPtr.Zero);
                    DeezerApi.HandleDzErrorCode("dz_player_pause", err);

                    if (_evtPlayerPaused.WaitOne(DZ_OPERATION_TIMEOUT) == false)
                    {
                        DeezerApi.HandleDzErrorCode("dz_player_pause", dz_error_t.DZ_ERROR_PLAYER_PAUSE_TIMEOUT);
                    }

                    Logger.LogTrace("dz_player_pause => Success");
                }
            }
        }
コード例 #20
0
        private void SetupAppContext()
        {
            if (_connected == false)
            {
                _evtAppUserOfflineAvailable.Reset();
                _evtAppUserLoginOK.Reset();

                Logger.LogTrace("DeezerRenderer::SetupConfig => Creating app context ...");

                dz_error_t err;

                _dzRenderProgressCB = new dz_player_onrenderprogress_cb(OnRenderProgress);
                _dzPlayerEventCB    = new dz_player_onevent_cb(OnPlayerEvent);
                _dzRendererEventCB  = new dz_player_onrendererevent_cb(OnRendererEvent);

                _dzConnect = DeezerApi.dz_connect_new(_dzConfig);
                if (_dzConnect == IntPtr.Zero)
                {
                    DeezerApi.HandleDzErrorCode("dz_connect_new", dz_error_t.DZ_ERROR_CLASS_INSTANTIATION);
                }

                //err = DeezerApi.dz_connect_debug_log_disable(_dzConnect);
                //DeezerApi.HandleDzErrorCode("dz_connect_debug_log_disable", err);

                err = DeezerApi.dz_connect_activate(_dzConnect, IntPtr.Zero);
                DeezerApi.HandleDzErrorCode("dz_connect_activate", err);

                err = DeezerApi.dz_connect_cache_path_set(_dzConnect, null, IntPtr.Zero, USER_CACHE_PATH);
                DeezerApi.HandleDzErrorCode("dz_connect_cache_path_set", err);

                _dzPlayer = DeezerApi.dz_player_new(_dzConnect);
                if (_dzPlayer == IntPtr.Zero)
                {
                    DeezerApi.HandleDzErrorCode("dz_player_new", dz_error_t.DZ_ERROR_CLASS_INSTANTIATION);
                }

                err = DeezerApi.dz_player_activate(_dzPlayer, IntPtr.Zero);
                DeezerApi.HandleDzErrorCode("dz_player_activate", err);

                err = DeezerApi.dz_player_set_event_cb(_dzPlayer, _dzPlayerEventCB);
                DeezerApi.HandleDzErrorCode("dz_player_set_event_cb", err);

                err = DeezerApi.dz_player_set_render_progress_cb(_dzPlayer, _dzRenderProgressCB, (UInt64)5e5);
                DeezerApi.HandleDzErrorCode("dz_player_set_render_progress_cb", err);

                err = DeezerApi.dz_player_set_renderer_event_cb(_dzPlayer, _dzRendererEventCB);
                DeezerApi.HandleDzErrorCode("dz_player_set_renderer_event_cb", err);

                string token = ProTONEConfig.DeezerUserAccessToken;
                err = DeezerApi.dz_connect_set_access_token(_dzConnect, null, IntPtr.Zero, token);
                DeezerApi.HandleDzErrorCode("dz_connect_set_access_token", err);

                err = DeezerApi.dz_connect_offline_mode(_dzConnect, null, IntPtr.Zero, false);
                DeezerApi.HandleDzErrorCode("dz_connect_offline_mode", err);

                if (_evtAppUserLoginOK.WaitOne(DZ_OPERATION_TIMEOUT) == false)
                {
                    DeezerApi.HandleDzErrorCode("DeezerRenderer::SetupConfig", dz_error_t.DZ_ERROR_CONNECT_SESSION_LOGIN_FAILED);
                }

                _connected = true;
            }
        }
コード例 #21
0
        private void OnRendererEvent(IntPtr handle, IntPtr evtHandle, IntPtr userdata)
        {
            string s = DeezerApi.dz_renderer_event_get_infos(evtHandle);

            Logger.LogTrace("DeezerRenderer::OnRendererEvent info={0}", s ?? "<null>");
        }
コード例 #22
0
        private void OnPlayerEvent(IntPtr handle, IntPtr evtHandle, IntPtr userdata)
        {
            dz_player_event_t evtType = DeezerApi.dz_player_event_get_type(evtHandle);

            Logger.LogTrace("DeezerRenderer::OnPlayerEvent evtType={0}", evtType);

            switch (evtType)
            {
            case dz_player_event_t.DZ_PLAYER_EVENT_QUEUELIST_TRACK_SELECTED:
            {
                string  selectedInfo = DeezerApi.dz_player_event_track_selected_dzapiinfo(evtHandle);
                dynamic obj2         = JObject.Parse(selectedInfo);
                _duration = obj2.duration;
            }
            break;

            case dz_player_event_t.DZ_PLAYER_EVENT_RENDER_TRACK_START:
                _evtPlayerPlaybackStarted.Set();
                FilterState = FilterState.Running;
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_RENDER_TRACK_RESUMED:
                FilterState = FilterState.Running;
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_RENDER_TRACK_PAUSED:
                _evtPlayerPaused.Set();
                FilterState = FilterState.Paused;
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_RENDER_TRACK_END:
            case dz_player_event_t.DZ_PLAYER_EVENT_RENDER_TRACK_REMOVED:
                if (_needNaturalNext)
                {
                    // HACK: The Deezer Native SDK told us that we should advance
                    // to the next item by using a "natural next" (WTF is that anyways ??)
                    _needNaturalNext = false;
                    // So this is exactly what we'll give it ...
                    OPMShortcutEventArgs args = new OPMShortcutEventArgs(OPMShortcut.CmdNext);
                    EventDispatch.DispatchEvent(EventNames.ExecuteShortcut, args);
                }
                else
                {
                    _evtPlayerPlaybackStopped.Set();
                    FilterState    = FilterState.Stopped;
                    RenderPosition = 0;
                }
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_MEDIASTREAM_DATA_READY_AFTER_SEEK:
                _evtPlayerStreamReadyAfterSeek.Set();
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_QUEUELIST_NEED_NATURAL_NEXT:
                _needNaturalNext = true;
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_QUEUELIST_LOADED:
                _evtQueueListLoaded.Set();
                break;

            case dz_player_event_t.DZ_PLAYER_EVENT_QUEUELIST_NO_RIGHT:
                _evtQueueListLoaded.Reset();
                break;
            }
        }