fblib/fb7/fbtool.h

162 lines
3.2 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __FBTOOL_H_
#define __FBTOOL_H_
#include <sys/ioctl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <stddef.h>
#include <string.h>
#include <sys/mman.h>
#include <linux/fb.h>
#include "page.h"
#include "color.h"
/**
* 该结构体主要是定义了一组保存frame buffer的属性
* @property fb frame buffer打开后的唯一标识符
* @property fb_fix frame buffer的固定属性就保存在这个结构体中
* @property fb_var frame buffer的可变属性保存在这个结构体中
* @property fb_mem_offset frame buffer所占内存的偏移量
* @property fb_mem frame buffer的映射到进程内存空间的起始地址
*/
typedef struct fbdev{
int fb;
struct fb_fix_screeninfo fb_fix;
struct fb_var_screeninfo fb_var;
/* 新增 */
unsigned long fb_mem_offset;
unsigned long fb_mem;
char dev[20];
}FBDEV,*PFBDEV;
/**
* 该结构体用于定位点的位置,包括横坐标,纵坐标,深坐标
* @property x 横坐标
* @property y 纵坐标
* @property z 深坐标这个用于3D
*/
typedef struct point{
int x;
int y;
int z;
}POINT,*PPOINT;
/*
* 该函数用于打开frame buffer
* @param pFbdev 参照结构体 fbdev
* @return 0 - 打开失败
 * 1 - 打开成功
*/
int fb_open(PFBDEV pFbdev);
/*
* 该函数用于关闭frame buffer设备
* @param pFbdev 参照结构体 fbdev
* @return 0 - 关闭成功
* >0 - 关闭失败
*/
int fb_close(PFBDEV pFbdev);
/*
* 该函数用于打印frame buffer 所占内存的开始地址 
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void pmem_start(PFBDEV pFbdev);
/*
* 该函数用于打印FB_TYPE
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_type(PFBDEV pFbdev);
/*
* 该函数用于打印可见清晰度
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_visible_res(PFBDEV pFbdev);
/*
* 该函数用于打印虚拟分辨率
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_virt_res(PFBDEV pFbdev);
/*
* 该函数用于打印虚拟到可见的偏移量
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_offset(PFBDEV pFbdev);
/*
* 该函数用于打印每个像素的位数
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_bpp(PFBDEV pFbdev);
/*
* 该函数用于打印R,G,B和透明度
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_rgbt(PFBDEV pFbdev);
/*
* 该函数用于打印在内存中的高度和宽度
* @param pFbdev 参照结构体 fbdev
* @return void
*/
void p_hw(PFBDEV pFbdev);
/*
* 将addr开始的len个字符用n替换
* @param addr 开始的地址
* @param n 替换后的字符
* @param len 要替换的字符的个数
* @return void
*/
void clear_con(void *addr,int n,size_t len);
/*
* 该函数将逻辑地址空间的数据映射到内存当中
* @param addr 内存空间的地址
* @param color 颜色值
* @param len 需要映射的长度
 * @return void
*/
void fb_memcpy(void *addr,void *color,size_t len);
/*
* 根据字符串获得相应的RGBT
* @param color 颜色对应的字符串
* @return 返回代表颜色的结构体 RGBT
*/
RGBT getRGBT(const char *color);
#endif