summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy/rockboy.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rockboy/rockboy.c')
-rw-r--r--apps/plugins/rockboy/rockboy.c146
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
165void savesettings(void) 196void 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}