diff options
Diffstat (limited to 'apps/plugins/rockboy/rockboy.c')
-rw-r--r-- | apps/plugins/rockboy/rockboy.c | 146 |
1 files changed, 90 insertions, 56 deletions
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index 6c99a3db18..46a0aa56c3 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c | |||
@@ -79,70 +79,101 @@ void setoptions (void) | |||
79 | 79 | ||
80 | snprintf(optionsave, sizeof(optionsave), "%s/%s", savedir, optionname); | 80 | snprintf(optionsave, sizeof(optionsave), "%s/%s", savedir, optionname); |
81 | 81 | ||
82 | fd = open(optionsave, O_RDONLY); | 82 | fd = open(optionsave, O_RDONLY); |
83 | if(fd < 0) /* no options to read, set defaults */ | 83 | if(fd < 0) /* no options to read, set defaults */ |
84 | { | 84 | { |
85 | options.LEFT=BUTTON_LEFT; | ||
86 | options.RIGHT=BUTTON_RIGHT; | ||
87 | |||
85 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) | 88 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) |
86 | options.A=BUTTON_ON; | 89 | options.UP=BUTTON_UP; |
87 | options.B=BUTTON_OFF; | 90 | options.DOWN=BUTTON_DOWN; |
88 | options.START=BUTTON_REC; | 91 | |
89 | options.SELECT=BUTTON_SELECT; | 92 | options.A=BUTTON_ON; |
90 | options.MENU=BUTTON_MODE; | 93 | options.B=BUTTON_OFF; |
94 | options.START=BUTTON_REC; | ||
95 | options.SELECT=BUTTON_SELECT; | ||
96 | options.MENU=BUTTON_MODE; | ||
91 | 97 | ||
92 | #elif (CONFIG_KEYPAD == IRIVER_H300_PAD) | 98 | #elif (CONFIG_KEYPAD == IRIVER_H300_PAD) |
93 | options.A=BUTTON_REC; | 99 | options.UP=BUTTON_UP; |
94 | options.B=BUTTON_MODE; | 100 | options.DOWN=BUTTON_DOWN; |
95 | options.START=BUTTON_ON; | 101 | |
96 | options.SELECT=BUTTON_SELECT; | 102 | options.A=BUTTON_REC; |
97 | options.MENU=BUTTON_OFF; | 103 | options.B=BUTTON_MODE; |
104 | options.START=BUTTON_ON; | ||
105 | options.SELECT=BUTTON_SELECT; | ||
106 | options.MENU=BUTTON_OFF; | ||
98 | 107 | ||
99 | #elif CONFIG_KEYPAD == RECORDER_PAD | 108 | #elif CONFIG_KEYPAD == RECORDER_PAD |
100 | options.A=BUTTON_F1; | 109 | options.UP=BUTTON_UP; |
101 | options.B=BUTTON_F2; | 110 | options.DOWN=BUTTON_DOWN; |
102 | options.START=BUTTON_F3; | 111 | |
103 | options.SELECT=BUTTON_PLAY; | 112 | options.A=BUTTON_F1; |
104 | options.MENU=BUTTON_OFF; | 113 | options.B=BUTTON_F2; |
114 | options.START=BUTTON_F3; | ||
115 | options.SELECT=BUTTON_PLAY; | ||
116 | options.MENU=BUTTON_OFF; | ||
105 | 117 | ||
106 | #elif CONFIG_KEYPAD == IPOD_4G_PAD | 118 | #elif CONFIG_KEYPAD == IPOD_4G_PAD |
107 | options.A=BUTTON_NONE; | 119 | options.UP=BUTTON_MENU; |
108 | options.B=BUTTON_NONE; | 120 | options.DOWN=BUTTON_PLAY; |
109 | options.START=BUTTON_SELECT; | 121 | |
110 | options.SELECT=BUTTON_NONE; | 122 | options.A=BUTTON_NONE; |
111 | options.MENU=(BUTTON_SELECT | BUTTON_REPEAT); | 123 | options.B=BUTTON_NONE; |
124 | options.START=BUTTON_SELECT; | ||
125 | options.SELECT=BUTTON_NONE; | ||
126 | options.MENU=(BUTTON_SELECT | BUTTON_REPEAT); | ||
112 | 127 | ||
113 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 128 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
114 | options.A=BUTTON_PLAY; | 129 | options.UP=BUTTON_UP; |
115 | options.B=BUTTON_EQ; | 130 | options.DOWN=BUTTON_DOWN; |
116 | options.START=BUTTON_MODE; | 131 | |
117 | options.SELECT=(BUTTON_SELECT | BUTTON_REL); | 132 | options.A=BUTTON_PLAY; |
118 | options.MENU=(BUTTON_SELECT | BUTTON_REPEAT); | 133 | options.B=BUTTON_EQ; |
134 | options.START=BUTTON_MODE; | ||
135 | options.SELECT=(BUTTON_SELECT | BUTTON_REL); | ||
136 | options.MENU=(BUTTON_SELECT | BUTTON_REPEAT); | ||
119 | 137 | ||
120 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | 138 | #elif CONFIG_KEYPAD == GIGABEAT_PAD |
121 | options.A=BUTTON_VOL_UP; | 139 | options.UP=BUTTON_UP; |
122 | options.B=BUTTON_VOL_DOWN; | 140 | options.DOWN=BUTTON_DOWN; |
123 | options.START=BUTTON_A; | 141 | |
124 | options.SELECT=BUTTON_SELECT; | 142 | options.A=BUTTON_VOL_UP; |
125 | options.MENU=BUTTON_MENU; | 143 | options.B=BUTTON_VOL_DOWN; |
144 | options.START=BUTTON_A; | ||
145 | options.SELECT=BUTTON_SELECT; | ||
146 | options.MENU=BUTTON_MENU; | ||
126 | 147 | ||
127 | #elif CONFIG_KEYPAD == SANSA_E200_PAD | 148 | #elif CONFIG_KEYPAD == SANSA_E200_PAD |
128 | options.A=BUTTON_SELECT; | 149 | options.UP=BUTTON_UP; |
129 | options.B=BUTTON_REC; | 150 | options.DOWN=BUTTON_DOWN; |
130 | options.START=BUTTON_SCROLL_UP; | 151 | |
131 | options.SELECT=BUTTON_SCROLL_DOWN; | 152 | options.A=BUTTON_SELECT; |
132 | options.MENU=BUTTON_POWER; | 153 | options.B=BUTTON_REC; |
154 | options.START=BUTTON_SCROLL_UP; | ||
155 | options.SELECT=BUTTON_SCROLL_DOWN; | ||
156 | options.MENU=BUTTON_POWER; | ||
157 | |||
133 | #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD | 158 | #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD |
134 | options.A=BUTTON_PLAY; | 159 | options.UP=BUTTON_UP; |
135 | options.B=BUTTON_REC; | 160 | options.DOWN=BUTTON_DOWN; |
136 | options.START=BUTTON_SELECT; | 161 | |
137 | options.SELECT=BUTTON_NONE; | 162 | options.A=BUTTON_PLAY; |
138 | options.MENU=BUTTON_POWER; | 163 | options.B=BUTTON_REC; |
164 | options.START=BUTTON_SELECT; | ||
165 | options.SELECT=BUTTON_NONE; | ||
166 | options.MENU=BUTTON_POWER; | ||
139 | 167 | ||
140 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | 168 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD |
141 | options.A=BUTTON_PLAY; | 169 | options.UP=BUTTON_SCROLL_UP; |
142 | options.B=BUTTON_FF; | 170 | options.DOWN=BUTTON_SCROLL_DOWN; |
143 | options.START=BUTTON_REW; | 171 | |
144 | options.SELECT=BUTTON_NONE; | 172 | options.A=BUTTON_PLAY; |
145 | options.MENU=BUTTON_POWER; | 173 | options.B=BUTTON_FF; |
174 | options.START=BUTTON_REW; | ||
175 | options.SELECT=BUTTON_NONE; | ||
176 | options.MENU=BUTTON_POWER; | ||
146 | #endif | 177 | #endif |
147 | 178 | ||
148 | options.maxskip=4; | 179 | options.maxskip=4; |
@@ -164,13 +195,17 @@ void setoptions (void) | |||
164 | 195 | ||
165 | void savesettings(void) | 196 | void savesettings(void) |
166 | { | 197 | { |
167 | int fd; | 198 | int fd; |
168 | char optionsave[sizeof(savedir)+sizeof(optionname)]; | 199 | char optionsave[sizeof(savedir)+sizeof(optionname)]; |
169 | 200 | ||
170 | snprintf(optionsave, sizeof(optionsave), "%s/%s", savedir, optionname); | 201 | if(options.dirty) |
171 | fd = open(optionsave, O_WRONLY|O_CREAT|O_TRUNC); | 202 | { |
172 | write(fd,&options, sizeof(options)); | 203 | options.dirty=0; |
173 | close(fd); | 204 | snprintf(optionsave, sizeof(optionsave), "%s/%s", savedir, optionname); |
205 | fd = open(optionsave, O_WRONLY|O_CREAT|O_TRUNC); | ||
206 | write(fd,&options, sizeof(options)); | ||
207 | close(fd); | ||
208 | } | ||
174 | } | 209 | } |
175 | 210 | ||
176 | /* this is the plugin entry point */ | 211 | /* this is the plugin entry point */ |
@@ -231,12 +266,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
231 | } | 266 | } |
232 | if(!rb->audio_status()) | 267 | if(!rb->audio_status()) |
233 | pcm_close(); | 268 | pcm_close(); |
234 | rb->splash(HZ/2, "Shutting down"); | 269 | rb->splash(HZ/2, "Closing Rockboy"); |
235 | 270 | ||
236 | savesettings(); | 271 | savesettings(); |
237 | 272 | ||
238 | cleanup(); | 273 | cleanup(); |
239 | 274 | ||
240 | |||
241 | return PLUGIN_OK; | 275 | return PLUGIN_OK; |
242 | } | 276 | } |