Commit graph

330 commits

Author SHA1 Message Date
tminit e7bc6f7006 Changed Audio settings to be much more flexible
Changed the selectable options for EmulationStation audio mixer
(called AudioDevice in EmulationStation) to be a greater range of
selectable options within Linux and RPi so that it is a lot more
flexible and will work with any aftermarket add-on audio cards and
RPi Audio HATs. Hopefully this gives people the flexibility that
they need in order to avoid the issues people have with unusual RPi
audio setups.

Added the ability to select the audio card as well, by surfacing
the audio card under the Audio Card setting. It was previously forced
to 'default' for all linux users, which was too restrictive in some
instances. This change now adds flexbility to support additional
Linux and RPi Audio Cards.

This option will only be available on Linux (and therefore RPi) as
Windows uses a different audio subsystem.

CHOOSING AUDIO ON LINUX AND RPi
You now select which ALSA Audio Card you want EmulationStation to use
by choosing the relevant AUDIO CARD option. If your one is not listed
then you can add a custom one in the es_settings.cfg file (see below).

You then select which ALSA Audio Mixer Control from that Audio Card
that you want EmulationStation to use, by choosing the relevant
AUDIO DEVICE option. (I kept the name AUDIO DEVICE as that what
EmulationStation previously used to describe an Audio Mixer.)
If your mixer name is not listed then you can add a custom one in
the es_settings.cfg file (see below).

ADDING A CUSTOM AUDIO CARD OR AUDIO DEVICE
In addition I added the ability to manually change the setting in
es_settings.cfg to add anything custom that you want. This will give
advanced users enough extra power that should avoid even the most
strange setups.

Step 1:

To add a custom Audio Card, edit the "AudioCard" setting and replace
the value with the name of your Audio Card. You can find this out by
opening a terminal window and running 'aplay -L'. This will generate a
list of Audio Cards similar to the one below:

pi@raspberrypi:~ $ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=sndrpijustboomd
    snd_rpi_justboom_dac,
    Default Audio Device
sysdefault:CARD=sndrpijustboomd
    snd_rpi_justboom_dac,
    Default Audio Device
dmix:CARD=sndrpijustboomd,DEV=0
    snd_rpi_justboom_dac,
    Direct sample mixing device
dsnoop:CARD=sndrpijustboomd,DEV=0
    snd_rpi_justboom_dac,
    Direct sample snooping device
hw:CARD=sndrpijustboomd,DEV=0
    snd_rpi_justboom_dac,
    Direct hardware device without any conversions
plughw:CARD=sndrpijustboomd,DEV=0
    snd_rpi_justboom_dac,
    Hardware device with all software conversions

Select any one of the Audio Cards listed by using the first word on
the line in your AudioCard settings in the es_settings.cfg, e.g.

<string name="AudioCard" value="default" />

