Commit Graph
70 Commits
Author SHA1 Message Date
JosJuice 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
JosJuice 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
JosJuice 95bc57cff3 DiscScrubber: Use FileInfo::IsDirectory instead of bit magic 2017-06-13 17:01:39 +02:00
JosJuice 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
JosJuice c3fa0d6edf DiscIO: Use std::optional in Volume and Blob 2017-06-05 13:26:51 +02:00
JosJuice 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
JosJuice 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
Lioncash a93861ab49 DiscScrubber: Don't take SFileInfo instances by value
Avoids unnecessary copies.
2017-01-04 20:12:49 -05:00
Lioncash 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
Lioncash 6ff21c48cb DiscScrubber: Correct printf specifiers 2017-01-04 19:56:39 -05:00
Lioncash b1a2dec78a DiscScrubber: Convert a #define into a typed constant 2017-01-04 19:53:31 -05:00
Lioncash 5b1aae0cbf DiscScrubber: Make struct and variable names conformant to the coding style 2017-01-04 17:04:41 -05:00
Lioncash 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
JosJuice 53e7eed28d DiscScrubber: Fix issue 9356 2016-07-11 11:46:15 +02:00
JosJuice 31226b8503 DiscScrubber: Replace unused blocks with 0x00 instead of 0xFF 2016-07-07 11:51:58 +02:00
Pierre Bourdon 3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
JosJuice cbfab2a754 DiscIO: Improve DiscScrubber::ReadFromVolume error handling 2015-12-14 10:01:38 +01:00
Lioncash 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
Scott Mansell 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
JosJuice 6dce8b4deb DiscScrubber: Add another nullptr check 2015-11-01 20:30:49 +01:00
JosJuice 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
JosJuice 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
JosJuice 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
Lioncash cc036ca86c Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
Lioncash 19459e827f Partially revert "General: Toss out PRI macro usage" 2015-09-11 09:49:00 -04:00