⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r2d_fonts.c

📁 是一个手机功能的模拟程序
💻 C
字号:
/**
                                                                          
	@file:	r2d_fonts.c	
	
	@author Christophe Favergeon                              
                                                                          
    @version	0.5	

    Purpose:	Font file including all fonts definition which are LCD
	            dependen
	
*/

/*
																			
 	Date       	Modification												
  ------------------------------------									
    06/02/2001	Create		
	10/18/2001  Version 0.5 for first integration with Riviera database
																											    
																			
 (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved
*/

#include "general.h"

#include "rvm_gen.h"
// modified by clrobert
// from
/*
#include "rvm_ext_priorities.h"
*/
// to
#ifndef _INNOVATION_EMULATOR_
#include "rvm_ext_priorities.h"
#endif
// modify end
#include "rvf_api.h"

#include "r2d_config.h"
#include "r2d.h"
#include "r2d_i.h"
#include "r2d_env.h"

extern T_R2D_FONT_DESCRIPTION *r2d_g_font_configuration;

#define r2d_new_font(name) T_R2D_FRAMEBUFFER* r2d_g_font_framebuffer_##name##=NULL; \
	INT32 *r2d_g_font_metrics_##name##=(INT32*)r2d_font_metric_##name##+R2D_METRIC_START

#define r2d_init_font_field(field,name) { \
r2d_g_font_configuration[##field##].table=(INT32*)r2d_font_ptree_##name##; \
r2d_g_font_configuration[##field##].metrics=r2d_g_font_metrics_##name##; \
r2d_g_font_configuration[##field##].framebuffer=(T_R2D_FRAMEBUFFER_PTR)r2d_g_font_framebuffer_##name##; \
r2d_g_font_configuration[##field##].compute_bold=FALSE; \
}

#define r2d_init_font_field_without_bold(field,name) { \
r2d_g_font_configuration[##field##].table=(INT32*)r2d_font_ptree_##name##; \
r2d_g_font_configuration[##field##].metrics=r2d_g_font_metrics_##name##; \
r2d_g_font_configuration[##field##].framebuffer=(T_R2D_FRAMEBUFFER_PTR)r2d_g_font_framebuffer_##name##; \
r2d_g_font_configuration[##field##].compute_bold=TRUE; \
}

#define r2d_clean_font(name) \
 rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##->mutex));\
 rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##));\
 r2d_g_font_framebuffer_##name##=NULL;

#if (R2D_REFRESH == R2D_VERTICAL) 
#define r2d_init_font(name) \
	h=r2d_font_metric_##name##[0]; \
v=r2d_font_metric_##name##[1]; \
   words=r2d_font_metric_##name##[2]; \
   rvf_get_buf(r2d_mb_id, sizeof(T_R2D_FRAMEBUFFER), \
   (T_RVF_BUFFER**)&r2d_g_font_framebuffer_##name##);\
   if (r2d_g_font_framebuffer_##name##==NULL)\
     ret_err=R2D_MEMORY_ERR;\
   else\
	 {\
   length=h*words; \
   r2d_g_font_framebuffer_##name##->p_memory_words=(UINT32*)r2d_font_bitmap_##name##; \
   r2d_g_font_framebuffer_##name##->refcount=-1; \
   r2d_g_font_framebuffer_##name##->kind=R2D_LCD_KIND; \
   r2d_g_font_framebuffer_##name##->p_frame_buffer_end=r2d_g_font_framebuffer_##name##->p_memory_words+length; \
   r2d_g_font_framebuffer_##name##->width=h; \
   r2d_g_font_framebuffer_##name##->height=v; \
   rvf_get_buf(r2d_mb_id, sizeof(T_RVF_MUTEX), \
   (T_RVF_BUFFER**)&(r2d_g_font_framebuffer_##name##->mutex));\
   if (r2d_g_font_framebuffer_##name##->mutex!=NULL)\
   {\
        T_RVF_RET err;\
		err=rvf_initialize_mutex(r2d_g_font_framebuffer_##name##->mutex);\
		if (err!=RVF_OK)\
		{\
		         ret_err=R2D_MEMORY_ERR;\
				 rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##->mutex));\
				 rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##));\
				 r2d_g_font_framebuffer_##name##=NULL;\
		}\
   }\
   else\
   {\
       ret_err=R2D_MEMORY_ERR;\
	   rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##));\
	   r2d_g_font_framebuffer_##name##=NULL;\
   }\
}
#else
#define r2d_init_font(name) h=r2d_font_metric_##name##[0]; \
   v=r2d_font_metric_##name##[1]; \
   words=r2d_font_metric_##name##[2]; \
   rvf_get_buf(r2d_mb_id, sizeof(T_R2D_FRAMEBUFFER), \
   (T_RVF_BUFFER**)&r2d_g_font_framebuffer_##name##);\
   if (r2d_g_font_framebuffer_##name##==NULL)\
     ret_err=R2D_MEMORY_ERR;\
   else\
	 {\
   length=v*words; \
   r2d_g_font_framebuffer_##name##->p_memory_words=(UINT32*)r2d_font_bitmap_##name##; \
   r2d_g_font_framebuffer_##name##->refcount=-1; \
   r2d_g_font_framebuffer_##name##->kind=R2D_LCD_KIND; \
   r2d_g_font_framebuffer_##name##->p_frame_buffer_end=r2d_g_font_framebuffer_##name##->p_memory_words+length; \
   r2d_g_font_framebuffer_##name##->width=h; \
   r2d_g_font_framebuffer_##name##->height=v; \
   rvf_get_buf(r2d_mb_id, sizeof(T_RVF_MUTEX), \
   (T_RVF_BUFFER**)&(r2d_g_font_framebuffer_##name##->mutex));\
   if (r2d_g_font_framebuffer_##name##->mutex!=NULL)\
   {\
        T_RVF_RET err;\
		err=rvf_initialize_mutex(r2d_g_font_framebuffer_##name##->mutex);\
		if (err!=RVF_OK)\
		{\
		         ret_err=R2D_MEMORY_ERR;\
				 rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##->mutex));\
				 rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##));\
				 r2d_g_font_framebuffer_##name##=NULL;\
		}\
   }\
   else\
   {\
       ret_err=R2D_MEMORY_ERR;\
	   rvf_free_buf((void*)(r2d_g_font_framebuffer_##name##));\
	   r2d_g_font_framebuffer_##name##=NULL;\
   }\
}
#endif

#if (R2D_EMBEDDED_LCD == R2D_SIMPLE_LCD)
#include "LCDs/Simple/r2d_font_init_i.c"
#endif

#if (R2D_EMBEDDED_LCD == R2D_PC_COLOR_LCD)
#include "LCDs/ColorPC/r2d_font_init_i.c"
#endif

#if (R2D_EMBEDDED_LCD == R2D_MIRRORED_LCD)
#include "LCDs/Mirrored/r2d_font_init_i.c"
#endif

#if (R2D_EMBEDDED_LCD == R2D_CUSTOMER_LCD)
#include "LCDs/Customer/r2d_font_init_i.c"

#endif

#if (R2D_EMBEDDED_LCD == R2D_HORIZONTAL_LCD)
#include "LCDs/Horizontal/r2d_font_init_i.c"
#endif

#if (R2D_EMBEDDED_LCD == R2D_BOARD_COLOR_LCD)
#include "LCDs/ColorBoard/r2d_font_init_i.c"
#endif

#if (R2D_EMBEDDED_LCD == R2D_BOARD_DSAMPLE)
#include "LCDs/D_Sample/r2d_font_init_i.c"
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -