コード例 #1
0
        /// <summary>
        /// Event du click sur le bouton périphérique
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BT_Peripherique_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dos = new FolderBrowserDialog();

            dos.Description = "Veuillez choissir le volume de la liseuse";


            if (dos.ShowDialog() == DialogResult.OK)
            {
                char letter = dos.SelectedPath[0];
                if (LiaisonAppLiseuse.IsAReadableKobo(letter))
                {
                    if (new FRM_DialogueAutorise(letter > 90?(char)(letter - 32):letter).ShowDialog() == DialogResult.OK)
                    {
                        liseuse = new Liseuse(letter);

                        AfficherBoutonPeripherique();

                        bgw_comparaison.RunWorkerAsync();
                    }
                }
                else
                {
                    MessageBox.Show("Le volume selectionné n'est pas une Kobo");
                }
            }
        }
コード例 #2
0
        protected override void DefWndProc(ref Message m)
        {
            if (m.Msg == LiaisonAppLiseuse.WM_DEVICECHANGE)                    //Message windows d'un changement dans un périphérique
            {
                if (m.WParam.ToInt32() == LiaisonAppLiseuse.DBT_DEVICEARRIVAL) // Un périphérique vient d'être branché
                {
                    //NotifPeripherique("un périphérique a été branché");

                    LiaisonAppLiseuse.DEV_BROADCAST_HDR hdr = (LiaisonAppLiseuse.DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(LiaisonAppLiseuse.DEV_BROADCAST_HDR));

                    if (hdr.dbch_devicetype == LiaisonAppLiseuse.DBT_DEVTYP_VOLUME)
                    {
                        char letter = LiaisonAppLiseuse.DetermineLettre(m);

                        //NotifPeripherique("Le périphérique à été branché en " + letters[0].ToString());

                        if (LiaisonAppLiseuse.IsAReadableKobo(letter))
                        {
                            if (new FRM_DialogueAutorise((char)(letter - 32)).ShowDialog() == DialogResult.OK)
                            {
                                liseuse = new Liseuse(letter);
                                AfficherBoutonPeripherique();
                                bgw_comparaison.RunWorkerAsync();
                            }
                        }
                    }
                }

                //Si un périphérique est retirer
                if (m.WParam.ToInt32() == LiaisonAppLiseuse.DBT_DEVICEREMOVECOMPLETE)
                {
                    LiaisonAppLiseuse.DEV_BROADCAST_HDR hdr = (LiaisonAppLiseuse.DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(LiaisonAppLiseuse.DEV_BROADCAST_HDR));

                    if (hdr.dbch_devicetype == LiaisonAppLiseuse.DBT_DEVTYP_VOLUME)
                    {
                        char letter = LiaisonAppLiseuse.DetermineLettre(m);

                        if (liseuse != null)
                        {
                            if (liseuse.Lecteur == letter)
                            {
                                EjectLiseuse();
                            }
                        }
                    }
                }
            }
            base.DefWndProc(ref m);
        }
コード例 #3
0
ファイル: Liseuse.cs プロジェクト: LucasPalluel/Liseuse
 public Liseuse(char lecteur)
 {
     Lecteur = lecteur;
     try
     {
         if (!LiaisonAppLiseuse.IsAReadableKobo(lecteur))
         {
             throw new Exception("Le périphérique est soit absent ou ce n'est pas une kobo");
         }
         connexionLiseuse = new ConnectSQLite(PATHTODB());
         Biblioteque      = new List <Livre>();
         livreEnvoyes     = new List <string>();
         GetLivres();
     }
     catch (Exception e)
     {
         ExceptionHandler.ExeptionCatch(e);
     }
 }
コード例 #4
0
 public static char DetermineLettre(Message m)
 {
     LiaisonAppLiseuse.DEV_BROADCAST_VOLUME vol = (LiaisonAppLiseuse.DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(LiaisonAppLiseuse.DEV_BROADCAST_VOLUME));
     char[] letters = LiaisonAppLiseuse.MaskDepioteur(vol.dbcv_unitmask);
     return(letters[0]);
 }