diff options
author | Robert Hak <adiamas@rockbox.org> | 2002-06-24 21:39:48 +0000 |
---|---|---|
committer | Robert Hak <adiamas@rockbox.org> | 2002-06-24 21:39:48 +0000 |
commit | 84a6ba2891dd598731d535a2b031f3057961d48e (patch) | |
tree | 5c508854113bec52fcd6d352345b5ad552bedc67 | |
parent | c81f9b78ace5fd5ce8b11975ee3c54d58412d5c9 (diff) | |
download | rockbox-84a6ba2891dd598731d535a2b031f3057961d48e.tar.gz rockbox-84a6ba2891dd598731d535a2b031f3057961d48e.zip |
moved general settings to a submenu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1161 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/settings_menu.c | 171 | ||||
-rw-r--r-- | apps/settings_menu.h | 24 |
2 files changed, 195 insertions, 0 deletions
diff --git a/apps/settings_menu.c b/apps/settings_menu.c new file mode 100644 index 0000000000..35c25117e7 --- /dev/null +++ b/apps/settings_menu.c | |||
@@ -0,0 +1,171 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2002 Robert Hak | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | |||
20 | #include "config.h" | ||
21 | |||
22 | #include <stdio.h> | ||
23 | #include <stdbool.h> | ||
24 | #include "lcd.h" | ||
25 | #include "menu.h" | ||
26 | #include "mpeg.h" | ||
27 | #include "button.h" | ||
28 | #include "kernel.h" | ||
29 | #include "sprintf.h" | ||
30 | |||
31 | #include "settings.h" | ||
32 | #include "settings_menu.h" | ||
33 | #include "backlight.h" | ||
34 | #include "playlist.h" /* for playlist_shuffle */ | ||
35 | |||
36 | enum { Shuffle, Backlight, Scroll, numsettings }; | ||
37 | |||
38 | static void shuffle(void) | ||
39 | { | ||
40 | bool done = false; | ||
41 | |||
42 | lcd_clear_display(); | ||
43 | lcd_puts(0,0,"[Shuffle]"); | ||
44 | |||
45 | while ( !done ) { | ||
46 | lcd_puts(0, 1, playlist_shuffle ? "on " : "off"); | ||
47 | lcd_update(); | ||
48 | |||
49 | switch ( button_get(true) ) { | ||
50 | #ifdef HAVE_RECORDER_KEYPAD | ||
51 | case BUTTON_LEFT: | ||
52 | #else | ||
53 | case BUTTON_STOP: | ||
54 | #endif | ||
55 | done = true; | ||
56 | break; | ||
57 | |||
58 | default: | ||
59 | playlist_shuffle = !playlist_shuffle; | ||
60 | break; | ||
61 | } | ||
62 | } | ||
63 | } | ||
64 | |||
65 | static void backlight_timer(void) | ||
66 | { | ||
67 | bool done = false; | ||
68 | int timer = global_settings.backlight; | ||
69 | char str[16]; | ||
70 | |||
71 | lcd_clear_display(); | ||
72 | lcd_puts_scroll(0,0,"Backlight"); | ||
73 | |||
74 | while (!done) { | ||
75 | snprintf(str,sizeof str,"Timeout: %d s ", timer); | ||
76 | lcd_puts(0,1,str); | ||
77 | lcd_update(); | ||
78 | switch( button_get(true) ) { | ||
79 | #ifdef HAVE_RECORDER_KEYPAD | ||
80 | case BUTTON_UP: | ||
81 | #else | ||
82 | case BUTTON_RIGHT: | ||
83 | #endif | ||
84 | timer++; | ||
85 | if(timer > 60) | ||
86 | timer = 60; | ||
87 | break; | ||
88 | |||
89 | #ifdef HAVE_RECORDER_KEYPAD | ||
90 | case BUTTON_DOWN: | ||
91 | #else | ||
92 | case BUTTON_LEFT: | ||
93 | #endif | ||
94 | timer--; | ||
95 | if ( timer < 0 ) | ||
96 | timer = 0; | ||
97 | break; | ||
98 | |||
99 | #ifdef HAVE_RECORDER_KEYPAD | ||
100 | case BUTTON_LEFT: | ||
101 | #else | ||
102 | case BUTTON_STOP: | ||
103 | case BUTTON_MENU: | ||
104 | #endif | ||
105 | done = true; | ||
106 | global_settings.backlight = timer; | ||
107 | backlight_on(); | ||
108 | break; | ||
109 | } | ||
110 | } | ||
111 | } | ||
112 | |||
113 | static void scroll_speed(void) | ||
114 | { | ||
115 | bool done=false; | ||
116 | int speed=10; | ||
117 | char str[16]; | ||
118 | |||
119 | lcd_clear_display(); | ||
120 | lcd_puts_scroll(0,0,"Scroll speed indicator"); | ||
121 | |||
122 | while (!done) { | ||
123 | snprintf(str,sizeof str,"Speed: %d ",speed); | ||
124 | lcd_puts(0,1,str); | ||
125 | lcd_update(); | ||
126 | lcd_scroll_speed(speed); | ||
127 | switch( button_get(true) ) { | ||
128 | #ifdef HAVE_RECORDER_KEYPAD | ||
129 | case BUTTON_UP: | ||
130 | #else | ||
131 | case BUTTON_RIGHT: | ||
132 | #endif | ||
133 | speed++; | ||
134 | break; | ||
135 | |||
136 | #ifdef HAVE_RECORDER_KEYPAD | ||
137 | case BUTTON_DOWN: | ||
138 | #else | ||
139 | case BUTTON_LEFT: | ||
140 | #endif | ||
141 | speed--; | ||
142 | if ( speed < 1 ) | ||
143 | speed = 1; | ||
144 | break; | ||
145 | |||
146 | #ifdef HAVE_RECORDER_KEYPAD | ||
147 | case BUTTON_LEFT: | ||
148 | #else | ||
149 | case BUTTON_STOP: | ||
150 | case BUTTON_MENU: | ||
151 | #endif | ||
152 | done = true; | ||
153 | lcd_stop_scroll(); | ||
154 | break; | ||
155 | } | ||
156 | } | ||
157 | } | ||
158 | |||
159 | void settings_menu(void) | ||
160 | { | ||
161 | int m; | ||
162 | struct menu_items items[] = { | ||
163 | { Shuffle, "Shuffle", shuffle }, | ||
164 | { Backlight, "Backlight Timer", backlight_timer }, | ||
165 | { Scroll, "Scroll speed", scroll_speed }, | ||
166 | }; | ||
167 | |||
168 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | ||
169 | menu_run(m); | ||
170 | menu_exit(m); | ||
171 | } | ||
diff --git a/apps/settings_menu.h b/apps/settings_menu.h new file mode 100644 index 0000000000..00227c08fa --- /dev/null +++ b/apps/settings_menu.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2002 Robert Hak | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | #ifndef _SETTINGS_MENU_H | ||
20 | #define _SETTINGS_MENU_H | ||
21 | |||
22 | void settings_menu(void); | ||
23 | |||
24 | #endif | ||