天嵌二次封装库使用手册  V1.0
fb_raw.h
浏览该文件的文档.
1 
2 #ifndef _FB_RAW_H__
3 #define _FB_RAW_H__
4 
19 #include <stdio.h>
20 #include <stdlib.h>
21 #include <string.h>
22 #include <unistd.h>
23 #include <fcntl.h>
24 #include <stdarg.h>
25 #include <sys/ioctl.h>
26 #include <sys/mman.h>
27 #include <sys/time.h>
28 #include <linux/vt.h>
29 #include <linux/kd.h>
30 #include <linux/fb.h>
31 #include <arpa/inet.h>
32 #include "font.h"
33 
37 struct fb_data {
38  char* fbdevice;
39  int fb_fd;
40  struct fb_fix_screeninfo fix;
41  struct fb_var_screeninfo var;
42  unsigned char *fbuffer;
43  unsigned char **line_addr;
45  unsigned int colormap [256];
46 };
47 #define XORMODE 0x80000000
48 
51 union multiptr
52 {
53  unsigned char *p8;
54  unsigned short *p16;
55  unsigned long *p32;
56 };
57 #ifdef __cplusplus
58 extern "C"
59 {
60 #endif
61 
67  int open_framebuffer(char *dev, struct fb_data *f_data);
68 
73  void close_framebuffer(struct fb_data *f_data);
74 
84  void line(struct fb_data *f_data, int x1, int y1, int x2, int y2, unsigned colidx);
85 
94  void put_string(struct fb_data *f_data, int x, int y, char *s, unsigned colidx);
95 
105  void rect(struct fb_data *f_data, int x1, int y1, int x2, int y2, unsigned colidx);
106 
116  void fillrect(struct fb_data *f_data, int x1, int y1, int x2, int y2, unsigned colidx);
117 
126  void put_string_center(struct fb_data *f_data, int x, int y, char *s, unsigned colidx);
127 
134  void setcolor(struct fb_data *f_data, unsigned colidx, unsigned value);
135 
143  void progress_bar(struct fb_data *f_data, int progress, const char *fmt, ...);
144 
152  void put_cross(struct fb_data *f_data, int x, int y, unsigned colidx);
153 
161  int show_bmp(const char *fbp, struct fb_var_screeninfo *scrinfo, const char *bmpname);
162 
169  void *get_framebuffer(const char *dev, int *size);
170 
176  void free_framebuffer(void *buff, int size);
177 #ifdef __cplusplus
178 }
179 #endif
180 #endif
int fb_fd
用来存取打开framebuffer后的文件描述符
Definition: fb_raw.h:39
void put_string(struct fb_data *f_data, int x, int y, char *s, unsigned colidx)
在屏幕上显示一个字符串
void progress_bar(struct fb_data *f_data, int progress, const char *fmt,...)
显示进度条
void line(struct fb_data *f_data, int x1, int y1, int x2, int y2, unsigned colidx)
在屏幕上化一条线
unsigned char * fbuffer
缓冲区首地址
Definition: fb_raw.h:42
void put_cross(struct fb_data *f_data, int x, int y, unsigned colidx)
画交叉线
unsigned char ** line_addr
屏幕中每行的首地址
Definition: fb_raw.h:43
unsigned int colormap[256]
颜色图谱
Definition: fb_raw.h:45
void put_string_center(struct fb_data *f_data, int x, int y, char *s, unsigned colidx)
在屏幕显示一个字符串
unsigned long * p32
4个字节
Definition: fb_raw.h:55
int show_bmp(const char *fbp, struct fb_var_screeninfo *scrinfo, const char *bmpname)
显示bmp位图
void close_framebuffer(struct fb_data *f_data)
关闭framebuffer设备并释放掉相关内存
int open_framebuffer(char *dev, struct fb_data *f_data)
打开framebuffer设备并用mmap建立内存映射
unsigned char * p8
1个字节
Definition: fb_raw.h:53
unsigned short * p16
2个字节
Definition: fb_raw.h:54
void fillrect(struct fb_data *f_data, int x1, int y1, int x2, int y2, unsigned colidx)
填充矩形颜色
int bytes_per_pixel
每像素的字节数
Definition: fb_raw.h:44
char * fbdevice
设备名
Definition: fb_raw.h:38
用来保存framebuffer设备相关数据
Definition: fb_raw.h:37
void rect(struct fb_data *f_data, int x1, int y1, int x2, int y2, unsigned colidx)
在屏幕上显示一个矩形
struct fb_fix_screeninfo fix
用来存取framebuffer的固定信息
Definition: fb_raw.h:40
struct fb_var_screeninfo var
用来存取framebuffer的可变信息
Definition: fb_raw.h:41
void setcolor(struct fb_data *f_data, unsigned colidx, unsigned value)
设置屏幕颜色
void * get_framebuffer(const char *dev, int *size)
获得framebuffer对象
void free_framebuffer(void *buff, int size)
释放framebuffer对象