860e91ba85e0070b3deb854f8a8e9952bceca480
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c   1) /* BlinkenLib
BlinkenLib/BlinkenDeviceOutput.c   2)    Copyright 2004-2014 Stefan Schuermans <stefan@schuermans.info>
BlinkenLib/BlinkenDeviceOutput.c   3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
BlinkenLib/BlinkenDeviceOutput.c   4)    a blinkenarea.org project */
BlinkenLib/BlinkenDeviceOutput.c   5) /* OS X support by Manfred Wuits
BlinkenLib/BlinkenDeviceOutput.c   6)    <manfred@werkzeugH.at> */
BlinkenLib/BlinkenDeviceOutput.c   7) 
BlinkenLib/BlinkenDeviceOutput.c   8) #include <errno.h>
BlinkenLib/BlinkenDeviceOutput.c   9) #include <fcntl.h>
BlinkenLib/BlinkenDeviceOutput.c  10) #include <stdio.h>
BlinkenLib/BlinkenDeviceOutput.c  11) #include <stdlib.h>
BlinkenLib/BlinkenDeviceOutput.c  12) #include <string.h>
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c       13) #include <sys/time.h>
tools/BlinkenDeviceOutput.c       14) #include <sys/types.h>
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c  15) #include <termios.h>
BlinkenLib/BlinkenDeviceOutput.c  16) #include <time.h>
BlinkenLib/BlinkenDeviceOutput.c  17) #include <unistd.h>
BlinkenLib/BlinkenDeviceOutput.c  18) 
BlinkenLib/BlinkenDeviceOutput.c  19) #include <BlinkenLib/BlinkenLib.h>
BlinkenLib/BlinkenDeviceOutput.c  20) 
BlinkenLib/BlinkenDeviceOutput.c  21) // get serial settings from text
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c       22) static int serial_settings_parse(char *str, int *settings, int *speed) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c  23)   int baud, data, stop;
BlinkenLib/BlinkenDeviceOutput.c  24)   char parity;
BlinkenLib/BlinkenDeviceOutput.c  25)   int set = 0, sp = 0;
BlinkenLib/BlinkenDeviceOutput.c  26) 
BlinkenLib/BlinkenDeviceOutput.c  27)   // split and parse settings string
BlinkenLib/BlinkenDeviceOutput.c  28)   if (sscanf(str, "%i,%c,%i,%i", &baud, &parity, &data, &stop) != 4)
BlinkenLib/BlinkenDeviceOutput.c  29)     return 0;
BlinkenLib/BlinkenDeviceOutput.c  30) 
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c       31)     // baud rate
tools/BlinkenDeviceOutput.c       32) #define BAUD(rate) else if (baud == rate) sp = B##rate;
tools/BlinkenDeviceOutput.c       33)   if (0) {
tools/BlinkenDeviceOutput.c       34)   }
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c  35)   BAUD(300)
BlinkenLib/BlinkenDeviceOutput.c  36)   BAUD(600)
BlinkenLib/BlinkenDeviceOutput.c  37)   BAUD(1200)
BlinkenLib/BlinkenDeviceOutput.c  38)   BAUD(2400)
BlinkenLib/BlinkenDeviceOutput.c  39)   BAUD(4800)
BlinkenLib/BlinkenDeviceOutput.c  40)   BAUD(9600)
BlinkenLib/BlinkenDeviceOutput.c  41)   BAUD(19200)
BlinkenLib/BlinkenDeviceOutput.c  42)   BAUD(38400)
BlinkenLib/BlinkenDeviceOutput.c  43)   BAUD(57600)
BlinkenLib/BlinkenDeviceOutput.c  44)   BAUD(115200)
BlinkenLib/BlinkenDeviceOutput.c  45) #ifdef B230400
BlinkenLib/BlinkenDeviceOutput.c  46)   BAUD(230400)
BlinkenLib/BlinkenDeviceOutput.c  47) #endif
BlinkenLib/BlinkenDeviceOutput.c  48) #ifdef B460800
BlinkenLib/BlinkenDeviceOutput.c  49)   BAUD(460800)
BlinkenLib/BlinkenDeviceOutput.c  50) #endif
BlinkenLib/BlinkenDeviceOutput.c  51) #ifdef B576000
BlinkenLib/BlinkenDeviceOutput.c  52)   BAUD(576000)
BlinkenLib/BlinkenDeviceOutput.c  53) #endif
BlinkenLib/BlinkenDeviceOutput.c  54) #ifdef B921600
BlinkenLib/BlinkenDeviceOutput.c  55)   BAUD(921600)
BlinkenLib/BlinkenDeviceOutput.c  56) #endif
BlinkenLib/BlinkenDeviceOutput.c  57) #ifdef B1000000
BlinkenLib/BlinkenDeviceOutput.c  58)   BAUD(1000000)
BlinkenLib/BlinkenDeviceOutput.c  59) #endif
BlinkenLib/BlinkenDeviceOutput.c  60) #ifdef B1152000
BlinkenLib/BlinkenDeviceOutput.c  61)   BAUD(1152000)
BlinkenLib/BlinkenDeviceOutput.c  62) #endif
BlinkenLib/BlinkenDeviceOutput.c  63) #ifdef B1500000
BlinkenLib/BlinkenDeviceOutput.c  64)   BAUD(1500000)
BlinkenLib/BlinkenDeviceOutput.c  65) #endif
BlinkenLib/BlinkenDeviceOutput.c  66) #ifdef B2000000
BlinkenLib/BlinkenDeviceOutput.c  67)   BAUD(2000000)
BlinkenLib/BlinkenDeviceOutput.c  68) #endif
BlinkenLib/BlinkenDeviceOutput.c  69) #ifdef B2500000
BlinkenLib/BlinkenDeviceOutput.c  70)   BAUD(2500000)
BlinkenLib/BlinkenDeviceOutput.c  71) #endif
BlinkenLib/BlinkenDeviceOutput.c  72) #ifdef B3000000
BlinkenLib/BlinkenDeviceOutput.c  73)   BAUD(3000000)
BlinkenLib/BlinkenDeviceOutput.c  74) #endif
BlinkenLib/BlinkenDeviceOutput.c  75) #ifdef B3500000
BlinkenLib/BlinkenDeviceOutput.c  76)   BAUD(3500000)
BlinkenLib/BlinkenDeviceOutput.c  77) #endif
BlinkenLib/BlinkenDeviceOutput.c  78) #ifdef B4000000
BlinkenLib/BlinkenDeviceOutput.c  79)   BAUD(4000000)
BlinkenLib/BlinkenDeviceOutput.c  80) #endif
BlinkenLib/BlinkenDeviceOutput.c  81)   else {
BlinkenLib/BlinkenDeviceOutput.c  82)     printf("illegal baudrate: %d\n", baud);
BlinkenLib/BlinkenDeviceOutput.c  83)     return 0;
BlinkenLib/BlinkenDeviceOutput.c  84)   }
BlinkenLib/BlinkenDeviceOutput.c  85) 
BlinkenLib/BlinkenDeviceOutput.c  86)   // parity
BlinkenLib/BlinkenDeviceOutput.c  87)   if (parity == 'n' || parity == 'N')
BlinkenLib/BlinkenDeviceOutput.c  88)     set |= 0;
BlinkenLib/BlinkenDeviceOutput.c  89)   else if (parity == 'e' || parity == 'E')
BlinkenLib/BlinkenDeviceOutput.c  90)     set |= PARENB;
BlinkenLib/BlinkenDeviceOutput.c  91)   else if (parity == 'o' || parity == 'O')
BlinkenLib/BlinkenDeviceOutput.c  92)     set |= PARENB | PARODD;
BlinkenLib/BlinkenDeviceOutput.c  93)   else {
BlinkenLib/BlinkenDeviceOutput.c  94)     printf("invalid parity: %c\n", parity);
BlinkenLib/BlinkenDeviceOutput.c  95)     return 0;
BlinkenLib/BlinkenDeviceOutput.c  96)   }
BlinkenLib/BlinkenDeviceOutput.c  97) 
BlinkenLib/BlinkenDeviceOutput.c  98)   // data bits
BlinkenLib/BlinkenDeviceOutput.c  99)   if (data == 5)
BlinkenLib/BlinkenDeviceOutput.c 100)     set |= CS5;
BlinkenLib/BlinkenDeviceOutput.c 101)   else if (data == 6)
BlinkenLib/BlinkenDeviceOutput.c 102)     set |= CS6;
BlinkenLib/BlinkenDeviceOutput.c 103)   else if (data == 7)
BlinkenLib/BlinkenDeviceOutput.c 104)     set |= CS7;
BlinkenLib/BlinkenDeviceOutput.c 105)   else if (data == 8)
BlinkenLib/BlinkenDeviceOutput.c 106)     set |= CS8;
BlinkenLib/BlinkenDeviceOutput.c 107)   else {
BlinkenLib/BlinkenDeviceOutput.c 108)     printf("illegal number of data bits: %d\n", data);
BlinkenLib/BlinkenDeviceOutput.c 109)     return 0;
BlinkenLib/BlinkenDeviceOutput.c 110)   }
BlinkenLib/BlinkenDeviceOutput.c 111) 
BlinkenLib/BlinkenDeviceOutput.c 112)   // stop bits
BlinkenLib/BlinkenDeviceOutput.c 113)   if (stop == 1)
BlinkenLib/BlinkenDeviceOutput.c 114)     set |= 0;
BlinkenLib/BlinkenDeviceOutput.c 115)   else if (stop == 2)
BlinkenLib/BlinkenDeviceOutput.c 116)     set |= CSTOPB;
BlinkenLib/BlinkenDeviceOutput.c 117)   else {
BlinkenLib/BlinkenDeviceOutput.c 118)     printf("illegal number of stop bits: %d\n", stop);
BlinkenLib/BlinkenDeviceOutput.c 119)     return 0;
BlinkenLib/BlinkenDeviceOutput.c 120)   }
BlinkenLib/BlinkenDeviceOutput.c 121) 
BlinkenLib/BlinkenDeviceOutput.c 122)   // success
BlinkenLib/BlinkenDeviceOutput.c 123)   *settings = set;
BlinkenLib/BlinkenDeviceOutput.c 124)   *speed = sp;
BlinkenLib/BlinkenDeviceOutput.c 125)   return 1;
BlinkenLib/BlinkenDeviceOutput.c 126) }
BlinkenLib/BlinkenDeviceOutput.c 127) 
BlinkenLib/BlinkenDeviceOutput.c 128) // convert serial settings to text
BlinkenLib/BlinkenDeviceOutput.c 129) static void serial_settings_to_str(int settings, char *buf,
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      130)                                    unsigned int maxlen) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 131)   int baud, data, stop;
BlinkenLib/BlinkenDeviceOutput.c 132)   char parity;
BlinkenLib/BlinkenDeviceOutput.c 133) 
BlinkenLib/BlinkenDeviceOutput.c 134)   // baud rate
BlinkenLib/BlinkenDeviceOutput.c 135)   if (settings & B300)
BlinkenLib/BlinkenDeviceOutput.c 136)     baud = 300;
BlinkenLib/BlinkenDeviceOutput.c 137)   else if (settings & B600)
BlinkenLib/BlinkenDeviceOutput.c 138)     baud = 600;
BlinkenLib/BlinkenDeviceOutput.c 139)   else if (settings & B1200)
BlinkenLib/BlinkenDeviceOutput.c 140)     baud = 1200;
BlinkenLib/BlinkenDeviceOutput.c 141)   else if (settings & B2400)
BlinkenLib/BlinkenDeviceOutput.c 142)     baud = 2400;
BlinkenLib/BlinkenDeviceOutput.c 143)   else if (settings & B4800)
BlinkenLib/BlinkenDeviceOutput.c 144)     baud = 4800;
BlinkenLib/BlinkenDeviceOutput.c 145)   else if (settings & B9600)
BlinkenLib/BlinkenDeviceOutput.c 146)     baud = 9600;
BlinkenLib/BlinkenDeviceOutput.c 147)   else if (settings & B19200)
BlinkenLib/BlinkenDeviceOutput.c 148)     baud = 19200;
BlinkenLib/BlinkenDeviceOutput.c 149)   else if (settings & B38400)
BlinkenLib/BlinkenDeviceOutput.c 150)     baud = 38400;
BlinkenLib/BlinkenDeviceOutput.c 151)   else if (settings & B57600)
BlinkenLib/BlinkenDeviceOutput.c 152)     baud = 57600;
BlinkenLib/BlinkenDeviceOutput.c 153)   else if (settings & B115200)
BlinkenLib/BlinkenDeviceOutput.c 154)     baud = 115200;
BlinkenLib/BlinkenDeviceOutput.c 155)   else
BlinkenLib/BlinkenDeviceOutput.c 156)     baud = 0;
BlinkenLib/BlinkenDeviceOutput.c 157) 
BlinkenLib/BlinkenDeviceOutput.c 158)   // parity
BlinkenLib/BlinkenDeviceOutput.c 159)   if (settings & PARENB)
BlinkenLib/BlinkenDeviceOutput.c 160)     if (settings & PARODD)
BlinkenLib/BlinkenDeviceOutput.c 161)       parity = 'O';
BlinkenLib/BlinkenDeviceOutput.c 162)     else
BlinkenLib/BlinkenDeviceOutput.c 163)       parity = 'E';
BlinkenLib/BlinkenDeviceOutput.c 164)   else
BlinkenLib/BlinkenDeviceOutput.c 165)     parity = 'N';
BlinkenLib/BlinkenDeviceOutput.c 166) 
BlinkenLib/BlinkenDeviceOutput.c 167)   // data bits
BlinkenLib/BlinkenDeviceOutput.c 168)   if (settings & CS5)
BlinkenLib/BlinkenDeviceOutput.c 169)     data = 5;
BlinkenLib/BlinkenDeviceOutput.c 170)   else if (settings & CS6)
BlinkenLib/BlinkenDeviceOutput.c 171)     data = 6;
BlinkenLib/BlinkenDeviceOutput.c 172)   else if (settings & CS7)
BlinkenLib/BlinkenDeviceOutput.c 173)     data = 7;
BlinkenLib/BlinkenDeviceOutput.c 174)   else if (settings & CS8)
BlinkenLib/BlinkenDeviceOutput.c 175)     data = 8;
BlinkenLib/BlinkenDeviceOutput.c 176)   else
BlinkenLib/BlinkenDeviceOutput.c 177)     data = 0;
BlinkenLib/BlinkenDeviceOutput.c 178) 
BlinkenLib/BlinkenDeviceOutput.c 179)   // stop bits
BlinkenLib/BlinkenDeviceOutput.c 180)   if (settings & CSTOPB)
BlinkenLib/BlinkenDeviceOutput.c 181)     stop = 2;
BlinkenLib/BlinkenDeviceOutput.c 182)   else
BlinkenLib/BlinkenDeviceOutput.c 183)     stop = 1;
BlinkenLib/BlinkenDeviceOutput.c 184) 
BlinkenLib/BlinkenDeviceOutput.c 185)   snprintf(buf, maxlen, "%d,%c,%d,%d", baud, parity, data, stop);
BlinkenLib/BlinkenDeviceOutput.c 186) }
BlinkenLib/BlinkenDeviceOutput.c 187) 
BlinkenLib/BlinkenDeviceOutput.c 188) // set serial settings for fd
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      189) static int serial_settings_set(int fd, int settings, int speed) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 190)   struct termios tio;
BlinkenLib/BlinkenDeviceOutput.c 191) 
BlinkenLib/BlinkenDeviceOutput.c 192)   // set port settings
BlinkenLib/BlinkenDeviceOutput.c 193)   bzero(&tio, sizeof(tio));
BlinkenLib/BlinkenDeviceOutput.c 194)   tio.c_cflag = CLOCAL | HUPCL | CREAD | settings;
BlinkenLib/BlinkenDeviceOutput.c 195)   tio.c_iflag = IGNBRK | IGNPAR;
BlinkenLib/BlinkenDeviceOutput.c 196)   tio.c_oflag = 0;
BlinkenLib/BlinkenDeviceOutput.c 197)   tio.c_lflag = 0;
BlinkenLib/BlinkenDeviceOutput.c 198)   tio.c_cc[VTIME] = 10; // 1 sec timeout
BlinkenLib/BlinkenDeviceOutput.c 199)   tio.c_cc[VMIN] = 0;   // return on single char read
BlinkenLib/BlinkenDeviceOutput.c 200) 
BlinkenLib/BlinkenDeviceOutput.c 201) #ifdef BLINKENLIB_CFG_OSX
BlinkenLib/BlinkenDeviceOutput.c 202)   if (cfsetspeed(&tio, speed) == -1) {
BlinkenLib/BlinkenDeviceOutput.c 203)     printf("cfsetspeed: error: %s\n", strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 204)     return 0;
BlinkenLib/BlinkenDeviceOutput.c 205)   }
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      206) #else  // #ifdef BLINKENLIB_CFG_OSX
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 207)   tio.c_cflag |= speed;
BlinkenLib/BlinkenDeviceOutput.c 208) #endif // #ifdef BLINKENLIB_CFG_OSX
BlinkenLib/BlinkenDeviceOutput.c 209) 
BlinkenLib/BlinkenDeviceOutput.c 210)   if (tcsetattr(fd, TCSANOW, &tio) == -1) {
BlinkenLib/BlinkenDeviceOutput.c 211)     printf("tcsetattr: error: %s\n", strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 212)     return 0;
BlinkenLib/BlinkenDeviceOutput.c 213)   }
BlinkenLib/BlinkenDeviceOutput.c 214)   // success
BlinkenLib/BlinkenDeviceOutput.c 215)   return 1;
BlinkenLib/BlinkenDeviceOutput.c 216) }
BlinkenLib/BlinkenDeviceOutput.c 217) 
BlinkenLib/BlinkenDeviceOutput.c 218) // output movie
BlinkenLib/BlinkenDeviceOutput.c 219) // dev_fd may be -1 for not doing anything with device
BlinkenLib/BlinkenDeviceOutput.c 220) // returns error code (not for device-errors, 0 for success)
BlinkenLib/BlinkenDeviceOutput.c 221) static int out_movie(stBlinkenMovie *pMovie, int dev_fd,
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      222)                      unsigned int format_change, unsigned int format_height,
tools/BlinkenDeviceOutput.c      223)                      unsigned int format_width, unsigned int format_channels,
tools/BlinkenDeviceOutput.c      224)                      unsigned int format_colors, etBlinkenProto proto) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 225)   int frame_cnt, frame;
BlinkenLib/BlinkenDeviceOutput.c 226)   stBlinkenFrame *pFrame;
BlinkenLib/BlinkenDeviceOutput.c 227)   fd_set readFds, errFds;
BlinkenLib/BlinkenDeviceOutput.c 228)   char buffer[65536]; // 64kB is more than maximum UDP size
BlinkenLib/BlinkenDeviceOutput.c 229)   int maxFd, len, dev_eof, duration, borrow, ret;
BlinkenLib/BlinkenDeviceOutput.c 230)   struct timeval next, cur, timeout;
BlinkenLib/BlinkenDeviceOutput.c 231) 
BlinkenLib/BlinkenDeviceOutput.c 232)   dev_eof = 0;
BlinkenLib/BlinkenDeviceOutput.c 233)   gettimeofday(&next, NULL);
BlinkenLib/BlinkenDeviceOutput.c 234) 
BlinkenLib/BlinkenDeviceOutput.c 235)   frame_cnt = BlinkenMovieGetFrameCnt(pMovie);
BlinkenLib/BlinkenDeviceOutput.c 236)   for (frame = 0; frame < frame_cnt; ++frame) {
BlinkenLib/BlinkenDeviceOutput.c 237)     pFrame = BlinkenMovieGetFrame(pMovie, frame);
BlinkenLib/BlinkenDeviceOutput.c 238)     if (pFrame == NULL)
BlinkenLib/BlinkenDeviceOutput.c 239)       continue;
BlinkenLib/BlinkenDeviceOutput.c 240)     pFrame = BlinkenFrameClone(pFrame); // clone frame, will be changed
BlinkenLib/BlinkenDeviceOutput.c 241)     if (pFrame == NULL)
BlinkenLib/BlinkenDeviceOutput.c 242)       continue;
BlinkenLib/BlinkenDeviceOutput.c 243)     duration = BlinkenFrameGetDuration(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 244)     next.tv_usec += (duration % 1000) * 1000;
BlinkenLib/BlinkenDeviceOutput.c 245)     next.tv_sec += duration / 1000;
BlinkenLib/BlinkenDeviceOutput.c 246)     if (next.tv_usec >= 1000000) {
BlinkenLib/BlinkenDeviceOutput.c 247)       next.tv_usec -= 1000000;
BlinkenLib/BlinkenDeviceOutput.c 248)       next.tv_sec += 1;
BlinkenLib/BlinkenDeviceOutput.c 249)     }
BlinkenLib/BlinkenDeviceOutput.c 250) 
BlinkenLib/BlinkenDeviceOutput.c 251)     // change format
BlinkenLib/BlinkenDeviceOutput.c 252)     if (format_change)
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      253)       BlinkenFrameResize(pFrame, format_height, format_width, format_channels,
tools/BlinkenDeviceOutput.c      254)                          format_colors - 1);
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 255) 
BlinkenLib/BlinkenDeviceOutput.c 256)     // create output data from frame
BlinkenLib/BlinkenDeviceOutput.c 257)     len = BlinkenFrameToNetwork(pFrame, proto, buffer, sizeof(buffer));
BlinkenLib/BlinkenDeviceOutput.c 258) 
BlinkenLib/BlinkenDeviceOutput.c 259)     // free frame
BlinkenLib/BlinkenDeviceOutput.c 260)     BlinkenFrameFree(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 261) 
BlinkenLib/BlinkenDeviceOutput.c 262)     // output data to device
BlinkenLib/BlinkenDeviceOutput.c 263)     if (dev_fd != -1 && len > 0) {
BlinkenLib/BlinkenDeviceOutput.c 264)       if (write(dev_fd, buffer, len) != len) {
BlinkenLib/BlinkenDeviceOutput.c 265)         printf("error writing to device\n");
BlinkenLib/BlinkenDeviceOutput.c 266)         break;
BlinkenLib/BlinkenDeviceOutput.c 267)       }
BlinkenLib/BlinkenDeviceOutput.c 268)     }
BlinkenLib/BlinkenDeviceOutput.c 269) 
BlinkenLib/BlinkenDeviceOutput.c 270)     // check for data from device or error on device
BlinkenLib/BlinkenDeviceOutput.c 271)     do {
BlinkenLib/BlinkenDeviceOutput.c 272) 
BlinkenLib/BlinkenDeviceOutput.c 273)       FD_ZERO(&readFds);
BlinkenLib/BlinkenDeviceOutput.c 274)       if (dev_fd != -1 && !dev_eof)
BlinkenLib/BlinkenDeviceOutput.c 275)         FD_SET(dev_fd, &readFds);
BlinkenLib/BlinkenDeviceOutput.c 276)       FD_ZERO(&errFds);
BlinkenLib/BlinkenDeviceOutput.c 277)       if (dev_fd != -1)
BlinkenLib/BlinkenDeviceOutput.c 278)         FD_SET(dev_fd, &errFds);
BlinkenLib/BlinkenDeviceOutput.c 279)       maxFd = 0;
BlinkenLib/BlinkenDeviceOutput.c 280)       if (dev_fd != -1 && dev_fd > maxFd)
BlinkenLib/BlinkenDeviceOutput.c 281)         maxFd = dev_fd;
BlinkenLib/BlinkenDeviceOutput.c 282)       gettimeofday(&cur, NULL);
BlinkenLib/BlinkenDeviceOutput.c 283)       if (next.tv_usec >= cur.tv_usec) {
BlinkenLib/BlinkenDeviceOutput.c 284)         timeout.tv_usec = next.tv_usec - cur.tv_usec;
BlinkenLib/BlinkenDeviceOutput.c 285)         borrow = 0;
BlinkenLib/BlinkenDeviceOutput.c 286)       } else {
BlinkenLib/BlinkenDeviceOutput.c 287)         borrow = 1;
BlinkenLib/BlinkenDeviceOutput.c 288)         timeout.tv_usec = 1000000 + next.tv_usec - cur.tv_usec;
BlinkenLib/BlinkenDeviceOutput.c 289)       }
BlinkenLib/BlinkenDeviceOutput.c 290)       if (next.tv_sec >= cur.tv_sec + borrow) {
BlinkenLib/BlinkenDeviceOutput.c 291)         timeout.tv_sec = next.tv_sec - (cur.tv_sec + borrow);
BlinkenLib/BlinkenDeviceOutput.c 292)       } else {
BlinkenLib/BlinkenDeviceOutput.c 293)         timeout.tv_usec = 0;
BlinkenLib/BlinkenDeviceOutput.c 294)         timeout.tv_sec = 0;
BlinkenLib/BlinkenDeviceOutput.c 295)       }
BlinkenLib/BlinkenDeviceOutput.c 296)       ret = select(maxFd + 1, &readFds, NULL, &errFds, &timeout);
BlinkenLib/BlinkenDeviceOutput.c 297)       if (ret < 0) { // error
BlinkenLib/BlinkenDeviceOutput.c 298)         printf("error during select: %s\n", strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 299)         BlinkenFrameFree(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 300)         break;
BlinkenLib/BlinkenDeviceOutput.c 301)       }
BlinkenLib/BlinkenDeviceOutput.c 302)       // error on device
BlinkenLib/BlinkenDeviceOutput.c 303)       if (dev_fd != -1 && FD_ISSET(dev_fd, &errFds)) {
BlinkenLib/BlinkenDeviceOutput.c 304)         printf("error on device\n");
BlinkenLib/BlinkenDeviceOutput.c 305)         BlinkenFrameFree(pFrame);
BlinkenLib/BlinkenDeviceOutput.c 306)         break;
BlinkenLib/BlinkenDeviceOutput.c 307)       }
BlinkenLib/BlinkenDeviceOutput.c 308) 
BlinkenLib/BlinkenDeviceOutput.c 309)       // received data from device
BlinkenLib/BlinkenDeviceOutput.c 310)       if (dev_fd != -1 && FD_ISSET(dev_fd, &readFds)) {
BlinkenLib/BlinkenDeviceOutput.c 311)         // read data
BlinkenLib/BlinkenDeviceOutput.c 312)         len = read(dev_fd, buffer, sizeof(buffer));
BlinkenLib/BlinkenDeviceOutput.c 313)         if (len < 0) {
BlinkenLib/BlinkenDeviceOutput.c 314)           printf("error reading from device\n");
BlinkenLib/BlinkenDeviceOutput.c 315)           break;
BlinkenLib/BlinkenDeviceOutput.c 316)         }
BlinkenLib/BlinkenDeviceOutput.c 317)         if (len == 0)
BlinkenLib/BlinkenDeviceOutput.c 318)           dev_eof = 1;
BlinkenLib/BlinkenDeviceOutput.c 319)       }
BlinkenLib/BlinkenDeviceOutput.c 320) 
BlinkenLib/BlinkenDeviceOutput.c 321)     } while (ret != 0);
BlinkenLib/BlinkenDeviceOutput.c 322) 
BlinkenLib/BlinkenDeviceOutput.c 323)   } // for frame
BlinkenLib/BlinkenDeviceOutput.c 324) 
BlinkenLib/BlinkenDeviceOutput.c 325)   return 0;
BlinkenLib/BlinkenDeviceOutput.c 326) }
BlinkenLib/BlinkenDeviceOutput.c 327) 
BlinkenLib/BlinkenDeviceOutput.c 328) // open device and output movie
BlinkenLib/BlinkenDeviceOutput.c 329) // returns error code (not for device-errors, 0 for success)
BlinkenLib/BlinkenDeviceOutput.c 330) static int open_and_output(stBlinkenMovie *pMovie, char *device,
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      331)                            int serial_settings_change, int serial_settings,
tools/BlinkenDeviceOutput.c      332)                            int serial_speed, unsigned int format_change,
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 333)                            unsigned int format_height,
BlinkenLib/BlinkenDeviceOutput.c 334)                            unsigned int format_width,
BlinkenLib/BlinkenDeviceOutput.c 335)                            unsigned int format_channels,
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      336)                            unsigned int format_colors, etBlinkenProto proto) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 337)   int dev_fd, err;
BlinkenLib/BlinkenDeviceOutput.c 338)   char txt[64];
BlinkenLib/BlinkenDeviceOutput.c 339) 
BlinkenLib/BlinkenDeviceOutput.c 340)   printf("outputting movie to \"%s\"...\n", device);
BlinkenLib/BlinkenDeviceOutput.c 341) 
BlinkenLib/BlinkenDeviceOutput.c 342)   // open device
BlinkenLib/BlinkenDeviceOutput.c 343)   dev_fd = open(device, O_RDWR | O_NOCTTY | O_NONBLOCK);
BlinkenLib/BlinkenDeviceOutput.c 344)   if (dev_fd == -1) {
BlinkenLib/BlinkenDeviceOutput.c 345)     printf("could not open \"%s\": error: %s\n", device, strerror(errno));
BlinkenLib/BlinkenDeviceOutput.c 346)     return 1;
BlinkenLib/BlinkenDeviceOutput.c 347)   }
BlinkenLib/BlinkenDeviceOutput.c 348)   // setup serial port
BlinkenLib/BlinkenDeviceOutput.c 349)   if (serial_settings_change) {
BlinkenLib/BlinkenDeviceOutput.c 350)     if (!serial_settings_set(dev_fd, serial_settings, serial_speed)) {
BlinkenLib/BlinkenDeviceOutput.c 351)       serial_settings_to_str(serial_settings, txt, sizeof(txt));
BlinkenLib/BlinkenDeviceOutput.c 352)       printf("could not set serial port to \"%s\"\n", txt);
BlinkenLib/BlinkenDeviceOutput.c 353)       close(dev_fd);
BlinkenLib/BlinkenDeviceOutput.c 354)       return 1;
BlinkenLib/BlinkenDeviceOutput.c 355)     }
BlinkenLib/BlinkenDeviceOutput.c 356)   }
BlinkenLib/BlinkenDeviceOutput.c 357)   // output movie to device
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      358)   err = out_movie(pMovie, dev_fd, format_change, format_height, format_width,
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 359)                   format_channels, format_colors, proto);
BlinkenLib/BlinkenDeviceOutput.c 360) 
BlinkenLib/BlinkenDeviceOutput.c 361)   // close device
BlinkenLib/BlinkenDeviceOutput.c 362)   close(dev_fd);
BlinkenLib/BlinkenDeviceOutput.c 363) 
BlinkenLib/BlinkenDeviceOutput.c 364)   printf("output to device finished...\n");
BlinkenLib/BlinkenDeviceOutput.c 365) 
BlinkenLib/BlinkenDeviceOutput.c 366)   return err;
BlinkenLib/BlinkenDeviceOutput.c 367) }
BlinkenLib/BlinkenDeviceOutput.c 368) 
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      369) int main(int argCnt, char **args) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 370)   int i, serial_settings, serial_speed;
BlinkenLib/BlinkenDeviceOutput.c 371)   char *device;
BlinkenLib/BlinkenDeviceOutput.c 372)   etBlinkenProto proto;
BlinkenLib/BlinkenDeviceOutput.c 373)   unsigned int format_change, format_height, format_width, format_channels,
BlinkenLib/BlinkenDeviceOutput.c 374)       format_colors;
BlinkenLib/BlinkenDeviceOutput.c 375)   unsigned int height, width, channels, colors;
BlinkenLib/BlinkenDeviceOutput.c 376)   unsigned int send_cnt, loop_cnt, loop, ui;
BlinkenLib/BlinkenDeviceOutput.c 377)   int serial_settings_change;
BlinkenLib/BlinkenDeviceOutput.c 378)   stBlinkenMovie *pMovie;
BlinkenLib/BlinkenDeviceOutput.c 379) 
BlinkenLib/BlinkenDeviceOutput.c 380)   // print info
BlinkenLib/BlinkenDeviceOutput.c 381)   printf("BlinkenLib - BlinkenDeviceOutput\n"
BlinkenLib/BlinkenDeviceOutput.c 382)          "version %d.%d.%d\n"
BlinkenLib/BlinkenDeviceOutput.c 383)          "config " BLINKENLIB_CONFIG "\n"
BlinkenLib/BlinkenDeviceOutput.c 384)          "Copyright 2004-2014 Stefan Schuermans <stefan@schuermans.info>\n"
BlinkenLib/BlinkenDeviceOutput.c 385)          "Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html\n"
BlinkenLib/BlinkenDeviceOutput.c 386)          "a blinkenarea.org project\n\n",
BlinkenLib/BlinkenDeviceOutput.c 387)          BLINKENLIB_VERSION_MAJOR, BLINKENLIB_VERSION_MINOR,
BlinkenLib/BlinkenDeviceOutput.c 388)          BLINKENLIB_VERSION_REVISION);
BlinkenLib/BlinkenDeviceOutput.c 389) 
BlinkenLib/BlinkenDeviceOutput.c 390)   // print syntax
BlinkenLib/BlinkenDeviceOutput.c 391)   if (argCnt <= 1) {
BlinkenLib/BlinkenDeviceOutput.c 392) #ifdef BLINKENLIB_CFG_MNG
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      393) #define MNGEXT ", *.mng"
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 394) #else
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      395) #define MNGEXT
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 396) #endif
BlinkenLib/BlinkenDeviceOutput.c 397) #ifdef BLINKENLIB_CFG_GIF
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      398) #define GIFEXT ", *.gif"
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 399) #else
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      400) #define GIFEXT
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 401) #endif
BlinkenLib/BlinkenDeviceOutput.c 402)     printf("syntax: %s <parameter> [...]\n\n"
BlinkenLib/BlinkenDeviceOutput.c 403)            "parameters:\n"
BlinkenLib/BlinkenDeviceOutput.c 404)            "  -p [BLP|EBLP|MCUF]\n"
BlinkenLib/BlinkenDeviceOutput.c 405)            "     protocol to output frames in (defaults to MCUF)\n"
BlinkenLib/BlinkenDeviceOutput.c 406)            "  -f <width>x<height>-<channels>/<colors>\n"
BlinkenLib/BlinkenDeviceOutput.c 407)            "     format to output frames in (defaults to no change)\n"
BlinkenLib/BlinkenDeviceOutput.c 408)            "  -d <device>\n"
BlinkenLib/BlinkenDeviceOutput.c 409)            "     device to output frames to (defaults to \"/dev/null\")\n"
BlinkenLib/BlinkenDeviceOutput.c 410)            "  -s <baud-rate>,<parity>,<data-bits>,<stop-bits>\n"
BlinkenLib/BlinkenDeviceOutput.c 411)            "     settings to use for serial devices (defaults to no change)\n"
BlinkenLib/BlinkenDeviceOutput.c 412)            "  -n <number>\n"
BlinkenLib/BlinkenDeviceOutput.c 413)            "     set number of times to send movies (defaults to 1)\n"
BlinkenLib/BlinkenDeviceOutput.c 414)            "  -i <file>\n"
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      415)            "     read movie from file (*.blm, *.bmm, *.bml, *.bbm" MNGEXT GIFEXT
tools/BlinkenDeviceOutput.c      416)            ") and send it\n"
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 417)            "  -l <number>\n"
BlinkenLib/BlinkenDeviceOutput.c 418)            "     loop number of times (defaults to 1, use 0 for forever)\n\n",
BlinkenLib/BlinkenDeviceOutput.c 419)            args[0]);
BlinkenLib/BlinkenDeviceOutput.c 420)     return 0;
BlinkenLib/BlinkenDeviceOutput.c 421)   }
BlinkenLib/BlinkenDeviceOutput.c 422) 
BlinkenLib/BlinkenDeviceOutput.c 423)   // loop
BlinkenLib/BlinkenDeviceOutput.c 424)   loop_cnt = 1;
BlinkenLib/BlinkenDeviceOutput.c 425)   for (loop = 0; loop < loop_cnt || loop_cnt == 0; loop++) {
BlinkenLib/BlinkenDeviceOutput.c 426) 
BlinkenLib/BlinkenDeviceOutput.c 427)     // print loop message
BlinkenLib/BlinkenDeviceOutput.c 428)     if (loop_cnt > 1)
BlinkenLib/BlinkenDeviceOutput.c 429)       printf("--- loop %u/%u ---\n", loop + 1, loop_cnt);
BlinkenLib/BlinkenDeviceOutput.c 430)     if (loop_cnt == 0)
BlinkenLib/BlinkenDeviceOutput.c 431)       printf("--- loop %u ---\n", loop + 1);
BlinkenLib/BlinkenDeviceOutput.c 432) 
BlinkenLib/BlinkenDeviceOutput.c 433)     // process parameters
BlinkenLib/BlinkenDeviceOutput.c 434)     proto = BlinkenProtoMcuf;
BlinkenLib/BlinkenDeviceOutput.c 435)     format_change = 0;
BlinkenLib/BlinkenDeviceOutput.c 436)     format_height = 0;
BlinkenLib/BlinkenDeviceOutput.c 437)     format_width = 0;
BlinkenLib/BlinkenDeviceOutput.c 438)     format_channels = 0;
BlinkenLib/BlinkenDeviceOutput.c 439)     format_colors = 0;
BlinkenLib/BlinkenDeviceOutput.c 440)     device = "/dev/null";
BlinkenLib/BlinkenDeviceOutput.c 441)     serial_settings = 0;
BlinkenLib/BlinkenDeviceOutput.c 442)     serial_speed = 0;
BlinkenLib/BlinkenDeviceOutput.c 443)     serial_settings_change = 0;
BlinkenLib/BlinkenDeviceOutput.c 444)     send_cnt = 1;
BlinkenLib/BlinkenDeviceOutput.c 445)     for (i = 1; i < argCnt; i++) {
BlinkenLib/BlinkenDeviceOutput.c 446) 
BlinkenLib/BlinkenDeviceOutput.c 447)       // protocol to output frames in
BlinkenLib/BlinkenDeviceOutput.c 448)       if (strcmp(args[i], "-p") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 449)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 450)           i++;
BlinkenLib/BlinkenDeviceOutput.c 451)           if (strcasecmp(args[i], "BLP") == 0)
BlinkenLib/BlinkenDeviceOutput.c 452)             proto = BlinkenProtoBlp;
BlinkenLib/BlinkenDeviceOutput.c 453)           else if (strcasecmp(args[i], "EBLP") == 0)
BlinkenLib/BlinkenDeviceOutput.c 454)             proto = BlinkenProtoEblp;
BlinkenLib/BlinkenDeviceOutput.c 455)           else if (strcasecmp(args[i], "MCUF") == 0)
BlinkenLib/BlinkenDeviceOutput.c 456)             proto = BlinkenProtoMcuf;
BlinkenLib/BlinkenDeviceOutput.c 457)           else
BlinkenLib/BlinkenDeviceOutput.c 458)             printf("unknown protocol \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 459)         } else
BlinkenLib/BlinkenDeviceOutput.c 460)           printf("missing protocol for \"-p\"\n");
BlinkenLib/BlinkenDeviceOutput.c 461)       }
BlinkenLib/BlinkenDeviceOutput.c 462)       // format to output frames in
BlinkenLib/BlinkenDeviceOutput.c 463)       else if (strcmp(args[i], "-f") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 464)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 465)           i++;
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      466)           if (sscanf(args[i], "%ux%u-%u/%u", &width, &height, &channels,
tools/BlinkenDeviceOutput.c      467)                      &colors) == 4 &&
tools/BlinkenDeviceOutput.c      468)               width > 0 && width < 1000 && height > 0 && height < 1000 &&
tools/BlinkenDeviceOutput.c      469)               channels > 0 && channels < 20 && colors > 1 && colors <= 256) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 470)             format_change = 1;
BlinkenLib/BlinkenDeviceOutput.c 471)             format_height = height;
BlinkenLib/BlinkenDeviceOutput.c 472)             format_width = width;
BlinkenLib/BlinkenDeviceOutput.c 473)             format_channels = channels;
BlinkenLib/BlinkenDeviceOutput.c 474)             format_colors = colors;
BlinkenLib/BlinkenDeviceOutput.c 475)           } else
BlinkenLib/BlinkenDeviceOutput.c 476)             printf("invalid frame format \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 477)         } else
BlinkenLib/BlinkenDeviceOutput.c 478)           printf("missing frame format for \"-r\"\n");
BlinkenLib/BlinkenDeviceOutput.c 479)       }
BlinkenLib/BlinkenDeviceOutput.c 480)       // device to output frames to
BlinkenLib/BlinkenDeviceOutput.c 481)       else if (strcmp(args[i], "-d") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 482)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 483)           i++;
BlinkenLib/BlinkenDeviceOutput.c 484)           device = args[i];
BlinkenLib/BlinkenDeviceOutput.c 485)         } else
BlinkenLib/BlinkenDeviceOutput.c 486)           printf("missing device name for \"-d\"\n");
BlinkenLib/BlinkenDeviceOutput.c 487)       }
BlinkenLib/BlinkenDeviceOutput.c 488)       // settings for serial output devices
BlinkenLib/BlinkenDeviceOutput.c 489)       else if (strcmp(args[i], "-s") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 490)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 491)           i++;
BlinkenLib/BlinkenDeviceOutput.c 492)           if (serial_settings_parse(args[i], &serial_settings, &serial_speed)) {
BlinkenLib/BlinkenDeviceOutput.c 493)             serial_settings_change = 1;
BlinkenLib/BlinkenDeviceOutput.c 494)           } else
BlinkenLib/BlinkenDeviceOutput.c 495)             printf("invalid serial settings \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 496)         } else
BlinkenLib/BlinkenDeviceOutput.c 497)           printf("missing serial settings for \"-s\"\n");
BlinkenLib/BlinkenDeviceOutput.c 498)       }
BlinkenLib/BlinkenDeviceOutput.c 499)       // number of times to send movies
BlinkenLib/BlinkenDeviceOutput.c 500)       else if (strcmp(args[i], "-n") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 501)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 502)           i++;
BlinkenLib/BlinkenDeviceOutput.c 503)           if (sscanf(args[i], "%u", &ui) == 1 && ui > 0)
BlinkenLib/BlinkenDeviceOutput.c 504)             send_cnt = ui;
BlinkenLib/BlinkenDeviceOutput.c 505)           else
BlinkenLib/BlinkenDeviceOutput.c 506)             printf("invalid number \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 507)         } else
BlinkenLib/BlinkenDeviceOutput.c 508)           printf("missing number for \"-n\"\n");
BlinkenLib/BlinkenDeviceOutput.c 509)       }
BlinkenLib/BlinkenDeviceOutput.c 510)       // read movie and send it
BlinkenLib/BlinkenDeviceOutput.c 511)       else if (strcmp(args[i], "-i") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 512)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 513)           i++;
BlinkenLib/BlinkenDeviceOutput.c 514)           pMovie = BlinkenMovieLoad(args[i]);
BlinkenLib/BlinkenDeviceOutput.c 515)           if (pMovie == NULL)
BlinkenLib/BlinkenDeviceOutput.c 516)             printf("could not read movie \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 517)           else {
BlinkenLib/BlinkenDeviceOutput.c 518)             printf("movie \"%s\" read\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 519)             for (ui = 0; ui < send_cnt; ui++) {
BlinkenLib/BlinkenDeviceOutput.c 520)               printf("outputting movie \"%s\" (%u/%u)...\n", args[i], ui + 1,
BlinkenLib/BlinkenDeviceOutput.c 521)                      send_cnt);
BlinkenLib/BlinkenDeviceOutput.c 522)               if (open_and_output(pMovie, device, serial_settings_change,
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      523)                                   serial_settings, serial_speed, format_change,
tools/BlinkenDeviceOutput.c      524)                                   format_height, format_width, format_channels,
tools/BlinkenDeviceOutput.c      525)                                   format_colors, proto) == 0) {
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 526)                 printf("movie \"%s\" output successful\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 527)               } else {
BlinkenLib/BlinkenDeviceOutput.c 528)                 printf("movie \"%s\" output failed\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 529)                 break;
BlinkenLib/BlinkenDeviceOutput.c 530)               }
BlinkenLib/BlinkenDeviceOutput.c 531)             }
BlinkenLib/BlinkenDeviceOutput.c 532)             BlinkenMovieFree(pMovie);
BlinkenLib/BlinkenDeviceOutput.c 533)           }
BlinkenLib/BlinkenDeviceOutput.c 534)         } else
BlinkenLib/BlinkenDeviceOutput.c 535)           printf("missing input filename for \"-i\"\n");
BlinkenLib/BlinkenDeviceOutput.c 536)       }
BlinkenLib/BlinkenDeviceOutput.c 537)       // number of times to loop
BlinkenLib/BlinkenDeviceOutput.c 538)       else if (strcmp(args[i], "-l") == 0) {
BlinkenLib/BlinkenDeviceOutput.c 539)         if (i + 1 < argCnt) {
BlinkenLib/BlinkenDeviceOutput.c 540)           i++;
BlinkenLib/BlinkenDeviceOutput.c 541)           if (sscanf(args[i], "%u", &ui) == 1)
BlinkenLib/BlinkenDeviceOutput.c 542)             loop_cnt = ui;
BlinkenLib/BlinkenDeviceOutput.c 543)           else
BlinkenLib/BlinkenDeviceOutput.c 544)             printf("invalid number \"%s\"\n", args[i]);
BlinkenLib/BlinkenDeviceOutput.c 545)         } else
BlinkenLib/BlinkenDeviceOutput.c 546)           printf("missing number for \"-l\"\n");
BlinkenLib/BlinkenDeviceOutput.c 547)       }
BlinkenLib/BlinkenDeviceOutput.c 548)       // unknown parameter
BlinkenLib/BlinkenDeviceOutput.c 549)       else
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      550)         printf(
tools/BlinkenDeviceOutput.c      551)             "unknown parameter \"%s\", call without parameters to get help\n",
tools/BlinkenDeviceOutput.c      552)             args[i]);
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 553) 
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      554)     } // for( i ...
Stefan Schuermans initial version of BlinkenD...

Stefan Schuermans authored 7 years ago

BlinkenLib/BlinkenDeviceOutput.c 555) 
Stefan Schuermans format

Stefan Schuermans authored 1 year ago

tools/BlinkenDeviceOutput.c      556)   }   // for( loop ...