remote desktop speed increase

Removed_REF_marker
erikkaashoek 5 years ago
parent 85a0fb9afd
commit 7fe319f141

@ -7,7 +7,7 @@
ifeq ($(TARGET),)
TARGET = F072
else
TARGET=F303
TARGET = F303
endif
# Compiler options here.

@ -561,15 +561,13 @@ void ili9341_fill(int x, int y, int w, int h)
dmaStreamSetMemory0(dmatx, &background_color);
dmaStreamSetMode(dmatx, txdmamode | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD);
dmaStreamFlush(w * h);
#ifdef __REMOTE_DESKTOP__
if (auto_capture) {
send_region("fill", x,y,w,h);
spi_buffer[0] = background_color;
send_buffer((uint8_t *)spi_buffer, 2);
osalThreadSleepMilliseconds(2);
send_buffer((uint8_t *)&background_color, 2);
}
#endif
dmaStreamFlush(w * h);
}
// Copy spi_buffer to region
@ -582,14 +580,13 @@ void ili9341_bulk(int x, int y, int w, int h)
dmaStreamSetMemory0(dmatx, spi_buffer);
dmaStreamSetMode(dmatx, txdmamode | STM32_DMA_CR_PSIZE_HWORD |
STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_MINC);
dmaStreamFlush(w * h);
#ifdef __REMOTE_DESKTOP__
if (auto_capture) {
send_region("bulk", x,y,w,h);
send_buffer((uint8_t *)spi_buffer, w*h*2);
osalThreadSleepMilliseconds(2);
}
#endif
dmaStreamFlush(w * h);
}
#endif

@ -0,0 +1,2 @@
#! /bin/sh
git merge --squash DiSlord-V4-SI4463

@ -897,24 +897,23 @@ VNA_SHELL_FUNCTION(cmd_capture)
void send_region(const char *t, int x, int y, int w, int h)
{
shell_printf("%s\r\n", t);
streamPut(shell_stream, (((uint16_t) x) & 0xff));
streamPut(shell_stream, (((uint16_t)x>>8) & 0xff));
streamPut(shell_stream, (((uint16_t) y) & 0xff));
streamPut(shell_stream, (((uint16_t)y>>8) & 0xff));
streamPut(shell_stream, (((uint16_t) w) & 0xff));
streamPut(shell_stream, (((uint16_t)w>>8) & 0xff));
streamPut(shell_stream, (((uint16_t) h) & 0xff));
streamPut(shell_stream, (((uint16_t)h>>8) & 0xff));
shell_printf(t);
struct {
char new_str[2];
uint16_t x;
uint16_t y;
uint16_t w;
uint16_t h;
} region={"\r\n", x,y,w,h};
streamWrite(shell_stream, (void*)&region, sizeof(region));
}
void send_buffer(uint8_t * buf, int s)
{
for (int i = 0; i < s; i++) {
streamPut(shell_stream, *buf++);
}
shell_printf("ch> \r\n");
streamWrite(shell_stream, (void*) buf, s);
streamWrite(shell_stream, (void*)"ch> \r\n", 6);
}
#if 0
VNA_SHELL_FUNCTION(cmd_gamma)
{

@ -897,7 +897,7 @@ typedef struct setting
int attack; // KM_ATTACK < 20000
int32_t slider_position;
freq_t slider_span;
int64_t slider_span;
uint32_t rbw_x10;
uint32_t vbw_x10;

25
ui.c

@ -1989,15 +1989,16 @@ void set_keypad_value(int v)
void check_frequency_slider(freq_t slider_freq)
{
if ( (maxFreq - minFreq) < (freq_t)setting.slider_span ) {
if ( (maxFreq - minFreq) < setting.slider_span ) {
setting.slider_span = maxFreq - minFreq; // absolute mode with max step size
}
freq_t half_span = setting.slider_span >> 1;
if (minFreq + (freq_t)half_span > slider_freq) {
setting.slider_position -= (minFreq + half_span - slider_freq) / (setting.slider_span / (MENU_FORM_WIDTH-8)); // reposition if needed
int temp = (setting.slider_span / (MENU_FORM_WIDTH-8));
if (minFreq + half_span > slider_freq) {
setting.slider_position -= (minFreq + half_span - slider_freq) / temp; // reposition if needed
}
if (maxFreq < slider_freq + (freq_t)half_span) {
setting.slider_position += (slider_freq + half_span - maxFreq) / (setting.slider_span /(MENU_FORM_WIDTH-8)); // reposition if needed
if (maxFreq < slider_freq + half_span) {
setting.slider_position += (slider_freq + half_span - maxFreq) / temp; // reposition if needed
}
}
@ -2028,7 +2029,7 @@ menu_select_touch(int i, int pos)
if (touch_x != prev_touch_x /* - 1 || prev_touch_x + 1 < touch_x */ ) {
keypad_mode = keypad;
fetch_numeric_target();
volatile int new_slider = (int)touch_x - LCD_WIDTH/2; // Can have negative outcome
int new_slider = touch_x - LCD_WIDTH/2; // Can have negative outcome
if (new_slider < - (MENU_FORM_WIDTH-8)/2)
new_slider = -(MENU_FORM_WIDTH-8)/2;
if (new_slider > (MENU_FORM_WIDTH-8)/2)
@ -2044,9 +2045,7 @@ menu_select_touch(int i, int pos)
}
}
if (mode == SL_MOVE ) {
uistat.value = uistat.value - setting.slider_position * ((int)setting.slider_span/(MENU_FORM_WIDTH-8)) + new_slider * ((int)setting.slider_span/(MENU_FORM_WIDTH-8));
if (uistat.value < 0)
uistat.value = 0;
uistat.value+= (int)(setting.slider_span/(MENU_FORM_WIDTH-8))*(new_slider - setting.slider_position);
if (uistat.value < minFreq)
uistat.value = minFreq;
if (uistat.value > maxFreq)
@ -2125,7 +2124,6 @@ menu_select_touch(int i, int pos)
if (dt > BUTTON_DOWN_LONG_TICKS || do_exit) {
selection = -1;
draw_menu();
redraw_request = 0; // Remove request to redraw grid
return;
}
if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_LOWOUTLEVEL) {
@ -2151,10 +2149,12 @@ menu_select_touch(int i, int pos)
} else if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_CENTER) {
switch (pos) {
case 0:
step = -(int)setting.slider_span;
step = setting.slider_span;
step =-step;
break;
case 1:
step = -(int)setting.slider_span/10;
step = setting.slider_span/10;
step =-step;
break;
case 2:
goto nogo;
@ -2761,7 +2761,6 @@ ui_process_keypad(void)
ui_mode_menu(); //Reactivate menu after keypad
selection = -1;
ensure_selection();
// redraw_request = 0; // Clear all draw requests
redraw_request = REDRAW_BATTERY; // Only redraw battery
} else {
ui_mode_normal();

@ -668,6 +668,7 @@ static UI_FUNCTION_CALLBACK(menu_config_cb)
show_version();
break;
}
ui_mode_normal();
redraw_frame();
request_to_redraw_grid();
}

Loading…
Cancel
Save

Powered by TurnKey Linux.