/// <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"); } } }
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); }
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); } }
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]); }