summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/set (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove a few hacks for clock setups, which seem to no longer be needed, but fix network clock to local clock on every boot. Also fix some logging strings.Kelebek12024-01-311-1/+1
|
* fix build for gcc 11amazingfate2024-01-291-1/+1
|
* Merge pull request #12823 from german77/set-audioliamwhite2024-01-285-41/+264
|\ | | | | service: set: Implement more Qlaunch Settings
| * service: set: Increase settings versiongerman772024-01-281-2/+2
| |
| * service: set: Implement more Qlaunch Settingsgerman772024-01-285-39/+262
| |
* | Merge pull request #12802 from german77/mii_interfaceliamwhite2024-01-281-0/+3
|\ \ | |/ |/| service: mii: Migrate service to new interface
| * service: mii: Migrate service to new interfaceNarr the Reg2024-01-261-0/+3
| |
* | Merge pull request #12765 from german77/sys-hidliamwhite2024-01-264-60/+161
|\ \ | | | | | | service: set: Implement more settings functions for Qlaunch
| * | service: set: Implement more settings functions for QlaunchNarr the Reg2024-01-264-60/+161
| |/
* / fs/errors: Unify naming of result codesFearlessTobi2024-01-251-2/+2
|/
* Merge pull request #12499 from Kelebek1/timeliamwhite2024-01-257-57/+129
|\ | | | | Rework time services
| * Rework time service to fix time passing offline.Kelebek12024-01-247-57/+129
| |
* | service: properly convert buffers to stringsNarr the Reg2024-01-231-4/+4
| |
* | service: set: Don't allow invalid mii author idgerman772024-01-211-0/+5
|/
* service: set: Implement stubbed functionsNarr the Reg2024-01-165-48/+199
|
* service: set: Refractor setting serviceNarr the Reg2024-01-1613-580/+610
|
* Fix typos in src/core (#12625)Viktor Szépe2024-01-083-8/+8
| | | | | | | | | * Fix typos in src/core * Fix typo correction * Fix indentation of MemoryStateNames * Fix indent
* service: set: Rename filesgerman772024-01-079-9/+9
|
* service: set: Use official namesgerman772024-01-079-359/+373
|
* general: properly support multiple memory instancesLiam2023-12-232-1/+12
|
* set: add cstddef for offsetof macroLiam2023-12-162-0/+2
|
* Make system settings persistent across bootsKelebek12023-12-1611-406/+1603
|
* set: don't load version nca with null romfsLiam2023-11-271-1/+3
|
* yuzu: Display firmware versionNarr the Reg2023-11-242-31/+59
|
* Implemented qlaunch version of the controller appletFrozenAra2023-11-192-4/+38
|
* set: return version info from system archiveLiam2023-10-201-19/+30
|
* service: set: Add more system settings and address commentsNarr the Reg2023-08-052-7/+100
|
* service: set: Implement system settings for QlaunchNarr the Reg2023-08-034-90/+625
|
* configure_system: Implement with for looplat9nq2023-07-211-4/+6
|
* hle: rename legacy errors to ResultsLiam2023-03-071-2/+2
|
* service: move hle_ipc from kernelLiam2023-03-014-42/+42
|
* service: refactor server architectureLiam2023-02-212-12/+10
| | | | Converts services to have their own processes
* Set: Allow setting device nicknameChloe Marcec2022-12-144-2/+19
|
* service: Make use of buffer element count helpersLioncash2022-11-231-1/+1
|
* general: preliminary support for hblLiam2022-10-122-2/+79
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-272-2/+2
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-2310-30/+20
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* service/set: Update function tablesLioncash2022-01-211-0/+2
|
* service: Reduce header include overheadMorph2021-10-071-1/+0
|
* service: set: Correct copy amount in GetAvailableLanguageCodesMorph2021-08-011-1/+2
|
* service: set: Correct 4.0.0 max_entries to 0x40 (64) instead of 17Morph2021-07-301-8/+8
|
* service: ns, set: Add PT_BR (Brazilian Portuguese)Morph2021-07-302-2/+5
|
* general: Make most settings a BasicSettinglat9nq2021-06-281-1/+1
| | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting.
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-022-9/+9
| | | | Transition to PascalCase for result names.
* hle: kernel: Migrate KClientPort to KAutoObject.bunnei2021-05-061-1/+1
|
* general: Write buffers before pushing raw argumentsMorph2021-04-191-1/+2
| | | | For consistency with the rest of the service implementations
* common: Move settings to common from core.bunnei2021-04-151-1/+1
| | | | - Removes a dependency on core and input_common from common.
* set_sys: Update to 12.xgerman772021-04-091-0/+6
|
* core: Remove unnecessary enum casts in log callsLioncash2020-12-081-2/+2
| | | | | Follows the video core PR. fmt doesn't require casts for enum classes anymore, so we can remove quite a few casts.
* service: Eliminate usages of the global system instanceLioncash2020-11-2710-15/+38
| | | | | Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
* service: Update function tablesLioncash2020-10-282-0/+3
| | | | Updates function tables according to info on SwitchBrew.
* Revert "core: Fix clang build"bunnei2020-10-211-4/+2
|
* core: Fix clang buildLioncash2020-10-181-2/+4
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465)David2020-08-031-1/+1
| | | | | | | | | | | | | * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
* configuration: implement per-game configurations (#4098)lat9nq2020-07-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Switch game settings to use a pointer In order to add full per-game settings, we need to be able to tell yuzu to switch to using either the global or game configuration. Using a pointer makes it easier to switch. * configuration: add new UI without changing existing funcitonality The new UI also adds General, System, Graphics, Advanced Graphics, and Audio tabs, but as yet they do nothing. This commit keeps yuzu to the same functionality as originally branched. * configuration: Rename files These weren't included in the last commit. Now they are. * configuration: setup global configuration checkbox Global config checkbox now enables/disables the appropriate tabs in the game properties dialog. The use global configuration setting is now saved to the config, defaulting to true. This also addresses some changes requested in the PR. * configuration: swap to per-game config memory for properties dialog Does not set memory going in-game. Swaps to game values when opening the properties dialog, then swaps back when closing it. Uses a `memcpy` to swap. Also implements saving config files, limited to certain groups of configurations so as to not risk setting unsafe configurations. * configuration: change config interfaces to use config-specific pointers When a game is booted, we need to be able to open the configuration dialogs without changing the settings pointer in the game's emualtion. A new pointer specific to just the configuration dialogs can be used to separate changes to just those config dialogs without affecting the emulation. * configuration: boot a game using per-game settings Swaps values where needed to boot a game. * configuration: user correct config during emulation Creates a new pointer specifically for modifying the configuration while emulation is in progress. Both the regular configuration dialog and the game properties dialog now use the pointer Settings::config_values to focus edits to the correct struct. * settings: split Settings::values into two different structs By splitting the settings into two mutually exclusive structs, it becomes easier, as a developer, to determine how to use the Settings structs after per-game configurations is merged. Other benefits include only duplicating the required settings in memory. * settings: move use_docked_mode to Controls group `use_docked_mode` is set in the input settings and cannot be accessed from the system settings. Grouping it with system settings causes it to be saved with per-game settings, which may make transferring configs more difficult later on, especially since docked mode cannot be set from within the game properties dialog. * configuration: Fix the other yuzu executables and a regression In main.cpp, we have to get the title ID before the ROM is loaded, else the renderer will reflect only the global settings and now the user's game specific settings. * settings: use a template to duplicate memory for each setting Replaces the type of each variable in the Settings::Values struct with a new class that allows basic data reading and writing. The new struct Settings::Setting duplicates the data in memory and can manage global overrides per each setting. * configuration: correct add-ons config and swap settings when apropriate Any add-ons interaction happens directly through the global values struct. Swapping bewteen structs now also includes copying the necessary global configs that cannot be changed nor saved in per-game settings. General and System config menus now update based on whether it is viewing the global or per-game settings. * settings: restore old values struct No longer needed with the Settings::Setting class template. * configuration: implement hierarchical game properties dialog This sets the apropriate global or local data in each setting. * clang format * clang format take 2 can the docker container save this? * address comments and style issues * config: read and write settings with global awareness Adds new functions to read and write settings while keeping the global state in focus. Files now generated per-game are much smaller since often they only need address the global state. * settings: restore global state when necessary Upon closing a game or the game properties dialog, we need to restore all global settings to the original global state so that we can properly open the configuration dialog or boot a different game. * configuration: guard setting values incorrectly This disables setting values while a game is running if the setting is overwritten by a per game setting. * config: don't write local settings in the global config Simple guards to prevent writing the wrong settings in the wrong files. * configuration: add comments, assume less, and clang format No longer assumes that a disabled UI element means the global state is turned off, instead opting to directly answer that question. Still however assumes a game is running if it is in that state. * configuration: fix a logic error Should not be negated * restore settings' global state regardless of accept/cancel Fixes loading a properties dialog and causing the global config dialog to show local settings. * fix more logic errors Fixed the frame limit would set the global setting from the game properties dialog. Also strengthened the Settings::Setting member variables and simplified the logic in config reading (ReadSettingGlobal). * fix another logic error In my efforts to guard RestoreGlobalState, I accidentally negated the IsPowered condition. * configure_audio: set toggle_stretched_audio to tristate * fixed custom rtc and rng seed overwriting the global value * clang format * rebased * clang format take 4 * address my own review Basically revert unintended changes * settings: literal instead of casting "No need to cast, use 1U instead" Thanks, Morph! Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com> * Revert "settings: literal instead of casting " This reverts commit 95e992a87c898f3e882ffdb415bb0ef9f80f613f. * main: fix status buttons reporting wrong settings after stop emulation * settings: Log UseDockedMode in the Controls group This should have happened when use_docked_mode was moved over to the controls group internally. This just reflects this in the log. * main: load settings if the file has a title id In other words, don't exit if the loader has trouble getting a title id. * use a zero * settings: initalize resolution factor with constructor instead of casting * Revert "settings: initalize resolution factor with constructor instead of casting" This reverts commit 54c35ecb46a29953842614620f9b7de1aa9d5dc8. * configure_graphics: guard device selector when Vulkan is global Prevents the user from editing the device selector if Vulkan is the global renderer backend. Also resets the vulkan_device variable when the users switches back-and-forth between global and Vulkan. * address reviewer concerns Changes function variables to const wherever they don't need to be changed. Sets Settings::Setting to final as it should not be inherited from. Sets ConfigurationShared::use_global_text to static. Co-Authored-By: VolcaEM <volcaem@users.noreply.github.com> * main: load per-game settings after LoadROM This prevents `Restart Emulation` from restoring the global settings *after* the per-game settings were applied. Thanks to BSoDGamingYT for finding this bug. * Revert "main: load per-game settings after LoadROM" This reverts commit 9d0d48c52d2dcf3bfb1806cc8fa7d5a271a8a804. * main: only restore global settings when necessary Loading the per-game settings cannot happen after the ROM is loaded, so we have to specify when to restore the global state. Again thanks to BSoD for finding the bug. * configuration_shared: address reviewer concerns except operator overrides Dropping operator override usage in next commit. Co-Authored-By: LC <lioncash@users.noreply.github.com> * settings: Drop operator overrides from Setting template Requires using GetValue and SetValue explicitly. Also reverts a change that broke title ID formatting in the game properties dialog. * complete rebase * configuration_shared: translate "Use global configuration" Uses ConfigurePerGame to do so, since its usage, at least as of now, corresponds with ConfigurationShared. * configure_per_game: address reviewer concern As far as I understand, it prevents the program from unnecessarily copying strings. Co-Authored-By: LC <lioncash@users.noreply.github.com> Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com> Co-authored-by: VolcaEM <volcaem@users.noreply.github.com> Co-authored-by: LC <lioncash@users.noreply.github.com>
* Move GetKeyCodeMapImpl to an anonymous namespaceDavid Marcec2020-06-241-19/+19
|
* Fixed logging outputDavid Marcec2020-06-241-1/+1
|
* Implement GetKeyCodeMap & GetKeyCodeMap2David Marcec2020-06-242-2/+72
| | | | Closes #3919
* Don't fail silently for vi, sm, set and ns servicesDavid Marcec2020-04-291-0/+1
|
* service: Update function tablesLioncash2020-04-202-0/+14
| | | | | | Keeps the service function tables up to date. Updated based off information on SwitchBrew.
* set: implement GetRegionCodeDan2020-03-192-1/+10
|
* service: Update function tablesLioncash2019-11-124-0/+27
| | | | | | Keeps the function tables up to date. Updated based off information from Switchbrew.
* set: Implement GetQuestFlagZach Hilman2019-06-292-1/+10
| | | Simply returns a true/false value indicating if the system is a kiosk system. This has been mapped to a config option for the purposes of yuzu.
* service/set: Correct and simplify behavior related to copying language codesLioncash2019-05-101-34/+22
| | | | | | | | | | | | This corrects cases where it was possible to write more entries into the write buffer than were requested. Now, we check the size of the buffer before actually writing into them. We were also returning the wrong value for GetAvailableLanguageCodeCount2(). This was previously returning 64, but only 17 should have been returned. 64 entries is the size of the static array used in MakeLanguageCode() within the service binary itself, but isn't the actual total number of language codes present.
* service: Update service function tablesLioncash2019-04-113-1/+32
| | | | Updates function tables based off information from SwitchBrew.
* core: Add missing override specifiers where applicableLioncash2019-04-041-1/+1
| | | | | | | | | Applies the override specifier where applicable. In the case of destructors that are defaulted in their definition, they can simply be removed. This also removes the unnecessary inclusions being done in audin_u and audrec_u, given their close proximity.
* set_sys: Move constants to anonymous namespaceZach Hilman2019-03-111-1/+1
|
* set_sys: Use official nintendo version stringZach Hilman2019-03-111-11/+7
|
* set_sys: Use correct error codes in GetFirmwareVersion*Zach Hilman2019-03-111-21/+41
|
* set_sys: Implement GetFirmwareVersion(2) for libnx hosversionZach Hilman2019-03-102-2/+63
| | | Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
* service/set: Convert GetLanguageCode over to using PushEnum()Lioncash2018-11-301-1/+1
| | | | | This code was around prior to the introduction of PushEnum, so convert it over so we don't need to cast here.
* service/set: Implement MakeLanguageCodeLioncash2018-11-302-1/+19
| | | | This function simply converts a given index into a language code.
* Changed logging to be "Log before execution", Added more error logging, all services should now log on some levelDavid Marcec2018-11-262-20/+21
|
* set_cal: Update service function tableLioncash2018-10-191-1/+2
| | | | Updated based on information from Switchbrew.
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-152-6/+6
|
* hle/service: Default constructors and destructors in the cpp file where applicableLioncash2018-09-116-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a destructor isn't defaulted into a cpp file, it can cause the use of forward declarations to seemingly fail to compile for non-obvious reasons. It also allows inlining of the construction/destruction logic all over the place where a constructor or destructor is invoked, which can lead to code bloat. This isn't so much a worry here, given the services won't be created and destroyed frequently. The cause of the above mentioned non-obvious errors can be demonstrated as follows: ------- Demonstrative example, if you know how the described error happens, skip forwards ------- Assume we have the following in the header, which we'll call "thing.h": \#include <memory> // Forward declaration. For example purposes, assume the definition // of Object is in some header named "object.h" class Object; class Thing { public: // assume no constructors or destructors are specified here, // or the constructors/destructors are defined as: // // Thing() = default; // ~Thing() = default; // // ... Some interface member functions would be defined here private: std::shared_ptr<Object> obj; }; If this header is included in a cpp file, (which we'll call "main.cpp"), this will result in a compilation error, because even though no destructor is specified, the destructor will still need to be generated by the compiler because std::shared_ptr's destructor is *not* trivial (in other words, it does something other than nothing), as std::shared_ptr's destructor needs to do two things: 1. Decrement the shared reference count of the object being pointed to, and if the reference count decrements to zero, 2. Free the Object instance's memory (aka deallocate the memory it's pointing to). And so the compiler generates the code for the destructor doing this inside main.cpp. Now, keep in mind, the Object forward declaration is not a complete type. All it does is tell the compiler "a type named Object exists" and allows us to use the name in certain situations to avoid a header dependency. So the compiler needs to generate destruction code for Object, but the compiler doesn't know *how* to destruct it. A forward declaration doesn't tell the compiler anything about Object's constructor or destructor. So, the compiler will issue an error in this case because it's undefined behavior to try and deallocate (or construct) an incomplete type and std::shared_ptr and std::unique_ptr make sure this isn't the case internally. Now, if we had defaulted the destructor in "thing.cpp", where we also include "object.h", this would never be an issue, as the destructor would only have its code generated in one place, and it would be in a place where the full class definition of Object would be visible to the compiler. ---------------------- End example ---------------------------- Given these service classes are more than certainly going to change in the future, this defaults the constructors and destructors into the relevant cpp files to make the construction and destruction of all of the services consistent and unlikely to run into cases where forward declarations are indirectly causing compilation errors. It also has the plus of avoiding the need to rebuild several services if destruction logic changes, since it would only be necessary to recompile the single cpp file.
* set: Fixed GetAvailableLanguageCodes() to follow the max_entriestech4me2018-08-262-8/+45
| | | | | | | | | | | | | Rightnow, in games use GetAvailableLanguageCodes(), there is a WriteBuffer() with size larger than the buffer_size. (Core Critical core\hle\kernel\hle_ipc.cpp:WriteBuffer:296: size (0000000000000088) is greater than buffer_size (0000000000000078)) 0x88 = 17(languages) * 8 0x78 = 15(languages) * 8 GetAvailableLanguageCodes() can only support 15 languages. After firmware 4.0.0 there are 17 supported language instead of 15, to enable this GetAvailableLanguageCodes2() need to be used. So GetAvailableLanguageCodes() will be caped at 15 languages. Reference: http://switchbrew.org/index.php/Settings_services
* Added ability to change username & language code in the settings ui. Added IProfile::Get and SET::GetLanguageCode for libnx tests (#851)David2018-08-032-1/+16
|
* set_sys: Implement SetColorSetId()Lioncash2018-07-242-5/+25
|
* set: Add missing log call in GetAvailableLanguageCodeCount()Lioncash2018-07-231-0/+2
| | | | Forgot to include this in 22f448b6327044076959e338811ee576f3dcf093
* set: Implement GetAvailableLanguageCodeCount()Lioncash2018-07-232-21/+29
| | | | This just returns the size of the language code buffer.
* set: Correct return code size of value in GetAvailableLanguageCodes()Lioncash2018-07-231-2/+2
| | | | The return code should be 32-bit in size.
* hle_ipc: Introduce generic WriteBuffer overload for multiple container typesLioncash2018-07-191-1/+1
| | | | | | | | | | | | | | | This introduces a slightly more generic variant of WriteBuffer(). Notably, this variant doesn't constrain the arguments to only accepting std::vector instances. It accepts whatever adheres to the ContiguousContainer concept in the C++ standard library. This essentially means, std::array, std::string, and std::vector can be used directly with this interface. The interface no longer forces you to solely use containers that dynamically allocate. To ensure our overloads play nice with one another, we only enable the container-based WriteBuffer if the argument is not a pointer, otherwise we fall back to the pointer-based one.
* Rename logging macro back to LOG_*James Rowe2018-07-032-2/+2
|
* Implement GetAvailableLanguageCodes2 (#575)greggameplayer2018-06-191-4/+1
| | | | | | | | | | | | * Implement GetAvailableLanguageCodes2 * Revert "Implement GetAvailableLanguageCodes2" This reverts commit caadd9eea3497ae2a13382aecb8ca29e1c02c5af. * Implement GetAvailableLanguageCodes2 * Implement GetAvailableLanguageCodes2
* set: Fix GetAvailableLanguageCodes implementation.bunnei2018-04-292-6/+45
|
* set: Move logging macros over to new fmt-compatible onesLioncash2018-04-242-2/+2
|
* service: Use nested namespace specifiers where applicableLioncash2018-04-2010-40/+20
| | | | Tidies up namespace declarations
* Various service name fixes - part 2 (rebased) (#322)Hexagon122018-04-173-0/+20
| | | | | | | | | | | | | | | | * Updated ACC with more service names * Updated SVC with more service names * Updated set with more service names * Updated sockets with more service names * Updated SPL with more service names * Updated time with more service names * Updated vi with more service names
* Service/Set: add more servicesmailwl2018-03-0310-9/+339
|
* service: Remove remaining uses of BufferDescriptor*.bunnei2018-02-141-3/+1
|
* set: GetAvailableLanguageCodes should not return lang_codes size.bunnei2018-02-051-2/+3
|
* logger: Add SET service logging category.bunnei2018-02-051-1/+1
|
* hle: Rename RequestBuilder to ResponseBuilder.bunnei2018-01-251-1/+1
|
* acc, set, applet_oe: stub various functions, add set service (#105)goaaats2018-01-192-0/+67
* Stubs for various acc:u0 funcs needed * Stub for GetDesiredLanguage in IApplicationFunctions * Add set service + stubs needed for games * Fix formatting * Implement IProfile, IManagerForApplication, return bool in CheckAvailability, style fixes * Remove IProfile::Get(needs more research), fix IPC response sizes