Index: apps/plugins/clock.c
===================================================================
RCS file: /cvsroot/rockbox/apps/plugins/clock.c,v
retrieving revision 1.29
diff -u -b -B -r1.29 clock.c
--- apps/plugins/clock.c	7 Apr 2006 00:17:34 -0000	1.29
+++ apps/plugins/clock.c	24 Jun 2006 06:49:06 -0000
@@ -104,8 +104,10 @@
 
 /* we need to "fake" the LCD width/height, because this plugin isn't
  * yet adapted to other screen sizes */
-#define LCDWIDTH  112
-#define LCDHEIGHT 64
+#define LCDWIDTH  LCD_WIDTH
+#define LCDHEIGHT LCD_HEIGHT
+#define CENTERX   LCD_WIDTH/2
+#define CENTERY   LCD_HEIGHT/2
 
 #if (CONFIG_KEYPAD == RECORDER_PAD)
 
@@ -224,32 +226,26 @@
 /***********************************************************
  * Used for hands to define lengths at a given time - ANALOG
  **********************************************************/
-unsigned char xminute[61];
-static const unsigned char yminute[] = {
-55,54,54,53,53,51,50,49,47,45,43,41,39,36,34,32,30,28,25,23,21,19,17,15,14,13,
-11,11,10,10, 9,10,10,11,11,13,14,15,17,19,21,23,25,28,30,32,34,36,39,41,43,45,
-47,49,50,51,53,53,54,54 };
-static const unsigned char yhour[] = {
-47,47,46,46,46,45,44,43,42,41,39,38,36,35,33,32,31,29,28,26,25,23,22,21,20,19,
-18,18,18,17,17,17,18,18,18,19,20,21,22,23,25,26,28,29,31,32,33,35,36,38,39,41,
-42,43,44,45,46,46,46,47 };
-unsigned char xhour[61];
+unsigned int xminute[61];
+unsigned int yminute[61];
+unsigned int yhour[61];
+unsigned int xhour[61];
 
 /**************************************************************
  * Used for hands to define lengths at a give time - FULLSCREEN
  *************************************************************/
