static void wave_table_generate(void) { int i; for (i=0;i<256;++i) { wave_array[i] = (unsigned char)((WAV_AMP * (fp14_sin((i * 360 * plasma_frequency) / 256))) / 16384); } }
ANALOG_MINUTE_RADIUS(screen, round) #define ANALOG_MINUTE_RADIUS(screen, round) \ (round?MIN(screen->getheight()/2 -10, screen->getwidth()/2 -10):screen->getheight()/2) #define ANALOG_HOUR_RADIUS(screen, round) \ (2*ANALOG_MINUTE_RADIUS(screen, round)/3) #define HOUR_ANGLE(hour, minute, second) (30*(hour) +(minute)/2) #define MINUTE_ANGLE(minute, second) (6*(minute)+(second)/10) #define SECOND_ANGLE(second) (6 * (second)) /* Note that the given angle's origin is midday and not 3 o'clock */ static void polar_to_cartesian(int a, int r, int* x, int* y) { #if CONFIG_LCD == LCD_SSD1815 /* Correct non-square pixel aspect of archos recorder LCD */ *x = (fp14_sin(a) * 5 / 4 * r) >> 14; #else *x = (fp14_sin(a) * r) >> 14; #endif *y = (fp14_sin(a-90) * r) >> 14; } static void polar_to_cartesian_screen_centered(struct screen * display, int a, int r, int* x, int* y) { polar_to_cartesian(a, r, x, y); *x+=display->getwidth()/2; *y+=display->getheight()/2; } static void angle_to_square(int square_width, int square_height,