home *** CD-ROM | disk | FTP | other *** search
/ Audio 4.94 - Over 11,000 Files / audio-11000.iso / amiga / midi / obrst103.lha / OberSuite-1.03 / SourceCode / usage.c < prev   
C/C++ Source or Header  |  1993-01-23  |  6KB  |  213 lines

  1. /**************************************************************************
  2. * usage.c:    Usage and error messages.
  3. *        A part of OberSuite for the Commodore Amiga.
  4. *
  5. * Author:    Daniel Barrett, barrett@cs.umass.edu.
  6. * Version:    1.0.
  7. * Copyright:    None!  This program is in the Public Domain.
  8. *        Please share it with others.
  9. ***************************************************************************/
  10.  
  11. #include "decl.h"
  12. #include "oberheim.h"
  13.  
  14.  
  15. /***************************************************************************
  16. * NOTE:  programName is a global variable.
  17. ***************************************************************************/
  18.  
  19.  
  20. /***************************************************************************
  21. * Simple usage messages.  The routine UsageMsg() must be supplied
  22. * elsewhere.  Look for it in the file containing main().
  23. ***************************************************************************/
  24.  
  25. /*
  26.  * A full usage message.
  27.  */
  28.  
  29. void DetailedUsage(void)
  30. {
  31.     if (!ERR_OUTPUT_ALLOWED)
  32.         return;
  33.  
  34.     Author();
  35.     UsageMsg();
  36. }
  37.  
  38.  
  39. /*
  40.  * Tell the user how to get more help.
  41.  */
  42.  
  43. void BegForUsage()
  44. {
  45.     if (!ERR_OUTPUT_ALLOWED)
  46.         return;
  47.  
  48.     fprintf(stderr, "Type \"%s ?\" for details.\n", programName);
  49. }
  50.  
  51.  
  52. /*
  53.  * Print the author's name and copyright information.
  54.  */
  55.  
  56. void Author(void)
  57. {
  58.     if (!ERR_OUTPUT_ALLOWED)
  59.         return;
  60.  
  61.     fprintf(stderr, "%s%s%s version %s by %s.\n", 
  62.         HILITE_ON, programName, HILITE_OFF,
  63.         Version(), AUTHOR);
  64.  
  65.     fprintf(stderr,
  66.         "100%% public domain -- please share this program.\n\n");
  67. }
  68.  
  69.  
  70.  
  71. /***************************************************************************
  72. * Error message handling.
  73. * Essentially a table of error message, indexed by the given integer code.
  74. ***************************************************************************/
  75.  
  76. void ErrorMsg(int code)
  77. {
  78.     if (!ERR_OUTPUT_ALLOWED)
  79.         return;
  80.  
  81.     fflush(stdout);
  82.     fprintf(stderr, "%sError:%s ", HILITE_ON, HILITE_OFF);
  83.     switch (code)
  84.     {
  85.         case ERROR_PATCHNUM:
  86.           fprintf(stderr,
  87.             "Your patch number is invalid or out of range (%d-%d).\n",
  88.             FIRST_PATCH, LAST_PATCH);
  89.           BegForUsage();
  90.           break;
  91.         case ERROR_PATCHTYPE:
  92.           fprintf(stderr, "Your patch number must begin with"
  93.                   " the letter \"%c\" or \"%c\".\n",
  94.               LETTER_SINGLE, LETTER_MULTI);
  95.           BegForUsage();
  96.           break;
  97.         case ERROR_FINDFILE:
  98.           fprintf(stderr, "That file cannot be found.\n");
  99.           break;
  100.         case ERROR_CREATEFILE:
  101.           fprintf(stderr, "That file cannot be created.\n");
  102.           break;
  103.         case ERROR_READFILE:
  104.           fprintf(stderr, "Error while reading the file!\n");
  105.           break;
  106.         case ERROR_WRITEFILE:
  107.           fprintf(stderr, "Error while writing the file!\n");
  108.           break;
  109.         case ERROR_NUMARGS:
  110.           fprintf(stderr, "Wrong number of arguments.\n");
  111.           BegForUsage();
  112.           break;
  113.         case ERROR_FAILED:
  114.           fprintf(stderr, "The patch transmission FAILED.\n");
  115.           break;
  116.         case ERROR_FILESIZE:
  117.           fprintf(stderr, "Your file has an illegal size.\n");
  118.           break;
  119.         case ERROR_CTRLC:
  120.           fprintf(stderr, "You typed ^C to stop the program.\n");
  121.           break;
  122.         case ERROR_GETFAILED:
  123.           fprintf(stderr, "I could not read the data.\n");
  124.           break;
  125.         case ERROR_PUTFAILED_SEND:
  126.           fprintf(stderr, "I could not send the data.\n");
  127.           break;
  128.         case ERROR_PUTFAILED_SAVE:
  129.           fprintf(stderr, "I could not save the data.\n");
  130.           break;
  131.         case ERROR_NOTSYSEX:
  132.           fprintf(stderr,
  133.             "This data is missing a begin-system-exclusive byte.\n");
  134.           break;
  135.         case ERROR_NOTOBERHEIM:
  136.           fprintf(stderr, "This system exclusive data is not from an"
  137.                   " Oberheim synth.");
  138.           break;
  139.         case ERROR_NOTXPMATRIX:
  140.           fprintf(stderr,
  141.              "This Oberheim system exclusive data is from "
  142.              " neither an Xpander\nnor a Matrix-12");
  143.           break;
  144.         case ERROR_NOTPATCHDATA:
  145.           fprintf(stderr,
  146.          "This Oberheim system exclusive data is not a patch dump.\n");
  147.           break;
  148.         case ERROR_UNKNOWNVOICEDATA:
  149.           fprintf(stderr, 
  150.             "This Oberheim patch is neither a single nor a"
  151.             " multi patch");
  152.           break;
  153.         case ERROR_NOEOX:
  154.           fprintf(stderr, "This Oberheim patch data is missing an"
  155.                   " end-of-system-exclusive byte");
  156.           break;
  157.         case ERROR_DATATOOBIG:
  158.           fprintf(stderr, "Too much data was found.\n");
  159.           break;
  160.         case ERROR_DATATOOSMALL:
  161.           fprintf(stderr, "Not enough data was found.\n");
  162.           break;
  163.         case ERROR_CREATEPORT:
  164.           fprintf(stderr, "Cannot create a message port.\n");
  165.           break;
  166.         case ERROR_IOEXTSER:
  167.           fprintf(stderr, "Cannot create an extended I/O request.\n");
  168.           break;
  169.         case ERROR_OPENDEVICE:
  170.           fprintf(stderr, "Cannot open the MIDI device.\n");
  171.           break;
  172.         case ERROR_SETPARAMS:
  173.           fprintf(stderr, "Cannot set the serial parameters.\n");
  174.           break;
  175.         case ERROR_OBDEVICE:
  176.           fprintf(stderr,
  177.             "Your MIDI device name (in variable "
  178.             ENVIRONMENT_VAR
  179.             ") is missing a\ncolon and/or a unit number.\n");
  180.           break;
  181.         case ERROR_OBUNIT:
  182.           fprintf(stderr, 
  183.             "Your MIDI device unit number (in variable "
  184.             ENVIRONMENT_VAR
  185.             ") must be\nan integer.\n");
  186.           break;
  187.         case ERROR_MALLOC:
  188.           fprintf(stderr, "Not enough memory.\n");
  189.           break;
  190.         case ERROR_TWOPRINTS:
  191.               fprintf(stderr,
  192.             "You specified more than 1 output option.\n");
  193.           break;
  194.         case ERROR_NODEST:
  195.           fprintf(stderr, "You did not specify a destination.\n");
  196.           break;
  197.         case ERROR_REALNAMESFILEONLY:
  198.           fprintf(stderr,
  199.             "The -%c option requires the -%c option.\n",
  200.             OPT_USEREALNAMES, OPT_FILE);
  201.           break;
  202.         case ERROR_OVERWRITEFILEONLY:
  203.           fprintf(stderr,
  204.             "The -%c option requires the -%c option.\n",
  205.             OPT_OVERWRITE, OPT_FILE);
  206.           break;
  207.         default:
  208.           fprintf(stderr, "An unknown error (code %d) occurred.\n",
  209.             code);
  210.           break;
  211.     }
  212. }
  213.