summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/test_scanrate.c63
1 files changed, 40 insertions, 23 deletions
diff --git a/apps/plugins/test_scanrate.c b/apps/plugins/test_scanrate.c
index e6ed1aa084..63ab97d89d 100644
--- a/apps/plugins/test_scanrate.c
+++ b/apps/plugins/test_scanrate.c
@@ -55,16 +55,6 @@ PLUGIN_HEADER
55 55
56#endif 56#endif
57 57
58#if LCD_PIXELFORMAT == HORIZONTAL_PACKING
59#define BUF_WIDTH ((LCD_WIDTH+7)/8/4)
60#define BUF_HEIGHT LCD_HEIGHT
61#define TEXT_X (BUF_WIDTH*8)
62#else
63#define BUF_WIDTH (LCD_WIDTH/4)
64#define BUF_HEIGHT (LCD_HEIGHT/8)
65#define TEXT_X BUF_WIDTH
66#endif
67
68/* Default refresh rates in 1/10 Hz */ 58/* Default refresh rates in 1/10 Hz */
69#if CONFIG_LCD == LCD_SSD1815 59#if CONFIG_LCD == LCD_SSD1815
70#define DEFAULT_SCAN_RATE 670 60#define DEFAULT_SCAN_RATE 670
@@ -74,11 +64,39 @@ PLUGIN_HEADER
74#define DEFAULT_SCAN_RATE 800 64#define DEFAULT_SCAN_RATE 800
75#elif CONFIG_LCD == LCD_IPODMINI 65#elif CONFIG_LCD == LCD_IPODMINI
76#define DEFAULT_SCAN_RATE 880 66#define DEFAULT_SCAN_RATE 880
67#elif CONFIG_LCD == LCD_TL0350A
68#define DEFAULT_SCAN_RATE 1480
69#define HORIZ_SCAN /* LCD controller updates the panel sideways */
70#define NEED_BOOST
77#else 71#else
78#define DEFAULT_SCAN_RATE 700 72#define DEFAULT_SCAN_RATE 700
79#warning Generic default scanrate 73#warning Generic default scanrate
80#endif 74#endif
81 75
76#ifdef HORIZ_SCAN
77#define TEXT_X 0
78#if LCD_PIXELFORMAT == HORIZONTAL_PACKING
79#define BUF_WIDTH ((LCD_WIDTH+7)/8)
80#define BUF_HEIGHT (LCD_HEIGHT/4)
81#define TEXT_Y BUF_HEIGHT
82#else
83#define BUF_WIDTH (LCD_WIDTH)
84#define BUF_HEIGHT (LCD_HEIGHT/8/4)
85#define TEXT_Y (BUF_HEIGHT*8)
86#endif
87#else /* !HORIZ_SCAN */
88#define TEXT_Y 0
89#if LCD_PIXELFORMAT == HORIZONTAL_PACKING
90#define BUF_WIDTH ((LCD_WIDTH+7)/8/4)
91#define BUF_HEIGHT LCD_HEIGHT
92#define TEXT_X (BUF_WIDTH*8)
93#else
94#define BUF_WIDTH (LCD_WIDTH/4)
95#define BUF_HEIGHT (LCD_HEIGHT/8)
96#define TEXT_X BUF_WIDTH
97#endif
98#endif /* !HORIZ_SCAN */
99
82#if defined(CPU_PP) && defined(HAVE_ADJUSTABLE_CPU_FREQ) 100#if defined(CPU_PP) && defined(HAVE_ADJUSTABLE_CPU_FREQ)
83#define NEED_BOOST 101#define NEED_BOOST
84#endif 102#endif
@@ -91,11 +109,11 @@ static bool need_refresh = false;
91 109
92static void timer_isr(void) 110static void timer_isr(void)
93{ 111{
94 rb->lcd_blit(bitbuffer[curbuf][0], 0, 0, BUF_WIDTH, BUF_HEIGHT, BUF_WIDTH); 112 rb->lcd_blit_mono(bitbuffer[curbuf][0], 0, 0, BUF_WIDTH, BUF_HEIGHT, BUF_WIDTH);
95 curbuf = (curbuf + 1) & 1; 113 curbuf = (curbuf + 1) & 1;
96 if (need_refresh) 114 if (need_refresh)
97 { 115 {
98 rb->lcd_update_rect(TEXT_X, 0, LCD_WIDTH-TEXT_X, 8); 116 rb->lcd_update_rect(TEXT_X, TEXT_Y, LCD_WIDTH-TEXT_X, 8);
99 need_refresh = false; 117 need_refresh = false;
100 } 118 }
101} 119}
@@ -109,17 +127,16 @@ int plugin_main(void)
109 127
110 rb->lcd_setfont(FONT_SYSFIXED); 128 rb->lcd_setfont(FONT_SYSFIXED);
111 129
112 rb->lcd_putsxy(TEXT_X, 12, "Adjust Frequ."); 130 rb->lcd_putsxy(TEXT_X, TEXT_Y+12, "Adjust Frequ.");
113 rb->lcd_putsxy(TEXT_X, 20, "so the block"); 131 rb->lcd_putsxy(TEXT_X, TEXT_Y+20, "so the block");
114 rb->lcd_putsxy(TEXT_X, 28, "stops moving."); 132 rb->lcd_putsxy(TEXT_X, TEXT_Y+28, "stops moving.");
115#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == ONDIO_PAD) \ 133#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \
116 || (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 134 || (CONFIG_KEYPAD == IPOD_1G2G_PAD)
117 rb->lcd_putsxy(TEXT_X, 40, "U/D: Coarse"); 135 rb->lcd_putsxy(TEXT_X, TEXT_Y+40, "Scroll: Coarse");
118#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \ 136#else
119 || (CONFIG_KEYPAD == IPOD_1G2G_PAD) 137 rb->lcd_putsxy(TEXT_X, TEXT_Y+40, "U/D: Coarse");
120 rb->lcd_putsxy(TEXT_X, 40, "Scroll: Coarse");
121#endif 138#endif
122 rb->lcd_putsxy(TEXT_X, 48, "L/R: Fine"); 139 rb->lcd_putsxy(TEXT_X, TEXT_Y+48, "L/R: Fine");
123 rb->lcd_update(); 140 rb->lcd_update();
124 141
125 rb->memset(bitbuffer[0], 0, sizeof(bitbuffer[0])); 142 rb->memset(bitbuffer[0], 0, sizeof(bitbuffer[0]));
@@ -138,7 +155,7 @@ int plugin_main(void)
138 rb->timer_set_period(TIMER_FREQ * 5 / scan_rate); 155 rb->timer_set_period(TIMER_FREQ * 5 / scan_rate);
139 rb->snprintf(buf, sizeof(buf), "f: %d.%d Hz", scan_rate / 10, 156 rb->snprintf(buf, sizeof(buf), "f: %d.%d Hz", scan_rate / 10,
140 scan_rate % 10); 157 scan_rate % 10);
141 rb->lcd_putsxy(TEXT_X, 0, buf); 158 rb->lcd_putsxy(TEXT_X, TEXT_Y, buf);
142 need_refresh = true; 159 need_refresh = true;
143 change = false; 160 change = false;
144 } 161 }