ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/panim.c
(Generate patch)

Comparing ray/src/px/panim.c (file contents):
Revision 1.4 by greg, Fri Jan 26 08:17:35 1990 UTC vs.
Revision 1.6 by greg, Thu Apr 5 13:58:45 1990 UTC

# Line 11 | Line 11 | static char SCCSid[] = "$SunId$ LBL";
11   */
12  
13   #include <stdio.h>
14 #include <rasterfile.h>
14  
15   #include "random.h"
16   #include "color.h"
# Line 20 | Line 19 | static char SCCSid[] = "$SunId$ LBL";
19  
20   #define GAMMA           2.0             /* gamma correction factor */
21  
22 + FILE    *popen();
23 +
24 + char    *pcom = NULL;                   /* pipe command */
25 +
26   BYTE    gammamap[256];                  /* gamma correction table */
27  
28  
# Line 35 | Line 38 | char   *argv[];
38          for (progname = *argv++; --argc; argv++)
39                  if (!strcmp(*argv, "-p") && argv[1]) {
40                          port = atoi(*++argv); argc--;
41 +                } else if (!strcmp(*argv, "-u") && argv[1]) {
42 +                        pcom = *++argv; argc--;
43                  } else
44                          break;
45          if (!argc) {
46                  fputs("Usage: ", stderr);
47                  fputs(progname, stderr);
48 <                fputs(" [-p port] hostname [-c copies][-r record] [frame] ..\n",
48 >                fputs(" [-p port] [-u uncompress] hostname [-c copies][-r record] [frame] ..\n",
49                                  stderr);
50                  exit(1);
51          }
# Line 71 | Line 76 | char   *argv[];
76   sendframe(file)                 /* convert and send a frame */
77   char    *file;
78   {
79 +        char    command[128];
80          COLR    scanin[SCANLINE];
81          int     xres, yres;
82          int     xbeg, ybeg;
# Line 79 | Line 85 | char   *file;
85          register int    x;
86                                                  /* open file */
87          if (file == NULL) {
88 <                fp = stdin;
88 >                if (pcom != NULL)
89 >                        fp = popen(pcom, "r");
90 >                else
91 >                        fp = stdin;
92                  file = "<stdin>";
93 <        } else if ((fp = fopen(file, "r")) == NULL) {
93 >        } else {
94 >                if (pcom != NULL) {
95 >                        sprintf(command, "( %s ) < %s", pcom, file);
96 >                        fp = popen(command, "r");
97 >                } else
98 >                        fp = fopen(file, "r");
99 >        }
100 >        if (fp == NULL) {
101                  perror(file);
102                  exit(1);
103          }
# Line 115 | Line 131 | char   *file;
131                                                  /* send frame */
132          scry_send_frame();
133                                                  /* close file */
134 <        fclose(fp);
134 >        if (pcom != NULL)
135 >                pclose(fp);
136 >        else
137 >                fclose(fp);
138   }
139  
140  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines