GRASS Programmer's Manual  6.5.svn(2014)-r66266
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
rem_proto.c
Go to the documentation of this file.
1 #include <grass/config.h>
2 
3 #ifdef HAVE_SOCKET
4 
5 #include <stdio.h>
6 #include <string.h>
7 
8 #include <sys/types.h>
9 #include <sys/stat.h>
10 #include <fcntl.h>
11 #include <unistd.h>
12 
13 #include <grass/gis.h>
14 #include <grass/raster.h>
15 #include <grass/graphics.h>
16 
17 #include "transport.h"
18 
28 int REM_screen_left(void)
29 {
30  int l;
31 
32  _send_ident(SCREEN_LEFT);
33  _get_int(&l);
34  return l;
35 }
36 
46 int REM_screen_rite(void)
47 {
48  int r;
49 
50  _send_ident(SCREEN_RITE);
51  _get_int(&r);
52  return r;
53 }
54 
55 
65 int REM_screen_bot(void)
66 {
67  int b;
68 
69  _send_ident(SCREEN_BOT);
70  _get_int(&b);
71  return b;
72 }
73 
74 
84 int REM_screen_top(void)
85 {
86  int t;
87 
88  _send_ident(SCREEN_TOP);
89  _get_int(&t);
90  return t;
91 }
92 
93 void REM_get_num_colors(int *n)
94 {
95  _send_ident(GET_NUM_COLORS);
96  _get_int(n);
97 }
98 
110 void REM_standard_color(int index)
111 {
112  _send_ident(STANDARD_COLOR);
113  _send_int(&index);
114 }
115 
129 void REM_RGB_color(unsigned char red, unsigned char grn, unsigned char blu)
130 {
131  _send_ident(RGB_COLOR);
132  _send_char(&red);
133  _send_char(&grn);
134  _send_char(&blu);
135 }
136 
145 void REM_line_width(int width)
146 {
147  _send_ident(LINE_WIDTH);
148  _send_int(&width);
149 }
150 
159 void REM_erase(void)
160 {
161  _send_ident(ERASE);
162 }
163 
174 void REM_move_abs(int x, int y)
175 {
176  _send_ident(MOVE_ABS);
177  _send_int(&x);
178  _send_int(&y);
179 }
180 
195 void REM_move_rel(int x, int y)
196 {
197  _send_ident(MOVE_REL);
198  _send_int(&x);
199  _send_int(&y);
200 }
201 
213 void REM_cont_abs(int x, int y)
214 {
215  _send_ident(CONT_ABS);
216  _send_int(&x);
217  _send_int(&y);
218 }
219 
236 void REM_cont_rel(int x, int y)
237 {
238  _send_ident(CONT_REL);
239  _send_int(&x);
240  _send_int(&y);
241 }
242 
255 void REM_polydots_abs(const int *xarray, const int *yarray, int number)
256 {
257  _send_ident(POLYDOTS_ABS);
258  _send_int(&number);
259  _send_int_array(number, xarray);
260  _send_int_array(number, yarray);
261 }
262 
277 void REM_polydots_rel(const int *xarray, const int *yarray, int number)
278 {
279  _send_ident(POLYDOTS_REL);
280  _send_int(&number);
281  _send_int_array(number, xarray);
282  _send_int_array(number, yarray);
283 }
284 
300 void REM_polyline_abs(const int *xarray, const int *yarray, int number)
301 {
302  _send_ident(POLYLINE_ABS);
303  _send_int(&number);
304  _send_int_array(number, xarray);
305  _send_int_array(number, yarray);
306 }
307 
324 void REM_polyline_rel(const int *xarray, const int *yarray, int number)
325 {
326  _send_ident(POLYLINE_REL);
327  _send_int(&number);
328  _send_int_array(number, xarray);
329  _send_int_array(number, yarray);
330 }
331 
344 void REM_polygon_abs(const int *xarray, const int *yarray, int number)
345 {
346  _send_ident(POLYGON_ABS);
347  _send_int(&number);
348  _send_int_array(number, xarray);
349  _send_int_array(number, yarray);
350 }
351 
366 void REM_polygon_rel(const int *xarray, const int *yarray, int number)
367 {
368  _send_ident(POLYGON_REL);
369  _send_int(&number);
370  _send_int_array(number, xarray);
371  _send_int_array(number, yarray);
372 }
373 
387 void REM_box_abs(int x1, int y1, int x2, int y2)
388 {
389  _send_ident(BOX_ABS);
390  _send_int(&x1);
391  _send_int(&y1);
392  _send_int(&x2);
393  _send_int(&y2);
394 }
395 
396 
408 void REM_box_rel(int x, int y)
409 {
410  _send_ident(BOX_REL);
411  _send_int(&x);
412  _send_int(&y);
413 }
414 
424 void REM_text_size(int width, int height)
425 {
426  _send_ident(TEXT_SIZE);
427  _send_int(&width);
428  _send_int(&height);
429 }
430 
431 void REM_text_rotation(float rotation)
432 {
433  _send_ident(TEXT_ROTATION);
434  _send_float(&rotation);
435 }
436 
449 void REM_set_window(int t, int b, int l, int r)
450 {
451  _send_ident(SET_WINDOW);
452  _send_int(&t);
453  _send_int(&b);
454  _send_int(&l);
455  _send_int(&r);
456 }
457 
467 void REM_text(const char *sometext)
468 {
469  _send_ident(TEXT);
470  _send_text(sometext);
471 }
472 
489 void REM_get_text_box(const char *sometext, int *t, int *b, int *l, int *r)
490 {
491  _send_ident(GET_TEXT_BOX);
492  _send_text(sometext);
493  _get_int(t);
494  _get_int(b);
495  _get_int(l);
496  _get_int(r);
497 }
498 
530 void REM_font(const char *name)
531 {
532  _send_ident(FONT);
533  _send_text(name);
534 }
535 
536 void REM_charset(const char *name)
537 {
538  _send_ident(CHARSET);
539  _send_text(name);
540 }
541 
542 static void font_list(char ***list, int *count, int op)
543 {
544  char **fonts;
545  int num_fonts;
546  int i;
547 
548  _send_ident(op);
549  _get_int(&num_fonts);
550 
551  fonts = G_malloc(num_fonts * sizeof(char *));
552  for (i = 0; i < num_fonts; i++)
553  fonts[i] = G_store(_get_text_2());
554 
555  *list = fonts;
556  *count = num_fonts;
557 }
558 
559 void REM_font_list(char ***list, int *count)
560 {
561  font_list(list, count, FONT_LIST);
562 }
563 
564 void REM_font_info(char ***list, int *count)
565 {
566  font_list(list, count, FONT_INFO);
567 }
568 
569 void REM_panel_save(const char *name, int t, int b, int l, int r)
570 {
571  close(creat(name, 0666));
572 
573  _send_ident(PANEL_SAVE);
574  _send_text(name);
575  _send_int(&t);
576  _send_int(&b);
577  _send_int(&l);
578  _send_int(&r);
579  R_stabilize();
580 }
581 
582 void REM_panel_restore(const char *name)
583 {
584  _send_ident(PANEL_RESTORE);
585  _send_text(name);
586  R_stabilize();
587 }
588 
589 void REM_panel_delete(const char *name)
590 {
591  _send_ident(PANEL_DELETE);
592  _send_text(name);
593  R_stabilize();
594 
595  unlink(name);
596 }
597 
598 void REM_begin_scaled_raster(int mask, int src[2][2], int dst[2][2])
599 {
600  _send_ident(BEGIN_SCALED_RASTER);
601  _send_int(&mask);
602  _send_int_array(4, &src[0][0]);
603  _send_int_array(4, &dst[0][0]);
604 }
605 
606 int REM_scaled_raster(int n, int row,
607  const unsigned char *red, const unsigned char *grn,
608  const unsigned char *blu, const unsigned char *nul)
609 {
610  int z = !!nul;
611  int t;
612 
613  _send_ident(SCALED_RASTER);
614  _send_int(&n);
615  _send_int(&row);
616  _send_char_array(n, red);
617  _send_char_array(n, grn);
618  _send_char_array(n, blu);
619  _send_char_array(n, nul ? nul : red);
620  _send_int(&z);
621  _get_int(&t);
622  return t;
623 }
624 
625 void REM_end_scaled_raster(void)
626 {
627  _send_ident(END_SCALED_RASTER);
628 }
629 
630 void REM_bitmap(int ncols, int nrows, int threshold, const unsigned char *buf)
631 {
632  _send_ident(BITMAP);
633  _send_int(&ncols);
634  _send_int(&nrows);
635  _send_int(&threshold);
636  _send_char_array(ncols * nrows, buf);
637 }
638 
639 #endif /* HAVE_SOCKET */
void REM_standard_color(int index)
void REM_set_window(int t, int b, int l, int r)
void REM_polygon_abs(const int *xarray, const int *yarray, int number)
int REM_screen_left(void)
int l
Definition: dataquad.c:292
float b
Definition: named_colr.c:8
char * G_store(const char *s)
Copy string to allocated memory.
Definition: store.c:32
void REM_polyline_rel(const int *xarray, const int *yarray, int number)
int REM_screen_top(void)
int REM_screen_bot(void)
void R_stabilize(void)
Definition: com_io.c:193
string name
Definition: render.py:1314
float r
Definition: named_colr.c:8
void REM_get_num_colors(int *n)
void REM_line_width(int width)
tuple width
void REM_font(const char *name)
void REM_text(const char *text)
int count
void REM_cont_rel(int x, int y)
void REM_panel_restore(const char *name)
void REM_move_rel(int x, int y)
void REM_font_info(char ***list, int *count)
void REM_font_list(char ***list, int *count)
int y
Definition: plot.c:34
void REM_polyline_abs(const int *xarray, const int *yarray, int number)
void REM_RGB_color(unsigned char red, unsigned char grn, unsigned char blu)
void REM_begin_scaled_raster(int mask, int src[2][2], int dst[2][2])
void REM_cont_abs(int x, int y)
void REM_panel_delete(const char *name)
void REM_text_size(int width, int height)
void REM_move_abs(int x, int y)
void REM_bitmap(int ncols, int nrows, int threshold, const unsigned char *buf)
void REM_box_rel(int x, int y)
int REM_screen_rite(void)
void REM_box_abs(int x1, int y1, int x2, int y2)
void REM_polydots_abs(const int *xarray, const int *yarray, int number)
char buf[GNAME_MAX+sizeof(G3D_DIRECTORY)+2]
Definition: g3drange.c:62
void REM_charset(const char *name)
void REM_polygon_rel(const int *xarray, const int *yarray, int number)
void REM_end_scaled_raster(void)
void REM_text_rotation(float rotation)
void REM_polydots_rel(const int *xarray, const int *yarray, int number)
int REM_scaled_raster(int n, int row, const unsigned char *red, const unsigned char *grn, const unsigned char *blu, const unsigned char *nul)
int height
int n
Definition: dataquad.c:291
void REM_get_text_box(const char *text, int *t, int *b, int *l, int *r)
void REM_erase(void)
void REM_panel_save(const char *name, int t, int b, int l, int r)