Exemple #1
0
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);

} 
Exemple #4
0
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;
}
Exemple #7
0
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;
}
Exemple #8
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++;
}
Exemple #10
0
static void
putrest(void) {

    if (bitsperitem > 0)
        putitem();
}
Exemple #11
0
static void
putflush(void) {
    if (bitsperitem > 1)
        putitem();
}
Exemple #12
0
static void
flushitem() {
    if (bitsinitem > 0)
        putitem();
}