lacro59 / playnite-backgroundchanger-plugin Goto Github PK
View Code? Open in Web Editor NEWThis plugin can show many game background with many options.
Home Page: https://playnite.link
License: MIT License
This plugin can show many game background with many options.
Home Page: https://playnite.link
License: MIT License
I would like to add more details so that you can perfect this potential extension!:
1/ Make it work in fullscreen mode
2/ Provide a guide to add the plugin into any theme for example Ps5ish fullscreen theme
Thanks!
this plugin overload my CPU. experimental functions was turned off https://youtu.be/8YWar5Aulbw
In the same way that the Extra Metadata Loader and Universal Steam Metadata can download images from Steam itself on games that are on Steam, it would be nice if this extension can do so.
In my particular use case, I use a desktop theme that uses a banner image and a fullscreen theme that uses a wallpaper-sized image. While SteamGridDB images are nice, sometimes I want to download official hero images, which takes a while to do manually. Thank you for your time, and good luck with this extension and your other work. :)
Describe the bug
I am not able to save background images. Whenever I click on save, Object reference not set to an instance of an object
error comes.
To Reproduce
Expected behavior
The images should get saved.
Screenshots
The numbering corresponds with steps to reproduce the bug
Error message showed by playnite
Extensions log
24-07 14:10:33.863|DEBUG|Extras#ThemeExtras:Pushed "Details View - SOA"
24-07 14:10:47.121|ERROR|BackgroundChanger#Common:Error on PART_BtOK_Click()|C:\Projects\C#\Lacro59\playnite-backgroundchanger-plugin\source\Views\ImagesManager.xaml.cs|0
System.NullReferenceException: Object reference not set to an instance of an object.
at BackgroundChanger.Views.ImagesManager.PART_BtOK_Click(Object sender, RoutedEventArgs e) in C:\Projects\C#\Lacro59\playnite-backgroundchanger-plugin\source\Views\ImagesManager.xaml.cs:line 0
Others
I also have other extensions installed like Extra Metadata Loader, ThemeExtras and Mythic Theme
I used this extension two weeks ago and everything was working fine but it is giving problems today.
Also I tried restarting playnite but the bug is still there
Show background image 1 for like 2-3 seconds and automatcially change to a video background but this video will run for eternity until I navigate to other game. Is this possible?
It takes ages to scroll to the list, since the plugin directly downloads all images. It would be better to show a placeholder and load the images in the background so that the general functionality keeps working while the images are loading. And then it's maybe possible to only load a smaller preview, not the full image. This would also speed up the loading process. But not sure if this is possible.
As noted here.
I tested with Video background change per 10 seconds and after starting game with option to minimize playnite, in game, per 10 second there is a stutter occurs no matter what. Tried close playnite and stutter gone 100%, tried using Playnite as minimized without background change extension, no stutter too
I hope u can fix this extension to stop running when Playnite is minimized
Thanks!
the custom backgrounds seems to disappear.
Plugin seems to have no effect when enabled. No matter what options are selected, the background for a game does not change from the default image provided within Playnite settings. This problem is the same for cover images, as well. Occurs with the latest Playnite v 9.14 version and the latest 2.1 version of this plugin.
It seems like the extension (ver. 1.1) cause the playnite library update to fail. The error looks like
ERROR|DesktopAppViewModel:Failed to import games from plugin: Ubisoft Connect
System.InvalidOperationException: Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток. sorry for russian.
After checking the playnite.log file, i've found following text next to each (steam, battle.net, origin, etc.) library row:
15-02 11:26:08.635|INFO|DesktopAppViewModel:Importing games from Ubisoft Connect plugin.
15-02 11:26:08.635|DEBUG|UplayLibrary:Found 1 installed Uplay games.
15-02 11:26:09.205|DEBUG|UplayLibrary:Found 17 library Uplay games.
15-02 11:26:09.207|ERROR|DesktopAppViewModel:Failed to import games from plugin: Ubisoft Connect
System.InvalidOperationException: Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток.
**в System.Windows.Threading.Dispatcher.VerifyAccess()
в BackgroundChanger.BackgroundChanger.SetImage() в H:\GitHub\Lacro59\playnite-backgroundchanger-plugin\BackgroundChanger.cs:строка 211
в BackgroundChanger.BackgroundChanger.Games_ItemUpdated(Object sender, ItemUpdatedEventArgs1 e) в H:\GitHub\Lacro59\playnite-backgroundchanger-plugin\BackgroundChanger.cs:строка 70** в System.EventHandler
1.Invoke(Object sender, TEventArgs e)
в Playnite.Database.ItemCollection1.OnItemUpdated(IEnumerable
1 updates) в E:\Devel\Playnite\source\Playnite\Database\Collections\ItemCollection.cs:строка 504
в Playnite.Database.ItemCollection1.Update(TItem itemToUpdate) в E:\Devel\Playnite\source\Playnite\Database\Collections\ItemCollection.cs:строка 397 в Playnite.Database.GamesCollection.Update(Game itemToUpdate) в E:\Devel\Playnite\source\Playnite\Database\Collections\GamesCollection.cs:строка 131 в Playnite.Database.GameDatabase.ImportGames(LibraryPlugin library, Boolean forcePlayTimeSync, IList
1 excludedItems) в E:\Devel\Playnite\source\Playnite\Database\GameDatabase.cs:строка 1086
в Playnite.DesktopApp.ViewModels.DesktopAppViewModel.<>c__DisplayClass390_0.b__0() в E:\Devel\Playnite\source\Playnite.DesktopApp\ViewModels\DesktopAppViewModel.cs:строка 1178
After i've disabled the extension, library is updating again as it should.
Attaching whole playnite.log below
Maybe this will help to find the true causes, because, in the end, it maybe not the extension issue, but mine, somehow.
playnite.log
can you add a tool for shuffling icons, the same way you can shuffle covers and background images?
Cant figure out how to implement the plugin into a Fullscreen theme ubiquity.
ERROR|BackgroundChanger#Common:Error on OnGameSelected()|D:\GitHub\Lacro59\playnite-backgroundchanger-plugin\source\BackgroundChanger.cs|142
System.NullReferenceException: Object reference not set to an instance of an object.
I'm experiencing an issue with integrating the BackgroundChanger plugin into my fullscreen theme on the home page (main.xaml) of Playnite.
When the background image is set by the plugin and I switch games, the wallpaper reverts to the default one before moving to the next. How can I ensure that the image doesn't revert to the default before changing ?
Additionally, when I add the StackPanel as instructed in the GitHub, it removes the fade transition between images and I end up with black screens between each transition."
Here's a video of the problem :
https://youtu.be/HEg48BhQmM4
Able to change from 1920x620 to 1920x1080 would be nice since 620px height doesn't fit fullscreen mode background really well
Describe the bug
Today, Background Changer started crashing Playnite on boot. This manifests as the normal "Extension has caused an unrecoverable error," message, but I am unable to interact with it, as the software immediately crashes completely after it appears.
The cause seems to have something to do with the background image of the game at the time of boot.
This is the image in question.
Crash traceback
18-07 01:46:17.763|ERROR|PlayniteApplication:Unhandled exception occured.
System.InvalidCastException: Unable to cast object of type 'System.Windows.Controls.Button' to type 'System.Windows.Controls.Expander'.
at CommonPluginsShared.UI.SearchElementByName(String ElementName, DependencyObject dpObj, Boolean MustVisible, Boolean ParentMustVisible, Int32 counter) in C:\Projects\C#\Lacro59\playnite-backgroundchanger-plugin\source\playnite-plugincommon\CommonPluginsShared\UI.cs:line 208
at BackgroundChanger.Controls.PluginBackgroundImage.GetFadeImageProperties() in C:\Projects\C#\Lacro59\playnite-backgroundchanger-plugin\source\Controls\PluginBackgroundImage.xaml.cs:line 131
at BackgroundChanger.Controls.PluginBackgroundImage.ImageHolder_Loaded(Object sender, RoutedEventArgs e) in C:\Projects\C#\Lacro59\playnite-backgroundchanger-plugin\source\Controls\PluginBackgroundImage.xaml.cs:line 813
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at Playnite.DesktopApp.ProgramEntry.Main(String[] args) in C:\projects\playnite\source\Playnite.DesktopApp\ProgramEntry.cs:line 71
18-07 01:46:17.776|DEBUG|WindowFactory:Show dialog window Playnite.Windows.ExtensionCrashHandlerWindowFactory: b3822f97-54ab-46e2-ab06-3b954f49ac6e
Main issue here:
It seems this issue is derived from this extension, disabling the "Display the plugin cover image" checkbox fixes the problem, but of course prevents BackgroundChanger's own cover integration
As of a couple of days ago, the plugin is not recognizing (and therefore not allowing me to download) any SteamGridDB assets that have the "Humor" tag despite the Humor tag being toggleable in the SteamGridDB download menu. I have tried generating a new SteamGridDB API key, but that has not resolved the problem.
It seem that the extension cannot load the setting at the menu but you can still add the background and stuff.. and also it seem it cannot get anything from the SteamGridDb also... Thanks for your hard work though! Appreciate it a lot!
We can only select ONE background in the steamgrid import windows, it is not possible to choose several backgrounds at once.
This is very annoying, every background must be selected individual to import.
Simply what the title says. It would be great to select all found results to download.
The backgroundchanger is a great tool. However, for large game collections of 100 or 1000 of games it is very time consuming to manually choose for every game backgrounds. So, why not implement a random automatic background download function for selected games in the gamelist from steamgrid ? So we only have to manually change backgrounds for some games where we don't like the background.
I was wondering if it would be possible to add the option to add/download images from the internet (similar to the existing web search function with customizable image dimension filters, on Playnite's built-in media tab)? I don't use the same image dimensions for my Playnite background images as Steam Hero images, therefore the "Hero" assets scraped from SteamGridDB don't fit properly. As it stands, I have to manually download images that I want to my computer and put them in manually which is slightly cumbersome when I have a lot of images I want to put in.
This addition would simplify the process and be quite useful.
The first background in the priority order is always the one you've selected by default (through downloading metadata)
I'm not sure if this is a bug on my end but in order to use animated backgrounds I had to turn on automatic or random change for backgrounds, I couldn't just use an animated background first in the order.
The ability to change which background is used through the extension without enabling automatic change would be a nice feature.
Describe the bug
When trying to sort SteamGridDB images by score, the resulting order seems to be random, and even changes when adjusting other settings.
To Reproduce
Expected behavior
Images should match the order displayed on SteamGridDB.
Screenshots
SteamGridDB Order:
Background changer descending:
Background changer ascending:
Extensions log
extensions.log
This is an excellent tool for covers, however, I have one criticism of the tool. In "manage cover images" when I select "Select from SteamGridDB" it leads me to a window where I can click a name and pick what covers I want from. Unfortunately, it seems that the limit for the tool for how many Covers it can get when all the options are selected is 50 with no way to get to covers beyond that point. Now for games that have less than 50 cover images in SteamGridDB, this is not an issue, But for games that have more than 50 cover images in SteamGridDB, this means that you cannot access all the covers that they have on the SteamGridDB.
P.S. This may be a problem for backgrounds from SteamGridDB too, but this is something I noticed when adding covers to the background changer, hence why I was talking about the problem as it relates to cover images and SteamGridDB
As a workaround I muted Playnite itself, but that isn't a really neat solution.
Describe the bug
When changing the path to webpinfo, the selection dialogue and displayed path are not connected. The selection dialogue changes the utilized path to webpinfo, while the visible path in the text box is not utilized.
To Reproduce
Variation 1:
Variation 2:
Expected behavior
Displayed path to webpinfo.exe should be updated when selecting a file, and functional path should be updated when pasting a path.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.