Commit Graph

26 Commits

Author SHA1 Message Date
Lioncash
d9eb7c4e80 NANDContentLoader: Add IOFile forward declaration
This would previously fail to compile when included in files that do not
include FileUtil.h due to lack of a type declaration.

This moves the constructor and destructor into the cpp file in order to
satisfy the requirements of unique_ptr construction and deletion. That is,
unique_ptr requires a concrete type at the point of construction and
destruction. If the constructor or destructor is left in the header, then
at the point of construction or destruction, IOFile will still be
considered an incomplete type, as unique_ptr's deleter will still only be
able to see the forward declaration, which it can't use.
2016-10-14 20:27:22 -04:00
Lioncash
5aeedcd27c NANDContentLoader: Remove unnecessary trailing semicolons 2016-09-14 20:12:25 -04:00
Lioncash
b43a26b90c NANDContentLoader: Remove virtual specifier from CNANDContentLoader destructor
This class is marked final, so there's no need to declare it as virtual.
2016-09-14 19:45:52 -04:00
Lioncash
3196bf5392 NANDContentLoader: Specify constructors as explicit where applicable
Prevents implicit conversion.
2016-09-14 19:44:44 -04:00
Lioncash
b1ffa74043 NANDContentLoader: Make CNANDContentData's Get function return by non-const value
const specifiers like this are practically pointless and can inhibit move construction.
2016-09-14 19:15:31 -04:00
EmptyChaos
eccec3c6d3 DiscIO: Fix NAND Memory Leak
CNANDContentData is a base class with a non-virtual destructor so
derived classes don't get destroyed causing them to leak resources.
2016-09-14 15:54:05 +10:00
JosJuice
0a15aaaa12 Move DiscIO enums to a new file
At first there weren't many enums in Volume.h, but the number has been
growing, and I'm planning to add one more for regions. To not make
Volume.h too large, and to avoid needing to include Volume.h in code
that doesn't use volume objects, I'm moving the enums to a new file.
I'm also turning them into enum classes while I'm at it.
2016-07-13 17:29:27 +02:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
BhaaL
a449ef4e11 properly open/close the file to avoid rapid open/close cycles
ES_OPENCONTENT and ES_CLOSECONTENT now call Open and Close respectively,
as the old code did.
2016-03-20 13:10:51 +01:00
BhaaL
8a6d9e1e0b hide the distinction between WAD and File from ES
instead, leave all the management with the NANDContentLoader.

for file data (directly on the NAND), this opens the file on-demand and
returns the requested chunk when asked for it.
for on-the-fly decrypted WAD data, we just keep the decoded buffer in
memory, like we've done before - except that we don't give away any objects
we don't want to.
2016-03-20 13:10:50 +01:00
BhaaL
1e28d06f26 fix some style inconsistencies that drove me nuts 2016-03-20 13:10:47 +01:00
Lioncash
c78c54c546 NANDContentLoader/WiiWAD: Get rid of raw delete and new 2015-12-19 17:37:09 -05:00
comex
c22d1d68ab Mark which Wii root to use in the NAND path code.
It's used by both the GUI to do things like install WADs and check up on
the system menu, in which case the global root should be used, and by
/dev/es, in which case the local one should.  The latter isn't
*terribly* useful today, since no contents will ever be installed in
temporary roots (although it's still relevant for data directories), but
converting the whole thing makes sense because then it will Just Work
once the entire NAND is synced.

Because it would have been a bit of work to split it up (but I can if
desired), this commit also contains some basic cleanup of
NANDContentLoader:

(1) The useless interface class INANDContentLoader is removed and the
    methods are changed to just return CNANDContentLoader (the only
    implementation);
(2) CNANDContentManager is changed to use unique_ptr and cleaned up a
    bit.
2015-10-16 09:10:39 +02:00
Lioncash
ac26f8e79f Pass strings by const reference where possible 2015-05-28 20:54:55 -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
66bb3000c2 Don't construct NANDContentLoader classes before Main.cpp runs
The cUIDsys constructor writes to <Wii user path>/sys/uid.sys.
This must not be done before Main.cpp sets the correct user paths.
2015-03-09 16:08:32 +01:00
Lioncash
b06ec302d1 Remove some unnecessary semicolons 2014-09-11 13:05:31 -04:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Lioncash
1977ea42ae DiscIO: Prefix class member variables with "m_" 2014-09-01 15:48:02 -04:00
Lioncash
ce54c1e571 Kill off replaceable usages of s[n]printf. 2014-06-18 19:53:38 -04: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
d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00
Lioncash
40182a48a5 Cleanup enum indentations. 2014-02-09 16:16:10 -05:00
Jasper St. Pierre
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00