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
Wrap
C/C++ Source or Header
|
1998-09-26
|
3KB
|
141 lines
#include <stdio.h>;
#include <faxdrive.h>;
#include <tos.h>;
/*
===============================================================
Einige C-Funktionen um Faxe zu erstellen.
GFA-Basic & Pascal a.A.
arbeitet mit STarFax, Q-Fax und kompatiblem.
Datum: 21.12.97, 04.01.98
Autor: Ingo Linkweiler, Marktstr. 48, 45711 Datteln.
Diese Sourcen sind Bestandteil der STARCALL / STARFAX Software.
Die Nutzung ist kostenlos.
===============================================================
*/
/* Erstellt ein neues Fax im Sendeverzeichnis.
filename ohne Pfadangabe und ohne Extension, es wird
automatisch .F01 usw. verwendet.
Diese Funktion muss immer zuerst aufgerufen werden
Rückgabe: >=0 OK, <0 Fehler.
*/
int fax_create(char *filename)
{
return faxdrive(1,filename,0,0);
};
/* Schreibe Bitmapdaten
adress: Zeigt auf Bitmap
offset: Länge einer Pixelzeile in Bytes, üblich: 216 byte
lines : Anzahl Pixelzeilen
Rückgabe: >=0 OK, <0 bei Fehler.
*/
int fax_bitmap(void *adress,int offset,int lines)
{
return faxdrive(2,adress,offset,lines);
};
/* Schreibt eine Pixelzeile von 1728 Pixel,
writebitmap ist allerdings etwas schneller.
Achtung: links und rechts soltle man min. 64 Pixel Rand
lassen, wird auf Papierfaxen sonst oft nicht gedruckt.
Rückgabe: >=0 OK.
*/
int fax_pixelline(void *adress)
{
return faxdrive(2,adress,216,1);
};
/* Einfügen einer bestehenden Faxdatei.
Der Filename DARF mit Pfad sein, sonst Sendepfad.
Rückgabe: >=0 OK
*/
void fax_merge(char *filename)
{
faxdrive(3,filename,3,0);
};
/* Schliesst die mit fax_create erstellte Datei.
Rückgabe: >=0 wenn OK, sonst Fehler.
*/
int fax_close()
{
return faxdrive(4,0,0,0);
};
/* Oeffnet Datei nach close, um weitere Daten anzuhängen.
Rückgabe: >=0 wenn OK, sonst Fehler.
*/
int fax_reopen()
{
return faxdrive(5,0,0,0);
};
/* Erstellt wie fax_create eine neue Datei.
Dabei wird der Dateiindex um 1 erhöht, z.B. für mehrseitige
Dokumente, um eine neue Seite anzufangen.
Die alte Datei mu₧ vorher mit fax_close geschlossen werden.
Rückgabe: >=0 wenn OK, sonst Fehler.
*/
int fax_nextpage()
{
return faxdrive(6,0,0,0);
};
/*
===========================================================
TEST! TEST! TEST! TEST! TEST! TEST! TEST! TEST! TEST! TEST!
===========================================================
*/
char *dateiname="NONAME";
char *logo="E:\\STARFAX\\FAXE.OUT\\FAX_LOGO.FAH";
char *bitmap,*p;
int x;
int result,e;
void main()
{ bitmap=Malloc(256*16+4); /* Etwas RAM */
p=bitmap;
for (x=0; x<256*16; x++) /* vertikale Streifen. */
{
*p++ = 15;
}
result=fax_create(dateiname); /* Erste Seite erstellen */
if (result==0)
{ fax_merge(logo); /* Logo hinzuladen */
fax_bitmap(bitmap,256,16); /* Bitmap schreiben */
fax_close; /* fertig */
result=fax_nextpage(); /* Weitere Seiten */
fax_bitmap(bitmap,256,16); /* Bitmap schreiben */
fax_close; /* fertig */
printf("OK!");
};
if (result!=0)
{
printf("Error # %i \n",result);
};
Mfree(bitmap);
};