Example #1
0
//DOES NOT APPROPRIATELY MAKE A PACKET YET
void file_fill_frame(window *Window, file *File, uint32_t seq)
{
    static uint8_t data[MAX_BUFF_SIZE];
    frame *Frame = Window->Frame[get_frame_num(Window, seq)];
    uint32_t data_len = s_fread(data, sizeof(uint8_t), Window->buffsize, File->fp);

    if (data_len == 0)
        Frame->state = FRAME_EMPTY;
    else
    {
        create_pkt(Frame->Pkt, DATA, seq, data, data_len);
        Frame->state = FRAME_FULL;
    }

    printf("Pkt data_len %u\n", data_len);

    if (feof(File->fp))
        Window->eof = TRUE;

    if (Window->eof)
        printf("File is now at EOF\n");
}
Example #2
0
img* bmp_read(FILE* fptr) {
	img* dat;
	try {
		dat = new img;
	} catch (bad_alloc& err) {
		img_err("*bmp", "OOM");
		return NULL;
	}

	s_fread((char*) &bfType, sizeof(Word), 1, fptr);
	s_fread((char*) &bfSize, sizeof(DWord), 1, fptr);
	s_fread((char*) &bfReserved1, sizeof(Word), 1, fptr);
	s_fread((char*) &bfReserved2, sizeof(Word), 1, fptr);
	s_fread((char*) &bfOffBits, sizeof(DWord), 1 , fptr);
	s_fread((char*) &biSize, sizeof(DWord), 1, fptr);
	s_fread((char*) &biWidth, sizeof(DWord), 1, fptr);
	s_fread((char*) &biHeight, sizeof(DWord), 1, fptr);
	s_fread((char*) &biPlanes, sizeof(Word), 1, fptr);
	s_fread((char*) &biBitCount, sizeof(Word), 1, fptr);
	s_fread((char*) &biCompression, sizeof(DWord), 1, fptr);
	s_fread((char*) &biSizeImage, sizeof(DWord), 1, fptr);
	s_fread((char*) &biXPelsPerMeter, sizeof(DWord), 1, fptr);
	s_fread((char*) &biYPelsPerMeter, sizeof(DWord), 1, fptr);
	s_fread((char*) &biClrUsed, sizeof(DWord), 1, fptr);
	s_fread((char*) &biClrImportant, sizeof(DWord), 1, fptr);

	if (biCompression >= 1 || biWidth != 512 || biHeight != 512 || (biBitCount != 8 && biBitCount != 24)) {
		img_err("~*.bmp", "Unsupported BMP Binary.");
	}
	
	if (biBitCount < 16) {
		for (ushort n=0; n < 256; ++n) {
			s_fread((char*) &temp, 4, 1, fptr);
		}
	}

	for (int j=511; j > -1; --j) {
		if (biBitCount == 8) {
			s_fread((char*) Buffer, 1, 512, fptr);
		
			for (ushort i=0; i < 512; ++i) {
				dat->pix[j][i] = Buffer[i];
				// dat.hist[ Buffer[i] ] += 1;
			}
		} else if (biBitCount == 24) {
			s_fread((char*) Buffer24, 1, (512 * 24) / 8, fptr);
			
			for (ushort i=0; i < 512; ++i) {
				memcpy((char*) &temp, Buffer24 + 3 * i, 3);
				dat->pix[j][i] = temp.r;
				// dat.hist[ dat.pix[j][i] ] += 1;
			}
		}
	}
			
	fclose(fptr);
	return dat;
}