mirror of
https://gitee.com/anod/open_agb_firm.git
synced 2025-05-07 22:34:12 +08:00
完整的金手指树选择
This commit is contained in:
parent
df0f2d8947
commit
90f9624b2a
@ -265,6 +265,44 @@ static atp_error_t select_region( atp_callerdata_t data, atp_counter_t index, at
|
||||
return ATP_SUCCESS;
|
||||
}
|
||||
|
||||
static atp_error_t select_holes( atp_callerdata_t d, atp_counter_t index, atp_itemcfg_t *cfg )
|
||||
{
|
||||
acl_text_t text;
|
||||
acl_error_t res = acl_entry_get_label(index, &text);
|
||||
if( res == ACHTLIB_SUCCESS )
|
||||
cfg->text = text;
|
||||
else cfg->text = "无效数据";
|
||||
cfg->value = 1+index;
|
||||
return ATP_SUCCESS;
|
||||
}
|
||||
|
||||
static atp_error_t select_onoff( atp_callerdata_t data, atp_counter_t index, atp_itemcfg_t *cfg )
|
||||
{
|
||||
acl_entryid_t eid = (acl_entryid_t)data;
|
||||
cfg->text = index == 0 ? "不开启" : "开启";
|
||||
cfg->value = index << 16 | eid;
|
||||
return ATP_SUCCESS;
|
||||
}
|
||||
|
||||
static atp_error_t select_keys( atp_callerdata_t data, atp_counter_t index, atp_itemcfg_t *cfg )
|
||||
{
|
||||
acl_text_t text;
|
||||
if( index == 0 )
|
||||
{
|
||||
cfg->text = "不开启";
|
||||
}
|
||||
else
|
||||
{
|
||||
acl_error_t res = acl_entry_get_label(index-1, &text);
|
||||
if( res == ACHTLIB_SUCCESS )
|
||||
cfg->text = text;
|
||||
else cfg->text = "无效数据";
|
||||
}
|
||||
acl_entryid_t eid = (acl_entryid_t)data;
|
||||
cfg->value = index<<16 | eid;
|
||||
return ATP_SUCCESS;
|
||||
}
|
||||
|
||||
extern atp_error_t oaf_config_page();
|
||||
|
||||
#define DIRBUFFSIZE 512
|
||||
@ -333,7 +371,52 @@ static atp_pageopt_t serve_on_key( atp_callerdata_t data, atp_counter_t index, a
|
||||
// 显示配置页面
|
||||
atp_error_t res;
|
||||
atp_itemval_t item;
|
||||
res = atp_select("选择一个金手指配置", len, select_region, NULL, NULL, 0, 0, &item );
|
||||
acl_elemlen_t cnt;
|
||||
|
||||
#define DISP_DONE 0
|
||||
#define DISP_REGION 1
|
||||
#define DISP_HOLES 2
|
||||
#define DISP_KEYS 3
|
||||
|
||||
uint8_t status = DISP_REGION;
|
||||
while( status != DISP_DONE )
|
||||
{
|
||||
acl_entryid_t eid;
|
||||
if( status == DISP_REGION )
|
||||
{
|
||||
res = atp_select("选择一个金手指配置", len, select_region, NULL, NULL, 0, 0, &item );
|
||||
if( res == ATP_SUCCESS )
|
||||
{
|
||||
acl_chtid_t sid = (acl_chtid_t)item;
|
||||
acl_select_cheat_set( sid );
|
||||
status = DISP_HOLES;
|
||||
}
|
||||
else status = DISP_DONE;
|
||||
}
|
||||
else if( status == DISP_HOLES )
|
||||
{
|
||||
acl_select_entry(0, &cnt);
|
||||
res = atp_select("选择一个金手指项目", cnt, select_holes, NULL, NULL, 0, 0, &item);
|
||||
if( res == ATP_SUCCESS )
|
||||
{
|
||||
eid = (acl_entryid_t)item;
|
||||
acl_select_entry(eid, &cnt);
|
||||
res = DISP_KEYS;
|
||||
}
|
||||
else status = DISP_REGION;
|
||||
}
|
||||
else // DISP_KEYS
|
||||
{
|
||||
res = atp_select("选择此项目对应的设置", cnt==0 ? 2:cnt, cnt==0 ? select_onoff : select_keys, NULL, eid, 0, 0, &item);
|
||||
if( res == ATP_SUCCESS )
|
||||
{
|
||||
char tmp[20];
|
||||
ee_sprintf(tmp, "sel %08x", item);
|
||||
DEBUG(tmp);
|
||||
}
|
||||
status = DISP_HOLES;
|
||||
}
|
||||
}
|
||||
|
||||
acl_close_lib();
|
||||
return WAIT_ON_ACT( res );
|
||||
|
Loading…
x
Reference in New Issue
Block a user