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

📄 mosaic.h

📁 c语言编的
💻 H
📖 第 1 页 / 共 2 页
字号:
    focus_data_t  focus_data;  
}mosaic_data_t;
        
typedef struct
{
  	mosaic_data_t *mosaic_data;              
    /*default_font_attribute_t default_font;*/
    page_node_t *page_list;
}mosaic_node_t;
  
/*
 *the structure of page layer data
 */
   
/*Multilingual_Texts_List_Descriptor;*/

struct tag_info_dis_area_data_t
{
	uint8_t iso_639_language[3]; /*this code is 24 bits*/
    uint8_t default_mask; /*the lowest bit is font, prev is the text_frame*/	
    text_frame_t text_frame;
    font_attribute_t font_data;
    
    info_dis_area_data_t *next;
};

typedef struct
{
	uint8_t dis_type;
	info_dis_area_data_t *data_list;
         
}info_dis_area_t; 
  
struct tag_multilingual_picture_t
{
  	uint8_t iso_639_language[3];
  	
  	uint16_t x,y,w,h;
  	uint8_t background_color;
  	uint8_t protocol_type;
  	union
  	{
		private_locator_t private_data; 
  		local_locator_t   local_data;
  	}possible_protocol_type;
  	
  	picture_t *next;
}; /*multilingual*/


typedef struct
{
  	uint8_t page_id;
  	
  	uint8_t info_dis_area_num;
    info_dis_area_t info_position[8];
    
    multilingual_texts_list_t *page_texts_list;
    
  	uint8_t background_type;/*0x01 is picture, 0x02 is video*/
  	union
  	{
  		picture_t picture_tag;
  		stream_locator_t service_tag;
  	}possible_background_type;
  	
}page_data_t;

struct tag_page_t
{
  	page_data_t *page_data;
  	cell_node_t *cell_list;
  	page_node_t *prev,*next; 
};
  
/*
 *the structure of cell layer data
 */  

struct tag_nav_link_data_t
{ 
	uint16_t possible_key_code;
	uint8_t tag_page_id;
	uint8_t tag_cell_id;
	/*nav_link_data_t *prev,*next;*/
};
 
typedef struct
{   
	uint8_t  common_directions_bitmap;
    uint8_t  n_page_id, n_cell_id;
    uint8_t  e_page_id, e_cell_id;
    uint8_t  s_page_id, s_cell_id; 
    uint8_t  w_page_id, w_cell_id;
    nav_link_data_t nav_link_data[4];
} cell_navigation_t;

struct tag_ms_offers_t
{
	uint16_t opi;
	uint8_t offers_map[8];
	ms_offers_t *next;
};

typedef struct
{
	uint8_t stream_to_cut;
	ms_offers_t *offers_list;
}authorized_offers_t;

/*struct tag_conceal_zone_num
{
	uint8_t conceal_zone_num;
	conceal_zone_num_list_t *next;
}

struct tag_authorize_zone_num
{
	uint8_t authorize_zone_num;
	authorize_zone_num_list_t *next;
}*/


struct tag_geo_zones_t
{
	uint16_t opi;
	uint8_t list_mode_length;
	union
	{
		uint8_t conceal_geo_bitmap[32];
		uint8_t conceal_zone_num[32];
		uint8_t authorize_zone_num[32];
		/*conceal_zone_num_list_t *conceal_list;
		authorize_zone_num_list_t *authorize_list;*/
	}geo_info_data;
	
	geo_zones_t *next;
};

struct tag_country_code_t
{
	uint8_t country_code_info[3];
	country_code_t *next;
};

typedef struct
{
	uint8_t country_availability_flag; /*1 is intended, 0 is not intended*/
	country_code_t *country_code_list;
}country_data_t;

typedef struct
{
	uint8_t  page_id;
  	uint8_t  cell_id;
	uint16_t  x, y, w, h;
	cell_navigation_t nav_data;
	/*
	 *the following structure may be present or not, 
	 *the activation_mask indicate the state
	 */
	uint8_t activation_mask; /*the lowest bit is action cell_link, then is link_audio, eit_data*/
	action_data_t cell_possible_link;   /*0x01*/
	stream_locator_t link_audio_data;   /*0x02*/
	eit_filter_t eit_ifo_data;          /*0x04*/
	
	authorized_offers_t *offers_data;
	geo_zones_t *geo_zones_data;
	country_data_t *country_data;
}cell_data_t;
  
struct tag_cell_t
{
  	cell_data_t *cell_data;
	cell_node_t *prev,*next;
};
  
/*
 *the structure for idedtifier the node of mosaic、page or cell layer
 */
