summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2022-03-21 07:53:17 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2022-03-21 08:14:30 -0400
commit64c577a0c55fe23d266d06517a85da9c6feb01c6 (patch)
treeedb22b0f5a1aede7528306ad122a8505d2b98488
parentc7c9a0f069978135a5cf98e68d2c19586905720c (diff)
downloadrockbox-64c577a0c55fe23d266d06517a85da9c6feb01c6.tar.gz
rockbox-64c577a0c55fe23d266d06517a85da9c6feb01c6.zip
filetree.c cleanup
just a little cleanup of ft file filtering code store result of filter mask to a local var put skin apply code in its own function Change-Id: Ib899608f64e36346b9bde07caa5d5ac29de05af9
-rw-r--r--apps/filetree.c83
1 files changed, 37 insertions, 46 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index 75a32a9e42..1944713d13 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -330,42 +330,43 @@ int ft_load(struct tree_context* c, const char* tempdir)
330 } 330 }
331 331
332 dptr->attr = info.attribute; 332 dptr->attr = info.attribute;
333 int dir_attr = (dptr->attr & ATTR_DIRECTORY);
333 334
334 /* check for known file types */ 335 /* check for known file types */
335 if ( !(dptr->attr & ATTR_DIRECTORY) ) 336 if ( !(dir_attr) )
336 dptr->attr |= filetype_get_attr((char *)entry->d_name); 337 dptr->attr |= filetype_get_attr((char *)entry->d_name);
337 338
339 int file_attr = (dptr->attr & FILE_ATTR_MASK);
340
338 /* filter out non-visible files */ 341 /* filter out non-visible files */
339 if ((!(dptr->attr & ATTR_DIRECTORY) && ( 342 if ((!(dir_attr) && ((*c->dirfilter == SHOW_PLAYLIST &&
340 (*c->dirfilter == SHOW_PLAYLIST && 343 file_attr != FILE_ATTR_M3U) ||
341 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_M3U) || 344 ((*c->dirfilter == SHOW_MUSIC && file_attr != FILE_ATTR_AUDIO) &&
342 ((*c->dirfilter == SHOW_MUSIC && 345 file_attr != FILE_ATTR_M3U) ||
343 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_AUDIO) &&
344 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_M3U) ||
345 (*c->dirfilter == SHOW_SUPPORTED && !filetype_supported(dptr->attr)))) || 346 (*c->dirfilter == SHOW_SUPPORTED && !filetype_supported(dptr->attr)))) ||
346 (*c->dirfilter == SHOW_WPS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_WPS) || 347 (*c->dirfilter == SHOW_WPS && file_attr != FILE_ATTR_WPS) ||
347 (*c->dirfilter == SHOW_FONT && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_FONT) || 348 (*c->dirfilter == SHOW_FONT && file_attr != FILE_ATTR_FONT) ||
348 (*c->dirfilter == SHOW_SBS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_SBS) || 349 (*c->dirfilter == SHOW_SBS && file_attr != FILE_ATTR_SBS) ||
349#if CONFIG_TUNER 350#if CONFIG_TUNER
350 (*c->dirfilter == SHOW_FMS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_FMS) || 351 (*c->dirfilter == SHOW_FMS && file_attr != FILE_ATTR_FMS) ||
351#endif 352#endif
352#ifdef HAVE_REMOTE_LCD 353#ifdef HAVE_REMOTE_LCD
353 (*c->dirfilter == SHOW_RWPS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_RWPS) || 354 (*c->dirfilter == SHOW_RWPS && file_attr != FILE_ATTR_RWPS) ||
354 (*c->dirfilter == SHOW_RSBS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_RSBS) || 355 (*c->dirfilter == SHOW_RSBS && file_attr != FILE_ATTR_RSBS) ||
355#if CONFIG_TUNER 356#if CONFIG_TUNER
356 (*c->dirfilter == SHOW_RFMS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_RFMS) || 357 (*c->dirfilter == SHOW_RFMS && file_attr != FILE_ATTR_RFMS) ||
357#endif 358#endif
358#endif 359#endif
359#if CONFIG_TUNER 360#if CONFIG_TUNER
360 (*c->dirfilter == SHOW_FMR && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_FMR) || 361 (*c->dirfilter == SHOW_FMR && file_attr != FILE_ATTR_FMR) ||
361#endif 362#endif
362 (*c->dirfilter == SHOW_M3U && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_M3U) || 363 (*c->dirfilter == SHOW_M3U && file_attr != FILE_ATTR_M3U) ||
363 (*c->dirfilter == SHOW_CFG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_CFG) || 364 (*c->dirfilter == SHOW_CFG && file_attr != FILE_ATTR_CFG) ||
364 (*c->dirfilter == SHOW_LNG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LNG) || 365 (*c->dirfilter == SHOW_LNG && file_attr != FILE_ATTR_LNG) ||
365 (*c->dirfilter == SHOW_MOD && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_MOD) || 366 (*c->dirfilter == SHOW_MOD && file_attr != FILE_ATTR_MOD) ||
366 (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK && 367 (*c->dirfilter == SHOW_PLUGINS && file_attr != FILE_ATTR_ROCK &&
367 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA && 368 file_attr != FILE_ATTR_LUA &&
368 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_OPX) || 369 file_attr != FILE_ATTR_OPX) ||
369 (callback_show_item && !callback_show_item(entry->d_name, dptr->attr, c))) 370 (callback_show_item && !callback_show_item(entry->d_name, dptr->attr, c)))
370 { 371 {
371 continue; 372 continue;
@@ -384,7 +385,7 @@ int ft_load(struct tree_context* c, const char* tempdir)
384 strcpy(dptr->name, (char *)entry->d_name); 385 strcpy(dptr->name, (char *)entry->d_name);
385 name_buffer_used += len + 1; 386 name_buffer_used += len + 1;
386 387
387 if (dptr->attr & ATTR_DIRECTORY) /* count the remaining dirs */ 388 if (dir_attr) /* count the remaining dirs */
388 c->dirsindir++; 389 c->dirsindir++;
389 } 390 }
390 c->filesindir = files_in_dir; 391 c->filesindir = files_in_dir;
@@ -432,6 +433,13 @@ static void ft_load_font(char *file)
432 viewportmanager_theme_changed(THEME_UI_VIEWPORT); 433 viewportmanager_theme_changed(THEME_UI_VIEWPORT);
433} 434}
434 435
436static void ft_apply_skin_file(char *buf, char *file, const int maxlen)
437{
438 splash(0, ID2P(LANG_WAIT));
439 set_file(buf, file, maxlen);
440 settings_apply_skins();
441}
442
435int ft_enter(struct tree_context* c) 443int ft_enter(struct tree_context* c)
436{ 444{
437 int rc = GO_TO_PREVIOUS; 445 int rc = GO_TO_PREVIOUS;
@@ -539,49 +547,32 @@ int ft_enter(struct tree_context* c)
539 547
540 break; 548 break;
541 case FILE_ATTR_FMS: 549 case FILE_ATTR_FMS:
542 splash(0, ID2P(LANG_WAIT)); 550 ft_apply_skin_file(buf, global_settings.fms_file, MAX_FILENAME);
543 set_file(buf, (char *)global_settings.fms_file, MAX_FILENAME);
544 settings_apply_skins();
545 break; 551 break;
546#ifdef HAVE_REMOTE_LCD 552#ifdef HAVE_REMOTE_LCD
547 case FILE_ATTR_RFMS: 553 case FILE_ATTR_RFMS:
548 splash(0, ID2P(LANG_WAIT)); 554 ft_apply_skin_file(buf, global_settings.rfms_file, MAX_FILENAME);
549 set_file(buf, (char *)global_settings.rfms_file, MAX_FILENAME);
550 settings_apply_skins();
551 break; 555 break;
552#endif 556#endif
553#endif 557#endif
554
555 case FILE_ATTR_SBS: 558 case FILE_ATTR_SBS:
556 splash(0, ID2P(LANG_WAIT)); 559 ft_apply_skin_file(buf, global_settings.sbs_file, MAX_FILENAME);
557 set_file(buf, (char *)global_settings.sbs_file, MAX_FILENAME);
558 settings_apply_skins();
559 break; 560 break;
560#ifdef HAVE_REMOTE_LCD 561#ifdef HAVE_REMOTE_LCD
561 case FILE_ATTR_RSBS: 562 case FILE_ATTR_RSBS:
562 splash(0, ID2P(LANG_WAIT)); 563 ft_apply_skin_file(buf, global_settings.rsbs_file, MAX_FILENAME);
563 set_file(buf, (char *)global_settings.rsbs_file, MAX_FILENAME);
564 settings_apply_skins();
565 break; 564 break;
566#endif 565#endif
567 /* wps config file */ 566 /* wps config file */
568 case FILE_ATTR_WPS: 567 case FILE_ATTR_WPS:
569 splash(0, ID2P(LANG_WAIT)); 568 ft_apply_skin_file(buf, global_settings.wps_file, MAX_FILENAME);
570 set_file(buf, (char *)global_settings.wps_file,
571 MAX_FILENAME);
572 settings_apply_skins();
573 break; 569 break;
574
575#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) 570#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
576 /* remote-wps config file */ 571 /* remote-wps config file */
577 case FILE_ATTR_RWPS: 572 case FILE_ATTR_RWPS:
578 splash(0, ID2P(LANG_WAIT)); 573 ft_apply_skin_file(buf, global_settings.rwps_file, MAX_FILENAME);
579 set_file(buf, (char *)global_settings.rwps_file,
580 MAX_FILENAME);
581 settings_apply_skins();
582 break; 574 break;
583#endif 575#endif
584
585 case FILE_ATTR_CFG: 576 case FILE_ATTR_CFG:
586 splash(0, ID2P(LANG_WAIT)); 577 splash(0, ID2P(LANG_WAIT));
587 if (!settings_load_config(buf,true)) 578 if (!settings_load_config(buf,true))