#include "spirit_island_api.h" #include "app_variable.h" #if defined(TJD_GUI_SPIRIT_ISLAND_SHOW) spirit_island_controls_t my_spirit_island[MAX_TASK_NUM] ; //获取顶端任务标号 int get_si_tail_index(void) { int index = -1; for(int index = MAX_TASK_NUM - 1 ; index >= 0;index--) { if((my_spirit_island[index].is_valid == true)&&(my_spirit_island[index].type != none)) { return index; } } return index; } //根据id号,填入任务 /**************** id = 0 已经初始化为无消息 id = 1 新消息 id = 2 音乐 id = 3 秒表 ****************/ uint8_t si_activated_task(u8 type,u8 message_type) { uint8_t new_i=0; printf("si_activated_task[%d,%d]",SysVariable.SpiritIslandSwitch,type); if(SysVariable.SpiritIslandSwitch == false) return 0; //重复激活,置顶被重复的任务 si_delet_task(type); //新增一个任务在顶端 for(new_i=0;new_i=0;i--) { printf("newa task[%d]\n",new_i); if((my_spirit_island[new_i].is_valid==false)&&(my_spirit_island[new_i].type==none)) { printf("newa task11[%d]\n",new_i); my_spirit_island[new_i].message_type = message_type; my_spirit_island[new_i].type = type; my_spirit_island[new_i].is_valid = true; SysVariable.SpiritIsland_New_Event = true; printf("newa task11[%d,%d,%d]\n",new_i,my_spirit_island[new_i].type ,my_spirit_island[new_i].is_valid); // my_spirit_island[new_i].spirit_island_show = get_si_show_task(my_spirit_island[new_i].curtask_id); break; } } return new_i; } //根据ID号删除一个任务 int si_delet_task(int id) { int i=0; for(i=MAX_TASK_NUM-1;i>=0;i--) { if((my_spirit_island[i].type == id)&&(my_spirit_island[i].is_valid == true)) { //查询最新任务位置 int index = get_si_tail_index(); if(i== index) { memset(&my_spirit_island[i], 0, sizeof(spirit_island_controls_t)); } else { for(int var=i;i= 0; i--) { printf("my_spirit_island[%d].is_valid = %d\n",i,my_spirit_island[i].is_valid); if((my_spirit_island[i].is_valid == true)&& (my_spirit_island[i].type != none)) { return &my_spirit_island[i]; } } return NULL; } void spirit_island_init(void) { if(SysVariable.SpiritIslandSwitch == true) { printf("spirit_island_init"); si_delete_all_task(); si_activated_task(nomessage,0); } } #endif