home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0400 / CCE_0406.ZIP / CCE_0406.PD / FAX_DEV.KIT / TXT_FAX.C < prev    next >
C/C++ Source or Header  |  1992-03-08  |  1KB  |  71 lines

  1. /*
  2. *        FILE:        TXT_FAX.C
  3. *
  4. *        Demo für Faxausgabe mit TeleOffice
  5. */
  6.  
  7. #include <tos.h>
  8. #include <stdio.h>
  9. #include <string.h>
  10.  
  11. #include "fax_out.h"
  12.  
  13. #define MAX_BUF    128
  14.  
  15. FAX_OUTPUT *fxout;
  16.  
  17. int init_fxout( void  )
  18. {
  19.     long oldsp=0L;
  20.     struct cookie *cptr;
  21.  
  22.     if( Super((void *)1L)==0 ) oldsp = Super( NULL );
  23.     cptr = *(struct cookie **)0x5a0;
  24.     if( oldsp ) Super( (void *)oldsp );
  25.     fxout=NULL;
  26.     if( cptr == NULL ) return -1;    /* altes TOS ohne Cookie Jar! */
  27.     while( cptr->c ){
  28.         if( cptr->c == FAX_COOKIE ) {        /* gefunden */
  29.             fxout = (FAX_OUTPUT *)cptr->v;
  30.             if( fxout->fax_ready==1 ) return 0;
  31.             fxout=NULL;
  32.             return -2;
  33.         }
  34.         cptr++;
  35.     }
  36.     return -1;
  37. }
  38.  
  39. void txt_fax( char *filename )
  40. {
  41.     FILE *fp;
  42.     char buf[MAX_BUF];
  43.     
  44.     if((fp = fopen( filename,"r" ))==NULL) return;
  45.     while( !feof(fp) ) {
  46.         fgets(buf,MAX_BUF,fp);
  47.         (*fxout->txt_out)( buf ); /* Zeile ausgeben */
  48.         (*fxout->lf)( );          /* und den Zeilenvorschub nicht vergessen */
  49.         if( fxout->txt_line == fxout->tot_txtlines ) { /* Seitenende erreicht */
  50.             (*fxout->page_break)();
  51.         }
  52.     }
  53.     fclose( fp );
  54. }
  55.  
  56.  
  57. int main( int argc, char **argv )
  58. {
  59.     if( init_fxout( ) ) return 1;
  60.  
  61.     (*fxout->init_app)(1,0,0,0);
  62.         
  63.     while( --argc ) {
  64.         argv++;
  65.         txt_fax( *argv );
  66.     }
  67.     (*fxout->ff)();
  68.     (*fxout->exit_app)();
  69.     return 0;
  70. }
  71.