home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 242.lha / GenericLIBrarian / source / glib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-04-07  |  3.4 KB  |  119 lines

  1. /*
  2.  * GLIB - a Generic LIBrarian and editor for synths
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include "machdep.h"
  7.  
  8. #define EOX 0xf7
  9. #define MOUSE -2
  10.  
  11. #ifndef BUFSIZ
  12. #define BUFSIZ 512
  13. #endif
  14.  
  15. /* If a machine needs to do something special to read/write a binary file, */
  16. /* this is a hook that a machdep.h can override to do what it  needs to. */
  17. /* For example, see the Atari ST version  of machdep.h */
  18. #ifndef OPENBINFILE
  19. #define OPENBINFILE(f,file,mode) f=fopen(file,mode)
  20. #endif
  21.  
  22. /* Seconds before we give up trying to read something */
  23. #define TIMEOUT 5
  24.  
  25. #define NUMONSCREEN 12
  26. /* position of first voice row */
  27. #define FIRSTROW 10
  28. #define LEFTSIDE 2
  29. #define RIGHTSIDE 54
  30. #define YANKROW 12
  31. #define YANKCOL 31
  32. #define LIBBANKS 3
  33. #define NOREDRAW 0
  34. #define REDRAW 1
  35.  
  36. #define CH_REDRAW '\014'
  37.  
  38. #define CH_INC 'K'
  39. #define CH_INC2 'I'
  40. #define CH_INC3 '>'
  41. #define CH_DEC 'J'
  42. #define CH_DEC2 'M'
  43. #define CH_DEC3 '<'
  44.  
  45. #define CH_LEFT 'h'
  46. #define CH_DOWN 'j'
  47. #define CH_UP 'k'
  48. #define CH_RIGHT 'l'
  49. #define SCR_DOWN '\04'
  50. #define SCR_UP '\025'
  51.  
  52. #define STR_LEFT "h"
  53. #define STR_DOWN "j"
  54. #define STR_UP "k"
  55. #define STR_RIGHT "l"
  56.  
  57. #define VOICEBYTE(d,v,n) (*((d)+(v)*Voicesize+(n)))
  58.  
  59. struct paraminfo {
  60.         char *p_name;
  61.         char *p_label;
  62.         INT16 p_lrow;   /* position for printing name */
  63.         INT16 p_lcol;
  64.         INT16 p_vrow;           /* position for printing value */
  65.         INT16 p_vcol;
  66.         char *((*p_tovis)());
  67.         INT16 p_min;
  68.         INT16 p_max;
  69.         INT16 p_val;
  70.         INT16 p_flags;
  71. };
  72.  
  73. struct labelinfo {
  74.         INT16 l_row;
  75.         INT16 l_col;
  76.         char *l_text;
  77. };
  78.  
  79. struct editinfo {
  80.         char *ed_name;          /* Synth name */
  81.         struct paraminfo *ed_params;    /* list of parameters */
  82.         struct labelinfo *ed_labels;    /* screen labels in edit mode */
  83.         INT16 ed_nvoices;               /* number of voices */
  84.         INT16 ed_vsize;         /* size of each voice data, in bytes */
  85.         INT16 ed_nsize;         /* name size */
  86.         int (*ed_din)();        /* copy voice data into paraminfo array */
  87.         int (*ed_dout)();       /* copy voice data out of paraminfo array */
  88.         int (*ed_sedit)();      /* send 1 voice to synth edit buffer */
  89.         int (*ed_sone)();       /* send 1 voice to a synth (permanent) patch*/
  90.         int (*ed_sbulk)();      /* send bulk voice data */
  91.         int (*ed_gbulk)();      /* get bulk voice data */
  92.         char *(*ed_nof)();      /* get name of a voice out of data */
  93.         int (*ed_snof)();       /* set name of a voice in data */
  94.         char *(*ed_numof)();    /* convert voice number to on-screen text */
  95.         int (*ed_cvtnum)();     /* convert visable voice number to std. format */
  96.         int (*ed_cvtanum)();    /* convert alphanumeric voice number to std. format */
  97. };
  98.  
  99. struct peredinfo {
  100.         char *ed_libdata;       /* memory for library banks */
  101.         char *ed_syndata;       /* memory for synth bank */
  102.         char *ed_yankdata;      /* memory for yank buffer */
  103.         INT16 ed_libindex;      /* voice number of topmost displayed lib voice*/
  104.         INT16 ed_synindex;      /* ditto for synth side */
  105.         INT16 ed_channel;               /* MIDI channel # */
  106.         INT16 ed_erow;
  107.         INT16 ed_ecol;
  108. };
  109.  
  110. extern struct paraminfo *P;
  111. extern struct labelinfo *L;
  112. extern struct editinfo E[];
  113. extern int Rows, Cols, Channel, Nvoices, Voicesize, Redraw;
  114. extern char *Reason, *Synthname;
  115.  
  116. char *bankvoice();
  117. char *malloc(), *alloc(), *nextls();
  118. long milliclock();
  119.