LCD电子书项目(七)
来源:互联网 发布:cae有限元分析软件 编辑:程序博客网 时间:2024/05/17 01:47
各个模块已经写好了,现在开始写main.c文件
<span style="font-size:18px;">#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <config.h>#include <draw.h>#include <encoding_manager.h>#include <fonts_manager.h>#include <disp_manager.h>#include <input_manager.h>#include <string.h>/* ./show_file [-s Size] [-f freetype_font_file] [-h HZK] <text_file> */int main(int argc, char **argv){int iError;unsigned int dwFontSize = 16;char acHzkFile[128];char acFreetypeFile[128];char acTextFile[128];char acDisplay[128];int bList = 0;T_InputEvent tInputEvent;acHzkFile[0] = '\0';acFreetypeFile[0] = '\0';acTextFile[0] = '\0';strcpy(acDisplay, "fb");while ((iError = getopt(argc, argv, "ls:f:h:d:")) != -1){switch(iError){case 'l':{ bList = 1; break;}case 's':{ dwFontSize = strtoul(optarg, NULL, 0); break;}case 'f':{ strncpy(acFreetypeFile, optarg, 128); acFreetypeFile[127] = '\0'; break;}case 'h':{strncpy(acHzkFile, optarg, 128);acHzkFile[127] = '\0';break;}case 'd':{strncpy(acDisplay, optarg, 128);acDisplay[127] = '\0';break;}default:{printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]);printf("Usage: %s -l\n", argv[0]);return -1;break;}}}if (!bList && (optind >= argc)){printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]);printf("Usage: %s -l\n", argv[0]);return -1;}iError = DisplayInit();if (iError){printf("DisplayInit error!\n");return -1;}iError = FontsInit();if (iError){printf("FontsInit error!\n");return -1;}iError = EncodingInit();if (iError){printf("EncodingInit error!\n");return -1;}iError = InputInit();if (iError){printf("InputInit error!\n");return -1;}if (bList){printf("supported display:\n");ShowDispOpr();printf("supported font:\n");ShowFontOpr();printf("supported encoding:\n");ShowEncodingOpr();printf("supported input:\n");ShowInputOpr();return 0;}strncpy(acTextFile, argv[optind], 128);acTextFile[127] = '\0';iError = OpenTextFile(acTextFile);if (iError){printf("OpenTextFile error!\n");return -1;}iError = SetTextDetail(acHzkFile, acFreetypeFile, dwFontSize);if (iError){printf("SetTextDetail error!\n");return -1;}DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);iError = SelectAndInitDisplay(acDisplay);if (iError){printf("SelectAndInitDisplay error!\n");return -1;}iError = AllInputDevicesInit();if (iError){DBG_PRINTF("Error AllInputDevicesInit\n");return -1;}DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);iError = ShowNextPage();DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);if (iError){printf("Error to show first page\n");return -1;}printf("Enter 'n' to show next page, 'u' to show previous page, 'q' to exit: ");while (1){if (0 == GetInputEvent(&tInputEvent)){if (tInputEvent.iVal == INPUT_VALUE_DOWN){ShowNextPage();}else if (tInputEvent.iVal == INPUT_VALUE_UP){ShowPrePage();}else if (tInputEvent.iVal == INPUT_VALUE_EXIT){return 0;}}}return 0;}</span>
现在讲解具体用法,首先应该安装freetypes库文件:参考这里!
还需要一些字体文件,这里看个人喜欢什么样的字体,这里我上传了一个simsun.ttc字体文件,下载:点击这里!最后准备一篇txt文件的小说,当这些都准备好了就可以测试了。
./show_file -s 16 -f simsun.ttc ./qinshimingyue.txt */
LCD就显示了小说文件,触摸屏向左滑动就是上一页,向右滑动就是下一页,串口终端输入n就是下一页,输入p就是上一页。
测试完毕,可以在文章中添加一个标志位,读到哪里就记下当前位置,下次接着从这里读取。
1 0
- LCD电子书项目(七)
- LCD电子书项目(一)
- LCD电子书项目(二)
- LCD电子书项目(三)
- LCD电子书项目(四)
- LCD电子书项目(五)
- LCD电子书项目(六)
- 项目开发(七)
- ios项目(七)
- 项目进度(七)
- android项目之电子书
- 开源ios 电子书项目
- (项目)AR电子书系统创新实训第一周(1)
- (项目)AR电子书系统创新实训第一周(2)
- (项目)AR电子书系统创新实训第四周(1)
- (项目)AR电子书系统创新实训第四周(2)
- (项目)AR电子书系统创新实训中期汇报
- 我的首个电子书软件--嘎嘎读书 的开发(七)
- Android Gradle Plugin指南(二)——基本项目
- 回溯法——任务分配问题
- MVC开发模式
- 1004 Financial Management(数学水题)
- LeetCode Palindrome Pairs
- LCD电子书项目(七)
- Poj 1177 Picture
- 变量
- ThreadLocal管理下的Session
- BZOJ4456: [Zjoi2016]旅行者
- 删除所有文章,重新开始
- solr环境搭建
- winform 控件命名规范
- HDU 2841 Visible Trees (容斥原理+素因子分解)