Browse Source

添加部分注释

master
jiangming1399 1 year ago
parent
commit
d4837d374b
3 changed files with 51 additions and 1 deletions
  1. +7
    -1
      calendar.h
  2. +15
    -0
      fonts.h
  3. +29
    -0
      main.c

+ 7
- 1
calendar.h View File

@@ -2,7 +2,13 @@
#define __CALENDAR_H__

#include "fonts.h"
void calendar_generate(struct font_lib* cjk_font, struct font_lib* num_font, struct font_render_buffer* buffer);

/**
* 绘制一个日历
*
* cjk_font: 绘制星期的字体
* num_font: 绘制日期的字体
**/
void calendar_generate(struct font_lib* cjk_font, struct font_lib* num_font, struct font_render_buffer* buffer);

#endif // __CALENDAR_H__

+ 15
- 0
fonts.h View File

@@ -46,12 +46,27 @@ struct font_padding {

typedef void (*font_proccessor) (struct font_lib * lib, wchar_t ch, struct font_proccess_result * result, void * arg);

/**
* 载入一个字体
**/
struct font_error fonts_init(struct font_lib* lib, char* path);
/**
* 渲染一个文本
**/
struct font_error fonts_render(struct font_lib* lib, wchar_t* str, int font_size, enum font_align align,
struct font_render_buffer* buffer);
/**
* 带边框渲染一个文本
**/
struct font_error fonts_render_border(struct font_lib* lib, wchar_t* str, int font_size, int border_width, enum font_align align,
struct font_render_buffer* buffer);
/**
* 创建一个文本buffer
**/
void fonts_make_render_buffer(struct font_render_buffer* buffer, int width, int height);
/**
* 释放文本buffer
**/
void fonts_free_render_buffer(struct font_render_buffer* buffer);

#endif // __FONTS_H__

+ 29
- 0
main.c View File

@@ -54,6 +54,9 @@ struct font_lib font1, font2;
struct font_render_buffer time_buffer, message_buffer, calendar_buffer;
struct _fbg_img* background = NULL;

/**
* 初始化字体及对应的缓冲区
**/
void init_fonts()
{
log_msg("Initing fonts...");
@@ -66,6 +69,9 @@ void init_fonts()
fonts_render(&font2, L"请访问 https://wiki.lotlab.org 获取此日历的使用说明。", MESSAGE_HEIGHT * 0.7, FONT_ALIGN_LEFT, &message_buffer);
}

/**
* 重新绘制时间
**/
void redraw_time()
{
wchar_t time_str[10];
@@ -75,6 +81,9 @@ void redraw_time()
dirty = true;
}

/**
* 重新绘制日历
**/
void redraw_calendar()
{
log_msg("Regenarating calendar...");
@@ -83,12 +92,18 @@ void redraw_calendar()
dirty = true;
}

/**
* 初始化计时器
**/
void init_timers()
{
timer_add_hook(HOOK_SECOND, &redraw_time);
timer_add_hook(HOOK_DAY, &redraw_calendar);
}

/**
* 初始化背景图像
**/
void init_background()
{
background = fbg_createImage(fbg, SCREEN_WIDTH, SCREEN_HEIGHT);
@@ -108,6 +123,9 @@ void init_background()

#pragma region web_request

/**
* 处理消息推送
**/
int message_handler(void* p, onion_request* req, onion_response* res)
{
if (onion_request_get_flags(req) & OR_HEAD) {
@@ -131,6 +149,9 @@ int message_handler(void* p, onion_request* req, onion_response* res)
}
}

/**
* 处理静态文件的请求
**/
int file_handler(void* p, onion_request* req, onion_response* res)
{
const char* file = onion_request_get_fullpath(req);
@@ -144,6 +165,9 @@ int file_handler(void* p, onion_request* req, onion_response* res)
return status;
}

/**
* 处理背景图像上传的请求
**/
onion_connection_status upload_file(void* p, onion_request* req, onion_response* res)
{
if (onion_request_get_flags(req) & OR_POST) {
@@ -172,6 +196,9 @@ onion_connection_status upload_file(void* p, onion_request* req, onion_response*

onion* o = NULL;

/**
* 初始化HTTP服务器
**/
void init_http()
{
o = onion_new(O_THREADED | O_DETACH_LISTEN | O_NO_SIGTERM);
@@ -253,6 +280,8 @@ int main(int argc, char* argv[])

fonts_free_render_buffer(&message_buffer);
fonts_free_render_buffer(&time_buffer);
fonts_free_render_buffer(&calendar_buffer);
fbg_freeImage(background);

fbg_close(fbg);
}

Loading…
Cancel
Save