facaeb615e
Fix scrubbing unencrypted Wii disc images
...
Untested with unencrypted Wii disc images, because I don't have any.
I tested that normal Wii disc images still work, though.
2018-09-20 23:23:10 +02:00
ce3e0fc091
Refactor DiscScrubber::MarkAsUsedE
2018-09-20 23:23:06 +02:00
38304da947
DiscIO: Use Common::Lazy for loading filesystems
...
This simplifies FileMonitor a lot and also lets us
clean up FilesystemPanel.
2017-09-15 18:57:05 +02:00
5e3c98af1d
DiscIO: Add a Volume::ReadSwappedAndShifted function
...
This is a fairly common operation, so let's make a utility
function for it to cut down on code duplication.
2017-08-02 22:00:51 +02:00
d06b532150
DiscIO: Move parts of Filesystem to the new file DiscExtractor
2017-06-28 22:21:23 +02:00
8f460a1cda
Merge pull request #5611 from JosJuice/reorganize-file-namespace
...
Reorganize File namespace
2017-06-15 23:28:36 +02:00
f09ceaa735
Move IOFile to a separate file
...
Reduces the number of files that need to be recompiled
when making changes to FileUtil.h.
2017-06-15 21:33:50 +02:00
87916fe099
Filesystem: Replace GetFileList()
...
Instead of expecting callers to know how the size of directory file infos
relates to which files are in which directories, filesystems now offer a
GetRoot() method, and file infos offer a way to get their children. As
a bonus, m_FileInfoVector no longer has to be created and kept around
in RAM. Only the file info objects that actually are used are created.
2017-06-14 15:23:48 +02:00
07d3a39aeb
Filesystem: Replace file info's full path with name
...
Some callers (i.e. ISOProperties) don't want the full path, so giving them
it is unnecessary. Those that do want it can use GetPathFromFSTOffset.
Not storing full paths everywhere also saves a small bit of RAM and is
necessary for a later commit. The code isn't especially pretty right now
(callers need to use FST offsets...) but it'll become better later.
2017-06-13 22:38:31 +02:00
5021b4a567
Filesystem: Replace FileInfo struct with interface
...
GC/Wii filesystem internals shouldn't be exposed to other classes.
This change isn't especially useful by itself, but it opens up the
way for some neat stuff in the following commits.
2017-06-13 22:37:43 +02:00
95bc57cff3
DiscScrubber: Use FileInfo::IsDirectory instead of bit magic
2017-06-13 17:01:39 +02:00
b2af07a7b7
DiscIO: Remove C/I/S prefixes from class names
...
These prefixes were inconsistent with the rest of Dolphin.
I'm also renaming VolumeWiiCrypted to VolumeWii because of 1113b13
.
2017-06-06 12:31:59 +02:00
c3fa0d6edf
DiscIO: Use std::optional in Volume and Blob
2017-06-05 13:26:51 +02:00
ac5c82b36b
DiscIO: Remove VolumeCreator
...
This file is pretty small now that it doesn't handle Wii
partitions anymore, so let's move its contents to Volume.cpp.
This is also more consistent with how blob creation works.
2017-05-19 18:33:21 +02:00
19b8f1c10a
VolumeWiiCrypted: Replace ChangePartition with a partition parameter
...
By removing mutable state in VolumeWiiCrypted, this change makes
partition-related code simpler. It also gets rid of other ugly things,
like ISOProperties's "over 9000" loop that creates a list of
partitions by trying possible combinations, and DiscScrubber's
volume swapping that recreates the entire volume when it needs to
change partition.
2017-05-16 22:58:15 +02:00
a93861ab49
DiscScrubber: Don't take SFileInfo instances by value
...
Avoids unnecessary copies.
2017-01-04 20:12:49 -05:00
c52d1e735a
DiscScrubber: Use an unsigned loop index in ParseDisc
...
Prevents an implicit signed to unsigned conversion when assigning a
partition's group number.
2017-01-04 20:03:12 -05:00
6ff21c48cb
DiscScrubber: Correct printf specifiers
2017-01-04 19:56:39 -05:00
b1a2dec78a
DiscScrubber: Convert a #define into a typed constant
2017-01-04 19:53:31 -05:00
5b1aae0cbf
DiscScrubber: Make struct and variable names conformant to the coding style
2017-01-04 17:04:41 -05:00
4a9bc2340b
DiscScrubber: Convert into a class
...
Allows potential multiple scrubbers to run at once. Also gets rid of the
need to explicitly clean up resources.
2017-01-04 16:06:21 -05:00
53e7eed28d
DiscScrubber: Fix issue 9356
2016-07-11 11:46:15 +02:00
31226b8503
DiscScrubber: Replace unused blocks with 0x00 instead of 0xFF
2016-07-07 11:51:58 +02:00
3570c7f03a
Reformat all the things. Have fun with merge conflicts.
2016-06-24 10:43:46 +02:00
cbfab2a754
DiscIO: Improve DiscScrubber::ReadFromVolume error handling
2015-12-14 10:01:38 +01:00
edbbf493f8
DiscIO: Make factory methods return unique_ptrs
...
Rather than rely on the developer to do the right thing,
just make the default behavior safely deallocate resources.
If shared semantics are ever needed in the future, the
constructor that takes a unique_ptr for shared_ptr can
be used.
2015-12-07 05:57:37 -05:00
eddea7f15f
Merge pull request #3181 from JosJuice/scrub-directories
...
Don't reserve space for directories when scrubbing
2015-11-17 10:37:09 +13:00
6dce8b4deb
DiscScrubber: Add another nullptr check
2015-11-01 20:30:49 +01:00
4d77d12f01
Remove length parameter from DiscScrubber::ReadFromVolume
...
The function only makes sense when the length is 4. All current callers
use the length 4, so this change doesn't affect any behavior.
2015-10-18 09:24:31 +02:00
618ccf6109
Remove DiscScrubber::GetDOLSize in favor of IFileSystem::GetBootDOLSize
...
IFileSystem::GetBootDOLSize acts the same. The only difference is that it
reads the DOL offset on its own, but this change makes that optional.
2015-10-17 20:52:26 +02:00
1ec9c6393a
Don't reserve space for directories when scrubbing
...
The offset in a directory FileInfo is an FST offset, not a disc offset.
Treating it as a disc offset doesn't make sense. Directories don't take
up space outside of the FST, so they don't need to be marked as used. The
old behavior may have prevented some scrubbable areas from being scrubbed.
2015-10-17 17:30:23 +02:00
cc036ca86c
Common: Remove other Common prefixed headers from Common.h
2015-09-26 18:51:58 -04:00
19459e827f
Partially revert "General: Toss out PRI macro usage"
2015-09-11 09:49:00 -04:00
8fdb013d54
General: Toss out PRI macro usage
...
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
64bd20aba7
DiscIO: Check if m_Disc is null in ParsePartitionData()
2015-07-02 11:45:22 -04:00
fff81fecb1
Reinstate format string.
...
Avoid the consequences in the unlikely event the path includes a %.
2015-06-14 16:49:35 +10:00
2ae6fb9240
Merge pull request #2338 from JosJuice/getfilelist-return
...
Filesystem: Return file list reference instead of modifying argument
2015-06-02 20:28:25 -04:00
30ebb2459e
Set copyright year to when a file was created
2015-05-25 13:22:31 +02:00
cefcb0ace9
Update license headers to GPLv2+
2015-05-25 13:22:31 +02:00
d43a920924
Filesystem: Return file list reference instead of modifying argument
2015-04-28 12:48:05 +02:00
bb93336ecf
DiscIO: Replace "raw" functions with "decrypt" parameters
...
This is intended to make decryption look less implicit in the code.
2014-12-28 10:35:48 +01:00
f54bf81520
DiscIO: Avoid zeroing buffer when compressing gcz.
...
This saves 6% time.
2014-11-27 08:58:09 -08:00
fbc64984ca
Include CommonTypes.h instead of Common.h.
2014-09-08 15:39:58 -04:00
4cb46879bc
DiscIO: Move some raw pointers over to unique_ptr
2014-08-31 14:48:57 -04:00
6d3f249dcc
mark all local variables as static
2014-07-11 16:10:20 +02:00
bd1ce18f90
Simplify file tree building for the filesystem view.
...
Technically this also simplifies on disc filename building in general.
2014-03-16 16:54:00 -04:00
a82675b7d5
Kill off some usages of c_str.
...
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
d802d39281
clang-modernize -use-nullptr
...
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
c698c07755
Make DiscIO/ mostly IWYU clean (and fix errors in rest of the project detected by this change).
2014-02-22 23:37:29 +01:00
2afe215271
Convert all includes to relative paths.
2014-02-18 02:19:10 -05:00