0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00
This commit is contained in:
OneOfEleven 2023-11-26 19:09:10 +00:00
parent 90b0435ed7
commit 277b7fb4a4
8 changed files with 376 additions and 58 deletions

View File

@ -76,7 +76,7 @@ ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1
ENABLE_FASTER_CHANNEL_SCAN := 1 ENABLE_FASTER_CHANNEL_SCAN := 1
ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1 ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1
# Rx Signal Bar 400 B # Rx Signal Bar 400 B
ENABLE_RX_SIGNAL_BAR := 0 ENABLE_RX_SIGNAL_BAR := 1
# Tx Audio Bar 300 B # Tx Audio Bar 300 B
ENABLE_TX_AUDIO_BAR := 0 ENABLE_TX_AUDIO_BAR := 0
# Side Button Menu 300 B # Side Button Menu 300 B
@ -85,7 +85,8 @@ ENABLE_SIDE_BUTT_MENU := 0
ENABLE_KEYLOCK := 0 ENABLE_KEYLOCK := 0
ENABLE_PANADAPTER := 1 ENABLE_PANADAPTER := 1
ENABLE_PANADAPTER_PEAK_FREQ := 0 ENABLE_PANADAPTER_PEAK_FREQ := 0
#ENABLE_SINGLE_VFO_CHAN := 0 # single VFO 1.4 kB
ENABLE_SINGLE_VFO_CHAN := 0
############################################################# #############################################################

View File

@ -99,7 +99,7 @@ ENABLE_SIDE_BUTT_MENU := 1 enable menu option for configuring t
ENABLE_KEYLOCK := 1 enable keylock menu option + keylock code ENABLE_KEYLOCK := 1 enable keylock menu option + keylock code
ENABLE_PANADAPTER := 1 centered on the selected VFO RX frequency, only shows if dual-watch is disabled ENABLE_PANADAPTER := 1 centered on the selected VFO RX frequency, only shows if dual-watch is disabled
ENABLE_PANADAPTER_PEAK_FREQ := 0 show the peak panadapter frequency ENABLE_PANADAPTER_PEAK_FREQ := 0 show the peak panadapter frequency
#ENABLE_SINGLE_VFO_CHAN := 0 not yet implemented ENABLE_SINGLE_VFO_CHAN := 0 not yet complete
``` ```
# New/modified function keys # New/modified function keys

Binary file not shown.

Binary file not shown.

View File