NOTE: If the AudioCard value is not listed, please either close and
reopen EmulationStation (the settings is created upon close if it
doesn't exist), or add it manually to the es_settings.cfg file.

Step 2:

To add a custom Audio Device (mixer), edit the "AudioDevice" setting
and replace the value with the name of your Audio Device. You can get
a list off avilable Audio Devices on the Audio Card by opening a
terminal window and running 'amixer scontrols -D <AudioCard>', where
<AudioCard> is replaced with the name of your Audio Card that you
found in Step 1.  This command will generate a list of Audio Devices
(mixers) that you can use in the AudioDevice setting in the
es_settings.cfg file, e.g.

pi@raspberrypi:~ $ amixer scontrols -D default
Simple mixer control 'DSP Program',0
Simple mixer control 'Analogue',0
Simple mixer control 'Analogue Playback Boost',0
Simple mixer control 'Auto Mute',0
Simple mixer control 'Auto Mute Mono',0
Simple mixer control 'Auto Mute Time Left',0
Simple mixer control 'Auto Mute Time Right',0
Simple mixer control 'Clock Missing Period',0
Simple mixer control 'Deemphasis',0
Simple mixer control 'Digital',0
Simple mixer control 'Max Overclock DAC',0
Simple mixer control 'Max Overclock DSP',0
Simple mixer control 'Max Overclock PLL',0
Simple mixer control 'Volume Ramp Down Emergency Rate',0
Simple mixer control 'Volume Ramp Down Emergency Step',0
Simple mixer control 'Volume Ramp Down Rate',0
Simple mixer control 'Volume Ramp Down Step',0
Simple mixer control 'Volume Ramp Up Rate',0
Simple mixer control 'Volume Ramp Up Step',0

Select any one of the Simple mixer controls listed by using the
name within the quotes within the AudioDevice setting in your
es_settings.cfg file, e.g.

<string name="AudioDevice" value="Digital" />

Using the example above, the following two settings within the
es_settings.cfg file will use the 'default' Audio Card to play
sounds, and will use the 'Digital' mixer (Audio Device) to
control the volume.

<string name="AudioCard" value="default" />
<string name="AudioDevice" value="Digital" />

NOTE: Any custom manually used settings will be overwritten if you
select any of the other options in the GUI and exit the Sound
Settings window, as the Sound Settings GUI window overwrites the
es_settings.cfg options when you exit the window.

Fix latest package renames

fonts-droid is now fonts-droid-fallback
vlc-nox is now vlc-bin

Fixed up whitespacing to project tab standard

Had not paid enough attention and had accidentally provided
whitespacing in spaces rather than the project standard of
tabs. This change fixes some additional use of spaces to
ensure all the code in the two files now uses tabs.

Vero4k autodetection and volume mixer fix
2018-08-19 21:40:49 +00:00
hissingshark 2adce66ac4 Vero4k autodetection and volume mixer fix 2018-07-26 20:14:11 +01:00
John Rassa 5465752d11
Merge pull request #443 from jrassa/carousel-logo-text-improvements
add theme support for text and line spacing for logo text in system c…
2018-06-06 14:53:35 -07:00
John Rassa c6a8a4b20c
Merge pull request #436 from RetroPie/scraper-fix
set curl to follow redirects to fix scraper error
2018-06-06 14:47:41 -07:00
John Rassa 1fe57de7f6 add theme support for text and line spacing for logo text in system carousel 2018-06-06 14:44:54 -07:00
John Rassa 86a2cb7840 set curl to follow redirects to fix scraper error
update to use legacy thegamesdb url
2018-06-05 19:00:42 -07:00
John Rassa 401b184615
Merge pull request #435 from raelgc/431-improve-kids-mode
Improving kids mode
2018-06-04 14:17:25 -07:00
Rael Gugelmin Cunha cbc1d02b1b More restriction on kids mode (#431) 2018-05-30 22:38:19 -03:00
Koerty fef505639f Enable the grid view for everyone 2018-05-06 19:27:14 +02:00
joemommasfat ed2511e215 add sortname to gamelist.xml to sort by a different name 2018-04-24 23:07:25 -06:00
Koerty 96b0b85208 Fix md_name not fading out 2018-04-21 23:57:57 +02:00
Koerty e575f7708e Add the new metadata field md_title to grid, video and detailed views
Unlike the others, it is by default positioned offscreen
2018-04-16 19:42:41 +02:00
John Rassa 99f7330475 fix for several small issues in Windows build 2018-04-13 16:53:39 -07:00
Jools Wills 757dd43dd8
Merge pull request #325 from pjft/favorites-syntax
Fix empty collections not showing in carousel in Full Mode.
2018-04-12 15:29:29 +01:00
John Rassa 9adb0d0c51
Merge pull request #407 from Koerty/grid-tile-background
Add GridTileComponent and base theming syntax
2018-04-11 21:00:00 -07:00
Koerty 3993ace607 Add GridTileComponent and base theming syntax
- Add the GridTileComponent which hold the image and its background
- Add base theming syntax for the ImageGrid and GridTIle
- Numerous refactoring/cleaning in ImageGridComponent
2018-04-11 14:20:59 +02:00
Koerty 24c8a910e2 Disable random game selection in retropie settings menu 2018-04-07 14:43:23 +02:00
Koerty 82e5c21da6 Add base theming syntax for the grid
- The themes can now configure following elements : pos, size
- Change some default values for them
2018-04-07 10:37:09 +02:00
Benjamin D a006650c1c Add metadata from the detailed view to the grid view
- 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
2018-04-06 15:54:34 +02:00
Jools Wills 2ff3252b21
Merge pull request #400 from Koerty/grid-fix-populateList
[GRID FIX] Update the populateList function of the GridGameListView
2018-04-05 14:42:19 +01:00
Koerty 37a16fe3ed Update the grid's help prompt
- Add a left+right shoulder button icon
- Update the outdated help prompt to match the one from the Basic view
2018-04-05 15:37:35 +02:00
Jools Wills 75844f4568
Merge pull request #390 from Koerty/grid-swap-left-right-shoulder
[GRID 1] Allow quick system swap using left/right shoulder
2018-04-05 14:28:37 +01:00
Jools Wills 4e6dcde5a5
Merge pull request #398 from pjft/fix-theme-collection-crash
Fix crash when changing theme
2018-04-01 16:46:22 +01:00
Koerty 96b1f4b514 Small fix to the populateList function of the GridGameListView
- Call the addPlaceholder function if grid is empty
- Set the header text
2018-03-31 16:01:18 +02:00
Koerty 8d9c4a20ec Rewrite the grid display code
- 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
2018-03-30 18:15:54 +02:00
Koerty a7c0d92766 Use shoulder buttons for quick system swap in the grid view
- Allow quick system swap using left/right shoulder in the grid view
- Update the help prompt of the grid view accordingly
2018-03-29 09:50:57 +02:00
Mátyás Mustoha 63f4806ac5 Remove leftover debug code 2018-03-28 09:31:10 +02:00
Koerty b4feb69980 Enable the grid view for developers
- 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
2018-03-27 16:11:50 +02:00
pjft a585c00744 Fix crash when changing theme from within a collection that'll no longer be present at the carousel level 2018-03-15 20:46:09 +00:00
pjft 25f31d154c Fix crash when scraping folders 2018-03-09 16:41:55 +00:00
pjft c80d30493b Fix empty collections not showing up in Carousel for Full mode
Also fixed empty favorites collection in Kiosk mode not initializing as intended after adding the first game, if empty at start.
2018-03-02 11:56:14 +00:00
pjft d3cc0a77ef Limiting last played count to 50 2018-02-27 23:04:14 +00:00
Jools Wills 32258e1f00 bump version to 2.8.0 and add -dev suffix to string 2018-02-27 17:22:08 +00:00
Tomas Jakobsson 3f3e1ceb16 Move MameNameMap out of the source and into mamenames.xml 2018-02-09 18:32:05 +01:00
Tomas Jakobsson 9a535d4441 Show build date and time when starting ES with --debug 2018-02-08 20:45:06 +01:00
Tomas Jakobsson 1a4d13b6b3 Remove builtin resources 2018-02-08 19:27:44 +01:00
Jools Wills bb678eecd1
Merge pull request #363 from jrassa/g-w-scraper-fix
fix platform name for game and watch
2018-02-01 03:50:48 +00:00
John Rassa 55e578e18c
Merge pull request #362 from tomaz82/image_fix
Fix thumbnail and image to be separated
2018-01-31 22:38:58 -05:00
Tomas Jakobsson 1228e0c7bf Fix thumbnail and image to be separated as I think it was originally meant to be. 2018-01-31 21:34:55 +01:00
John Rassa d223831d53 fix platform name for game and watch 2018-01-30 20:16:30 -08:00
Tomas Jakobsson 421e4a23df The final traces of boost has been eliminated 2018-01-30 19:21:09 +01:00
Tomas Jakobsson 403b798572 Remove the last traces of boost::filesystem::operational, this is PR 4 of 5 in the boost::filesystem removal quest 2018-01-27 22:52:14 +01:00
Tomas Jakobsson 3d3fb2c277 Switched over the last functions in Utils.cpp to Utils::String, step 3 of 5 in the quest to remove boost::filesystem 2018-01-27 18:04:28 +01:00
Tomas Jakobsson ed2eb3d4d0 Move more functionality from Util.cpp to utils/StringUtil.cpp in the quest too remove the need for boost 2018-01-27 02:12:16 +01:00
John Rassa 0686b4690a
Merge pull request #352 from tomaz82/boost_filesystem
boost::filesystem replacement, step 1
2018-01-25 19:38:32 -05:00
Tomas Jakobsson c1f8e7294c Update and rename some Utils::FileSystem functions
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
2018-01-23 12:07:20 +01:00
jrassa e9403b6b00 implement horizontal wheel for system carousel. fix image rotation bug in carousel 2018-01-22 19:34:30 -05:00
pjft ae1e9e31c7 Fixing first favorites not updating index 2018-01-21 10:58:07 +00:00
Tomas Jakobsson e2fc3b325c Add support for --screenrotate 2018-01-18 18:30:00 +01:00
Tomas Jakobsson 7d7ebd5124 Minor misc fixes and warning silencers 2018-01-11 18:12:23 +01:00
Jools Wills db72b21500
Merge pull request #337 from error454/perf
Majorly improved performance when fetching Mame names.
2018-01-09 12:32:26 +00:00
Zachary Burke 7d50301b46 Majorly improved performance when fetching Mame names.
After profiling UI filtering and startup I determined that
getCleanMameName was responsible for the incredibly long load times when
loading/filtering Mame ROMS. This function was using a linear search
over a pre-sorted array to find a corresponding Mame ROM Name from the
ROM name. It now uses a binary search which improves UI load/filter
responsiveness by a couple orders of magnitude.

Single core performance on my i7 for 10,000 iterations was 2.01 secs vs
7.77e-4 secs
2018-01-03 13:47:39 -08:00
Tomas Jakobsson 05caef2f28 Remove all namespace fs = boost::filesystem; 2017-12-28 15:03:11 +01:00
Tomas Jakobsson 5e8d6b7f45 Eliminated the need for boost::xpressive, boost::algorithm and boost::variant 2017-12-27 18:22:26 +01:00
John Rassa 5e9c296fe9
Merge pull request #324 from tomaz82/custom_viewport
Implement --screensize and --screenoffset
2017-12-05 08:17:09 -05:00
John Rassa 4a70796814
Merge pull request #320 from tomaz82/date_time
Replaced boost::posix_time with Utils::Time
2017-12-05 08:16:26 -05:00
Jools Wills 96ac974ecb bump version to v2.7.4 2017-12-04 19:36:16 +00:00
Tomas Jakobsson 4425ea0165 Implement --screensize and --screenoffset 2017-12-02 19:16:08 +01:00
Tomas Jakobsson 11b8dbfc43 Replaced boost::posix_time with Utils::Time 2017-12-01 18:49:56 +01:00
pjft f29452e533 Fixes favorites crashing when removing last entry
Regression somewhere down the line.
2017-12-01 17:23:28 +00:00
D. Polders 1ed075a5e4 * Add ConfirmationPopUp when switching UIMode.
* 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.
2017-11-19 00:28:36 +01:00
Tomas Jakobsson bd0c6beed5 Silence warnings 2017-11-18 23:20:09 +01:00
Jools Wills f35769de6b bump version to v2.7.3 2017-11-18 17:45:18 +00:00
Tomas Jakobsson 160ef73eee Fix NES and SNES scraper that broke during boost cleanup 2017-11-18 18:11:58 +01:00
Tomas Jakobsson 92b73bd847 Cleaning up a lot of math functions 2017-11-14 20:09:20 +01:00
Jools Wills e0585cf501 bump version to v2.7.2 2017-11-13 00:21:20 +00:00
Tomas Jakobsson 9fbe95daa3 iterator -> const_iterator 2017-11-12 00:05:19 +01:00
Tomas Jakobsson 7719bff8ae Clean up pugixml.hpp includes 2017-11-10 20:16:42 +01:00
Jools Wills 8da400aa84
Merge pull request #292 from tomaz82/cec
CEC Support
2017-11-10 03:48:45 +00:00
Jools Wills a6d826a1e9
Merge pull request #293 from zigurana/UIModeConfirmationPopUp
Add confirmation popup when changing to UI mode Kid or Kiosk.
2017-11-10 03:48:24 +00:00
Tomas Jakobsson c66194e9c6 Trying to fix japanese text 2017-11-09 23:08:51 +01:00
D. Polders df7ef94462 Add confirmation popup when changing to UI mode Kid or Kiosk. 2017-11-09 21:51:46 +01:00
Tomas Jakobsson 074e22ee37 CEC Support 2017-11-08 23:22:15 +01:00
Jools Wills b833b45832 bump version to v2.7.1 2017-11-08 17:52:49 +00:00
pjft 4d237cea5e Fixing file deletion when present in "My Collections" bundle 2017-11-07 23:24:51 +00:00
Jools Wills ef8157a896
Merge pull request #283 from tomaz82/romname_bounce
Make long romnames bounce back and forth
2017-11-07 13:22:09 +00:00
Jools Wills 72ce8485c2
Merge pull request #287 from pjft/black-screensaver-fix
Fix for Video Screensaver not showing if menu is open
2017-11-07 13:21:42 +00:00
Tomas Jakobsson bc80308eff Improved long romname text scrolling 2017-11-06 18:34:47 +01:00
Jools Wills e37db2c2e0 bump version to 2.7.0 2017-11-05 10:26:48 +00:00
pjft d25e3b41ea Fix for Video Screensaver not showing if menu is open 2017-11-05 09:37:41 +00:00
Jools Wills d53fdd3420
Merge pull request #282 from zigurana/JumpToLetterWhenFiltered
Allow JUMP TO...  in case of filtered lists
2017-11-05 08:30:30 +00:00
Tomas Jakobsson 92a3286fc8 Add SystemData::indexAllGameFilters that loops through all added games and add's their tags to the filter indexes
This fixes the hidden filtering in Kiosk mode when not using gamelist.xml
2017-11-04 17:32:22 +01:00
D. Polders 5693e4a20c Allow JUMP TO... in case of filtered lists (such as when UIMODE != FULL).
Also add support for numbers and some symbols.
2017-11-03 12:11:11 +01:00
Tomas Jakobsson ac01e8fcd4 Removed all boost::assign::list_of 2017-11-03 01:33:08 +01:00
D. Polders 189eb05fee * Introduce KidMode: Prevent collection editing
* 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.
2017-11-02 21:22:41 +01:00
Tomas Jakobsson a8fc560749 Header inclusion cleanup 2017-11-02 19:16:01 +01:00
Tomas Jakobsson 8f5fbb0b26 Got rid of Matrix3x3f, Matrix4x4f, Rotation3x3f and Scale3x3f
Everything is now handled by Transform4x4f which now does it way more optimized than previous version
2017-11-01 15:02:48 +01:00
Tomas Jakobsson 44e3e39083 Add pragma once and ifndef header guards to all headers 2017-10-31 18:12:50 +01:00
Tomas Jakobsson d3966da2b7 Replace boost::locale with std::locale 2017-10-30 10:35:58 +01:00
Tomas Jakobsson 73a2f6b716 Replace Eigen with "inhouse" vector and matrix math 2017-10-28 22:25:01 +02:00
Jools Wills 997ee7b940
Merge pull request #271 from tomaz82/fixWarnings
Fix warnings
2017-10-28 21:10:15 +01:00
Tomas Jakobsson d3e87739e3 fix warnings 2017-10-28 22:07:31 +02:00
Jools Wills d57dee245c
Merge pull request #242 from psyke83/PSFixes
Power Saving enhancements
2017-10-28 20:18:38 +01:00
Jools Wills de42e1c2bd Merge pull request #257 from raelgc/master
Alow to select a system to go directly to the game list (Fixes #253)
2017-10-26 15:27:08 +01:00
Rael Gugelmin Cunha c1f836c713 Add an UI option to automatically load a system gamelist (Fixes #253) 2017-10-25 10:29:39 -02:00
Tomas Jakobsson 294aeaad3f Add windows support to isHidden 2017-10-24 12:32:14 +02:00
Tomas Jakobsson cd2f2ee42b Use local game art ( image, marquee and video ) from romfolder/images if the gamelist didn't specify a path 2017-10-24 00:57:08 +02:00
Jools Wills 06d38db73b Merge pull request #260 from zigurana/fixBuildWarnings
Fix build warnings (mostly adding explicit type casting)
2017-10-18 17:41:36 +01:00
D. Polders fd40e84ba5 Fix build warnings (mostly adding explicit type casting) 2017-10-18 16:22:27 +02:00
Tomas Jakobsson 7bd68501a1 Support FreeImage as a static library 2017-10-17 22:05:12 +02:00