Rev 7189 | Rev 7196 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7189 | Rev 7192 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | 30 | ||
31 | //simple open dialog data |
31 | //simple open dialog data |
32 | char default_dir[] = "/rd/1"; |
32 | char default_dir[] = "/rd/1"; |
Line 33... | Line 33... | ||
33 | od_filter filter2 = { 15, "MP3\0WAV\0XM\0\0" }; |
33 | od_filter filter2 = { 15, "MP3\0WAV\0XM\0\0" }; |
Line 34... | Line 34... | ||
34 | 34 | ||
35 | #define ABOUT_MESSAGE "Pixie Player v2.62 |
35 | #define ABOUT_MESSAGE "Pixie Player v2.7 |
Line 36... | Line 36... | ||
36 | 36 | ||
37 | A tiny music folder player. |
37 | A tiny music folder player. |
38 | Supports MP3, WAV, XM audio file formats. |
38 | Supports MP3, WAV, XM audio file formats. |
39 | 39 | ||
40 | Controls: |
40 | Controls: |
41 | Open file: O key |
41 | Open file: O key |
- | 42 | Play/Stop: Space or P key |
|
- | 43 | Start playing selected file: Enter |
|
42 | Play/Stop: Space or P key |
44 | Goto next/previous track: Ctrl + Left/Right |
Line 43... | Line 45... | ||
43 | Start playing selected file: Enter |
45 | Change sound volume: Left/Right key |
Line 44... | Line 46... | ||
44 | Goto next/previous track: Ctrl + Left/Right |
46 | Repeat: R |
45 | Change sound volume: Left/Right key |
47 | Shuffle: S |
Line 93... | Line 95... | ||
93 | PLAYBACK_MODE_PLAYING |
95 | PLAYBACK_MODE_PLAYING |
94 | }; |
96 | }; |
Line 95... | Line 97... | ||
95 | 97 | ||
Line -... | Line 98... | ||
- | 98 | collection music_col; |
|
- | 99 | ||
96 | collection music_col; |
100 | #define LAST_FOLDER_EXISTS 1 |
97 | 101 | ||
98 | //===================================================// |
102 | //===================================================// |
99 | // // |
103 | // // |
100 | // CODE // |
104 | // CODE // |
Line 118... | Line 122... | ||
118 | { |
122 | { |
119 | int tempstr; |
123 | int tempstr; |
120 | tempstr = abspath("pixie.ini"); |
124 | tempstr = abspath("pixie.ini"); |
121 | strcpy(#pixie_ini_path, tempstr); |
125 | strcpy(#pixie_ini_path, tempstr); |
122 | list.SetFont(8, 16, 13); |
126 | list.SetFont(8, 16, 13); |
123 | if (!param) notify("'Pixie Player\nPress O key to open MP3 file' -St"); |
- | |
124 | LoadLibraries(); |
127 | LoadLibraries(); |
125 | LoadIniConfig(); |
128 | LoadIniConfig(); |
- | 129 | if (work_folder) param=LAST_FOLDER_EXISTS; |
|
- | 130 | if (!param) notify("'Pixie Player\nPress O key to open MP3/WAV/XM file' -St"); |
|
126 | kfont.init(DEFAULT_FONT); |
131 | kfont.init(DEFAULT_FONT); |
127 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); |
132 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); |
128 | loop() |
133 | loop() |
129 | { |
134 | { |
130 | WaitEventTimeout(10); |
135 | WaitEventTimeout(10); |
Line 157... | Line 162... | ||
157 | case BUTTON_WINDOW_REDUCE: EventChangeWindowMode(); break; |
162 | case BUTTON_WINDOW_REDUCE: EventChangeWindowMode(); break; |
158 | case BUTTON_PLAYBACK_PREV: EventPlaybackPrevious(); break; |
163 | case BUTTON_PLAYBACK_PREV: EventPlaybackPrevious(); break; |
159 | case BUTTON_PLAYBACK_NEXT: EventPlaybackNext(); break; |
164 | case BUTTON_PLAYBACK_NEXT: EventPlaybackNext(); break; |
160 | case BUTTON_PLAYBACK_PLAY_PAUSE: EventPlayAndPause(); break; |
165 | case BUTTON_PLAYBACK_PLAY_PAUSE: EventPlayAndPause(); break; |
161 | case BUTTON_REPEAT: EventRepeatClick(); break; |
166 | case BUTTON_REPEAT: EventRepeatClick(); break; |
162 | case BUTTON_SHUFFLE: EventshuffleClick(); break; |
167 | case BUTTON_SHUFFLE: EventShuffleClick(); break; |
163 | case BUTTON_OPEN_DIALOG: EventFileDialogOpen(); break; |
168 | case BUTTON_OPEN_DIALOG: EventFileDialogOpen(); break; |
164 | case BUTTON_SHOW_VOLUME: RunProgram("/sys/@VOLUME", NULL); break; |
169 | case BUTTON_SHOW_VOLUME: RunProgram("/sys/@VOLUME", NULL); break; |
165 | } |
170 | } |
166 | break; |
171 | break; |
167 | case evKey: |
172 | case evKey: |
Line 171... | Line 176... | ||
171 | if (key_scancode==SCAN_CODE_RIGHT) EventPlaybackNext(); |
176 | if (key_scancode==SCAN_CODE_RIGHT) EventPlaybackNext(); |
172 | break; |
177 | break; |
173 | } |
178 | } |
174 | if (key_scancode==SCAN_CODE_KEY_O) EventFileDialogOpen(); |
179 | if (key_scancode==SCAN_CODE_KEY_O) EventFileDialogOpen(); |
175 | if (key_scancode==SCAN_CODE_KEY_M) RunProgram("/sys/@VOLUME", "m"); |
180 | if (key_scancode==SCAN_CODE_KEY_M) RunProgram("/sys/@VOLUME", "m"); |
- | 181 | if (key_scancode==SCAN_CODE_KEY_R) EventRepeatClick(); |
|
- | 182 | if (key_scancode==SCAN_CODE_KEY_S) EventShuffleClick(); |
|
176 | if (key_scancode==SCAN_CODE_RIGHT) RunProgram("/sys/@VOLUME", "+"); |
183 | if (key_scancode==SCAN_CODE_RIGHT) RunProgram("/sys/@VOLUME", "+"); |
177 | if (key_scancode==SCAN_CODE_LEFT) RunProgram("/sys/@VOLUME", "-"); |
184 | if (key_scancode==SCAN_CODE_LEFT) RunProgram("/sys/@VOLUME", "-"); |
178 | if (key_scancode==SCAN_CODE_ENTER) EventStartPlayingSelectedItem(); |
185 | if (key_scancode==SCAN_CODE_ENTER) EventStartPlayingSelectedItem(); |
179 | if (key_scancode==SCAN_CODE_KEY_P)||(key_scancode==SCAN_CODE_SPACE) EventPlayAndPause(); |
186 | if (key_scancode==SCAN_CODE_KEY_P)||(key_scancode==SCAN_CODE_SPACE) EventPlayAndPause(); |
180 | if (list.ProcessKey(key_scancode)) DrawPlayList(); |
187 | if (list.ProcessKey(key_scancode)) DrawPlayList(); |
Line 184... | Line 191... | ||
184 | DefineDragableWindow(win_x_normal, win_y_normal, skin.w - 1, skin.h + list.h-1); |
191 | DefineDragableWindow(win_x_normal, win_y_normal, skin.w - 1, skin.h + list.h-1); |
185 | if (window_mode == WINDOW_MODE_SMALL) |
192 | if (window_mode == WINDOW_MODE_SMALL) |
186 | DefineDragableWindow(win_x_small, win_y_small, WIN_W_SMALL, WIN_H_SMALL); |
193 | DefineDragableWindow(win_x_small, win_y_small, WIN_W_SMALL, WIN_H_SMALL); |
187 | draw_window(); |
194 | draw_window(); |
188 | if (param[0]) { |
195 | if (param[0]) { |
- | 196 | if (param==LAST_FOLDER_EXISTS) EventOpenFolder(NULL); |
|
189 | EventOpenFolder(#param); |
197 | else EventOpenFolder(#param); |
190 | param[0] = NULL; |
198 | param[0] = NULL; |
191 | } |
199 | } |
192 | break; |
200 | break; |
193 | default: |
201 | default: |
194 | EventCheckSongFinished(); |
202 | EventCheckSongFinished(); |
Line 272... | Line 280... | ||
272 | button_y = 46; |
280 | button_y = 46; |
273 | img_draw stdcall(skin.image, 0, 0, skin.w, skin.h, 0, 0); |
281 | img_draw stdcall(skin.image, 0, 0, skin.w, skin.h, 0, 0); |
274 | if (playback_mode != PLAYBACK_MODE_STOPED) |
282 | if (playback_mode != PLAYBACK_MODE_STOPED) |
275 | img_draw stdcall(skin.image, 46, button_y, 41, 21, skin.w+1, WIN_H_SMALL+1); |
283 | img_draw stdcall(skin.image, 46, button_y, 41, 21, skin.w+1, WIN_H_SMALL+1); |
276 | if (repeat) |
284 | if (repeat) |
277 | img_draw stdcall(skin.image, Form.width-102, button_y+2, 17,17,skin.w+43, WIN_H_SMALL+1); |
285 | img_draw stdcall(skin.image, 177, button_y+2, 17,17,skin.w+43, WIN_H_SMALL+1); |
278 | if (shuffle) |
286 | if (shuffle) |
279 | img_draw stdcall(skin.image, Form.width-83, button_y+2, 17,17, skin.w+62, WIN_H_SMALL+1); |
287 | img_draw stdcall(skin.image, 196, button_y+2, 17,17, skin.w+62, WIN_H_SMALL+1); |
Line 280... | Line 288... | ||
280 | 288 | ||
281 | if (!work_folder) DrawPixieTitle("Pixie"); |
289 | if (!work_folder) DrawPixieTitle("Pixie"); |
282 | else DrawPixieTitle(#work_folder + strrchr(#work_folder, '/')); |
290 | else DrawPixieTitle(#work_folder + strrchr(#work_folder, '/')); |
283 | kfont.WriteIntoWindow(8, 24, theme.color_top_panel_bg, |
291 | kfont.WriteIntoWindow(8, 24, theme.color_top_panel_bg, |
Line 289... | Line 297... | ||
289 | //Window control buttons |
297 | //Window control buttons |
290 | DefineHiddenButton(Form.width - 27, 1, 26, 15, BUTTON_WINDOW_CLOSE); |
298 | DefineHiddenButton(Form.width - 27, 1, 26, 15, BUTTON_WINDOW_CLOSE); |
291 | DefineHiddenButton(Form.width - 55, 1, 26, 15, BUTTON_WINDOW_MINIMIZE); |
299 | DefineHiddenButton(Form.width - 55, 1, 26, 15, BUTTON_WINDOW_MINIMIZE); |
292 | DefineHiddenButton(Form.width - 83, 1, 26, 15, BUTTON_WINDOW_REDUCE); |
300 | DefineHiddenButton(Form.width - 83, 1, 26, 15, BUTTON_WINDOW_REDUCE); |
293 | //Other buttons |
301 | //Other buttons |
294 | button_y += 3; |
- | |
295 | DefineHiddenButton(Form.width - 101,button_y, 17, 16, BUTTON_REPEAT); |
302 | DefineHiddenButton(Form.width - 53, button_y, 22, 20, BUTTON_OPEN_DIALOG); |
296 | DefineHiddenButton(Form.width - 82, button_y, 17, 16, BUTTON_SHUFFLE); |
303 | DefineHiddenButton(Form.width - 29, button_y, 22, 20, BUTTON_SHOW_VOLUME); |
297 | DefineHiddenButton(Form.width - 54, button_y, 23, 23, BUTTON_OPEN_DIALOG); |
304 | DefineHiddenButton(178, button_y+3, 17, 16, BUTTON_REPEAT); |
298 | DefineHiddenButton(Form.width - 27, button_y, 23, 23, BUTTON_SHOW_VOLUME); |
305 | DefineHiddenButton(197, button_y+3, 17, 16, BUTTON_SHUFFLE); |
299 | } |
306 | } |
300 | else if (window_mode == WINDOW_MODE_SMALL) |
307 | else if (window_mode == WINDOW_MODE_SMALL) |
301 | { |
308 | { |
302 | button_y = 7; |
309 | button_y = 7; |
303 | img_draw stdcall(skin.image, 0, 0, WIN_W_SMALL, WIN_H_SMALL, skin.w-1, 0); |
310 | img_draw stdcall(skin.image, 0, 0, WIN_W_SMALL, WIN_H_SMALL, skin.w-1, 0); |
Line 338... | Line 345... | ||
338 | //===================================================// |
345 | //===================================================// |
Line 339... | Line 346... | ||
339 | 346 | ||
340 | 347 | ||
341 | void EventOpenFolder(dword _open_path) |
348 | void EventOpenFolder(dword _open_path) |
- | 349 | { |
|
- | 350 | if (!_open_path) |
|
- | 351 | { |
|
- | 352 | OpenDirectory(#work_folder); |
|
342 | { |
353 | } |
343 | if (ESBYTE[_open_path]) |
354 | else |
344 | { |
355 | { |
345 | strcpy(#work_folder, _open_path); |
356 | strcpy(#work_folder, _open_path); |
346 | work_folder[strrchr(#work_folder, '/')-1]='\0'; |
357 | work_folder[strrchr(#work_folder, '/')-1]='\0'; |
Line 360... | Line 371... | ||
360 | } |
371 | } |
361 | MoveSize(OLD, OLD, OLD, skin.h + list.h); |
372 | MoveSize(OLD, OLD, OLD, skin.h + list.h); |
362 | list.KeyHome(); |
373 | list.KeyHome(); |
363 | current_playing_file_n=0; |
374 | current_playing_file_n=0; |
364 | EventStopPlayingMp3(); |
375 | EventStopPlayingMp3(); |
365 | EventStartPlayingMp3(); |
376 | if (_open_path) EventStartPlayingMp3(); |
366 | } |
377 | } |
Line 367... | Line 378... | ||
367 | 378 | ||
368 | 379 | ||
Line 490... | Line 501... | ||
490 | { |
501 | { |
491 | repeat ^= 1; |
502 | repeat ^= 1; |
492 | DrawTopPanel(); |
503 | DrawTopPanel(); |
493 | } |
504 | } |
Line 494... | Line 505... | ||
494 | 505 | ||
495 | void EventshuffleClick() |
506 | void EventShuffleClick() |
496 | { |
507 | { |
497 | shuffle ^= 1; |
508 | shuffle ^= 1; |
498 | DrawTopPanel(); |
509 | DrawTopPanel(); |
Line 509... | Line 520... | ||
509 | case evKey: |
520 | case evKey: |
510 | GetKeys(); |
521 | GetKeys(); |
511 | if (key_scancode == SCAN_CODE_ESC) ExitProcess(); |
522 | if (key_scancode == SCAN_CODE_ESC) ExitProcess(); |
512 | break; |
523 | break; |
513 | case evReDraw: |
524 | case evReDraw: |
514 | DefineDragableWindow(150, 200, 363, 300); |
525 | DefineDragableWindow(150, 200, 400, 327); |
515 | GetProcessInfo(#pop_up, SelfInfo); |
526 | GetProcessInfo(#pop_up, SelfInfo); |
516 | DrawBar(0, 0, pop_up.width, pop_up.height, theme.color_top_panel_bg); |
527 | DrawBar(0, 0, pop_up.width, pop_up.height, theme.color_top_panel_bg); |
517 | DrawRectangle(0, 0, pop_up.width, pop_up.height, theme.color_list_border); |
528 | DrawRectangle(0, 0, pop_up.width, pop_up.height, theme.color_list_border); |
518 | WriteTextLines(10, 10, 0x90, theme.color_top_panel_song_name, ABOUT_MESSAGE, 19); |
529 | WriteTextLines(10, 10, 0x90, theme.color_top_panel_song_name, ABOUT_MESSAGE, 19); |
Line 519... | Line 530... | ||
519 | 530 | ||
520 | DefineHiddenButton(pop_up.width - 27, 1, 26, 15, BUTTON_WINDOW_CLOSE); |
531 | DefineHiddenButton(pop_up.width - 27, 1, 26, 15, BUTTON_WINDOW_CLOSE); |
521 | img_draw stdcall(skin.image, pop_up.width-28, 0, 28, 18, skin.w - 29, 0); |
532 | img_draw stdcall(skin.image, pop_up.width-28, 0, 28, 18, skin.w - 29, 0); |
522 | DrawCaptButton(pop_up.width-10-80, pop_up.height - 30, 80, 20, 11, |
533 | DrawCaptButton(pop_up.width-10-80, pop_up.height - 34, 80, 24, 2, |
523 | theme.color_list_active_bg, theme.color_top_panel_song_name, "Clear"); |
534 | theme.color_list_active_bg, theme.color_top_panel_song_name, "Cool"); |
524 | } |
535 | } |
Line 525... | Line 536... | ||
525 | } |
536 | } |