Git Product home page Git Product logo

playnite-backgroundchanger-plugin's Introduction

Lacro59's GitHub stats
Buy Me a Coffee at ko-fi.com

Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases
Static Badge GitHub release (latest by date) GitHub Release Date Github Lastest Releases

playnite-backgroundchanger-plugin's People

Contributors

lacro59 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

playnite-backgroundchanger-plugin's Issues

So much potential extension!

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!

[Feature Request] Download heroes from Steam

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. :)

System.NullReferenceException: Object reference not set to an instance of an object.

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

  1. Go to any game
  2. Manage Background Images
  3. Select File
  4. I select 1 jpeg file
  5. Save
  6. BG Image doesn't get saved and playnite notifies about error.

Expected behavior
The images should get saved.

Screenshots
image
The numbering corresponds with steps to reproduce the bug

image
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

[Feature Request] Lazy loading

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.

Extension stills run in background when Playnite is minimized after starting a game

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!

Backgrounds do not display

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.

Library is not updating with extension turned on

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.EventHandler1.Invoke(Object sender, TEventArgs e)
в Playnite.Database.ItemCollection1.OnItemUpdated(IEnumerable1 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, IList1 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

icon shuffle

can you add a tool for shuffling icons, the same way you can shuffle covers and background images?

Common Error need fix!

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.

Transition

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

Background Changer Crashes Playnite on Boot

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

Not analyzing or downloading humor assets

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.

Failed to load setting

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!

(Enhancement) Random Background download for several games

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.

[Feature Request] Web Image Search functionality

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.

Feature request Ability to change the first in the order

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.

Sort by Score Doesn't Work Correctly

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

  1. Search SteamGridDB for backgrounds
  2. Choose either score sort options. At this point, it's possible the top banner on both sorting options will be the same, even though the image should be at opposite ends of the list.
  3. Toggle any other option, such as tags or types. The images reorder themselves at least once.

Expected behavior
Images should match the order displayed on SteamGridDB.

Screenshots
SteamGridDB Order:
2024-07-16_20-15-26-268
Background changer descending:
2024-07-16_20-17-31-763
Background changer ascending:
2024-07-16_20-17-49-601

Extensions log
extensions.log

Select from SteamGridDB only goes up to 50 covers

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

Mute audio option

As a workaround I muted Playnite itself, but that isn't a really neat solution.

webpinfo.exe Path Text Box and Selection Dialogue are not Connected

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:

  1. Go to settings
  2. Open webpinfo.exe selection dialogue
  3. Locate webpinfo.exe
    In this instance, the contents of the box will not change, but upon saving, the new path to webpinfo will be used.

Variation 2:

  1. Go to settings
  2. Paste the full path to webpinfo.exe
  3. Save
    In this instance, the path displayed will change and the change will save, but the plugin will still attempt to use %appdata%\Playnite\Extensions\playnite-backgroundchanger-plugin\webpinfo.exe

Expected behavior
Displayed path to webpinfo.exe should be updated when selecting a file, and functional path should be updated when pasting a path.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.