@ -137,14 +137,13 @@ void PAN_process_10ms(void)
#ifdef ENABLE_FMRADIO #ifdef ENABLE_FMRADIO
g_fm_radio_mode || g_fm_radio_mode ||
#endif #endif
// g_single_vfo < 0 ||
g_reduced_service || g_reduced_service ||
g_current_function == FUNCTION_POWER_SAVE || g_current_function == FUNCTION_POWER_SAVE ||
g_current_display_screen == DISPLAY_SEARCH || g_current_display_screen == DISPLAY_SEARCH ||
g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF ||
g_css_scan_mode != CSS_SCAN_MODE_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF ||
g_scan_state_dir != SCAN_STATE_DIR_OFF || g_scan_state_dir != SCAN_STATE_DIR_OFF ||
g_dtmf_call_state != DTMF_CALL_STATE_NONE) g_dtmf_call_state != DTMF_CALL_STATE_NONE ||
g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF)
{ {
if (g_panadapter_enabled) if (g_panadapter_enabled)
{ // disable the panadapter { // disable the panadapter

392
ui/main.c
View File

@ -214,7 +214,11 @@ void draw_bar(uint8_t *line, const int len, const int max_width)
const unsigned int bar_range_dB = bar_max_dBm - bar_min_dBm; const unsigned int bar_range_dB = bar_max_dBm - bar_min_dBm;
const unsigned int len = ((clamped_dBm - bar_min_dBm) * bar_width) / bar_range_dB; const unsigned int len = ((clamped_dBm - bar_min_dBm) * bar_width) / bar_range_dB;
#ifdef ENABLE_SINGLE_VFO_CHAN
const unsigned int line = (single_vfo >= 0 && !pan_enabled) ? 7 : 3;
#else
const unsigned int line = 3; const unsigned int line = 3;
#endif
char s[16]; char s[16];
@ -279,25 +283,25 @@ void UI_update_rssi(const int rssi, const unsigned int glitch, const unsigned in
{ // original little RSSI bars { // original little RSSI bars
const unsigned int line = (vfo == 0) ? 3 : 7; #ifdef ENABLE_SINGLE_VFO_CHAN
uint8_t *pline = g_frame_buffer[line - 1]; const unsigned int line = ((single_vfo >= 0 && !pan_enabled) || vfo > 0) ? 6 : 2;
#else
const unsigned int line = (vfo > 0) ? 6 : 2;
#endif
uint8_t *pline = g_frame_buffer[line];
unsigned int rssi_level = 0; unsigned int rssi_level = 0;
int rssi_cal[7]; int rssi_cal[7];
#if 1 #if 1
if (g_tx_vfo->channel_attributes.band < 3)
{ {
rssi_cal[0] = g_eeprom.calib.rssi_cal.band_123[0]; #pragma GCC diagnostic push
rssi_cal[2] = g_eeprom.calib.rssi_cal.band_123[1]; #pragma GCC diagnostic ignored "-Waddress-of-packed-member"
rssi_cal[4] = g_eeprom.calib.rssi_cal.band_123[2]; const uint16_t *cal = (g_tx_vfo->channel_attributes.band < 3) ? g_eeprom.calib.rssi_cal.band_123 : g_eeprom.calib.rssi_cal.band_4567;
rssi_cal[6] = g_eeprom.calib.rssi_cal.band_123[3]; rssi_cal[0] = cal[0];
} rssi_cal[2] = cal[1];
else rssi_cal[4] = cal[2];
{ rssi_cal[6] = cal[3];
rssi_cal[0] = g_eeprom.calib.rssi_cal.band_4567[0]; #pragma GCC diagnostic pop
rssi_cal[2] = g_eeprom.calib.rssi_cal.band_4567[1];
rssi_cal[4] = g_eeprom.calib.rssi_cal.band_4567[2];
rssi_cal[6] = g_eeprom.calib.rssi_cal.band_4567[3];
} }
#else #else
rssi_cal[0] = (-110 + rssi_dBm_offset) * 2; // -110 dBm rssi_cal[0] = (-110 + rssi_dBm_offset) * 2; // -110 dBm
@ -352,7 +356,7 @@ void UI_update_rssi(const int rssi, const unsigned int glitch, const unsigned in
else else
draw_small_antenna_bars(pline, rssi_level); draw_small_antenna_bars(pline, rssi_level);
ST7565_DrawLine(0, line, 23, pline); ST7565_DrawLine(0, 1 + line, 23, pline);
} }
} }
@ -409,9 +413,9 @@ void big_freq(const uint32_t frequency, const unsigned int x, const unsigned int
g_reduced_service || g_reduced_service ||
g_current_display_screen != DISPLAY_MAIN || g_current_display_screen != DISPLAY_MAIN ||
g_current_function == FUNCTION_POWER_SAVE || g_current_function == FUNCTION_POWER_SAVE ||
g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF ||
g_dtmf_call_state != DTMF_CALL_STATE_NONE || g_dtmf_call_state != DTMF_CALL_STATE_NONE ||
g_dtmf_input_mode) g_dtmf_input_mode ||
g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF)
{ // don't draw the panadapter { // don't draw the panadapter
return; return;
} }
@ -503,20 +507,341 @@ void big_freq(const uint32_t frequency, const unsigned int x, const unsigned int
} }
#endif #endif
const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALARM", "VOLT HIGH"};
#ifdef ENABLE_SINGLE_VFO_CHAN #ifdef ENABLE_SINGLE_VFO_CHAN
void UI_DisplayMainSingle(void) void UI_DisplayMainSingle(void)
{ {
int vfo_num = g_eeprom.config.setting.tx_vfo_num; const int vfo_num = g_eeprom.config.setting.tx_vfo_num;
const unsigned int scrn_chan = g_eeprom.config.setting.indices.vfo[vfo_num].screen; const unsigned int scrn_chan = g_eeprom.config.setting.indices.vfo[vfo_num].screen;
uint8_t *p_line = g_frame_buffer[0]; const unsigned int state = g_vfo_state[vfo_num];
unsigned int mode = 0; uint8_t *p_line1 = g_frame_buffer[1];
unsigned int state;
char str[22]; char str[22];
// TODO: single VFO mode // TODO: single VFO mode
#ifdef ENABLE_ALARM
if (g_current_function == FUNCTION_TRANSMIT && g_alarm_state == ALARM_STATE_ALARM)
state = VFO_STATE_ALARM;
#endif
{
unsigned int y = 0;
unsigned int x = 2;
sprintf(str, "VFO-%d", 1 + vfo_num);
UI_PrintStringSmall(str, x, 0, y);
x += 7 * 6;
if (g_current_function == FUNCTION_TRANSMIT || state != VFO_STATE_NORMAL)
{ // transmitting
if (state != VFO_STATE_NORMAL)
{
if (state < ARRAY_SIZE(state_list))
{
#ifdef ENABLE_SMALL_BOLD
UI_PrintStringSmallBold(state_list[state], x, 0, y);
#else
UI_PrintStringSmall(state_list[state], x, 0, y);
#endif
}
}
else
{ // show the TX symbol
#ifdef ENABLE_SMALL_BOLD
UI_PrintStringSmallBold("TX", x, 0, y);
#else
UI_PrintStringSmall("TX", x, 0, y);
#endif
}
}
else
if (g_current_function == FUNCTION_RECEIVE && g_squelch_open)
{ // receiving .. show the RX symbol
#ifdef ENABLE_SMALL_BOLD
UI_PrintStringSmallBold("RX", x, 0, y);
#else
UI_PrintStringSmall("RX", x, 0, y);
#endif
}
if (state == VFO_STATE_NORMAL)
{
x += 7 * 5;
//x = LCD_WIDTH - 1 - (7 * 4);
if (scrn_chan <= USER_CHANNEL_LAST)
{ // channel mode
const bool inputting = (g_input_box_index == 0 || g_eeprom.config.setting.tx_vfo_num != vfo_num) ? false : true;
if (!inputting)
NUMBER_ToDigits(1 + scrn_chan, str); // show the memory channel number
else
memcpy(str + 5, g_input_box, 3); // show the input text
UI_PrintStringSmall("M", x, 0, y);
UI_Displaysmall_digits(3, str + 5, x + 7, y, inputting);
}
else
if (IS_FREQ_CHANNEL(scrn_chan))
{ // frequency mode
// show the frequency band number
sprintf(str, "F%u", 1 + scrn_chan - FREQ_CHANNEL_FIRST);
UI_PrintStringSmall(str, x, 0, y);
}
#ifdef ENABLE_NOAA
else
{
if (g_input_box_index == 0 || g_eeprom.config.setting.tx_vfo_num != vfo_num)
{ // channel number
sprintf(str, "N%u", 1 + scrn_chan - NOAA_CHANNEL_FIRST);
}
else
{ // user entering channel number
sprintf(str, "N%u%u", '0' + g_input_box[0], '0' + g_input_box[1]);
}
UI_PrintStringSmall(str, x, 0, y);
}
#endif
}
}
// ********************
{
unsigned int y = 1;
unsigned int x = 2;
if (g_input_box_index > 0 && IS_FREQ_CHANNEL(scrn_chan) && g_eeprom.config.setting.tx_vfo_num == vfo_num)
{ // user is entering a frequency
UI_DisplayFrequency(g_input_box, x + 5, y, true, 8);
}
else
{
const uint32_t frequency = (g_current_function == FUNCTION_TRANSMIT) ? g_vfo_info[vfo_num].p_rx->frequency : g_vfo_info[vfo_num].p_tx->frequency;
if (scrn_chan <= USER_CHANNEL_LAST)
{ // a user channel
// channel name
SETTINGS_fetch_channel_name(str, scrn_chan);
if (str[0] == 0)
sprintf(str, "CH %u", scrn_chan);
UI_PrintString(str, x + 5, 0, y, 8);
//x = 2;
// frequency
sprintf(str, "%u.%05u", frequency / 100000, frequency % 100000);
#ifdef ENABLE_TRIM_TRAILING_ZEROS
NUMBER_trim_trailing_zeros(str);
#endif
UI_PrintString(str, x + 5, 0, y + 2, 8);
}
else
// if (IS_FREQ_CHANNEL(scrn_chan))
{ // frequency mode
#ifdef ENABLE_BIG_FREQ
big_freq(frequency, x, y);
#else
#ifdef ENABLE_SHOW_FREQS_CHAN
const unsigned int chan = g_vfo_info[vfo_num].freq_in_channel;
#endif
//sprintf(str, "%03u.%05u", frequency / 100000, frequency % 100000);
sprintf(str, "%u.%05u", frequency / 100000, frequency % 100000);
#ifdef ENABLE_TRIM_TRAILING_ZEROS
NUMBER_trim_trailing_zeros(str);
#endif
/*
#ifdef ENABLE_SHOW_FREQS_CHAN
//g_vfo_info[vfo_num].freq_in_channel = SETTINGS_find_channel(frequency);
if (chan <= USER_CHANNEL_LAST)
{ // the frequency has a channel - show the channel name below the frequency
// frequency
#ifdef ENABLE_SMALL_BOLD
UI_PrintStringSmallBold(str, x + 4, 0, line + 0);
#else
UI_PrintStringSmall(str, x + 4, 0, y);
#endif
// channel name, if not then channel number
SETTINGS_fetch_channel_name(str, chan);
if (str[0] == 0)
//sprintf(str, "CH-%03u", 1 + chan);
sprintf(str, "CH-%u", 1 + chan);
UI_PrintStringSmall(str, x + 4, 0, y + 1);
}
else
#endif
*/ { // show the frequency in the main font
UI_PrintString(str, x + 5, 0, y, 8);
}
#endif
}
// show channel symbols
if (scrn_chan <= USER_CHANNEL_LAST)
//if (IS_NOT_NOAA_CHANNEL(scrn_chan))
{ // it's a user channel or VFO
unsigned int x = LCD_WIDTH - 1 - sizeof(BITMAP_SCANLIST2) - sizeof(BITMAP_SCANLIST1);
if (g_vfo_info[vfo_num].channel_attributes.scanlist1)
memcpy(p_line1 + x, BITMAP_SCANLIST1, sizeof(BITMAP_SCANLIST1));
x += sizeof(BITMAP_SCANLIST1);
if (g_vfo_info[vfo_num].channel_attributes.scanlist2)
memcpy(p_line1 + x, BITMAP_SCANLIST2, sizeof(BITMAP_SCANLIST2));
//x += sizeof(BITMAP_SCANLIST2);
}
#ifdef ENABLE_BIG_FREQ
// no room for these symbols
#else
{
#ifdef ENABLE_SHOW_FREQS_CHAN
strcpy(str, " ");
#ifdef ENABLE_SCAN_IGNORE_LIST
if (FI_freq_ignored(frequency) >= 0)
str[0] = 'I'; // frequency is in the ignore list
#endif
if (g_vfo_info[vfo_num].channel.compand != COMPAND_OFF)
str[1] = 'C'; // compander is enabled
UI_PrintStringSmall(str, LCD_WIDTH - (7 * 2), 0, y + 1);
#else
const bool is_freq_chan = IS_FREQ_CHANNEL(scrn_chan);
const uint8_t freq_in_channel = g_vfo_info[vfo_num].freq_in_channel;
// const uint8_t freq_in_channel = SETTINGS_find_channel(frequency); // was way to slow
strcpy(str, " ");
#ifdef ENABLE_SCAN_IGNORE_LIST
if (FI_freq_ignored(frequency) >= 0)
str[0] = 'I'; // frequency is in the ignore list
#endif
if (is_freq_chan && freq_in_channel <= USER_CHANNEL_LAST)
str[1] = 'F'; // this VFO frequency is also found in a channel
if (g_vfo_info[vfo_num].channel.compand != COMPAND_OFF)
str[2] = 'C'; // compander is enabled
UI_PrintStringSmall(str, LCD_WIDTH - (7 * 3), 0, y + 1);
#endif
}
#endif
}
y += 2;
x = LCD_WIDTH - (7 * 6);
// show the audio scramble symbol
if (g_vfo_info[vfo_num].channel.scrambler > 0 && g_eeprom.config.setting.enable_scrambler)
UI_PrintStringSmall("SCR", x, 0, y);
{ // show the modulation mode
const char *mode_list[] = {"FM", "AM", "SB", ""};
const unsigned int mode = g_vfo_info[vfo_num].channel.mod_mode;
if (mode < ARRAY_SIZE(mode_list))
strcpy(str, mode_list[mode]);
UI_PrintStringSmall(str, x + (7 * 4), 0, y);
}
y++;
x = LCD_WIDTH - (7 * 5);
// show the CTCSS / CDCSS code
str[0] = '\0';
if (g_vfo_info[vfo_num].channel.mod_mode == MOD_MODE_FM)
{ // show the CTCSS/CDCSS symbol
const freq_config_t *pConfig = (g_current_function == FUNCTION_TRANSMIT) ? g_vfo_info[vfo_num].p_tx : g_vfo_info[vfo_num].p_rx;
const unsigned int code_type = pConfig->code_type;
unsigned int code = pConfig->code;
switch (code_type)
{
case CODE_TYPE_NONE:
str[0] = 0;
break;
case CODE_TYPE_CONTINUOUS_TONE:
sprintf(str, "%3u.%u", CTCSS_TONE_LIST[code] / 10, CTCSS_TONE_LIST[code] % 10);
break;
case CODE_TYPE_DIGITAL:
case CODE_TYPE_REVERSE_DIGITAL:
sprintf(str, "D%03o%c", DCS_CODE_LIST[code], (code_type == CODE_TYPE_DIGITAL) ? 'N' : 'I');
break;
}
}
UI_PrintStringSmall(str, x, 0, y);
// ***************************************
x = 2;
y++;
#ifdef ENABLE_TX_WHEN_AM
if (state == VFO_STATE_NORMAL || state == VFO_STATE_ALARM)
#else
if ((state == VFO_STATE_NORMAL || state == VFO_STATE_ALARM) && g_vfo_info[vfo_num].channel.mod_mode == MOD_MODE_FM) // TX allowed only when FM
#endif
{
if (FREQUENCY_tx_freq_check(g_vfo_info[vfo_num].p_tx->frequency) == 0)
{ // show the TX power
const char *pwr_list[] = {"LOW", "MID", "HIGH", ""};
const unsigned int i = g_vfo_info[vfo_num].channel.tx_power;
if (i < OUTPUT_POWER_USER)
strcpy(str, pwr_list[i]);
else
sprintf(str, "U%02u", g_tx_vfo->channel.tx_power_user);
UI_PrintStringSmall(str, x, 0, y);
if (g_vfo_info[vfo_num].freq_config_rx.frequency != g_vfo_info[vfo_num].freq_config_tx.frequency)
{ // show the TX offset symbol
const char *dir_list[] = {"", "+", "-"};
const unsigned int i = g_vfo_info[vfo_num].channel.tx_offset_dir;
UI_PrintStringSmall(dir_list[i], x + (7 * 5), 0, y);
}
}
}
x += 7 * 7;
// show the TX/RX reverse symbol
if (g_vfo_info[vfo_num].channel.frequency_reverse)
UI_PrintStringSmall("R", x, 0, y);
x += 7 * 2;
// show the narrow band symbol
strcpy(str, " ");
if (g_vfo_info[vfo_num].channel.channel_bandwidth == BANDWIDTH_WIDE)
str[0] = 'W';
else
if (g_vfo_info[vfo_num].channel.channel_bandwidth == BANDWIDTH_NARROW)
str[0] = 'N';
UI_PrintStringSmall(str, x, 0, y);
x += 7 * 2;
// show the DTMF decoding symbol
#ifdef ENABLE_KILL_REVIVE
if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable || g_eeprom.config.setting.radio_disabled)
UI_PrintStringSmall("DTMF", x, 0, y);
#else
if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable)
UI_PrintStringSmall("DTMF", x, 0, y);
#endif
}
ST7565_BlitFullScreen();
} }
#endif #endif
@ -529,26 +854,19 @@ void UI_DisplayMain(void)
const unsigned int line1 = 4; const unsigned int line1 = 4;
int main_vfo_num = g_eeprom.config.setting.tx_vfo_num; int main_vfo_num = g_eeprom.config.setting.tx_vfo_num;
int current_vfo_num = g_eeprom.config.setting.tx_vfo_num; int current_vfo_num = g_eeprom.config.setting.tx_vfo_num;
#ifdef ENABLE_SINGLE_VFO_CHAN
bool single_vfo_chan = false;
#endif
char str[22]; char str[22];
int vfo_num; int vfo_num;
g_center_line = CENTER_LINE_NONE; g_center_line = CENTER_LINE_NONE;
if (g_eeprom.config.setting.dual_watch == DUAL_WATCH_OFF && g_eeprom.config.setting.cross_vfo == CROSS_BAND_OFF)
{
single_vfo = main_vfo_num;
}
else
{
single_vfo = -1;
pan_enabled = false; pan_enabled = false;
single_vfo = -1;
if (g_eeprom.config.setting.dual_watch == DUAL_WATCH_OFF && g_eeprom.config.setting.cross_vfo == CROSS_BAND_OFF)
single_vfo = main_vfo_num;
else
if (g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF && g_rx_vfo_is_active) if (g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF && g_rx_vfo_is_active)
current_vfo_num = g_rx_vfo_num; current_vfo_num = g_rx_vfo_num;
}
// clear the screen buffer // clear the screen buffer
memset(g_frame_buffer, 0, sizeof(g_frame_buffer)); memset(g_frame_buffer, 0, sizeof(g_frame_buffer));
@ -587,10 +905,11 @@ void UI_DisplayMain(void)
#endif #endif
#ifdef ENABLE_SINGLE_VFO_CHAN #ifdef ENABLE_SINGLE_VFO_CHAN
single_vfo_chan = (single_vfo >= 0 && pan_enabled) ? true : false; if (single_vfo >= 0 && !pan_enabled)
{
if (single_vfo_chan)
UI_DisplayMainSingle(); UI_DisplayMainSingle();
return;
}
#endif #endif
for (vfo_num = 0; vfo_num < 2; vfo_num++) for (vfo_num = 0; vfo_num < 2; vfo_num++)
@ -769,7 +1088,6 @@ void UI_DisplayMain(void)
if (state != VFO_STATE_NORMAL) if (state != VFO_STATE_NORMAL)
{ {
const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALARM", "VOLT HIGH"};
if (state < ARRAY_SIZE(state_list)) if (state < ARRAY_SIZE(state_list))
UI_PrintString(state_list[state], x - 1, 0, line, 8); UI_PrintString(state_list[state], x - 1, 0, line, 8);
} }