typedef struct 
{
  	uint8_t page_id;
}page_node_ident_t; 
   
typedef struct 
{
  	uint8_t page_id;
  	uint8_t cell_id;
}cell_node_ident_t; 

enum
{
    MOSAIC_LAYER_DATA,
    PAGE_LAYER_DATA,
    CELL_LAYER_DATA,
    DVB_DEFINE_DATA
};

typedef struct
{
	uint16_t on_id;
	uint16_t ts_id;
	uint16_t service_id;
	uint16_t mosaic_pmt_pid;
	uint16_t mosaic_table_pid; 
}ms_network_data_t;

typedef struct 
{
	int16_t	version_number;
	uint16_t  	event_id;
	uint8_t   	event_name[ MS_MAX_EVENT_NAME_LENGTH/*30*/ + 1 ];
	uint16_t  	start_year;
	uint8_t  	start_month;
	uint8_t  	start_day;
	uint8_t   	start_time [ 3 ];
	uint8_t   	end_time [ 3 ];
}ms_eitpf_event_t;
  
error_t mosaic_test(void); 

error_t mosaic_app_exit(cell_data_t*); 
  
int parse_mosaic_descriptor(uint8_t*, 
                            uint8_t,
                            int16_t);
                              
                              
mosaic_node_t* mosaic_init_data_tree(void);  

error_t  mosaic_add_page_node(mosaic_node_t*,
                              page_data_t*);
                                
error_t  mosaic_add_cell_node(mosaic_node_t*,
                              cell_data_t*,
                              page_node_ident_t);
                              
error_t mosaic_find_cell_node(mosaic_node_t*,
                              cell_node_ident_t,
                              cell_node_t**);
                              
error_t mosaic_find_page_node(mosaic_node_t*,
                              page_node_ident_t,
                              page_node_t**);
                              
error_t ms_find_multi_text(multilingual_text_t*,
						   multilingual_text_t**);
						   
error_t ms_find_info_area(info_dis_area_data_t*,						  
						  info_dis_area_data_t**);						   
                              
error_t ms_draw_focus(int16_t, int16_t, int16_t, int16_t);
error_t ms_delete_focus(int16_t, int16_t, int16_t, int16_t);

error_t ms_cell_nav(cell_data_t*,
                  	uint8_t,
                  	uint8_t,
                  	cell_data_t**);
                  	
error_t ms_cell_nav_link(cell_data_t*, 
                  	     uint8_t, 
                  		 uint8_t,
                  		 uint8_t,
                    	 cell_data_t**); 
                    	 
error_t ms_enter_new_page(page_node_t*, cell_node_t*);

error_t ms_enter_cell_possible_link(cell_data_t*);

error_t ms_parse_nit(uint8_t*);

error_t ms_parse_pat(uint8_t*);

error_t ms_parse_pmt(uint8_t*);

error_t ms_parse_eitpf(uint8_t*);

error_t ms_display_current_cell_info(cell_data_t*);
                  	
error_t ms_event_info_display(cell_data_t*, 
                              uint8_t);
                              
error_t ms_get_event_info(cell_data_t*, 
                          uint8_t);

error_t ms_play_cell_audio(cell_data_t*);

void ms_reset_version_number(void);

void ms_star_dialog(char*);

/*void ms_welcome_display(void);*/

void ms_error_dialog(char*);

error_t ms_get_service_cell_name(service_t, char**);

char* ms_parse_sdt_name(uint8_t*,
	                    int16_t, 
	                    service_t);

uint8_t ms_get_display_alignment(uint8_t);
error_t ms_display_current_page_info(page_node_t*);

error_t ms_multi_texts_list_dis(page_node_t*);

error_t mosaic_check_page_mask(page_node_t*);
error_t mosaic_check_cell_status(cell_data_t*);

void mosaic_ui_clear_screen(void);

uint8_t mosaic_get_color_index(uint8_t);


void ms_STWTK_DynamicTextInRect(void *context_p, INT iXPos, INT iYPos, INT iWidth, INT iHeight,char * cpText,
							    INT iXPad, INT iYPad, INT iJustification, int jJustification,
							    INT iFcol, INT iBcol);
							    
void ms_ui_clear_area(int32_t x, int32_t y, int32_t w, int32_t h);

uint32_t ms_locked_message(void);
error_t ms_locked_window(void);

/*add by xhw*/
typedef struct
{
	uint8_t rgb[3];
}rgb_color;
#if 0
ui_logical_palette_t* mosaic_palette_create(void);
void mosaic_palette_delete(ui_logical_palette_t *palette);
#endif
/*****************/

#endif

⌨️ 快捷键说明

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