void bmeps_add_gray(int gray) { if(state > 0) { int g; g = gray; if(g < 0) g = g + 256; oe_byte_add(&bmepsoe, g); if(bmeps_color) { oe_byte_add(&bmepsoe, g); oe_byte_add(&bmepsoe, g); } state = 2; } }
static void outputBmepsSample(struct bmepsoe * const bmepsoeP, unsigned int const sampleValue) { assert(sampleValue < 256); oe_byte_add(bmepsoeP->oeP, sampleValue); }
void bmeps_add_rgb(int red, int green, int blue) { if(state > 0) { int r, g, b; r = red; g = green; b = blue; if(r < 0) r = 256 + r; if(g < 0) g = 256 + g; if(b < 0) b = 256 + b; if(bmeps_color) { oe_byte_add(&bmepsoe, r); oe_byte_add(&bmepsoe, g); oe_byte_add(&bmepsoe, b); } else { oe_byte_add(&bmepsoe, NTSC(r,g,b) ); } state = 2; } }
void bmeps_add_trans(int x) { int val; val = x; if(use_trans) { if(bmeps_trans) { val = 255 - val; } /* if(bmeps_aldual) { */ if(bmeps_altrig) { val = (val ? 255 : 0); } else { val = ((val == 255) ? 255 : 0); } /* } */ oe_byte_add(&bmepsoe, val); } }
int main(int argc, char *argv[]) { Output_Encoder o; int methods; int number; int rlbuffer[129]; char buffer[512]; methods = 0; if(argc > 1) { char *ptr; ptr = argv[1]; while(*ptr) { switch(*ptr) { case 'a' : { methods |= OE_ASC85; } break; case 'r' : { methods |= OE_RL; } break; } ptr++; } } oe_init(&o, stdout, methods, 9, rlbuffer); methods = 1; while(methods) { number = read(0, buffer, sizeof(buffer)); if(number > 0) { char c, *ptr; int i; ptr = buffer; for(i = 0; i < number; i++) { c = *ptr; oe_byte_add(&o, c); ptr++; } } else { methods = 0; } } oe_byte_flush(&o); return 0; }