-static const unsigned char xminute_full[] = {
+unsigned int xminute_full[61] = {
 56,58,61,65,69,74,79,84,91,100,110,110,110,110,110,110,110,110,110,110,110,100,
 91,84,79,74,69,65,61,58,56,54,51,47,43,38,33,28,21,12,1,1,1,1,1,1,1,1,1,1,1,12,
 21,28,33,38,43,47,51,54 };
-static const unsigned char yminute_full[] = {
+unsigned int yminute_full[61] = {
 62,62,62,62,62,62,62,62,62,62,62,53,45,40,36,32,28,24,19,11,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,11,19,24,28,32,36,40,45,53,62,62,62,62,62,62,62,62,62,62 };
-static const unsigned char xhour_full[] = {
+unsigned int xhour_full[61] = {
 56,58,60,63,66,69,73,78,84,91,100,100,100,100,100,100,100,100,100,100,100,91,84,
 78,73,69,66,63,60,58,56,54,52,49,46,43,39,34,28,21,12,12,12,12,12,12,12,12,12,
 12,12,21,28,34,39,43,46,49,52,54 };
-static const unsigned char yhour_full[] = {
+unsigned int yhour_full[61] = {
 52,52,52,52,52,52,52,52,52,52,52,46,41,37,34,32,30,27,23,18,12,12,12,12,12,12,
 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,18,23,27,30,32,34,37,41,46,52,52,
 52,52,52,52,52,52,52,52 };
@@ -967,9 +963,11 @@
 void init_clock(void)
 {
     #define ANALOG_VALUES 60
-    #define ANALOG_MIN_RADIUS 28
-    #define ANALOG_HR_RADIUS 20
-    #define ANALOG_CENTER 56
+    #define ANALOG_YCENTER (LCD_HEIGHT/2)
+    #define ANALOG_XCENTER (LCD_WIDTH/2)
+    #define ANALOG_MIN_RADIUS (LCD_HEIGHT/2 -10)
+    #define ANALOG_HR_RADIUS (ANALOG_MIN_RADIUS-8)
+
     #define PI 3.141592
     int i;
 
@@ -988,9 +986,13 @@
     for(i=0; i<ANALOG_VALUES; i++)
     {
         xminute[i] = (sin(360 * i / ANALOG_VALUES) * ANALOG_MIN_RADIUS / 16384) +
-                      ANALOG_CENTER;
+                        ANALOG_XCENTER;
+        yminute[i] = (sin(360*i/ ANALOG_VALUES+90) * ANALOG_MIN_RADIUS / 16384) + 
+                        ANALOG_YCENTER;
         xhour[i] = (sin(360 * i / ANALOG_VALUES) * ANALOG_HR_RADIUS / 16384) +
-                      ANALOG_CENTER;
+                    ANALOG_XCENTER;
+        yhour[i] = (sin(360 * i / ANALOG_VALUES+90) * ANALOG_HR_RADIUS / 16384) +
+                    ANALOG_YCENTER;
     }
 }
 
@@ -1589,9 +1591,9 @@
             namepos += (name_targetpos - namepos + 14) / 7)
         {
             rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-            rb->lcd_fillrect(0, 48, 112, 8); /* clear any trails left behind */
+            rb->lcd_fillrect(0, LCD_HEIGHT-16, LCD_WIDTH, 8); /* clear any trails left behind */
             rb->lcd_set_drawmode(DRMODE_SOLID);
-            rb->lcd_putsxy(namepos, 48, name);
+            rb->lcd_putsxy(namepos, LCD_HEIGHT-16, name);
             rb->lcd_update();
 
             /* exit on keypress */
@@ -1605,10 +1607,10 @@
             jobpos -= (jobpos - job_targetpos + 14) / 7, namepos++)
         {
             rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-            rb->lcd_fillrect(0, 48, 112+job_w, 16); /* clear trails */
+            rb->lcd_fillrect(0, LCD_HEIGHT-16, LCD_WIDTH+job_w, 16); /* clear trails */
             rb->lcd_set_drawmode(DRMODE_SOLID);
-            rb->lcd_putsxy(namepos, 48, name);
-            rb->lcd_putsxy(jobpos, 56, job);
+            rb->lcd_putsxy(namepos, LCD_HEIGHT-16, name);
+            rb->lcd_putsxy(jobpos, LCD_HEIGHT-8, job);
             rb->lcd_update();
 
             /* exit on keypress */
@@ -1621,10 +1623,10 @@
         for(pause = 0; pause < 30; pause++)
         {
             rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-            rb->lcd_fillrect(0, 48, 112, 16);
+            rb->lcd_fillrect(0, LCD_HEIGHT-16, LCD_WIDTH, 16);
             rb->lcd_set_drawmode(DRMODE_SOLID);
-            rb->lcd_putsxy(namepos, 48, name);
-            rb->lcd_putsxy(jobpos, 56, job);
+            rb->lcd_putsxy(namepos, LCD_HEIGHT-16, name);
+            rb->lcd_putsxy(jobpos, LCD_HEIGHT-8, job);
             rb->lcd_update();
 
             btn = rb->button_get(false);
@@ -1643,10 +1645,10 @@
         while(namepos<LCDWIDTH+10 || jobpos > 0-job_w)
         {
             rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-            rb->lcd_fillrect(0, 48, 112, 16); /* clear trails */
+            rb->lcd_fillrect(0, LCD_HEIGHT-16, LCD_WIDTH, 16); /* clear trails */
             rb->lcd_set_drawmode(DRMODE_SOLID);
-            rb->lcd_putsxy(namepos, 48, name);
-            rb->lcd_putsxy(jobpos, 56, job);
+            rb->lcd_putsxy(namepos, LCD_HEIGHT-16, name);
+            rb->lcd_putsxy(jobpos, LCD_HEIGHT-8, job);
             rb->lcd_update();
 
             /* exit on keypress */
@@ -1676,7 +1678,7 @@
         credits_pos += offset_dummy, offset_dummy++)
     {
         rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-        rb->lcd_fillrect(0, 0, 112, 8);
+        rb->lcd_fillrect(0, 0, LCD_WIDTH, 8);
         rb->lcd_set_drawmode(DRMODE_SOLID);
         rb->lcd_putsxy(credits_pos, 0, elapsednames);
         rb->lcd_update();
@@ -1697,7 +1699,7 @@
 
     rb->lcd_clear_display();
 
-    center_text(56, "Credits");
+    center_text(LCD_HEIGHT-8, "Credits");
 
     /* show the logo with an animation and the clock version text */
     show_clock_logo(true, true);
@@ -2294,9 +2296,9 @@
         if(settings.analog[analog_digits]) /* Digits around the face */
         {
             rb->lcd_putsxy((LCDWIDTH/2)-6, 0, "12");
-            rb->lcd_putsxy(20, (LCDHEIGHT/2)-4, "9");
-            rb->lcd_putsxy((LCDWIDTH/2)-4, 56, "6");
-            rb->lcd_putsxy(86, (LCDHEIGHT/2)-4, "3");
+            rb->lcd_putsxy(LCD_WIDTH/2-(ANALOG_MIN_RADIUS+8), (LCDHEIGHT/2)-4, "9");
+            rb->lcd_putsxy((LCDWIDTH/2)-4, LCD_HEIGHT-8, "6");
+            rb->lcd_putsxy(LCD_WIDTH/2+(ANALOG_MIN_RADIUS+2), (LCDHEIGHT/2)-4, "3");
         }
         if(settings.analog[analog_time] != 0) /* Digital readout */
         {
@@ -2309,16 +2311,16 @@
             if(settings.analog[analog_time] == 2)
             {
                 if(current_time->tm_hour > 12) /* PM */
-                    rb->lcd_mono_bitmap(pm, 96, 1, 15, 8);
+                    rb->lcd_mono_bitmap(pm, LCD_WIDTH-16, 1, 15, 8);
                 else /* AM */
-                    rb->lcd_mono_bitmap(am, 96, 1, 15, 8);
+                    rb->lcd_mono_bitmap(am, LCD_WIDTH-16, 1, 15, 8);
             }
         }
         if(settings.analog[analog_date] != 0) /* Date readout */
         {
             /* MM-DD (or DD.MM) */
-            rb->lcd_putsxy(1, 48, moday);
-            rb->lcd_putsxy(3, 56, dateyr);
+            rb->lcd_putsxy(1, LCD_HEIGHT-16, moday);
+            rb->lcd_putsxy(3, LCD_HEIGHT-8, dateyr);
         }
     }
     else if(settings.clock == DIGITAL)
@@ -2641,7 +2643,7 @@
     if(settings.general[general_counter])
     {
         if(settings.clock == ANALOG)
-            rb->lcd_putsxy(69, 56, count_text);
+            rb->lcd_putsxy(LCD_WIDTH/2+13, LCD_HEIGHT-8, count_text);
         else if(settings.clock == DIGITAL)
             rb->lcd_putsxy(1, 5, count_text);
         else if(settings.clock == LCD)
@@ -2856,7 +2858,7 @@
             rb->lcd_mono_bitmap(arrow, 1, 8*(i+1)+1, 8, 6);
         }
 
-        cursor(0, 8*menupos, 112, 8); /* draw cursor */
+        cursor(0, 8*menupos, LCD_WIDTH, 8); /* draw cursor */
 
         rb->lcd_update();
 
@@ -2869,7 +2871,7 @@
                         for(cursor_dummy = cursor_y; cursor_y>cursor_dummy-8; cursor_y-=2)
                         {
                             rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-                            rb->lcd_fillrect(0, 8, 112, 56);
+                            rb->lcd_fillrect(0, 8, LCD_WIDTH, 56);
                             rb->lcd_set_drawmode(DRMODE_SOLID);
 
                             for(i=0; i<7; i++) /* draw menu items and icons */
@@ -2878,7 +2880,7 @@
                                 rb->lcd_mono_bitmap(arrow, 1, 8*(i+1)+1, 8, 6);
                             }
 
-                            cursor(0, cursor_y, 112, 8); /* draw cursor */
+                            cursor(0, cursor_y, LCD_WIDTH, 8); /* draw cursor */
                             rb->lcd_update();
                         }
                         menupos--;
@@ -2894,7 +2896,7 @@
                         for(cursor_dummy = cursor_y; cursor_y<cursor_dummy+8; cursor_y+=2)
                         {
                             rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
-                            rb->lcd_fillrect(0, 8, 112, 56);
+                            rb->lcd_fillrect(0, 8, LCD_WIDTH, 56);
                             rb->lcd_set_drawmode(DRMODE_SOLID);
 
                             for(i=0; i<7; i++) /* draw menu items and icons */
@@ -2903,7 +2905,7 @@
                                 rb->lcd_mono_bitmap(arrow, 1, 8*(i+1)+1, 8, 6);
                             }
 
-                            cursor(0, cursor_y, 112, 8); /* draw cursor */
+                            cursor(0, cursor_y, LCD_WIDTH, 8); /* draw cursor */
                             rb->lcd_update();
                         }
                         menupos++;