View File

@ -618,7 +618,7 @@ void UI_DisplayMenu(void)
case MENU_RX_CDCSS: case MENU_RX_CDCSS:
case MENU_TX_CDCSS: case MENU_TX_CDCSS:
strcpy(str, "CDCSS\n"); //strcpy(str, "CDCSS\n");
if (g_sub_menu_selection == 0) if (g_sub_menu_selection == 0)
strcat(str, "OFF"); strcat(str, "OFF");
else else
@ -633,7 +633,7 @@ void UI_DisplayMenu(void)
case MENU_TX_CTCSS: case MENU_TX_CTCSS:
{ {
channel_setting = true; channel_setting = true;
strcpy(str, "CTCSS\n"); //strcpy(str, "CTCSS\n");
#if 1 #if 1
// set CTCSS as the user adjusts it // set CTCSS as the user adjusts it
unsigned int Code; unsigned int Code;

View File

@ -31,7 +31,7 @@
#include "ui/helper.h" #include "ui/helper.h"
#include "ui/ui.h" #include "ui/ui.h"
#include "ui/status.h" #include "ui/status.h"
/*
void invert_pixels(void *p, const unsigned int size) void invert_pixels(void *p, const unsigned int size)
{ {
unsigned int i; unsigned int i;
@ -39,7 +39,7 @@ void invert_pixels(void *p, const unsigned int size)
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
*p8++ ^= 0xff; *p8++ ^= 0xff;
} }
*/
void UI_DisplayStatus(const bool test_display) void UI_DisplayStatus(const bool test_display)
{ {
uint8_t *line = g_status_line; uint8_t *line = g_status_line;
@ -55,7 +55,7 @@ void UI_DisplayStatus(const bool test_display)
if (g_current_function == FUNCTION_TRANSMIT) if (g_current_function == FUNCTION_TRANSMIT)
{ {
memcpy(line + x, BITMAP_TX, sizeof(BITMAP_TX)); memcpy(line + x, BITMAP_TX, sizeof(BITMAP_TX));
invert_pixels(line + x, sizeof(BITMAP_TX)); // invert_pixels(line + x, sizeof(BITMAP_TX));
} }
else else
if (g_current_function == FUNCTION_RECEIVE || if (g_current_function == FUNCTION_RECEIVE ||
@ -155,7 +155,7 @@ void UI_DisplayStatus(const bool test_display)
if (dw_running) if (dw_running)
{ {
memcpy(line + x, BITMAP_TDR_RUNNING, sizeof(BITMAP_TDR_RUNNING)); memcpy(line + x, BITMAP_TDR_RUNNING, sizeof(BITMAP_TDR_RUNNING));
invert_pixels(line + x, sizeof(BITMAP_TDR_RUNNING)); // invert_pixels(line + x, sizeof(BITMAP_TDR_RUNNING));
} }
else else
{ {
@ -194,7 +194,7 @@ void UI_DisplayStatus(const bool test_display)
if (g_eeprom.config.setting.key_lock || test_display) if (g_eeprom.config.setting.key_lock || test_display)
{ {
memcpy(line + x, BITMAP_KEYLOCK, sizeof(BITMAP_KEYLOCK)); memcpy(line + x, BITMAP_KEYLOCK, sizeof(BITMAP_KEYLOCK));
invert_pixels(line + x, sizeof(BITMAP_KEYLOCK)); // invert_pixels(line + x, sizeof(BITMAP_KEYLOCK));
x += sizeof(BITMAP_KEYLOCK) + 1; x += sizeof(BITMAP_KEYLOCK) + 1;
} }
else else