-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP/PoC: On-demand thumbnail downloads #8490
Conversation
I will have a look at that tomorrow, seems nice! |
Nice idea. Some feedback:
|
This is neat, the code can be moved to About commit ad8010c, I don't mind putting sublabels back but it needs to be under a setting (unique to ozone I suppose). This new setting would be disabled by default - if enabled, it would hide the content metadata panel and put sublabels back. |
Regarding the sublabels, this branch is just my local testing branch so
don't mind that.
Regarding thumbs
I don't want it to dl automatically but I wasn't able to figure a way to
make it trigger on button press only. That way the problems @jdgleaver was
talking about would be less prominent.
The stuff that matters is the URL building stuff and the task changes, the
rest can be ignored.
…On Mon, Mar 18, 2019, 06:00 Nathan S. ***@***.***> wrote:
This is neat, the code can be moved to menu_thumbnail to make it work on
all menu drivers.
About commit ad8010c
<ad8010c>,
I don't mind putting sublabels back but it needs to be under a setting
(unique to ozone I suppose). This new setting would be disabled by default
- if enabled, it would hide the content metadata panel and put sublabels
back.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#8490 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABpC0H21nS-fm9w67r2TkParTK92YZBsks5vX3G5gaJpZM4b4sG7>
.
|
@fr500 Yes, sorry if that sounded overly critical - this is fine for a testing branch 🙂 Download on button press is awkward. It is very difficult to override |
No worries. |
@@ -73,6 +73,8 @@ typedef struct ozone_handle ozone_handle_t; | |||
#define OZONE_TICKER_SPACER "\xE2\x80\x83\xE2\x80\xA2\xE2\x80\x83" | |||
#endif | |||
|
|||
bool missing_thumbnail; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no need for this to be global to the whole program
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually it will have to be moved to be "even more global" if we want to reuse the code in other drivers.
so I guess I should go the fake C++ route, adding a variable to retroarch.c and "getters and setters"
I'll repost what I said in #programming on discord:
The resulting playlist would be something like this: {
"version": "1.0",
"config": [
{
"icon": "default",
"default_core_path": "D:\\GameData\\Emulators\\RetroArch\\libretro\\snes9x_libretro.dll",
"default_core_name": "Nintendo - SNES / Famicom (Snes9x)"
},
],
"items": [
{
"path": "W:\\roms\\Emulated\\Console\\Nintendo Super Nintendo Entertainment System\\Super Mario All-Stars (USA).zip#Super Mario All-Stars (USA).sfc",
"label": "Super Mario All-Stars (USA)",
"core_path": "D:\\GameData\\Emulators\\RetroArch\\libretro\\snes9x_libretro.dll",
"core_name": "Nintendo - SNES / Famicom (Snes9x)",
"crc32": "925637C7|crc",
"db_name": "Nintendo - Super Nintendo Entertainment System.lpl",
"icon": "default",
"thumbnail_found": "true"
},
]
} Regarding icon flags on entries: Regarding icon flags for playlists: Regarding the default core stuff:
While it looks harmless, it's terrible in my opinion because:
|
@jdgleaver regarding history, images and favorites, those should be blacklisted from downloading I guess, no point downloading if it's always gonna fail. On history and favorite entries it depends, it would work if the entries were added from a proper playlist. |
And this is me over reaching and making this little thing too big to even be considered 🤣 |
@natinusala moved the code to menu_thumbnail_paths.c |
I'm all in for a loading spinner and auto refresh. I can do the fancy display part if you want, we have a hourglass icon that we can use (I already use it in the tasks widget). However I think it would require a field indicating no thumb, UX will be down the drain without. Having some sort of contextual menu is also something I had in mind but I don't know how well it could be integrated into the current menu code. We could reduce the complexity by having only "actions" in this menu, as in never push another menu from this one. Open the contextual menu, do your action, and it closes immediately. |
@fr500 Oh boy - that got complicated real fast... 🙂 There are lots of good ideas here, but also lots of work involved (and heaps of edits to my new thumbnail code). I have a vested interest in anything that changes my stuff, but I'm busy with other things at the moment... I'll try to have a proper think about this later... (On a side note, I personally detest downloading thumbnails inside RetroArch, in the same way that I detest the content scanner. I have never used either feature, and I never will. On the systems I actually game with, my ROM names and thumbnail file names/directories have nothing to do with 'official' releases/identifiers, and I manage everything with my own scripts. So this kind of on-demand thumbnail download would fail on every single one of my playlist entries, and do nothing for me other than waste CPU cycles - hence my main concern being that the whole thing can be easily and efficiently disabled for people who don't want it, and that it should be ifdef'd out completely for platforms without HAVE_NETWORKING. But I understand why others would find this stuff useful) |
Yeah, I agree with @jdgleaver that this should be something that should be easily possible to be disabled, and possibly opt-in so that people who don't want it to waste CPU cycles or networking resources are not emburdened by it. But it is definitely a cool feature for the casuals. I can see why a lot who are into stuff like Launchbox or EmulationStation would want something like this to be enabled by default. We might at some point want to really consider a startup wizard or a first-time startup where we ask the user what kind of features they want to enable at the beginning. Stuff like this is something they could opt-in and opt-out of then. That is also how Windows itself handles these things when the installer is done and it asks you whether to enable certain key features. |
I don't think the current 3GB packs are useful for anyone really. |
Very nice idea! |
Testing builds for android here: |
@fr500 Yeah there's something to be said for that. I guess I need to try to introduce a first-run wizard as soon as possible so that we can ask the user if they want this to be enabled or not. |
@@ -840,7 +840,7 @@ static int action_bind_sublabel_playlist_entry( | |||
unsigned last_played_minute = 0; | |||
unsigned last_played_second = 0; | |||
|
|||
if (!settings->bools.playlist_show_sublabels || string_is_equal(settings->arrays.menu_driver, "ozone")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strange that ozone was set to always show sublabels. Is this option omitted in Ozone's settings?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was a debug leftover IIRC
Happy you've started this up! The packs are pretty large, and extracting them doesn't really work on smaller hardware. Thanks so much for getting the ball rolling on it. |
It's already pretty much complete.
Just needs options and a removal of that thing you noted earlier
…On Sat, Mar 30, 2019 at 4:50 PM Rob Loach ***@***.***> wrote:
Happy you've started this up! The packs are pretty large, and extracting
them doesn't really work on smaller hardware. Thanks so much for getting
the ball rolling on it.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#8490 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABpC0HZJ5aXCvk0QxbrsOGVDLwDsD8y3ks5vb9wQgaJpZM4b4sG7>
.
|
OK so we finally implemented this - @fr500 Let me know if you're satisfied with this implementation. If there's any further criticism you have on the implementation, maybe @jdgleaver could address it. If you're satisfied, you can close the PR I guess. |
What it says, this makes RA download thumbnails on-demand instead of the current slow, monolithic method that doesn't even work in many platforms due to memory constraints.
I don't really understand the thumbnail code (LEFT/RIGHT seem meaningless in OZONE) and it's all a weird mess in my opinion (no insult intended)
Anyway what this does is download the currently selected thumbnail type if available.
It forms the URLs and saves the files correctly.
All that needs to be done is untangle it from ozone, and fix-up the trigger action so it actually triggers there.
@natinusala @twinaphex