Giter VIP home page Giter VIP logo

screensaver's People

Contributors

cnapolit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

screensaver's Issues

Allow previewing of Groups

Similar to previewing individual games, groups should be previewable without changing the active group or leaving the polling service running after the fact if it should not be.

Slideshow option

The ability to view the ScreenSaver as a slideshow (arrow keys to change games, only closes on enter) could help with some niche circumstance like deciding what game to play or reviewing media for bad elements.

Dependencies: [ #30 ]

Display Weather in Clock

To enhance the start screen like nature of this plugin, displaying the weather either via text or icon alongside the time would certainly be interesting.

Drop sharpdx library

No good reason to use it when perfectly valid dll imports exist. Will definitely cause headaches in the future if left around.

Custom Monitor Display

ScreenSaver currently only displays on the primary monitor.
Users are not necessarily working out of that monitor, so allowing them to specify which monitor to display from would enable further custom experiences for atypical setups.

Option to skip beginning of videos

A lot of videos start off with logos, so by the time gameplay is reached, the ScreenSaver has already transitioned to the next game.
An option to specify to starting point in videos, either by percentage or seconds, would help mitigate this.

Add ScreenSaver Groups

Currently, the ScreenSaver games are selected from all games.
It would be better if groups could be created based on selected games, saved, and selected as the pool of games to display.

Group Editor

The ScreenSaver plugin by the time this issue is started will only create groups using simple right click menus.
A refined dedicated interface to create groups would streamline the user experience.
This interface should support:

  • dynamic groups
  • static groups
  • time slots
  • custom sorting

Dependencies: [ #2, #4, #44 ]

Allow loading of Custom WPF

Power users may not like the default appearance or find the exposed properties in the settings lacking.
Allowing these users to define their own WPF for the ScreenSaver would be the best option for customizability.

Dependencies: [ #41 ]

Support multiple music sources

Playnite Sounds allows for multiple music file, but ScreenSaver grabs any of these files with no particular intent.
ScreenSaver should support randomly selecting one of the files and always selecting the same file, with both paths controlled via a toggle inside the settings.

Cache list of viewed games when possible

Every time this screen saver displays, it queries for a new list of games every time. This can lead to unwanted repetition, since we fail to iterate through the entire list of games each time.
If we cache the list of viewed games, we can filter them out on next display without needing to worry about displaying invalid titles if we cached the remaining games instead.
The cache should be cleared upon every completed iteration of all games and only be used if the active group has not changed.

Custom ScreenSaver Logo

The ScreenSaver uses the default logo in menus. A custom logo would help distinguish the plugin.
One potential logo is some sort of film reel icon.

Display ScreenSaver across multiple monitors

Currently, the ScreenSaver is designed to display from a single monitor.
ScreenSaver should support displaying across multiple windows.
Supporting different games per monitor is ideal, but optional.
A separate issue should be created if this cannot be easily achieved in this one.

Toggle to use micro trailer

To improve customizability, the ScreenSaver should support the option to toggle the video between the full & micro trailer.

ScreenSaver can show during gameplay

ScreenSaver can sometimes show during gameplay when the setting to disable is toggled on.
This is most likely due to one of the various application events triggering the poll to start up and the corresponding closing event failing to trigger while also returning to the game.
An easy fix will be to never poll if we think a game is playing rather than only polling when Playnite is the active application.
In the future, it would be ideal to interact with PlayState to resume polling when a game is suspended.

Display music title

Viewers may be curious about what music is playing. By observing the file metadata (or just the file name without the extension), the plugin could satisfy their curiosity.

Ignore inputs when playnite is deactivated or minimized

Since I have Playnite opened on my third monitor (TV) at all time, the option to have some kind of slide show showing on there while I'm not playing is really great to avoid burn-in. However, since I am still using the PC in the meantime, the screensaver will never actually turn on.

Having an option to have the Screensaver trigger when there's x amount of time of inactivity in Playnite specifically (and not on the PC at large) and then requiring for the user to click on the window or some other kind of input to exit the Screen Saver when they want to use Playnite to launch a game would make it work perfectly with this use case.

[POC] Display Achievements

Some users may want to see the achievements they've earned over the total achievements for each game, on top of some select achievements they have acquired.
This may be possible through the achievement plugin.
This is just to investigate if possible. A follow-up issue should be created to properly implement.

Custom ScreenSaver WPF Editor

An interface allowing the creation & editing of custom WPF files would enable all users to customize the appearance to their liking without a background in WPF. The Interface should allow the scaling, movement, addition, and deletion of UI elements.

Display certain groups at certain times.

The ability to set the pool of games to display based on time of day.
The main use case would be to match lighting/mood of the hour, as an example:
orange titles for sunrise, blue titles for midday, grey titles for dusk, black titles for night.

Dependencies [ #44 ]

Filter out hidden games by default

The ScreenSaver by default does not filter out hidden games. It should match the main app's behavior and ignore these titles instead.

Add Documentation Per Interface/Class/Method

Documentation within the codebase is very minimal. Adding descriptions for interfaces, classes, and methods stating intent will improve understandability of the application.

Investigate consolidating ScreenSaver windows

The current implementation of ScreenSaver is a bit hacky, using three windows: 2 for smooth transitions, 1 for a black background elements.
There is clear room here for consolidation into a single window.

Custom Game Sorting per Group

The default behavior to sort the given pool of games is random.
However, it would be better if the user could specify how games are sorted to grant greater control to the user,

Monitor select does not work

Description:
Changing the selected monitor in the addon settings has no bearing on the location of the screensaver.

Steps To Reproduce:

  1. Attach second monitor
  2. Start Playnite with plugin installed
  3. Go to ScreenSaver addon settings
  4. Set the monitor to display to as the attached device from step 1
  5. Start ScreenSaver

Dynamic Groups based on Filters

Groups by the point of this issue are statically defined.
When Playnite 10.x is released, it will expose the current filter to plugins.
ScreenSaver could leverage this to easily support dynamic groups without any need for complex UI elements,

Background of video clips through when curve is enabled

When curved corners are enabled for videos in the screen saver window, the background color slightly clips through (most noticeable with colors outside of black and white).
This results from the background color of the border responsible for the curve feature bleeding through. Normally, setting the color to transparent would fix this, but this makes the entire video invisible.
Best solution would be to find another method of curving the corners.

DirectInput Support

Even though Playnite does not currently support DirectInput, there is intent to support it in the future and it would be nice to stay ahead of the curve.
It would also benefit users who decide to enable ScreenSaver in game who happen to be using at least one DirectInput device.
Some directInput devices include PS4/5 & Switch Controllers.

Per Group Settings

Group specific settings would enable versatile screen savers only requiring selecting a new group to drastically change behavior.
For example, a group focused on music would want to transition upon the music ending and guarantee all entries have music files (or at least audio), and be noticeably louder.
Another general group may want a set interval instead and not care about the audio state at all.

Dependencies: [ #4 ]

Display Date & Time

Since the ScreenSaver occupies the entire monitor, optionally showing the current date & time would refine the user experience.

Mute Playnite Sounds when displaying

Playnite exposes the plugins to one another via a list. It should be possible to find Sounds, cast it to a matching interface (or some similar process), and invoke a method to mute/unmute the plugin.

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.