//-------------------------------------------------------------------
JNIEXPORT jint JNICALL Java_com_example_demo_record_ScreenShotService_getPicFromFrameBuffer
  (JNIEnv * env, jobject thiz, jint width, jint height, jint bit, jint filename){
	  LOGI("---进入到屏幕截图本地调用函数!---");

		fb_create();
		
		char cfilename[512];
		sprintf(cfilename, "/sdcard/luzhi/%d.bmp", filename);
		
		int i  = 0;
		if(bit == 0)
		{
			i = save_bmp(cfilename, width, height, g_fb.bits, g_fb.vi.bits_per_pixel);
		}
		else
		{
			i = save_bmp(cfilename, width, height, g_fb.bits, bit);
		}
		
		fb_destory(&g_fb);
		//(*env)->ReleaseStringUTFChars(filename, cfilename);
		
		if(i == 0)
		{
			LOGI("---生成文件失败!---");
			return -1;
		}
		LOGI("---生成文件成功!---");
		return 0;			
	}
Exemple #2
0
int screen_shot(const char * path)
{
	struct FB * fb = NULL;
	fb = fb_create(1);
	if (fb) {
		save_bmp(path, fb_width(fb), fb_height(fb), fb_bits(fb), fb_bpp(fb));
		fb_destory(fb);
	}
	return 0;
}
static errno_t attach_pod_framebuf()
{
    struct fb_info *info;

    info = fb_create(&openpod_ops, mmap_base, mmap_len);

    if (info == NULL)
    {
        return EFAULT;
    }

    return 0;
}
Exemple #4
0
static int file_to_fb(const char * srcpath)
{
	int ret = -1;
	BMP_READ * bmp = NULL;
	struct FB * fb = NULL;
	int sw, sh;
	int srcbpp, dstbpp;
	void * pdata = NULL, * bmpdata = NULL;
	RGB_CONVERT_FUN convert_func = NULL;
	
	do 
	{
		bmp = bmp_open(srcpath);
		if (!bmp) {
			break;
		}
		fb = fb_create(0);
		if (!fb) {
			break;
		}
		
		sw = bmp_width(bmp);
		sh = bmp_height(bmp);
		bmpdata = bmp_data(bmp);
		srcbpp = bmp_bpp(bmp);
		dstbpp = fb_bpp(fb);
		
		convert_func = get_convert_func(srcbpp, dstbpp);
		if (convert_func) {
			pdata = convert_func(bmpdata, sw, sh);
			bmpdata = pdata;
		}
		
		if (!bmp_forward(bmp)) {
			line_reversal(bmpdata, sw, sh, dstbpp);
		}
		
		rgb_copy(bmpdata, fb_bits(fb), sw, sh, fb_width(fb), fb_height(fb), dstbpp);
		ret = 0;
	} while (0);
	
	fb_destory(fb);
	bmp_close(bmp);
	if (pdata) {
		free(pdata);
	}
	return ret;	
}
static int cirrus_init(struct pci_slot_dev *pci_dev) {
	char *mmap_base = (char *)(pci_dev->bar[0] & PCI_BASE_ADDR_IO_MASK); /* FIXME */
	size_t mmap_len = 1024 * 1280 * 16 / 8;
	struct fb_info *info;

	if (MAP_FAILED == mmap_device_memory(mmap_base,
				mmap_len,
			       	PROT_READ|PROT_WRITE|PROT_NOCACHE,
				MAP_FIXED,
				(unsigned long) mmap_base)) {
		return -EIO;
	}

	info = fb_create(&cl_ops, mmap_base, mmap_len);
	if (info == NULL) {
		munmap(mmap_base, mmap_len);
		return -ENOMEM;
	}

	return 0;
}
Exemple #6
0
struct console *consoleinit(struct console *con)
{	
	
	int i;
	conregister[0]=(struct console *)malloc(sizeof(struct console));	
	fb_create(conregister[0]);

	for(i=0;i<CONSOLEMEMBER;i++)
	{
		
		if(conregister[i]->id==con->id)
		{
			con=conregister[i];
			break;
		}
	}
	
	con->init();
	return con;
	
}
Exemple #7
0
static int fb_to_file(const char * dstpath, int output_rgb)
{
	int ret = -1;
	int w, h;
	int srcbpp, dstbpp;
	void * pdata = NULL, * fbdata = NULL;
	RGB_CONVERT_FUN convert_func = NULL;

	struct FB * fb = NULL;

	do 
	{
		fb = fb_create(1);
		if (!fb) {
			break;
		}

		w = fb_width(fb);
		h = fb_height(fb);
		fbdata = fb_bits(fb);
		srcbpp = fb_bpp(fb);
		dstbpp = g_rgbbpp[output_rgb];

		convert_func = get_convert_func(srcbpp, dstbpp);
		if (convert_func) {
			pdata = convert_func(fbdata, w, h);
			fbdata = pdata;
		}

		ret = save_bmp(dstpath, w, h, fbdata, dstbpp);
	} while (0);

	if (pdata) {
		free(pdata);
	}
	fb_destory(fb);
	
	return ret;
}
Exemple #8
0
static int bochs_init(struct pci_slot_dev *pci_dev) {
	char *mmap_base = (char *)(pci_dev->bar[0] & ~0xf); /* FIXME */
	size_t mmap_len = binalign_bound(VBE_DISPI_MAX_XRES 
			* VBE_DISPI_MAX_YRES 
			* VBE_DISPI_MAX_BPP / 8, PAGE_SIZE());
	struct fb_info *info;

	if (MAP_FAILED == mmap_device_memory(mmap_base,
				mmap_len,
			       	PROT_READ|PROT_WRITE|PROT_NOCACHE,
				MAP_FIXED,
				(unsigned long) mmap_base)) {
		return -EIO;
	}

	info = fb_create(&bochs_ops, mmap_base, mmap_len);
	if (info == NULL) {
		munmap(mmap_base, mmap_len);
		return -ENOMEM;
	}

	return 0;
}