Definition in file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
#include <stdarg.h>
#include "board.h"
#include "et024006dhu.h"
#include "conf_demo.h"
#include "delay.h"
#include "gpio.h"
#include "gui.h"
#include "background_image.h"
#include "cycle_counter.h"
#include "dsp.h"
#include "dsp_sprintf.h"
#include "compiler.h"
Go to the source code of this file.
Data Structures | |
struct | gui_box |
Defines | |
#define | MAX_BUFFER_HEIGHT Max(Max(Max(Max(GUI_SOURCE1_HEIGHT, GUI_SOURCE2_HEIGHT), GUI_INPUT_HEIGHT), GUI_OUTPUT_HEIGHT), GUI_ZOOM_BOX_HEIGHT) |
#define | MAX_BUFFER_WIDTH Max(Max(Max(Max(GUI_SOURCE1_WIDTH, GUI_SOURCE2_WIDTH), GUI_INPUT_WIDTH), GUI_OUTPUT_WIDTH), GUI_ZOOM_BOX_WIDTH) |
Functions | |
static void | gui_buffer_print_dsp16_bars (void *buffer, uint16_t width, uint16_t height, dsp16_t *signal, uint16_t signal_size) |
static void | gui_buffer_print_dsp16_signal (void *buffer, uint16_t width, uint16_t height, dsp16_t *signal, uint16_t signal_size) |
static void | gui_buffer_set_pixel (void *buffer, uint16_t width, uint16_t height, uint16_t x, uint16_t y) |
void | gui_change_update_fs (uint32_t time_ms) |
This function change the frequency rate of the update of the display. | |
void | gui_clear_view (void) |
static void | gui_draw_background (uint16_t x, uint16_t y, uint16_t width, uint16_t height) |
uint32_t | gui_get_update_fs (void) |
void | gui_init (int cpu_hz, int hsb_hz, int pba_hz, int pbb_hz) |
static void | gui_print_fft_box (int box_id, dsp16_t *signal, uint16_t signal_size) |
static void | gui_print_signal_box (int box_id, dsp16_t *signal, uint16_t signal_size) |
void | gui_set_selection (int box_id) |
Select a new box (can select only one box a time). | |
void | gui_task (void) |
void | gui_text_print (int box_id, const char *text) |
Print text in a text box. | |
Variables | |
static struct gui_box | box [] |
static uint8_t | buffer [ET024006_BITMAP_WIDTH(MAX_BUFFER_WIDTH)*MAX_BUFFER_HEIGHT] |
static int | gui_cpu_hz |
struct { | |
t_cpu_time cpu_time | |
uint32_t time_ms | |
} | gui_fs |
char | gui_text_buffer [GUI_TEXT_BUFFER_SIZE] |
dsp16_t | signal1_buf [BUFFER_LENGTH] |
dsp16_t | signal2_buf [BUFFER_LENGTH] |
static dsp16_t | signal_buffer [BUFFER_LENGTH] |
dsp16_t * | signal_in_buf |
dsp16_t | signal_in_fft [BUFFER_LENGTH] |
dsp16_t | signal_out_buf [BUFFER_LENGTH] |
dsp16_t | signal_out_fft [BUFFER_LENGTH] |
bool | signals_are_updated |
#define MAX_BUFFER_HEIGHT Max(Max(Max(Max(GUI_SOURCE1_HEIGHT, GUI_SOURCE2_HEIGHT), GUI_INPUT_HEIGHT), GUI_OUTPUT_HEIGHT), GUI_ZOOM_BOX_HEIGHT) |
Definition at line 83 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
#define MAX_BUFFER_WIDTH Max(Max(Max(Max(GUI_SOURCE1_WIDTH, GUI_SOURCE2_WIDTH), GUI_INPUT_WIDTH), GUI_OUTPUT_WIDTH), GUI_ZOOM_BOX_WIDTH) |
Definition at line 82 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
static void gui_buffer_print_dsp16_bars | ( | void * | buffer, | |
uint16_t | width, | |||
uint16_t | height, | |||
dsp16_t * | signal, | |||
uint16_t | signal_size | |||
) | [static] |
Definition at line 409 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References DSP16_QA, DSP16_QB, DSP_FP_MIN, gui_buffer_set_pixel(), scale_x, and scale_y.
Referenced by gui_print_fft_box().
00410 { 00411 uint16_t t, cur_y; 00412 uint32_t scale_x, scale_y; 00413 uint32_t i_signal; 00414 uint16_t i; 00415 00416 // Clean the graph 00417 memset(buffer, 0, ET024006_BITMAP_WIDTH(width)*height); 00418 // Compute scaling coefficients 00419 scale_y = (uint32_t) ((height) * 0x10000) / ((uint32_t) -DSP_FP_MIN(DSP16_QA, DSP16_QB)); 00420 00421 if (signal_size >= width) 00422 { 00423 scale_x = (uint32_t) (signal_size * 0x10000) / width; 00424 for (t=0; t<width; t++) 00425 { 00426 i_signal = ((uint64_t) t * scale_x) / 0x10000; 00427 // Integer value 00428 cur_y = ((((uint64_t) signal[i_signal] * scale_y) / 0x10000) >> DSP16_QB); 00429 if (cur_y <= 0) 00430 cur_y = 1; 00431 00432 cur_y = height - cur_y; 00433 if (cur_y <= 0) 00434 cur_y = 1; 00435 00436 // Draw vertical lines 00437 uint16_t temp_y; 00438 for (temp_y = cur_y; temp_y < height; temp_y++) 00439 gui_buffer_set_pixel(buffer, width, height, t, temp_y); 00440 } 00441 } 00442 else 00443 { 00444 uint16_t prev_t = 0; 00445 00446 scale_x = (((uint32_t) (width * (signal_size + 1)) / signal_size) * 0x10000) / signal_size; 00447 for (i_signal=0; i_signal<signal_size; i_signal++) 00448 { 00449 t = ((uint64_t) i_signal * scale_x) / 0x10000; 00450 cur_y = ((((uint64_t) signal[i_signal] * scale_y) / 0x10000) >> DSP16_QB); 00451 if (cur_y <= 0) 00452 cur_y = 1; 00453 00454 cur_y = height - cur_y; 00455 if (cur_y <= 0) 00456 cur_y = 1; 00457 00458 // Draw vertical lines 00459 for (i = prev_t; i < t; i++) 00460 { 00461 uint16_t temp_y; 00462 for (temp_y = cur_y; temp_y < height; temp_y++) 00463 gui_buffer_set_pixel(buffer, width, height, i, temp_y); 00464 } 00465 prev_t = t; 00466 } 00467 } 00468 }
static void gui_buffer_print_dsp16_signal | ( | void * | buffer, | |
uint16_t | width, | |||
uint16_t | height, | |||
dsp16_t * | signal, | |||
uint16_t | signal_size | |||
) | [static] |
Definition at line 312 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References DSP16_QA, DSP16_QB, DSP_FP_MIN, gui_buffer_set_pixel(), scale_x, and scale_y.
Referenced by gui_print_signal_box().
00313 { 00314 uint16_t t, cur_y; 00315 uint32_t scale_x, scale_y; 00316 uint32_t i_signal; 00317 uint16_t i, last_y = 0; 00318 00319 // Clean the graph 00320 memset(buffer, 0, ET024006_BITMAP_WIDTH(width)*height); 00321 // Compute scaling coefficients 00322 scale_y = (uint32_t) ((height/2) * 0x10000) / ((uint32_t) -DSP_FP_MIN(DSP16_QA, DSP16_QB)); 00323 00324 if (signal_size >= width) 00325 { 00326 // Speed drawing 00327 scale_x = (uint32_t) (signal_size * 0x10000) / width; 00328 for (t=0; t<width; t++) 00329 { 00330 i_signal = ((uint64_t) t * scale_x) / 0x10000; 00331 // Integer value 00332 cur_y = ((((uint64_t) signal[i_signal] * scale_y) / 0x10000) >> DSP16_QB); 00333 cur_y = height/2 - cur_y - 1; 00334 if (last_y <= cur_y && t) 00335 { 00336 for (i=last_y; i<=cur_y; i++) 00337 gui_buffer_set_pixel(buffer, width, height, t, i); 00338 } 00339 else if (t) 00340 { 00341 for (i=cur_y; i<=last_y; i++) 00342 gui_buffer_set_pixel(buffer, width, height, t, i); 00343 } 00344 last_y = cur_y; 00345 } 00346 } 00347 else 00348 { 00349 uint16_t prev_t = 0, prev_y = 0; 00350 int32_t delta_y; 00351 00352 // Fine drawing 00353 scale_x = (((uint32_t) (width * (signal_size + 1)) / signal_size) * 0x10000) / signal_size; 00354 for (i_signal=0; i_signal<signal_size; i_signal++) 00355 { 00356 t = ((uint64_t) i_signal * scale_x) / 0x10000; 00357 cur_y = ((((uint64_t) signal[i_signal] * scale_y) / 0x10000) >> DSP16_QB); 00358 cur_y = height/2 - cur_y - 1; 00359 // Draw a line between points 00360 if (i_signal) 00361 { 00362 // Draw a line when its angle with the horizontal axis is bellow 45 degres 00363 if (Abs(prev_y - cur_y) < t - prev_t) 00364 { 00365 int16_t b; 00366 // delta_y = a * 0x10000 00367 delta_y = (int32_t) ((prev_y - cur_y) * 0x10000) / (prev_t - t); 00368 b = cur_y - (delta_y * t) / 0x10000; 00369 for (i=prev_t; i<t; i++) 00370 { 00371 uint16_t temp_y; 00372 temp_y = (uint16_t) ((delta_y * i) / 0x10000 + b); 00373 gui_buffer_set_pixel(buffer, width, height, i, temp_y); 00374 } 00375 } 00376 // Draw a line when its angle with the horizontal axis is above 45 degres 00377 else 00378 { 00379 int16_t b; 00380 // delta_y = (1 / a) * 0x10000 < 0x10000 00381 delta_y = (int32_t) ((prev_t - t) * 0x10000) / (prev_y - cur_y); 00382 b = cur_y - ((int32_t) 0x10000 * t) / delta_y; 00383 if (prev_y < cur_y) 00384 { 00385 for (i=prev_y; i<cur_y; i++) 00386 { 00387 uint16_t temp_x; 00388 temp_x = ((uint32_t) ((i - b) * delta_y)) / 0x10000; 00389 gui_buffer_set_pixel(buffer, width, height, temp_x, i); 00390 } 00391 } 00392 else 00393 { 00394 for (i=cur_y; i<prev_y; i++) 00395 { 00396 uint16_t temp_x; 00397 temp_x = ((uint32_t) ((i - b) * delta_y)) / 0x10000; 00398 gui_buffer_set_pixel(buffer, width, height, temp_x, i); 00399 } 00400 } 00401 } 00402 } 00403 prev_t = t; 00404 prev_y = cur_y; 00405 } 00406 } 00407 }
static void gui_buffer_set_pixel | ( | void * | buffer, | |
uint16_t | width, | |||
uint16_t | height, | |||
uint16_t | x, | |||
uint16_t | y | |||
) | [inline, static] |
Definition at line 303 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
Referenced by gui_buffer_print_dsp16_bars(), and gui_buffer_print_dsp16_signal().
00304 { 00305 uint8_t *u8_buffer = (uint8_t *) buffer; 00306 if (x >= width || y >= height) 00307 return; 00308 u8_buffer += y * ET024006_BITMAP_WIDTH(width) + x / 8; 00309 *u8_buffer = *u8_buffer | (1 << (x & 7)); 00310 }
void gui_change_update_fs | ( | uint32_t | time_ms | ) |
This function change the frequency rate of the update of the display.
Definition at line 105 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_cpu_hz, and gui_fs.
Referenced by gui_init(), and state_machine_idle().
00106 { 00107 gui_fs.time_ms = time_ms; 00108 cpu_set_timeout(cpu_ms_2_cy(gui_fs.time_ms, gui_cpu_hz), &gui_fs.cpu_time); 00109 }
void gui_clear_view | ( | void | ) |
Definition at line 130 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_draw_background().
Referenced by gui_init(), and state_machine_task().
00131 { 00132 gui_draw_background(0, 0, ET024006_WIDTH, ET024006_HEIGHT); 00133 }
static void gui_draw_background | ( | uint16_t | x, | |
uint16_t | y, | |||
uint16_t | width, | |||
uint16_t | height | |||
) | [static] |
Definition at line 298 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References background_image.
Referenced by gui_clear_view(), gui_set_selection(), and gui_text_print().
00299 { 00300 et024006_PutPixmap(background_image, ET024006_WIDTH, x, y, x, y, width, height); 00301 }
uint32_t gui_get_update_fs | ( | void | ) |
Definition at line 111 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_fs.
Referenced by state_machine_idle().
00112 { 00113 return gui_fs.time_ms; 00114 }
void gui_init | ( | int | cpu_hz, | |
int | hsb_hz, | |||
int | pba_hz, | |||
int | pbb_hz | |||
) |
Definition at line 116 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References DEFAULT_SCREEN_UPDATE_FS_MS, gui_change_update_fs(), gui_clear_view(), and gui_cpu_hz.
Referenced by main().
00117 { 00118 gui_cpu_hz = cpu_hz; 00119 // Init the delay function 00120 delay_init(cpu_hz); 00121 // Init the display 00122 et024006_Init(cpu_hz, hsb_hz); 00123 gpio_set_gpio_pin(ET024006DHU_BL_PIN); 00124 // Draw the background 00125 gui_clear_view(); 00126 // Set the frequency rate of the update of the display 00127 gui_change_update_fs(DEFAULT_SCREEN_UPDATE_FS_MS); 00128 }
static void gui_print_fft_box | ( | int | box_id, | |
dsp16_t * | signal, | |||
uint16_t | signal_size | |||
) | [static] |
Definition at line 225 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_box::bg_color, buffer, gui_box::fg_color, gui_buffer_print_dsp16_bars(), GUI_ZOOM_BOX_HEIGHT, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_X, GUI_ZOOM_BOX_Y, gui_box::height, gui_box::width, gui_box::x, gui_box::y, zoom_view, and zoom_view_id.
Referenced by gui_task().
00226 { 00227 const struct gui_box *sb = &box[box_id]; 00228 extern volatile Bool zoom_view; 00229 extern volatile int zoom_view_id; 00230 00231 if (zoom_view && zoom_view_id != box_id) 00232 return; 00233 00234 if (zoom_view && zoom_view_id == box_id) 00235 { 00236 gui_buffer_print_dsp16_bars(buffer, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_HEIGHT, signal, signal_size); 00237 et024006_PutBitmap(buffer, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_X, GUI_ZOOM_BOX_Y, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_HEIGHT, sb->fg_color, sb->bg_color); 00238 } 00239 else 00240 { 00241 gui_buffer_print_dsp16_bars(buffer, sb->width, sb->height, signal, signal_size); 00242 et024006_PutBitmap(buffer, sb->width, sb->x, sb->y, sb->width, sb->height, sb->fg_color, sb->bg_color); 00243 } 00244 }
static void gui_print_signal_box | ( | int | box_id, | |
dsp16_t * | signal, | |||
uint16_t | signal_size | |||
) | [static] |
Definition at line 198 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_box::bg_color, buffer, BUFFER_LENGTH, gui_box::fg_color, gui_buffer_print_dsp16_signal(), GUI_ZOOM_BOX_HEIGHT, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_X, GUI_ZOOM_BOX_Y, gui_box::height, signal_buffer, signals_are_updated, gui_box::width, gui_box::x, gui_box::y, zoom_view, and zoom_view_id.
Referenced by gui_task().
00199 { 00200 const struct gui_box *sb = &box[box_id]; 00201 extern volatile Bool zoom_view; 00202 extern volatile int zoom_view_id; 00203 00204 if (zoom_view && zoom_view_id != box_id) 00205 return; 00206 00207 signal_size = Min(signal_size, BUFFER_LENGTH); 00208 do 00209 { 00210 signals_are_updated = 0; 00211 memcpy(signal_buffer, signal, sizeof(dsp16_t)*signal_size); 00212 } while (signals_are_updated); 00213 00214 if (zoom_view && zoom_view_id == box_id) 00215 gui_buffer_print_dsp16_signal(buffer, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_HEIGHT, signal_buffer, signal_size); 00216 else 00217 gui_buffer_print_dsp16_signal(buffer, sb->width, sb->height, signal_buffer, signal_size); 00218 00219 if (zoom_view && zoom_view_id == box_id) 00220 et024006_PutBitmap(buffer, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_X, GUI_ZOOM_BOX_Y, GUI_ZOOM_BOX_WIDTH, GUI_ZOOM_BOX_HEIGHT, sb->fg_color, sb->bg_color); 00221 else 00222 et024006_PutBitmap(buffer, sb->width, sb->x, sb->y, sb->width, sb->height, sb->fg_color, sb->bg_color); 00223 }
void gui_set_selection | ( | int | box_id | ) |
Select a new box (can select only one box a time).
Definition at line 157 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_box::bg_color, gui_draw_background(), GUI_NO_COLOR, GUI_NO_SEL, GUI_SELECTION_COLOR, gui_box::height, gui_box::width, gui_box::x, and gui_box::y.
Referenced by state_machine_filter(), state_machine_idle(), state_machine_signal(), and state_machine_source().
00158 { 00159 static int prev_selection = GUI_NO_SEL; 00160 struct gui_box *sb; 00161 int i; 00162 00163 // Clear previous selections 00164 if (prev_selection != GUI_NO_SEL && prev_selection != box_id) 00165 { 00166 i = prev_selection; 00167 sb = (struct gui_box *) &box[i]; 00168 // Don't do anything if the color is transparent 00169 if (sb->bg_color == GUI_NO_COLOR) 00170 { 00171 gui_draw_background(sb->x - 2, sb->y - 2, sb->width + 4, 2); 00172 gui_draw_background(sb->x - 2, sb->y + sb->height, sb->width + 4, 2); 00173 gui_draw_background(sb->x - 2, sb->y - 2, 2, sb->height + 4); 00174 gui_draw_background(sb->x + sb->width, sb->y - 2, 2, sb->height + 4); 00175 } 00176 else 00177 { 00178 et024006_DrawFilledRect(sb->x - 2, sb->y - 2, sb->width + 4, 2, sb->bg_color); 00179 et024006_DrawFilledRect(sb->x - 2, sb->y + sb->height, sb->width + 4, 2, sb->bg_color); 00180 et024006_DrawFilledRect(sb->x - 2, sb->y - 2, 2, sb->height + 4, sb->bg_color); 00181 et024006_DrawFilledRect(sb->x + sb->width, sb->y - 2, 2, sb->height + 4, sb->bg_color); 00182 } 00183 } 00184 00185 prev_selection = box_id; 00186 00187 if (box_id == GUI_NO_SEL) 00188 return; 00189 // Draw the selection 00190 sb = (struct gui_box *) &box[box_id]; 00191 et024006_DrawFilledRect(sb->x - 2, sb->y - 2, sb->width + 4, 2, GUI_SELECTION_COLOR); 00192 et024006_DrawFilledRect(sb->x - 2, sb->y + sb->height, sb->width + 4, 2, GUI_SELECTION_COLOR); 00193 et024006_DrawFilledRect(sb->x - 2, sb->y - 2, 2, sb->height + 4, GUI_SELECTION_COLOR); 00194 et024006_DrawFilledRect(sb->x + sb->width, sb->y - 2, 2, sb->height + 4, GUI_SELECTION_COLOR); 00195 }
void gui_task | ( | void | ) |
Definition at line 135 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References BUFFER_LENGTH, FFT_LENGTH, gui_cpu_hz, gui_fs, GUI_INPUT_ID, GUI_OUTPUT_ID, gui_print_fft_box(), gui_print_signal_box(), GUI_SOURCE1_ID, GUI_SOURCE2_ID, input_fft_view, output_fft_view, signal1_buf, signal2_buf, signal_in_buf, signal_in_fft, signal_out_buf, and signal_out_fft.
Referenced by main().
00136 { 00137 extern volatile Bool input_fft_view; 00138 extern volatile Bool output_fft_view; 00139 00140 // Check the last time the printing has been done 00141 if (cpu_is_timeout(&gui_fs.cpu_time)) 00142 { 00143 gui_print_signal_box(GUI_SOURCE1_ID, signal1_buf, sizeof(signal1_buf)/sizeof(signal1_buf[0])); 00144 gui_print_signal_box(GUI_SOURCE2_ID, signal2_buf, sizeof(signal2_buf)/sizeof(signal2_buf[0])); 00145 if (input_fft_view) 00146 gui_print_fft_box(GUI_INPUT_ID, signal_in_fft, FFT_LENGTH); 00147 else 00148 gui_print_signal_box(GUI_INPUT_ID, signal_in_buf, BUFFER_LENGTH); 00149 if (output_fft_view) 00150 gui_print_fft_box(GUI_OUTPUT_ID, signal_out_fft, FFT_LENGTH); 00151 else 00152 gui_print_signal_box(GUI_OUTPUT_ID, signal_out_buf, sizeof(signal2_buf)/sizeof(signal2_buf[0])); 00153 cpu_set_timeout(cpu_ms_2_cy(gui_fs.time_ms, gui_cpu_hz), &gui_fs.cpu_time); 00154 } 00155 }
void gui_text_print | ( | int | box_id, | |
const char * | text | |||
) |
Print text in a text box.
Definition at line 246 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
References gui_box::bg_color, gui_box::fg_color, gui_draw_background(), GUI_FONT, GUI_FONT_HEIGHT, GUI_NO_COLOR, gui_text_buffer, gui_box::height, gui_box::width, gui_box::x, gui_box::y, and zoom_view.
Referenced by main(), state_machine_filter(), state_machine_idle(), state_machine_signal(), state_machine_source(), and state_machine_task().
00247 { 00248 extern volatile Bool zoom_view; 00249 const struct gui_box *sb = (struct gui_box *) &box[box_id]; 00250 int i, len; 00251 int y = sb->y; 00252 00253 if (zoom_view) 00254 return; 00255 00256 // Clear the background 00257 if (sb->bg_color == GUI_NO_COLOR) 00258 gui_draw_background(sb->x, sb->y, sb->width, sb->height); 00259 else 00260 et024006_DrawFilledRect(sb->x, sb->y, sb->width, sb->height, sb->bg_color); 00261 00262 // Calculte the number of line to be displayed 00263 len = 0; 00264 i = 0; 00265 do 00266 { 00267 if (text[i] == '\n' || text[i] == '\0') 00268 len++; 00269 } while (text[i++]); 00270 // Set the y coordinate so that it will align the text in the middle of the text box (vertical axis) 00271 y += (sb->height - len*GUI_FONT_HEIGHT)/2; 00272 00273 // Print the text line per line 00274 len = 0; 00275 i = 0; 00276 do 00277 { 00278 if (text[i] == '\n' || text[i] == '\0') 00279 { 00280 if (i - len >= 0) 00281 { 00282 memmove(gui_text_buffer, &text[i - len], len); 00283 gui_text_buffer[len] = '\0'; 00284 if (sb->bg_color == GUI_NO_COLOR) 00285 et024006_PrintString(gui_text_buffer, (const unsigned char *) &GUI_FONT, sb->x, y, sb->fg_color, -1); 00286 else 00287 et024006_PrintString(gui_text_buffer, (const unsigned char *) &GUI_FONT, sb->x, y, sb->fg_color, sb->bg_color); 00288 gui_text_buffer[len] = ' '; 00289 } 00290 y += GUI_FONT_HEIGHT; 00291 len = 0; 00292 } 00293 else 00294 len++; 00295 } while (text[i++]); 00296 }
Initial value:
{ GUI_BOXES }
Definition at line 78 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
uint8_t buffer[ET024006_BITMAP_WIDTH(MAX_BUFFER_WIDTH)*MAX_BUFFER_HEIGHT] [static] |
Definition at line 85 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
Referenced by dsp_sprint(), gui_print_fft_box(), and gui_print_signal_box().
t_cpu_time cpu_time |
Definition at line 90 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
int gui_cpu_hz [static] |
Definition at line 93 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
Referenced by gui_change_update_fs(), gui_init(), and gui_task().
struct { ... } gui_fs [static] |
Referenced by gui_change_update_fs(), gui_get_update_fs(), and gui_task().
char gui_text_buffer[GUI_TEXT_BUFFER_SIZE] |
Definition at line 95 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
Referenced by gui_text_print().
dsp16_t signal1_buf[BUFFER_LENGTH] |
dsp16_t signal2_buf[BUFFER_LENGTH] |
dsp16_t signal_buffer[BUFFER_LENGTH] [static] |
Definition at line 86 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.
Referenced by gui_print_signal_box().
Definition at line 63 of file dsp_process.c.
Referenced by dac_reload_callback(), dsp_process_init(), dsp_process_task(), and gui_task().
dsp16_t signal_in_fft[BUFFER_LENGTH] |
dsp16_t signal_out_buf[BUFFER_LENGTH] |
Definition at line 64 of file dsp_process.c.
Referenced by dac_reload_callback(), dsp_process_task(), and gui_task().
dsp16_t signal_out_fft[BUFFER_LENGTH] |
bool signals_are_updated |
Definition at line 55 of file dsp_process.c.
Referenced by dac_reload_callback(), and gui_print_signal_box().
uint32_t time_ms |
Definition at line 91 of file APPLICATIONS/EVK1104-EVK1105-DSPLIB-DEMO/gui.c.