The hid-sony driver has both analog and digital buttons for the triggers,
and the analog values range from -32767 to 32767, which can cause two unwanted
input events (digital button and negative axis) per press.
Implement a function to filter out unwanted input events during configuration,
but isolate detection to known PS3 controllers with 6 axes so that older versions
of hid-sony and the sixad driver (which use 25+ axes) are not impacted negatively.
Starting up emulationstation takes me about 1 minute over the network
with a large collection of 27 systems with images.
This patch uses the loading screen to tell the user about the status
of the startup, with information how many systems are left for view
initialization.
The most beefy part of the startup process is initializing the views,
and preloading images.
This patch extends the `renderLoadingScreen` function to take a string
and uses it in `ViewController::preload`.
v2: Add SplashScreenProgress option enabled by default.
Some drivers (such as hid-sony) configure analog triggers (L2/R2) as axes
with axis range -32768-32767, but the resting value starts at -32768,
causing an initial or light press to register erroneously as a minus
axis value.
Fix by shifting ABS_Z and ABS_RZ axes that are detected to rest at
-32768 so that they will range from 0-32767 instead.
Patch based on Jools Wills' earlier commit: https://github.com/RetroPie/EmulationStation/pull/58
This fix 2 bugs with the horizontal scrolling grid :
- The grid is now positioned correctly (bug introduced by the buffer of the dynamic image loader)
- The right column contain the partial tile in horizontal mod, not the bottom row
- This changes make sure the buildTiles function is called only one time, at the end of the applyTheme function.
- The buildTiles function now call calcGridDimension as both are linked to the same events
- Rewrite NinePatchComponent to handle images with a different size than 48x48 px
- It's now possible to change the border sizes using setCornerSize function
Add default game image and folder image to the grid. They can be configured by the theme with the gameImage and folderImage properties of the imagegrid.
- Separated private methods and attributes in 3 groups :
- images & entries
- tiles
- miscellaneous
- Renamed some methods :
- buildImages -> buildTiles
- updateImages -> updateTiles
- Moved private methods implementation so they respect the same order as their declaration
- Changed some methods internal variable names and other smalls clean
- A call to cropTop(0.2) will crop 20% of the top of the image
- A call to minSIze(0.2, 0.2) will resize the image smallest side to 0.2 without breaking aspect ratio, but crop the extra lenght of the biggest side.
- Call minSize(0.2, 0.2) and then uncrop() to define an image size by its smallest side
- Add the GridTileComponent which hold the image and its background
- Add base theming syntax for the ImageGrid and GridTIle
- Numerous refactoring/cleaning in ImageGridComponent
- Add the metadata from the detailed view to the grid view (minus the image, as it doesn't make sens in the grid view)
- Add a callback to the ImageGridComponent to update the metadata info panel when cursor changed
- Grid tile number of columns and rows is now controlled by the grid size, mMargin and mTileMaxSize
- Add a variable mSelectedTileMaxSize to control the size of the selected tile
- Update the render function to display the selected tile on top of the other
- Add the remove function to GridGameListView
- Enable the grid view in ViewController
- The grid view will not be available in the menu yet, but can be enable by tweaking es_settings.cfg
Replace boost::filesystem::is_directory
with Utils::FileSystem::isDirectory
Replace boost::filesystem::is_regular_file
with Utils::FileSystem::isRegularFile
Replace boost::filesystem::is_symlink
with Utils::FileSystem::isSymlink
Replace boost::filesystem::exists
with Utils::FileSystem::exists
Replace boost::filesystem::create_directory
with Utils::FileSystem::createDirectory
Replace boost::filesystem::remove
with Utils::FileSystem::removeFile
* Split out UIMode controller in separate class (in es-app).
* Fix passphrase input for wX360 controllers by ignoring hat-inputs
* Fix font fallback mechanism on rpi for non ascii characters using new Unicode2Chars() method.
* Fix UIMode not being saved due to popup window.
* Introduce FileData Filtering for Kiosk and Kid Modes to:
1. In Kiosk mode: Hide items with metadata tag `<hidden>true</hidden>`
2. In Kid mode: only show items with metadata tag `<kidgame>true</kidgame>`
* ES will auto-revert UI mode back to Full when there is nothing at all to show.
* Changing the setting hideQuitMenuOnKidUI to true will hide this menu.
* Now that vsync off explicitly sets swap interval, it's clear that
we've been using driver defaults (vsync on) up until now.
* Try to enable normal vsync before late swap tearing. The latter
doesn't constrain framerate and looks basically identical to vsync
off.
Ensure that deinit() removes the current sInstance so that the next call
to AudioManager::getInstance() will re-initialize audio correctly.
Remove explicit calls to AudioManager::init() and instead rely on
Sound::play() to initialize audio when needed.
This change adds an image slideshow screensaver mode with optional
background audio. The existing menu and video screensaver have been
refactored to include this new mode.
By default, the slideshow screensaver will show images from the
game list, but it can be configured in the menu to use a custom
directory instead.
More often than not users are running into glGetErrors 505 (running out
of video memory) when using heavy themes with the default 100 VRAM
setting.
The advice of setting it to 80 is often the solution.
Until we have a proper/better GPU management solution, this is probably
a better default.
- Video Screensaver to skip fade in/out if Instant
- Video Previews to skip fade in/out if Instant
- Added Pause/Resume methods to PS for better description
- Added basic documentation to PS header file
- Added trailing after waking up from SS
- Added proper timing offsets after PS is triggered
- PS set to Disabled by default
- some whitespace edits
- Removed warning while enabling Instant mode
- Fixes Instant mode setting not being saved
- Added methods to support changing screensaver videos after timeout
while using OMX.
- Added methods to support changing Screensaver play next video timeout
- Handled fast animations when Screen saver was disabled by setting
timeout to 0
- Minor fixes
- Change Power Saver (PS) from Other Settings menu
- 4 Modes are available : Disabled, Default [default], Enhanced, Instant
- All modes work well with Screensavers and Video previews.
- PS is disabled while running Videos through VLC.
- PS is disabled while Scrapping
- Game counts are shown immidiately if in Instant Mode
- PS mode defaults if Transitions are changed while in Instant Mode
- Refactoring System Environment data
- Added Virtual System Manager class
- Added "all", "favorites" and "last played" systems
- Added GuiInfoPopup class for notifications
- Added Favorites to metadata, as well as a shortcut to toggle favorites
- Added warning if enabling systems but themes don't support it
- Added "filter by favorites" per system
- Adjusted "Go to Random Game" behavior to account for the fact that we now have an "All Games" system
- Added "sort by system name" for the collections
- Final changes for VLC screensaver support as well
- ALSA de-init/re-init only when needed
- Adding screensaver options menu inside UI settings
- Slightly moved options (Show Frameskip to "Other Settings", sorting within same menu)
- Adding info popups on random video screensaver and OMX + Game Info setting
- Ability to change device used for Volume control (PCM/Speaker/Master) only on Pi.
- Ability to change Audio device used for OMX player (local/hdmi/both/ALSA:HW:0,0/ALSA:HW:1,0)
* add hotkey button gfx and hotkey to input configuration
* prompt user if no hotkey set, and offer to use select
* if no hotkey is set, still save an entry with key id 0, for backward compatibility