void put_triforce() { if(get_bit(quest_rules,qr_HOLDITEMANIMATION)) { putitem2(framebuf,120,113-(get_bit(quest_rules, qr_NOITEMOFFSET)),iTriforce,lens_hint_item[iTriforce][0],lens_hint_item[iTriforce][1], 0); putitem2(framebuf,136,113-(get_bit(quest_rules, qr_NOITEMOFFSET)),iTriforce,lens_hint_item[iTriforce][0],lens_hint_item[iTriforce][1], 0); } else { putitem(framebuf,120,113-(get_bit(quest_rules, qr_NOITEMOFFSET)),iTriforce); putitem(framebuf,136,113-(get_bit(quest_rules, qr_NOITEMOFFSET)),iTriforce); } }
void *producer_thread(void *arg) { int ret; char pdatabuf[1024]; while(1){ //fgets(pdatabuf, sizeof(pdatabuf), stdin); //produce //another form of synchronization //in these cases, semaphores are only used for //synchronization, not locks !!! sem_wait(&seminput); pthread_mutex_lock(&input_buffer_lock); ret = putitem(user_input_buffer); pthread_mutex_unlock(&input_buffer_lock); if(ret != 0) exit(3); //fatal error } pthread_exit(NULL); }
void *producer_thread(void *arg) { int ret; char pdatabuf[1024]; while(1){ //fgets(pdatabuf, sizeof(pdatabuf), stdin); //produce sem_wait(&seminput); pthread_mutex_lock(&input_buffer_lock); ret = putitem(user_input_buffer); pthread_mutex_unlock(&input_buffer_lock); if(ret != 0) exit(3); //fatal error } pthread_exit(NULL); }
static void putxelval(xelval const xv) { if (bitsinitem == 8) putitem(); item += xv << bitshift; bitsinitem += bitspersample; bitshift -= bitspersample; }
static void putbit( bit const b ) { if ( bitsperitem == 8 ) putitem( ); ++bitsperitem; if ( b == PBM_BLACK ) item += 1 << bitshift; --bitshift; }
static void putval(gray const b) { if (bitsperitem == 32) putitem(); item = item | (b << bitshift); bitsperitem = bitsperitem + maxbitsperitem; bitshift = bitshift + maxbitsperitem; }
static void rleputbuffer() { if (repeat) { item = 256 - count; putitem(); item = repeatitem; putitem(); } else { unsigned int i; item = count - 1; putitem(); for (i = 0; i < count; ++i) { item = itembuf[i]; putitem(); } } repeat = 1; count = 0; }
static void *producer(char *dirnames[2]){ DIR *rdir, *wdir; FILE *rfile, *wfile; char rfname[MAXNAME_SIZE], wfname[MAXNAME_SIZE]; struct dirent *entry; struct stat *sbuf; buffer_t item; int err; if((rdir = opendir(dirnames[0])) == NULL || (wdir = opendir(dirnames[1])) == NULL) printf("watsouped all wrong \n"); while((entry = readdir(rdir)) != NULL){ if(lstat(entry->d_name, sbuf)){ printf("naw this aint workeded\n"); break; } if(!S_ISREG(sbuf->st_mode)){ printf("derped on that one for sure\n"); break; } if(strlen(entry->d_name)+strlen(dirnames[0]) >= MAXNAME_SIZE){ printf("cant read that deep\n"); break; } sprintf(rfname, "%s%s",dirnames[0], entry->d_name); if((rfile = fopen(rfname, "r")) == NULL){ printf("reading wrongeded\n"); break; } if((wfile = fopen(wfname, "w")) == NULL){ close(fileno(rfile)); printf("writing wrognned\n"); break; } item.infd = fileno(rfile); item.outfd = fileno(wfile); item.filename = entry->d_name; if(err = putitem(item)) break; } err = setdone(); if(err != ECANCELED) seterror(err); return NULL; }
static void putrow( ) { if (bitsperitem > 0) putitem (); outcol = 0; if (linerepeat == -1 || linerepeat == 255 || memcmp (outrow, lastrow, outmax) != 0) { unsigned char *temp; if (linerepeat != -1) /* Unless first line */ flushrow (); /* Swap the pointers */ temp = outrow; outrow = lastrow; lastrow = temp; linerepeat = 1; } else /* Repeated line */ linerepeat++; }
static void putrest(void) { if (bitsperitem > 0) putitem(); }
static void putflush(void) { if (bitsperitem > 1) putitem(); }
static void flushitem() { if (bitsinitem > 0) putitem(); }