home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume34 / vms_rtl_kbd / part02 / kbd$routines.h < prev    next >
C/C++ Source or Header  |  1992-12-19  |  6KB  |  217 lines

  1. #ifndef __KBD$ROUTINES_LOADED
  2. #define __KBD$ROUTINES_LOADED  1
  3.  
  4.  
  5. /*
  6. ------------------ Distribution and Copyright -----------------
  7. --
  8. -- This software is copyright by the CENA/DGAC/FRANCE
  9. -- All rights reserved.
  10. --
  11. -- No part of the material protected by this copyright notice
  12. -- may be reproduced or utilized for commercial use in any form
  13. -- without written permission of the copyright owner.
  14. --
  15. -- It may be reproduced or utilized for R&D use in Non Profit
  16. -- Organization
  17. --
  18. ---------------------------------------------------------------
  19.  
  20.  
  21. ------------------ Disclaimer ---------------------------------
  22. --
  23. -- This software and its documentation are provided "AS IS" and
  24. -- without any expressed or implied warranties whatsoever.
  25. -- No warranties as to performance, merchantability, or fitness
  26. -- for a particular purpose exist.
  27. --
  28. -- Because of the diversity of conditions and hardware under
  29. -- which this software may be used, no warranty of fitness for
  30. -- a particular purpose is offered.  The user is advised to
  31. -- test the software thoroughly before relying on it.  The user
  32. -- must assume the entire risk and liability of using this
  33. -- software.
  34. --
  35. -- In no event shall any person or organization of people be
  36. -- held responsible for any direct, indirect, consequential
  37. -- or inconsequential damages or lost profits.
  38. --                                                           
  39. -------------------END-PROLOGUE--------------------------------
  40. */
  41.  
  42.  
  43.  
  44.  
  45. /*****************************************************************************
  46.  *****************************************************************************
  47.  **                                        **
  48.  **               D E M O   D E S   R O U T I N E S   K B D $               **
  49.  **                                        **
  50.  ******* Copyright (C) 1992 Centre d'Etudes de la Navigation Aerienne ********
  51.  *****************************************************************************/
  52.  
  53.  
  54.  
  55.  
  56. /*
  57.  * Titre:       HEADER KBD$ROUTINES
  58.  *
  59.  * Sujet:       Fichier d'en-tete pour le module KBD$ROUTINES.
  60.  *
  61.  * Version:       1.0
  62.  *
  63.  * Description:           Ce module contient la declaration de la fonction
  64.  *                 kbd$read_keystroke permettant d'attendre une action au
  65.  *           clavier et renvoyant la sequence ANSI correspondant a la
  66.  *           touche actionnee.
  67.  *
  68.  *                     Pour utiliser kbd$read_keystroke, il necessaire
  69.  *           d'appeler au prealable la fonction kbd$open_keyboard et de
  70.  *           terminer par kbd$close_keyboard.
  71.  *                 La routine kbd$open_keyboard permet, entre autres, de ne
  72.  *           creer le tampon clavier que si l'on desire reellement
  73.  *           utiliser kbd$read_keystroke.
  74.  *
  75.  *                     Lorsque le tampon est plein, l'utilisateur est prevenu
  76.  *                 par un beep sonore.
  77.  *
  78.  *               La fonction kbd$flush_keyboard permet de vider le
  79.  *           tampon clavier.
  80.  *
  81.  *                    Afin de pouvoir recuperer les codes emis par CTRL/C,
  82.  *                 CTRL/O, CTRL/Q, CTRL/S, CTRL/T, CTRL/X, CTRL/Y et F6, il est
  83.  *                 necessaire d'entrer la commande DCL "SET TERMINAL/PASTHRU
  84.  *                 /NOTTSYNC".
  85.  *
  86.  * Langage:       C ANSI
  87.  *
  88.  * Fichier:       KBD$ROUTINES.H
  89.  *
  90.  * Environnement:  Machine cible:          VAX
  91.  *                 Systeme d'exploitation: VAX/VMS Version 5.4-3
  92.  *                 Compilateur:            VAX C Version 3.2-044
  93.  *
  94.  * Auteur:       Martin VICENTE (DGAC/CENA/SID)
  95.  *
  96.  *           E-mail: vicente@cenaath.cena.dgac.fr
  97.  *
  98.  *           Mail:   C.E.N.A.
  99.  *               Div. Support Informatique & Developpement
  100.  *               Orly Sud 205
  101.  *               94 542 ORLY AEROGARE CEDEX, FRANCE
  102.  *
  103.  * Creation:       23/05/92
  104.  *
  105.  * Modification:   26/05/92
  106.  *
  107.  */
  108.  
  109.  
  110.  
  111.  
  112. /*****************************************************************************
  113.  *    TYPE DEFINITIONS                             *
  114.  *****************************************************************************/
  115.  
  116.  
  117. typedef unsigned char  kbd$t_escape_overflow_buffer[4];
  118.  
  119. typedef struct {
  120.     unsigned char                 ascii;
  121.     kbd$t_escape_overflow_buffer  escOverBuffer;
  122. } kbd$t_ansi_sequence;
  123.  
  124.  
  125.  
  126.  
  127. /*****************************************************************************
  128.  *****************************************************************************
  129.  **                        KBD$ FUNCTION DECLARATION                        **
  130.  *****************************************************************************
  131.  *****************************************************************************/
  132.  
  133.  
  134.  
  135.  
  136. /*
  137.  * kbd$close_keyboard
  138.  *
  139.  *   Libere la memoire des structures de donnees associees a ce module.
  140.  */
  141.  
  142. unsigned kbd$close_keyboard();
  143.  
  144.  
  145. /*
  146.  * kbd$cvt_ansi_smg
  147.  *
  148.  *   Convertit la sequence ANSI d'une touche en un code SMG.
  149.  *
  150.  *   Liste des codes pouvant etre renvoyes (ils sont definis dans
  151.  *   SYS$LIBRARY:SMGDEF.H):
  152.  *
  153.  *    ascii (0 - 255)        SMG$K_TRM_UP        SMG$K_TRM_DOWN
  154.  *    SMG$K_TRM_RIGHT        SMG$K_TRM_LEFT        SMG$K_TRM_ENTER
  155.  *    SMG$K_TRM_PF1        SMG$K_TRM_PF2        SMG$K_TRM_PF3
  156.  *    SMG$K_TRM_PF4        SMG$K_TRM_COMMA        SMG$K_TRM_MINUS
  157.  *    SMG$K_TRM_PERIOD    SMG$K_TRM_KP0        SMG$K_TRM_KP1
  158.  *    SMG$K_TRM_KP2        SMG$K_TRM_KP3        SMG$K_TRM_KP4
  159.  *    SMG$K_TRM_KP5        SMG$K_TRM_KP6        SMG$K_TRM_KP7
  160.  *    SMG$K_TRM_KP8        SMG$K_TRM_KP9        SMG$K_TRM_FIND
  161.  *    SMG$K_TRM_INSERT_HERE    SMG$K_TRM_REMOVE    SMG$K_TRM_SELECT
  162.  *    SMG$K_TRM_PREV_SCREEN    SMG$K_TRM_NEXT_SCREEN    SMG$K_TRM_F6
  163.  *    SMG$K_TRM_F7        SMG$K_TRM_F8        SMG$K_TRM_F9
  164.  *    SMG$K_TRM_F10        SMG$K_TRM_F11        SMG$K_TRM_F12
  165.  *    SMG$K_TRM_F13        SMG$K_TRM_F14        SMG$K_TRM_HELP
  166.  *    SMG$K_TRM_DO        SMG$K_TRM_F17        SMG$K_TRM_F18
  167.  *    SMG$K_TRM_F19        SMG$K_TRM_F20        SMG$K_TRM_UP
  168.  *    SMG$K_TRM_DOWN        SMG$K_TRM_RIGHT        SMG$K_TRM_LEFT
  169.  *    SMG$K_TRM_UNKNOWN
  170.  */
  171.  
  172. unsigned kbd$cvt_ansi_smg();
  173.  
  174.  
  175. /*
  176.  * kbd$flush_keyboard
  177.  *
  178.  *   Vide le tampon clavier.
  179.  */
  180.  
  181. unsigned kbd$flush_keyboard();
  182.  
  183.  
  184. /*
  185.  * kbd$key_pressed
  186.  *
  187.  *   Indique si au moins une touche est presente dans le tampon.
  188.  */
  189.  
  190. unsigned kbd$key_pressed();
  191.  
  192.  
  193. /*
  194.  * kbd$open_keyboard
  195.  *
  196.  *   Creation et initialisation des structures de donnees associees au module.
  197.  */
  198.  
  199. unsigned kbd$open_keyboard();
  200.  
  201.  
  202. /*
  203.  * kbd$read_keystroke
  204.  *
  205.  *   Extrait la touche suivante du tampon; si ce dernier est vide, se met en
  206.  *   attente d'une action au clavier.
  207.  */
  208.  
  209. unsigned kbd$read_keystroke();
  210.  
  211.  
  212.  
  213.  
  214. /*****************************************************************************/
  215.  
  216. #endif  /* __KBD$ROUTINES_LOADED */
  217.