A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

do not update border when we don't see it. some more cleanup.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11055 a1c6a512-1295-4272-9138-f99709370657

+71 -91
+2
apps/plugins/zxbox/ChangeLog
··· 1 + 26.09.2006 do not update border when we don't see it. some more cleanup. 2 + 1 3 25.09.2006 yet more code cleanup, quick snapshot feature,sound should no longer crash,light optimizations 2 4 3 5 04.09.2006 code cleanup; now using IRAM correctly (i hope)
+4
apps/plugins/zxbox/spect.c
··· 60 60 /* Check if updating screen */ 61 61 62 62 if(SPNM(updating)) { 63 + #if LCD_WIDTH == 320 && ( LCD_HEIGHT == 240 || LCD_HEIGHT == 200 ) 63 64 border = SPNM(lastborder); 64 65 if((feport & 0x07) != border) { 65 66 SPNM(border_update) = 2; 66 67 SPNM(lastborder) = feport & 0x07; 67 68 } 69 + #else 70 + SPNM(border_update) = 0; 71 + #endif 68 72 scrptr = update_screen_line(scrptr, SPNM(coli)[scline], DANM(next_scri), 69 73 border, &cmark); 70 74
+55 -65
apps/plugins/zxbox/spmain.c
··· 84 84 }; 85 85 int spcf_read_conf_file(const char *filename) 86 86 { 87 - settings.volume = 10; 87 + settings.volume = 10; 88 88 settings.showfps=1; 89 89 settings.keymap[0]='2'; 90 90 settings.keymap[1]='w'; ··· 93 93 settings.keymap[4]='z'; 94 94 settings.kempston = 1 ; 95 95 settings.invert_colors=0; 96 - settings.sound = 0; 97 - settings.frameskip = 0; 96 + settings.sound = 0; 97 + settings.frameskip = 0; 98 98 99 99 100 100 configfile_init(rb); ··· 112 112 /* Keep a copy of the saved version of the settings - so we can check if 113 113 the settings have changed when we quit */ 114 114 old_settings = settings; 115 - sound_on = settings.sound; 116 - showframe = settings.frameskip+1; 117 - int i; 115 + sound_on = settings.sound; 116 + showframe = settings.frameskip+1; 117 + int i; 118 118 for ( i=0 ; i<5 ; i++){ 119 - if (settings.keymap[i] == 'E') 120 - intkeys[i]=SK_KP_Enter; 121 - else if ( settings.keymap[i] == 'S' ) 122 - intkeys[i]=SK_KP_Space; 123 - else 124 - intkeys[i] = (unsigned) settings.keymap[i]; 125 - } 119 + if (settings.keymap[i] == 'E') 120 + intkeys[i]=SK_KP_Enter; 121 + else if ( settings.keymap[i] == 'S' ) 122 + intkeys[i]=SK_KP_Space; 123 + else 124 + intkeys[i] = (unsigned) settings.keymap[i]; 125 + } 126 126 return 1; 127 127 } 128 128 ··· 131 131 /* set keys */ 132 132 static void set_keys(void){ 133 133 int m; 134 - char c; 134 + char c; 135 135 int result; 136 136 int menu_quit=0; 137 137 static const struct menu_item items[] = { ··· 198 198 int menu_quit=0; 199 199 static const struct menu_item items[] = { 200 200 { "2w90z", NULL }, 201 - { "qaopS", NULL }, 202 - { "7658S", NULL }, 201 + { "qaopS", NULL }, 202 + { "7658S", NULL }, 203 203 }; 204 204 205 205 m = rb->menu_init(items, sizeof(items) / sizeof(*items), ··· 213 213 switch(result) 214 214 { 215 215 case 0: 216 - rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[0].desc , sizeof(items[0].desc)); 216 + rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[0].desc , sizeof(items[0].desc)); 217 217 menu_quit=1; 218 218 break; 219 219 case 1: 220 - rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[1].desc , sizeof(items[1].desc)); 220 + rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[1].desc , sizeof(items[1].desc)); 221 221 menu_quit=1; 222 222 break; 223 223 case 2: 224 - rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[2].desc , sizeof(items[2].desc)); 224 + rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[2].desc , sizeof(items[2].desc)); 225 225 menu_quit=1; 226 226 break; 227 227 default: ··· 247 247 { "Map Keys to kempston", NULL }, 248 248 { "Display Speed", NULL }, 249 249 { "Invert Colors", NULL }, 250 - { "Frameskip", NULL }, 251 - { "Sound", NULL }, 252 - { "Volume", NULL }, 250 + { "Frameskip", NULL }, 251 + { "Sound", NULL }, 252 + { "Volume", NULL }, 253 253 { "Predefined keymap", NULL }, 254 254 { "Custom keymap", NULL }, 255 255 }; ··· 257 257 { "0", NULL }, 258 258 { "1", NULL }, 259 259 { "2", NULL }, 260 - { "3", NULL }, 261 - { "4", NULL }, 262 - { "5", NULL }, 260 + { "3", NULL }, 261 + { "4", NULL }, 262 + { "5", NULL }, 263 263 { "6", NULL }, 264 264 { "7", NULL }, 265 - { "8", NULL }, 266 - { "9", NULL }, 265 + { "8", NULL }, 266 + { "9", NULL }, 267 267 }; 268 - 268 + 269 269 270 270 m = rb->menu_init(items, sizeof(items) / sizeof(*items), 271 271 NULL, NULL, NULL, NULL); ··· 299 299 settings.invert_colors=new_setting; 300 300 rb->splash(HZ, true , "Restart to see effect"); 301 301 break; 302 - case 3: 302 + case 3: 303 303 new_setting = settings.frameskip; 304 304 rb->set_option("Frameskip",&new_setting,INT, 305 305 frameskip_items, 10, NULL); 306 306 if (new_setting != settings.frameskip ) 307 307 settings.frameskip=new_setting; 308 308 break; 309 - case 4: 309 + case 4: 310 310 new_setting = settings.sound; 311 311 rb->set_option("Sound",&new_setting,INT, 312 312 no_yes, 2, NULL); 313 313 if (new_setting != settings.sound ) 314 314 settings.sound=new_setting; 315 315 #if CODEC == SWCODEC && !defined SIMULATOR 316 - rb->pcm_play_stop(); 316 + rb->pcm_play_stop(); 317 317 #endif 318 318 break; 319 - case 5: 319 + case 5: 320 320 new_setting = 9 - settings.volume; 321 321 rb->set_option("Volume",&new_setting,INT, 322 322 frameskip_items, 10, NULL); 323 - new_setting = 9 - new_setting; 323 + new_setting = 9 - new_setting; 324 324 if (new_setting != settings.volume ) 325 325 settings.volume=new_setting; 326 326 break; 327 327 case 6: 328 - select_keymap(); 329 - break; 328 + select_keymap(); 329 + break; 330 330 case 7: 331 331 set_keys(); 332 332 break; ··· 353 353 static const struct menu_item items[] = { 354 354 { "VKeyboard", NULL }, 355 355 { "Play/Pause Tape", NULL }, 356 - { "Save quick snapshot", NULL }, 357 - { "Load quick snapshot", NULL }, 356 + { "Save quick snapshot", NULL }, 357 + { "Load quick snapshot", NULL }, 358 358 { "Save Snapshot", NULL }, 359 359 { "Toggle \"fast\" mode", NULL }, 360 360 { "Options", NULL }, ··· 383 383 pause_play(); 384 384 menu_quit=1; 385 385 break; 386 - case 2: 387 - save_quick_snapshot(); 388 - menu_quit = 1; 389 - break; 390 - case 3: 391 - load_quick_snapshot(); 392 - menu_quit = 1; 393 - break; 386 + case 2: 387 + save_quick_snapshot(); 388 + menu_quit = 1; 389 + break; 390 + case 3: 391 + load_quick_snapshot(); 392 + menu_quit = 1; 393 + break; 394 394 case 4: 395 395 save_snapshot(); 396 396 break; ··· 416 416 rb->cpu_boost(true); 417 417 #endif 418 418 419 - int i; 419 + int i; 420 420 for ( i=0 ; i<5 ; i++){ 421 - if (settings.keymap[i] == 'E') 422 - intkeys[i]=SK_KP_Enter; 423 - else if ( settings.keymap[i] == 'S' ) 424 - intkeys[i]=SK_KP_Space; 425 - else 426 - intkeys[i] = (unsigned) settings.keymap[i]; 427 - } 421 + if (settings.keymap[i] == 'E') 422 + intkeys[i]=SK_KP_Enter; 423 + else if ( settings.keymap[i] == 'S' ) 424 + intkeys[i]=SK_KP_Space; 425 + else 426 + intkeys[i] = (unsigned) settings.keymap[i]; 427 + } 428 428 #ifdef USE_GRAY 429 429 gray_show(true); 430 430 #endif ··· 476 476 exit_requested = 0; 477 477 video_frames=-1; 478 478 start_time = *rb->current_tick; 479 - sound_on = settings.sound; 480 - showframe = settings.frameskip+1; 479 + sound_on = settings.sound; 480 + showframe = settings.frameskip+1; 481 481 spti_reset(); 482 482 } 483 - if(sp_paused) { 484 - autoclose_sound(); 485 - while(sp_paused) { 486 - spkb_process_events(1); 487 - spti_sleep(SKIPTICKS); 488 - translate_screen(); 489 - update(); 490 - } 491 - spti_reset(); 492 - } 493 483 halfsec = !(sp_int_ctr % 25); 494 484 evenframe = !(sp_int_ctr & 1); 495 485
-1
apps/plugins/zxbox/spperif.c
··· 48 48 int SPNM(coli)[PORT_TIME_NUM]; 49 49 50 50 int SPNM(playing_tape) = 0; 51 - int SPNM(paused) = 0; 52 51 53 52 char *SPNM(image); 54 53 int SPNM(updating);
-1
apps/plugins/zxbox/spperif.h
··· 55 55 extern qbyte SPNM(scr_mark)[]; 56 56 extern byte SPNM(fe_inport_high)[]; 57 57 extern int SPNM(playing_tape); 58 - extern int SPNM(paused); 59 58 60 59 extern int SPNM(scline); 61 60
+10 -23
apps/plugins/zxbox/spscr.c
··· 82 82 cmark = *cmarkp; 83 83 scrptr = (qbyte *) scrp; 84 84 if(scri >= 0) { /* normal line */ 85 + #if LCD_WIDTH == 320 && ( LCD_HEIGHT == 240 || LCD_HEIGHT == 200 ) 85 86 if(SPNM(border_update)) { 86 87 brd_color = SPNM(colors)[border]; 87 88 brd_color |= brd_color << 8; ··· 91 92 for(i = 8; i; i--) *scrptr++ = brd_color; 92 93 scrptr -= 0x48; 93 94 } 94 - else scrptr += 0x08; 95 + else 96 + #endif 97 + scrptr += 0x08; 98 + 95 99 tmptr = SPNM(scr_mark) + 0x2C0 + (coli >> 3); 96 100 mark = *tmptr; 97 101 if(!(coli & 0x07)) { ··· 129 133 else scrptr += 0x48; 130 134 } 131 135 else if(scri == -1) { /* only border */ 136 + #if LCD_WIDTH == 320 && ( LCD_HEIGHT == 240 || LCD_HEIGHT == 200 ) 132 137 if(SPNM(border_update)) { 133 138 brd_color = SPNM(colors)[border]; 134 139 brd_color |= brd_color << 8; 135 140 brd_color |= brd_color << 16; 136 141 for(i = 0x50; i; i--) *scrptr++ = brd_color; 137 142 } 138 - else scrptr += 0x50; 143 + else 144 + #endif 145 + scrptr += 0x50; 146 + 139 147 } 140 148 141 149 *cmarkp = cmark; 142 150 return (byte *) scrptr; 143 151 } 144 - 145 - void translate_screen(void) 146 - { 147 - int border, scline; 148 - byte *scrptr; 149 - qbyte cmark = 0; 150 - 151 - scrptr = (byte *) SPNM(image); 152 - 153 - border = DANM(ula_outport) & 0x07; 154 - if(border != SPNM(lastborder)) { 155 - SPNM(border_update) = 2; 156 - SPNM(lastborder) = border; 157 - } 158 - 159 - for(scline = 0; scline < (TMNUM / 2); scline++) 160 - scrptr = update_screen_line(scrptr, SPNM(coli)[scline], SPNM(scri)[scline], 161 - border, &cmark); 162 - 163 - } 164 - 165 152 166 153 void spscr_init_mask_color(void) 167 154 {
-1
apps/plugins/zxbox/spscr.h
··· 30 30 extern void destroy_spect_scr(void); 31 31 extern void update_screen(void); 32 32 extern void flash_change(void); 33 - extern void translate_screen(void); 34 33 35 34 extern byte *update_screen_line(byte *scrp, int coli, int scri, int border, 36 35 qbyte *cmarkp);