summaryrefslogtreecommitdiff
path: root/src/common/fs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* android: Fix resolving android URIs in native codeGravatar Charles Lombardo2023-10-303-0/+58
|
* Merge pull request #11689 from liamwhite/breakpadGravatar liamwhite2023-10-293-0/+3
|\ | | | | qt: implement automatic crash dump support
| * qt: implement automatic crash dump supportGravatar Liam2023-10-083-0/+3
| |
* | Merge pull request #11705 from FearlessTobi/windows-scGravatar liamwhite2023-10-083-0/+3
|\ \ | | | | | | yuzu: Add desktop shortcut support for Windows (continuation of #11344)
| * | yuzu: Add desktop shortcut support for WindowsGravatar FearlessTobi2023-10-073-0/+3
| |/ | | | | | | | | | | Allows creating desktop shortcuts with icons for yuzu games. Co-Authored-By: Jeroen van Schijndel <13182141+roenyroeny@users.noreply.github.com>
* | Merge pull request #10519 from mdmrk/masterGravatar liamwhite2023-10-083-0/+3
|\ \ | |/ |/| yuzu-qt: Track play time
| * yuzu-qt: Track play timeGravatar Mario2023-08-263-0/+3
| |
* | add std::error_code for std::filesystem exceptionsGravatar Squall-Leonhart2023-09-151-6/+9
| | | | | | | | | | | | Resolves a case on Windows where an unmounted bitlocker protected volume containing an assigned game directory would crash Yuzu at start. May also resolve cases where a disconnected SMB volume causes similar crashes (needs testing)
* | add a compile time option to allow disabling portable modeGravatar xcfrg2023-09-061-2/+4
|/
* android: Fix size check for content urisGravatar Charles Lombardo2023-06-261-0/+6
| | | | Fix for checking file size for android content uris
* vfs_real: misc optimizationsGravatar Liam2023-06-162-5/+5
|
* android: fs: Fix Exists / IsFile for SAF.Gravatar bunnei2023-06-152-1/+31
|
* service: nfc: Add backup supportGravatar german772023-06-063-0/+3
|
* android: Implement SAF support & migrate to SDK 31. (#4)Gravatar bunnei2023-06-035-9/+228
|
* common: fs: Implement for Android.Gravatar bunnei2023-06-031-0/+7
|
* general: fix compile for Apple ClangGravatar Liam2022-11-223-0/+4
|
* concepts: Use the std::contiguous_iterator conceptGravatar Morph2022-10-261-6/+6
| | | | | | This also covers std::span, which does not have a const iterator. Also renames IsSTLContainer to IsContiguousContainer to explicitly convey its semantics.
* path_util: Resolve `-Wpointer-bool-conversion` warningGravatar lat9nq2022-05-261-3/+1
| | | | | | | | | Clang (rightfully) warns that we are checking for the existence of pointer to something just allocated on the stack, which is always true. Instead, check whether GetModuleFileNameW failed. Co-authored-by: Mai M <mathew1800@gmail.com>
* general: Convert source file copyright comments over to SPDXGravatar Morph2022-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.
* general: Fix clang/gcc build errorsGravatar ameerj2022-03-202-0/+3
|
* common: Reduce unused includesGravatar ameerj2022-03-195-8/+0
|
* common: fs_util: Add buffer to string view utility functionsGravatar Morph2022-02-132-0/+26
| | | | These functions allow to construct a string view from an input buffer, avoiding the copy done by the non string view counterparts. However, callers must be cognizant of the viewed buffer's lifetime to avoid a use-after-free.
* common/file: Remove [[nodiscard]] from Open()Gravatar Lioncash2022-02-011-3/+2
| | | | | Since this has a void return value, there's nothing that can actually be used.
* common/fs/path_util: Slightly refactor PathManagerImpl's constructorGravatar Creak2021-10-111-12/+15
| | | This moves all GenerateYuzuPath calls outside of the platofrm-specific #ifdefs, replacing them with assignments to paths.
* input_common/tas: Add swap controllerGravatar german772021-09-181-1/+1
|
* config: Move TAS options to it's own menuGravatar german772021-09-183-4/+3
|
* core: Hacky TAS syncing & load pausingGravatar MonsterDruide12021-09-182-2/+2
| | | | | | | | To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required. First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`. Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings.
* settings: File selector & other settingsGravatar MonsterDruide12021-09-182-0/+4
| | | | | | First of all, TASing requires a script to play back. The user can select the parent directory at `System -> Filesystem`, next to an option to pause TAS during loads: This requires a "hacky" setup deeper in the code and will be added in the last commit. Also, Hotkeys are being introduced: CTRL+F5 for playback start/stop, CTRL+F6 for re-reading the script and CTRL+F7 for recording a new script.
* common: fs: fs_util: Add BufferToUTF8StringGravatar Morph2021-07-272-0/+15
| | | | Allows for direct conversion to std::string without having to convert std::u8string to std::string
* common: fs: file: Revert Flush to its previous behavior and add CommitGravatar Morph2021-07-062-3/+34
| | | | | | It became apparent that logging can continuously spam errors that trigger file flushing. Since committing the files to disk is an expensive operation, this causes unnecessarily high disk usage. As such, we will revert Flush() to the previous behavior and add a Commit() member function in the event that this behavior is needed.
* common: fs: file: Flush the file in GetSizeGravatar Morph2021-07-061-0/+3
| | | | This ensures that GetSize always retrieves the correct file size after a write operation.
* common: fs: Add a description of a regular file in IsFileGravatar Morph2021-06-221-4/+6
| | | | This provides a more concrete example of what a regular file is and isn't.
* common: fs: Amend IsFile check in FileOpen / (Write/Append)StringToFileGravatar Morph2021-06-224-9/+12
| | | | | | | This check was preventing files with the Write or Append file access modes from being created, as per the documented behavior in FileAccessMode. This amends the check to test for the existence of a filesystem object prior to checking whether it is a regular file. Thanks to liushuyu for pointing out that removing the check altogether would not guard against attempting to open non-regular files such as directories, symlinks, FIFO (pipes), sockets, block devices, or character devices. The documentation has also been updated for these functions to clarify that a file refers to a regular file.
* common: fs: file: Remove [[nodiscard]] attribute from FlushGravatar Morph2021-06-221-2/+2
| | | | Similarly, Flush() is typically called to attempt to flush a file into the disk. In the one case where this is used, we do not care whether the flush has succeeded or not, making [[nodiscard]] unnecessary.
* common: fs: Remove [[nodiscard]] attribute on Remove* functionsGravatar Morph2021-06-221-8/+8
| | | | | | There are a lot of scenarios where we don't particularly care whether or not the removal operation and just simply attempt a removal. As such, removing the [[nodiscard]] attribute is best for these functions.
* Merge pull request #6460 from Morph1984/fs-access-log-fixGravatar Morph2021-06-162-6/+1
|\ | | | | fsp_srv: Fix filesystem access logging
| * common: fs: file: Remove redundant call to WriteStringToFileGravatar Morph2021-06-162-6/+1
| | | | | | | | The Append open mode will create a new file if said file does not exist at a given path, making this call redundant.
* | Merge pull request #6462 from Morph1984/proper-flushGravatar bunnei2021-06-151-1/+5
|\ \ | |/ |/| common: fs: file: Flush the file to the disk when Flush() is called
| * common: fs: file: Flush the file to the disk when Flush() is calledGravatar Morph2021-06-131-1/+5
| | | | | | | | | | | | std::fflush does not guarantee that file buffers are flushed to the disk. Use _commit on Windows and fsync on all other OSes to ensure that the file is flushed to the disk.
* | common: fs: Use the normal directory iterator in *Recursively functionsGravatar Morph2021-06-121-2/+16
|/ | | | | | MSVC's implementation of recursive_directory_iterator throws an exception on an error despite a std::error_code being passed into its constructor. This is most likely a bug in MSVC's implementation since directory_iterator does not throw an exception on an error. We can replace the usage of recursive_directory_iterator for now until MSVC fixes their implementation of it.
* common/fs/path_util: Remove [[nodiscard]] from function with void returnGravatar Lioncash2021-06-081-1/+1
| | | | | We can't make use of the return value here, since we don't a return value to work with.
* common: fs: fs_util: Move PathToUTF8String to fs_utilGravatar Morph2021-06-024-15/+14
|
* common: fs: fs_util: Add more string conversion functionsGravatar Morph2021-06-022-0/+33
|
* common/fs/file: Explicitly delete copy constructorsGravatar Lioncash2021-05-281-1/+4
| | | | | Relocates them to the same place the move equivalents are at for consistent viewing.
* common/fs/file: Devirtualize destructorGravatar Lioncash2021-05-281-1/+1
| | | | IOFile is a final class, so there's no need for a virtual destructor.
* common/fs/file: Default initialize IOFile membersGravatar Lioncash2021-05-281-2/+2
| | | | Prevents a potential uninitialized read vector in the move constructor.
* common: fs: Rework the Common Filesystem interface to make use of ↵Gravatar Morph2021-05-2510-0/+2913
std::filesystem (#6270) * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only