📄 menuctrl.c
字号:
break;
case ITEM_MANUAL_TUNE :
if(menu_item & MENU_DIRECTION )
command_flags = command_flags | AUTO_SEARCH_DIRECTION;
else
command_flags = command_flags &~ AUTO_SEARCH_DIRECTION;
first_autosearch = 1;
start_autosearch();
break;
case ITEM_FINE_TUNE :
if(menu_item & MENU_DIRECTION)
{
increment_VS(MEDIUM_STEP);
if(fine_tune < 63)
fine_tune++;
}
else
{
decrement_VS(MEDIUM_STEP);
if(fine_tune > 0)
fine_tune--;
}
store_program_info(channel);
tuning_flags = tuning_flags & ~ENABLE_AFC;
break;
case ITEM_ORGANIZE :
next_menu();
break;
}
break;
case MENU_FUNCTION:
menu_item &=~MENU_DIRECTION;
switch(menu_item)
{
case ITEM_LANGUAGE :
language ^=0x01;
write_eeprom(EEPROM_LANGUAGE,language);
break;
case ITEM_TIMER :
next_menu();
break;
}
break;
case MENU_GAME :
//empty;
break;
case MENU_TIMER:
if (menu_item &MENU_DIRECTION)
{
menu_item &=~MENU_DIRECTION;
if (menu_item == ITEM_WAKE_UP_PR)
{
menu_theme = 0;
alarm_channel = roll_inc(alarm_channel,CHANNEL_NUMBER);
if(alarm_channel == 0)
alarm_channel = 0x01;
write_eeprom(EEPROM_ALARM_CHANNEL,alarm_channel);
}
else
{
menu_theme = 2;
if (menu_item == ITEM_TIMES)
minute = roll_inc(minute,59);
else
{
if (menu_item == ITEM_WAKE_UP)
{
alarm_on_minute = roll_inc(alarm_on_minute,59);
write_eeprom_alarm_time(); /*write_alarm hour minute */
}
else
{
if (menu_item == ITEM_OFF_TIME)
{
alarm_off_minute = roll_inc(alarm_off_minute,59);
write_eeprom_alarm_time(); /*write_alarm hour minute */
}
}
}
}
}
else
{
menu_theme = 0;
if (menu_item == ITEM_WAKE_UP_PR)
{
if(alarm_channel == 0x01)
alarm_channel = 0x00;
alarm_channel = roll_dec(alarm_channel,CHANNEL_NUMBER);
write_eeprom(EEPROM_ALARM_CHANNEL,alarm_channel);
}
else
{
if (menu_item == ITEM_TIMES)
hour = roll_inc(hour,23);
else
{
if (menu_item == ITEM_WAKE_UP)
{
alarm_on_hour = roll_inc(alarm_on_hour,23);
write_eeprom_alarm_time(); /*write_alarm hour minute */
}
else
{
if (menu_item == ITEM_OFF_TIME)
{
alarm_off_hour = roll_inc(alarm_off_hour,23);
write_eeprom_alarm_time(); /*write_alarm hour minute */
}
}
}
}
}
break;
case MENU_ORGANIZE:/*ASHISH*/
if (station_edit_flags == EDIT_DONE)
{
if (menu_item &MENU_DIRECTION)
{
menu_item = menu_item &~MENU_DIRECTION;
menu_theme = roll_inc(menu_theme,THEME_SKIP);
}
else
{
menu_theme = roll_dec(menu_theme,THEME_SKIP);
}
i=station_page+menu_item;
if(i>=CHANNEL_NUMBER)i-=CHANNEL_NUMBER;
i = EEPROM_START_LABEL_MEMORY+(i*4)+(menu_theme-1);/*5ASH*/
i = read_eeprom(i);
if(i==32) station_item=29;
if(i==164) station_item=26;
if(i==96) station_item=27;
if(i==58) station_item=28;
if(i>='0' && i<='9') station_item=i-'0'+30;
if(i>='A' && i<='Z') station_item= i - 'A';
}
break;
}
menu_item &=~MENU_DIRECTION;
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
void previous_menu(void)
{
switch(menu_page)
{
case MENU_DEFAULT:
disable_menu_mode(); /* Sroll down and display off*/
break;
case MENU_PICTURE:
case MENU_GAME :
case MENU_SOUND:
case MENU_INSTALL:
case MENU_FUNCTION:
menu_item=menu_page-1;
menu_page=MENU_DEFAULT;
break;
//other menu
case MENU_ORGANIZE:/*ASHISH*/
menu_item=ITEM_ORGANIZE;
menu_page=MENU_INSTALL;
init_nibble_time();
break;
case MENU_TIMER:
if((alarm_on_hour < 24) && (alarm_off_hour <24) && (alarm_off_minute <60) && (alarm_on_minute < 60) && (alarm_channel <100))
alarm_set = ALARM_ON;
else
alarm_set = 0;
menu_item=ITEM_TIMER;
menu_page=MENU_FUNCTION;
init_nibble_time();
break;
}
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
void next_menu(void)
{
// unsigned char i;
menu_item &=~MENU_DIRECTION;
switch (menu_page)
{
case MENU_DEFAULT:
menu_page=menu_item+1;
menu_item=0;
break;
case MENU_INSTALL :
if(menu_item == ITEM_ORGANIZE)
{
menu_page=MENU_ORGANIZE;
menu_item=0;
station_page=channel-1;/*page number*/
station_edit_flags =0x00; /* edit_flags init */
}
break;
case MENU_FUNCTION :
if(menu_item == ITEM_TIMER)
{
menu_page = MENU_TIMER;
menu_item = 0;
}
break;
}
menu_theme =0;
display_request_flags = display_request_flags | REFRESH_DISPLAY;
display_request_flags = display_request_flags & ~MENU_FLASH_DISPLAY;/*2.17*/
}
void time_to_zore(void)
{
if(menu_page == MENU_TIMER)
{
switch(menu_item)
{
case ITEM_TIMES:
time_flags |= SET_TIME;
hour = DISABLE_TIME;
minute = DISABLE_TIME;
break;
case ITEM_WAKE_UP:
alarm_on_hour = DISABLE_TIME;
alarm_on_minute = DISABLE_TIME;
write_eeprom_alarm_time();
break;
case ITEM_OFF_TIME:
alarm_off_hour = DISABLE_TIME;
alarm_off_minute = DISABLE_TIME;
write_eeprom_alarm_time();
break;
case ITEM_WAKE_UP_PR:
alarm_channel = channel;
write_eeprom(EEPROM_ALARM_CHANNEL,alarm_channel);
break;
}
menu_theme = 0;
}
display_request_flags = display_request_flags | REFRESH_DISPLAY;
display_request_flags = display_request_flags & ~MENU_FLASH_DISPLAY;
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
void update_menu_digit_entry(unsigned char current_command)
{
switch (menu_page)
{
case MENU_TIMER:
switch(menu_item)
{
case ITEM_TIMES:
if(menu_theme < 2)
{
hour = set_digit_time(menu_theme,hour,current_command,23);
minute = DISABLE_TIME;
}
else
if (menu_theme < 4)
minute = set_digit_time((menu_theme-2),minute,current_command,59);
if (!(hour & 0xc0) && !(minute & 0xc0))
time_flags = time_flags &~SET_TIME;
menu_theme=roll_inc(menu_theme,3);
break;
case ITEM_WAKE_UP:
if(menu_theme < 2)
{
alarm_on_hour = set_digit_time(menu_theme,alarm_on_hour,current_command,23);
alarm_on_minute = DISABLE_TIME;
}
else if (menu_theme < 4)
alarm_on_minute = set_digit_time((menu_theme-2),alarm_on_minute,current_command,59);
if (!(alarm_on_hour & 0xc0) && !(alarm_on_minute & 0xc0))
write_eeprom_alarm_time(); /*write_alarm hour minute */
menu_theme=roll_inc(menu_theme,3);
break;
case ITEM_OFF_TIME:
if(menu_theme < 2)
{
alarm_off_hour = set_digit_time(menu_theme,alarm_off_hour,current_command,23);
alarm_off_minute = DISABLE_TIME;
}
else if (menu_theme < 4)
alarm_off_minute = set_digit_time((menu_theme-2),alarm_off_minute,current_command,59);
if (!(alarm_off_hour & 0xc0) && !(alarm_off_minute & 0xc0))
write_eeprom_alarm_time(); /*write_alarm hour minute */
menu_theme=roll_inc(menu_theme,3);
break;
case ITEM_WAKE_UP_PR:
if (menu_theme == 0) /* first time */
alarm_channel = current_command | SET_NIBBLE_CHANNEL;
else
{
if (alarm_channel & SET_NIBBLE_CHANNEL)
alarm_channel &=~SET_NIBBLE_CHANNEL;
else
alarm_channel = alarm_channel/10;
alarm_channel = alarm_channel *10 + current_command;
if (alarm_channel == 0 || alarm_channel > CHANNEL_NUMBER)
alarm_channel = 1;
}
if (!(alarm_channel &SET_NIBBLE_CHANNEL))
write_eeprom(EEPROM_ALARM_CHANNEL,alarm_channel);
menu_theme=roll_inc(menu_theme,1);
break;
}
break;
}
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
unsigned char set_digit_time(unsigned char select,unsigned char digit_time,unsigned char current_command,unsigned char max_digit)
{
if (select == 0) /* first */
digit_time = current_command | SET_NIBBLE_TIME;
else
{
if (digit_time & DISABLE_TIME)
digit_time = current_command;
else
{
if (digit_time & SET_NIBBLE_TIME)
digit_time = digit_time & ~SET_NIBBLE_TIME;
else
digit_time = digit_time/10;
digit_time = digit_time * 10 + current_command;
if (digit_time > max_digit)
digit_time = max_digit;
}
}
return digit_time;
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
void init_nibble_time(void)
{
alarm_channel &= ~SET_NIBBLE_CHANNEL;
channel_store &= ~SET_NIBBLE_CHANNEL;
hour = hour &~SET_NIBBLE_TIME;
minute = minute &~SET_NIBBLE_TIME;
alarm_on_hour = alarm_on_hour &~SET_NIBBLE_TIME;
alarm_on_minute = alarm_on_minute &~SET_NIBBLE_TIME;
alarm_off_hour = alarm_off_hour &~SET_NIBBLE_TIME;
alarm_off_minute = alarm_off_minute &~SET_NIBBLE_TIME;
if (alarm_channel == 0) alarm_channel =1; /* DEFAULT CHANNEL */
if ( hour&DISABLE_TIME || minute & DISABLE_TIME)
{ hour = DISABLE_TIME; minute = DISABLE_TIME;time_flags |= SET_TIME;}
if ( alarm_on_hour&DISABLE_TIME || alarm_on_minute & DISABLE_TIME)
{ alarm_on_hour = DISABLE_TIME; alarm_on_minute = DISABLE_TIME;}
if ( alarm_off_hour&DISABLE_TIME || alarm_off_minute & DISABLE_TIME)
{ alarm_off_hour = DISABLE_TIME; alarm_off_minute = DISABLE_TIME;}
write_eeprom_alarm_time();
write_eeprom(EEPROM_ALARM_CHANNEL,alarm_channel);
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
void toggle_skip(void)
{
unsigned int j;
unsigned char i;
// if (menu_page == MENU_ORGANIZE && station_edit_flags==EDIT_DONE)
// {
j = EEPROM_START_CHANNEL_MEMORY+((channel-1)*3)+SETTINGS;
i =read_eeprom(j);
i ^=SKIP_MASK;
write_eeprom(j,i);
// }
}
/*****************************************************************************
INPUTS :
OUTPUTS :
DESCRIPTION:
*****************************************************************************/
void edit_move(void)
{
if (menu_page == MENU_ORGANIZE)
{
if (station_edit_flags == EDIT_DONE)
{
menu_theme = THEME_PR;
station_source = station_page + menu_item;
if (station_source >=CHANNEL_NUMBER) station_source-=CHANNEL_NUMBER;
station_edit_flags |= EDIT_MOVE_SOURCE;
}
else
{
menu_theme = THEME_PR;
station_target = station_page + menu_item;
if (station_target >=CHANNEL_NUMBER) station_target-=CHANNEL_NUMBER;
station_edit_flags |= (EDIT_MOVE_TARGET|DISPLAY_WAIT);
}
}
}
void edit_delete(void)
{
if (menu_page == MENU_ORGANIZE && station_edit_flags == EDIT_DONE)
{
menu_theme = THEME_PR;
station_source = station_page + menu_item;
if (station_source >=CHANNEL_NUMBER)
station_source-=CHANNEL_NUMBER;
station_edit_flags |= (EDIT_DELETE|DISPLAY_WAIT);
}
}
/*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -