(Menu_thumbnail) Get rid of settings_t dependency

This commit is contained in:
twinaphex 2020-01-04 12:38:33 +01:00
parent 278dc75285
commit 27c45b1b7a
5 changed files with 82 additions and 33 deletions

View File

@ -2505,11 +2505,15 @@ static void materialui_render(void *data,
menu_thumbnail_process_streams(
mui->thumbnail_path_data, mui->playlist, i,
&node->thumbnails.primary, &node->thumbnails.secondary,
on_screen);
on_screen,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools.network_on_demand_thumbnails);
else
menu_thumbnail_process_stream(
mui->thumbnail_path_data, MENU_THUMBNAIL_RIGHT,
mui->playlist, i, &node->thumbnails.primary, on_screen);
mui->playlist, i, &node->thumbnails.primary, on_screen,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools.network_on_demand_thumbnails);
}
else if (last_entry_found)
break;

View File

@ -379,6 +379,7 @@ static void ozone_update_thumbnail_image(void *data)
{
ozone_handle_t *ozone = (ozone_handle_t*)data;
size_t selection = menu_navigation_get_selection();
settings_t *settings = config_get_ptr();
playlist_t *playlist = playlist_get_cached();
if (!ozone)
@ -396,7 +397,10 @@ static void ozone_update_thumbnail_image(void *data)
MENU_THUMBNAIL_RIGHT,
playlist,
selection,
&ozone->thumbnails.right);
&ozone->thumbnails.right,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools. network_on_demand_thumbnails
);
/* Left thumbnail is simply reset */
menu_thumbnail_reset(&ozone->thumbnails.left);
@ -409,7 +413,9 @@ static void ozone_update_thumbnail_image(void *data)
MENU_THUMBNAIL_RIGHT,
playlist,
selection,
&ozone->thumbnails.right);
&ozone->thumbnails.right,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools. network_on_demand_thumbnails);
/* Left thumbnail */
menu_thumbnail_request(
@ -417,7 +423,9 @@ static void ozone_update_thumbnail_image(void *data)
MENU_THUMBNAIL_LEFT,
playlist,
selection,
&ozone->thumbnails.left);
&ozone->thumbnails.left,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools. network_on_demand_thumbnails);
}
}

View File

@ -962,10 +962,11 @@ static void xmb_update_savestate_thumbnail_path(void *data, unsigned i)
static void xmb_update_thumbnail_image(void *data)
{
const char *core_name = NULL;
xmb_handle_t *xmb = (xmb_handle_t*)data;
size_t selection = menu_navigation_get_selection();
playlist_t *playlist = playlist_get_cached();
const char *core_name = NULL;
settings_t *settings = config_get_ptr();
if (!xmb)
return;
@ -986,7 +987,9 @@ static void xmb_update_thumbnail_image(void *data)
MENU_THUMBNAIL_RIGHT,
playlist,
selection,
&xmb->thumbnails.right);
&xmb->thumbnails.right,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools.network_on_demand_thumbnails);
/* Left thumbnail */
else if (menu_thumbnail_is_enabled(xmb->thumbnail_path_data, MENU_THUMBNAIL_LEFT))
menu_thumbnail_request(
@ -994,7 +997,9 @@ static void xmb_update_thumbnail_image(void *data)
MENU_THUMBNAIL_LEFT,
playlist,
selection,
&xmb->thumbnails.left);
&xmb->thumbnails.left,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools.network_on_demand_thumbnails);
}
else
{
@ -1004,7 +1009,9 @@ static void xmb_update_thumbnail_image(void *data)
MENU_THUMBNAIL_RIGHT,
playlist,
selection,
&xmb->thumbnails.right);
&xmb->thumbnails.right,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools.network_on_demand_thumbnails);
/* Left thumbnail */
menu_thumbnail_request(
@ -1012,7 +1019,9 @@ static void xmb_update_thumbnail_image(void *data)
MENU_THUMBNAIL_LEFT,
playlist,
selection,
&xmb->thumbnails.left);
&xmb->thumbnails.left,
settings->uints.menu_thumbnail_upscale_threshold,
settings->bools.network_on_demand_thumbnails);
}
}
@ -1165,7 +1174,8 @@ static void xmb_set_thumbnail_content(void *data, const char *s)
static void xmb_update_savestate_thumbnail_image(void *data)
{
xmb_handle_t *xmb = (xmb_handle_t*)data;
xmb_handle_t *xmb = (xmb_handle_t*)data;
settings_t *settings = config_get_ptr();
if (!xmb)
return;
@ -1186,7 +1196,8 @@ static void xmb_update_savestate_thumbnail_image(void *data)
!string_is_equal(xmb->savestate_thumbnail_file_path, xmb->prev_savestate_thumbnail_file_path))
menu_thumbnail_request_file(
xmb->savestate_thumbnail_file_path,
&xmb->thumbnails.savestate);
&xmb->thumbnails.savestate,
settings->uints.menu_thumbnail_upscale_threshold);
}
}

View File

@ -29,14 +29,14 @@
#include <file/file_path.h>
#include <string/stdstring.h>
#include "../retroarch.h"
#include "../configuration.h"
#include "../tasks/tasks_internal.h"
#include "menu_animation.h"
#include "menu_driver.h"
#include "menu_thumbnail.h"
#include "../retroarch.h"
#include "../tasks/tasks_internal.h"
/* When streaming thumbnails, to minimise the processing
* of unnecessary images (i.e. when scrolling rapidly through
* playlists), we delay loading until an entry has been on screen
@ -212,13 +212,15 @@ void menu_thumbnail_cancel_pending_requests(void)
* (an annoyance...) */
void menu_thumbnail_request(
menu_thumbnail_path_data_t *path_data, enum menu_thumbnail_id thumbnail_id,
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail)
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail,
unsigned menu_thumbnail_upscale_threshold,
bool network_on_demand_thumbnails
)
{
settings_t *settings = config_get_ptr();
const char *thumbnail_path = NULL;
bool has_thumbnail = false;
if (!path_data || !thumbnail || !settings)
if (!path_data || !thumbnail)
return;
/* Reset thumbnail, then set 'missing' status by default
@ -250,13 +252,13 @@ void menu_thumbnail_request(
* here, but can't see how to do it... */
if(task_push_image_load(
thumbnail_path, video_driver_supports_rgba(),
settings->uints.menu_thumbnail_upscale_threshold,
menu_thumbnail_upscale_threshold,
menu_thumbnail_handle_upload, thumbnail_tag))
thumbnail->status = MENU_THUMBNAIL_STATUS_PENDING;
}
#ifdef HAVE_NETWORKING
/* Handle on demand thumbnail downloads */
else if (settings->bools.network_on_demand_thumbnails)
else if (network_on_demand_thumbnails)
{
const char *system = NULL;
const char *img_name = NULL;
@ -308,12 +310,13 @@ void menu_thumbnail_request(
* 'thumbnail' will be populated with texture info/metadata
* once the image load is complete */
void menu_thumbnail_request_file(
const char *file_path, menu_thumbnail_t *thumbnail)
const char *file_path, menu_thumbnail_t *thumbnail,
unsigned menu_thumbnail_upscale_threshold
)
{
settings_t *settings = config_get_ptr();
menu_thumbnail_tag_t *thumbnail_tag = NULL;
if (!thumbnail || !settings)
if (!thumbnail)
return;
/* Reset thumbnail, then set 'missing' status by default
@ -342,7 +345,7 @@ void menu_thumbnail_request_file(
* here, but can't see how to do it... */
if(task_push_image_load(
file_path, video_driver_supports_rgba(),
settings->uints.menu_thumbnail_upscale_threshold,
menu_thumbnail_upscale_threshold,
menu_thumbnail_handle_upload, thumbnail_tag))
thumbnail->status = MENU_THUMBNAIL_STATUS_PENDING;
}
@ -390,7 +393,10 @@ void menu_thumbnail_reset(menu_thumbnail_t *thumbnail)
* performance */
void menu_thumbnail_process_stream(
menu_thumbnail_path_data_t *path_data, enum menu_thumbnail_id thumbnail_id,
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail, bool on_screen)
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail, bool on_screen,
unsigned menu_thumbnail_upscale_threshold,
bool network_on_demand_thumbnails
)
{
if (!thumbnail)
return;
@ -423,7 +429,10 @@ void menu_thumbnail_process_stream(
/* Request image load */
menu_thumbnail_request(
path_data, thumbnail_id, playlist, idx, thumbnail);
path_data, thumbnail_id, playlist, idx, thumbnail,
menu_thumbnail_upscale_threshold,
network_on_demand_thumbnails
);
}
}
}
@ -457,7 +466,10 @@ void menu_thumbnail_process_streams(
menu_thumbnail_path_data_t *path_data,
playlist_t *playlist, size_t idx,
menu_thumbnail_t *right_thumbnail, menu_thumbnail_t *left_thumbnail,
bool on_screen)
bool on_screen,
unsigned menu_thumbnail_upscale_threshold,
bool network_on_demand_thumbnails
)
{
if (!right_thumbnail || !left_thumbnail)
return;
@ -521,11 +533,15 @@ void menu_thumbnail_process_streams(
/* Request image load */
if (request_right)
menu_thumbnail_request(
path_data, MENU_THUMBNAIL_RIGHT, playlist, idx, right_thumbnail);
path_data, MENU_THUMBNAIL_RIGHT, playlist, idx, right_thumbnail,
menu_thumbnail_upscale_threshold,
network_on_demand_thumbnails);
if (request_left)
menu_thumbnail_request(
path_data, MENU_THUMBNAIL_LEFT, playlist, idx, left_thumbnail);
path_data, MENU_THUMBNAIL_LEFT, playlist, idx, left_thumbnail,
menu_thumbnail_upscale_threshold,
network_on_demand_thumbnails);
}
}
}

View File

@ -134,7 +134,10 @@ void menu_thumbnail_cancel_pending_requests(void);
* (an annoyance...) */
void menu_thumbnail_request(
menu_thumbnail_path_data_t *path_data, enum menu_thumbnail_id thumbnail_id,
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail);
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail,
unsigned menu_thumbnail_upscale_threshold,
bool network_on_demand_thumbnails
);
/* Requests loading of a specific thumbnail image file
* (may be used, for example, to load savestate images)
@ -145,7 +148,8 @@ void menu_thumbnail_request(
* 'thumbnail' will be populated with texture info/metadata
* once the image load is complete */
void menu_thumbnail_request_file(
const char *file_path, menu_thumbnail_t *thumbnail);
const char *file_path, menu_thumbnail_t *thumbnail,
unsigned menu_thumbnail_upscale_threshold);
/* Resets (and free()s the current texture of) the
* specified thumbnail */
@ -167,7 +171,10 @@ void menu_thumbnail_reset(menu_thumbnail_t *thumbnail);
* performance */
void menu_thumbnail_process_stream(
menu_thumbnail_path_data_t *path_data, enum menu_thumbnail_id thumbnail_id,
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail, bool on_screen);
playlist_t *playlist, size_t idx, menu_thumbnail_t *thumbnail, bool on_screen,
unsigned menu_thumbnail_upscale_threshold,
bool network_on_demand_thumbnails
);
/* Handles streaming of the specified thumbnails as they move
* on/off screen
@ -185,7 +192,10 @@ void menu_thumbnail_process_streams(
menu_thumbnail_path_data_t *path_data,
playlist_t *playlist, size_t idx,
menu_thumbnail_t *right_thumbnail, menu_thumbnail_t *left_thumbnail,
bool on_screen);
bool on_screen,
unsigned menu_thumbnail_upscale_threshold,
bool network_on_demand_thumbnails
);
/* Thumbnail rendering */