JosJuice
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
JosJuice
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
JosJuice
d06b532150
DiscIO: Move parts of Filesystem to the new file DiscExtractor
2017-06-28 22:21:23 +02:00
Leo Lam
8f460a1cda
Merge pull request #5611 from JosJuice/reorganize-file-namespace
...
Reorganize File namespace
2017-06-15 23:28:36 +02:00
JosJuice
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
JosJuice
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
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
Lioncash
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
Trace Bullet
64bd20aba7
DiscIO: Check if m_Disc is null in ParsePartitionData()
2015-07-02 11:45:22 -04:00
yerejm
fff81fecb1
Reinstate format string.
...
Avoid the consequences in the unlikely event the path includes a %.
2015-06-14 16:49:35 +10:00
comex
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
Tillmann Karras
30ebb2459e
Set copyright year to when a file was created
2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9
Update license headers to GPLv2+
2015-05-25 13:22:31 +02:00
JosJuice
d43a920924
Filesystem: Return file list reference instead of modifying argument
2015-04-28 12:48:05 +02:00
JosJuice
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
Unknown W. Brackets
f54bf81520
DiscIO: Avoid zeroing buffer when compressing gcz.
...
This saves 6% time.
2014-11-27 08:58:09 -08:00
Rohit Nirmal
fbc64984ca
Include CommonTypes.h instead of Common.h.
2014-09-08 15:39:58 -04:00
Lioncash
4cb46879bc
DiscIO: Move some raw pointers over to unique_ptr
2014-08-31 14:48:57 -04:00
degasus
6d3f249dcc
mark all local variables as static
2014-07-11 16:10:20 +02:00
Lioncash
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
Lioncash
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
Tillmann Karras
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
Pierre Bourdon
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
Lioncash
2afe215271
Convert all includes to relative paths.
2014-02-18 02:19:10 -05:00
Lioncash
3fd87a7636
Second and final pass of clearing out tabs.
2014-02-17 02:19:41 -05:00
Tillmann Karras
404624bf0b
Turn loops into range-based form
...
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00