home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 1998 October / STC_CD_10_1998.iso / ONLINE / DFUE / STARFAX / FDDKIT_FTQ / C / FAXFUN.C < prev   
C/C++ Source or Header  |  1998-09-26  |  3KB  |  141 lines

  1. #include <stdio.h>;
  2. #include <faxdrive.h>;
  3. #include <tos.h>;
  4.  
  5.  
  6. /*
  7.     ===============================================================
  8.     Einige C-Funktionen um Faxe zu erstellen.
  9.     GFA-Basic & Pascal a.A.
  10.     arbeitet mit STarFax, Q-Fax und kompatiblem.
  11.  
  12.     Datum: 21.12.97, 04.01.98
  13.     Autor: Ingo Linkweiler, Marktstr. 48, 45711 Datteln.
  14.  
  15.     Diese Sourcen sind Bestandteil der STARCALL / STARFAX Software.
  16.     Die Nutzung ist kostenlos.
  17.     ===============================================================
  18. */
  19.  
  20.  
  21.  
  22. /*    Erstellt ein neues Fax im Sendeverzeichnis.
  23.     filename ohne Pfadangabe und ohne Extension, es wird
  24.     automatisch .F01 usw. verwendet.
  25.     Diese Funktion muss immer zuerst aufgerufen werden
  26.     Rückgabe: >=0 OK, <0 Fehler.
  27. */
  28. int fax_create(char *filename)
  29. {
  30.     return faxdrive(1,filename,0,0);
  31. };
  32.  
  33.  
  34.  
  35. /*    Schreibe Bitmapdaten
  36.     adress: Zeigt auf Bitmap
  37.     offset: Länge einer Pixelzeile in Bytes, üblich: 216 byte
  38.     lines : Anzahl Pixelzeilen
  39.     Rückgabe: >=0 OK, <0 bei Fehler.
  40. */
  41.  
  42. int fax_bitmap(void *adress,int offset,int lines)
  43. {
  44.     return faxdrive(2,adress,offset,lines);
  45. };
  46.  
  47.  
  48. /*    Schreibt eine Pixelzeile von 1728 Pixel,
  49.     writebitmap ist allerdings etwas schneller.
  50.     Achtung: links und rechts soltle man min. 64 Pixel Rand
  51.     lassen, wird auf Papierfaxen sonst oft nicht gedruckt.
  52.     Rückgabe: >=0 OK.
  53. */
  54.  
  55. int fax_pixelline(void *adress)
  56. {
  57.     return faxdrive(2,adress,216,1);
  58. };
  59.  
  60.  
  61. /*    Einfügen einer bestehenden Faxdatei.
  62.     Der Filename DARF mit Pfad sein, sonst Sendepfad.
  63.     Rückgabe: >=0 OK
  64. */
  65. void fax_merge(char *filename)
  66. {
  67.     faxdrive(3,filename,3,0);
  68. };
  69.  
  70. /*    Schliesst die mit fax_create erstellte Datei.
  71.     Rückgabe: >=0 wenn OK, sonst Fehler.
  72.  */
  73. int fax_close()
  74. {
  75.     return faxdrive(4,0,0,0);
  76. };
  77.  
  78. /*    Oeffnet Datei nach close, um weitere Daten anzuhängen.
  79.     Rückgabe: >=0 wenn OK, sonst Fehler.
  80.  */
  81.  
  82. int fax_reopen()
  83. {
  84.     return faxdrive(5,0,0,0);
  85. };
  86.  
  87. /*    Erstellt wie fax_create eine neue Datei.
  88.     Dabei wird der Dateiindex um 1 erhöht, z.B. für mehrseitige
  89.     Dokumente, um eine neue Seite anzufangen.
  90.     Die alte Datei mu₧ vorher mit fax_close geschlossen werden.
  91.     Rückgabe: >=0 wenn OK, sonst Fehler.
  92.  */
  93.  
  94. int fax_nextpage()
  95. {
  96.     return faxdrive(6,0,0,0);
  97. };
  98.  
  99.  
  100.  
  101. /*
  102. ===========================================================
  103. TEST! TEST! TEST! TEST! TEST! TEST! TEST! TEST! TEST! TEST!
  104. ===========================================================
  105. */
  106.  
  107. char *dateiname="NONAME";
  108. char *logo="E:\\STARFAX\\FAXE.OUT\\FAX_LOGO.FAH";
  109. char *bitmap,*p;
  110. int x;
  111. int result,e;
  112. void main()
  113. {    bitmap=Malloc(256*16+4);        /* Etwas RAM */
  114.     p=bitmap;
  115.  
  116.     for (x=0; x<256*16; x++)        /* vertikale Streifen. */
  117.     {
  118.         *p++ = 15;
  119.     }
  120.  
  121.     result=fax_create(dateiname);    /* Erste Seite erstellen */
  122.     if (result==0)
  123.     {    fax_merge(logo);                /* Logo hinzuladen */
  124.         fax_bitmap(bitmap,256,16);        /* Bitmap schreiben */
  125.         fax_close;                        /* fertig */
  126.  
  127.         result=fax_nextpage();            /* Weitere Seiten */
  128.         fax_bitmap(bitmap,256,16);        /* Bitmap schreiben */
  129.         fax_close;                        /* fertig */
  130.  
  131.         printf("OK!");
  132.     };
  133.  
  134.     if (result!=0)
  135.     {
  136.         printf("Error # %i \n",result);
  137.     };
  138.  
  139.     Mfree(bitmap);
  140. };
  141.