fix syntax warnings and errors
[fbvnc.git] / graphics.c
blob76df173a5c9a011550b45e2db98a38983c487eeb
1 /* Graficke funkcie pre vdt52s */
2 /* */
4 #include "parita.h"
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #include <unistd.h>
10 #include "vt52vnc.h"
12 #define ESC 0x1b
14 #define PAR(x) ((x) | (128-parity_table[(x) & 0x7f]))
16 #define HIGH_Y(n) (PAR(0x20|(n)))
17 #define LOW_Y(n) (PAR(0x60|(n)))
18 #define HIGH_X(n) (PAR(0x20|(n)))
19 #define LOW_X(n) (PAR(0x40|(n)))
22 unsigned long bytes_sent = 0;
24 void gflush( t_kanal *k )
26 write(1,k->outbuf,k->pos);
27 bytes_sent+=k->pos;
28 k->pos=0;
30 void gputc( t_kanal *k, char c )
32 k->outbuf[(k->pos)++]=c;
33 if( k->pos >=BUFLEN )
34 gflush(k);
36 #define gputcesc(k,c) {gputc((k),ESC);gputc((k),(c));}
38 void greset( t_kanal *k )
40 gputcesc(k,'0');
43 void gcls( t_kanal *k )
45 gputc(k,13);
46 gputc(k,10);
47 gputcesc(k,'E');
50 void gset_scaling( t_kanal *k, int xfactor, int yfactor )
52 gputc(k,0x1d);
53 gputc(k,ESC);
54 gputc(k,'s');
55 gputc(k,PAR(0x40|xfactor));
56 gputc(k,PAR(0x40|yfactor));
59 void gset_attrib( t_kanal *k, int attrib )
61 if( attrib&GA_OR )
62 gputcesc(k,0x12)
63 else if( attrib&GA_XOR )
64 gputcesc(k,0x13)
65 if( attrib&GA_DEL )
66 gputcesc(k,0x11)
67 if( attrib&GA_PATTERN )
68 gputcesc(k,0x14)
71 void gsetpos( t_kanal *k, int x, int y )
73 gputc(k,0x1d);
74 gputc(k,HIGH_Y((y>>5)));
75 gputc(k,LOW_Y((y&0x1f)));
76 gputc(k,HIGH_X((x>>5)));
77 gputc(k,LOW_X((x&0x1f)));
80 void gline( t_kanal *k ,int x1,int y1, int x2, int y2 )
82 gputc(k,0x1d);
83 gputc(k,HIGH_Y((y1>>5)));
84 gputc(k,LOW_Y((y1&0x1f)));
85 gputc(k,HIGH_X((x1>>5)));
86 gputc(k,LOW_X((x1&0x1f)));
87 gputc(k,HIGH_Y((y2>>5)));
88 gputc(k,LOW_Y((y2&0x1f)));
89 gputc(k,HIGH_X((x2>>5)));
90 gputc(k,LOW_X((x2&0x1f)));
93 void gdrawto( t_kanal *k ,int x,int y )
95 gputc(k,0x1d);
96 gputc(k,7);
97 gputc(k,HIGH_Y((y>>5)));
98 gputc(k,LOW_Y((y&0x1f)));
99 gputc(k,HIGH_X((x>>5)));
100 gputc(k,LOW_X((x&0x1f)));
103 void gplot( t_kanal *k ,int x,int y )
105 gputc(k,0x1d);
106 gputc(k,HIGH_Y((y>>5)));
107 gputc(k,LOW_Y((y&0x1f)));
108 gputc(k,HIGH_X((x>>5)));
109 gputc(k,LOW_X((x&0x1f)));
110 gputc(k,LOW_X((x&0x1f)));
113 void gpline( t_kanal *k , t_pos *pos, int num )
114 { int i;
115 gputc(k,0x1d);
116 for(i=0;i<num;i++)
117 { gputc(k,HIGH_Y(((pos[i].y)>>5)));
118 gputc(k,LOW_Y(((pos[i].y)&0x1f)));
119 gputc(k,HIGH_X(((pos[i].x)>>5)));
120 gputc(k,LOW_X(((pos[i].x)&0x1f)));
124 unsigned long get_stat(void)
126 unsigned long tmp = bytes_sent;
127 bytes_sent = 0;
128 return tmp;