home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / LNF / PIANO.TEM < prev    next >
Text File  |  1991-11-09  |  7KB  |  158 lines

  1. /* This program was created in less time than it took
  2.    Josh to go and smoke a cigarette (don't worry he says he's quitting).
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <cscape.h>
  7. #include <teddecl.h>
  8. #include <msys.h>
  9.  
  10. #include <kbrecord.h>
  11.  
  12. int lnf_Beep(void * sdata, int idata);
  13.  
  14. int lnf_Beep(void * sdata, int idata)
  15. /*
  16.         a sample user function for lnf.
  17.         beeps the speaker using the value passed by idata
  18.  
  19.         audible values are between 300 and 5000.
  20. */
  21. {
  22.         if (idata > 0) {
  23.                 hard_speaker(idata, 10);
  24.         }
  25.  
  26.         return(0);
  27. }
  28.  
  29. int piano()
  30. {
  31.         menu_type       menu;
  32.         sed_type        sed;
  33.         int             ret;
  34.  
  35.         menu = menu_Open();
  36.  
  37.         menu_Printf(menu, " │    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  38.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  39.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  40.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  41.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  42.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  43.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  44.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  45.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  46.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  47.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  48.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  49.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  50.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  51.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  52.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  53.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  54.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  55.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  56.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  57.         menu_Printf(menu, "    @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │    @a[0x07]│   ");
  58.         menu_Printf(menu, "│@a[0x00]  @a[0x07]│   │@a[0x00]  @a[0x07]│   │@a[0x00]    │      │\n │");
  59.         menu_Printf(menu, "    @a[0x07]└─┬─┘@a[0x00]  @a[0x07]└─┬─┘@a[0x00]    │    @a[0x07]└─┬─");
  60.         menu_Printf(menu, "┘@a[0x00]  @a[0x07]└─┬─┘@a[0x00]  @a[0x07]└─┬─┘@a[0x00]    │      │\n │      │      │      │      │      │      │      │      │\n │      │      │      │");
  61.         menu_Printf(menu, "      │      │      │      │      │\n │      │      │      │      │      │      │      │      │\n │      │");
  62.         menu_Printf(menu, "      │      │      │      │      │      │      │\n │      │      │      │      │      │      │      ");
  63.         menu_Printf(menu, "│      │\n └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘");
  64.  
  65.         menu_Printf(menu, "@p[16,3]@fb[ AA ]",
  66.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 2000));
  67.         menu_Printf(menu, "@p[10,7]@fb[ W ]",
  68.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1887));
  69.         menu_Printf(menu, "@p[10,14]@fb[ E ]",
  70.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1681));
  71.         menu_Printf(menu, "@p[10,28]@fb[ T ]",
  72.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1414));
  73.         menu_Printf(menu, "@p[10,35]@fb[ Y ]",
  74.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1260));
  75.         menu_Printf(menu, "@p[10,42]@fb[ U ]",
  76.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1122));
  77.         menu_Printf(menu, "@p[16,10]@fb[ SS ]",
  78.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1781));
  79.         menu_Printf(menu, "@p[16,17]@fb[ DD ]",
  80.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1587));
  81.         menu_Printf(menu, "@p[16,24]@fb[ FF ]",
  82.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1498));
  83.         menu_Printf(menu, "@p[16,31]@fb[ GG ]",
  84.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1335));
  85.         menu_Printf(menu, "@p[16,38]@fb[ HH ]",
  86.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1189));
  87.         menu_Printf(menu, "@p[16,45]@fb[ JJ ]",
  88.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1059));
  89.         menu_Printf(menu, "@p[16,52]@fb[ KK ]",
  90.           NULL, &framer_funcs, ufunc_Open(lnf_Beep, 1000));
  91.  
  92.         menu_Flush(menu);
  93.  
  94.         sed = sed_Open(menu);
  95.         sed_SetColors(sed, 0x70, 0x70, 0x07);
  96.  
  97.         sed_MarkField(sed, 1, 0x07, 0x70);
  98.         sed_MarkField(sed, 2, 0x07, 0x70);
  99.         sed_MarkField(sed, 3, 0x07, 0x70);
  100.         sed_MarkField(sed, 4, 0x07, 0x70);
  101.         sed_MarkField(sed, 5, 0x07, 0x70);
  102.         sed_SetPosition(sed, 3, 11);
  103.         sed_SetHeight(sed, 18);
  104.         sed_SetWidth(sed, 59);
  105.         sed_SetMouse(sed, sedmou_Framer);
  106.  
  107.         sed_Repaint(sed);
  108.         ret = sed_Go(sed);
  109.  
  110.         sed_Close(sed);
  111.         return(ret);
  112. }
  113.  
  114. void main(int argc, char *argv[])
  115. /*
  116.         Uses kb_Record if the following command line arguments are given.
  117.         The -r command records a sequence of keystrokes to a file.
  118.         The -p command plays the sequence back from a file.
  119.         For example, the command line
  120.  
  121.         piano -rmusic
  122.  
  123.         will record keystrokes in the file "music".
  124.  
  125.         The command line
  126.  
  127.         piano -pmusic
  128.  
  129.         will play back the recording.
  130. */
  131.  
  132. {
  133.         FILE *key = NULL;
  134.  
  135.         disp_Init(def_ModeText, NULL);
  136.  
  137.         /* check for kb record */
  138.         if (argc > 1) {
  139.                 if (argv[1][0] == '-' && argv[1][1] == 'r') {
  140.                         /* open file for record keystrokes */
  141.                         key = fopen(argv[1]+2, "w");
  142.                         kb_Record(key, KB_RECORD, 0);
  143.                 }
  144.                 else if (argv[1][0] == '-' && argv[1][1] == 'p') {
  145.                         /* open file to play back keystrokes */
  146.                         key = fopen(argv[1]+2, "r");
  147.                         kb_Record(key, KB_PLAY, 0);
  148.                 }
  149.         }
  150.  
  151.         piano();
  152.         disp_Close();
  153.  
  154.         if (key != NULL) {
  155.                 fclose(key);
  156.         }
  157. }
  158.