ScummVM API documentation
wii-fs-factory.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef _WII_FILESYSTEM_FACTORY_H_
23 #define _WII_FILESYSTEM_FACTORY_H_
24 
25 #include "common/str.h"
26 #include "common/singleton.h"
27 #include "backends/fs/fs-factory.h"
28 
29 #include <gctypes.h>
30 
36 class WiiFilesystemFactory final : public FilesystemFactory, public Common::Singleton<WiiFilesystemFactory> {
37 public:
38  typedef Common::String String;
39 
40  enum FileSystemType {
41  kDVD,
42  kSMB
43  };
44 
45  AbstractFSNode *makeRootFileNode() const override;
47  AbstractFSNode *makeFileNodePath(const Common::String &path) const override;
48 
49  void asyncInit();
50  void asyncDeinit();
51 
52 #ifdef USE_WII_SMB
53  void asyncInitNetwork();
54  void setSMBLoginData(const String &server, const String &share,
55  const String &username, const String &password);
56 #endif
57 
58  bool isMounted(FileSystemType type);
59  bool failedToMount(FileSystemType type);
60 
61  void mount(FileSystemType type);
62  void umount(FileSystemType type);
63 
64  void mountByPath(const String &path);
65  void umountUnused(const String &path);
66 
67 protected:
69 
70 private:
71  friend class Common::Singleton<SingletonBaseType>;
72 
73  bool _dvdMounted;
74  bool _smbMounted;
75  bool _dvdError;
76  bool _smbError;
77 
78 #ifdef USE_WII_SMB
79  String _smbServer;
80  String _smbShare;
81  String _smbUsername;
82  String _smbPassword;
83 #endif
84 };
85 
86 #endif /*Wii_FILESYSTEM_FACTORY_H*/
Definition: str.h:59
Definition: fs-factory.h:31
Definition: wii-fs-factory.h:36
AbstractFSNode * makeRootFileNode() const override
Definition: abstract-fs.h:41
AbstractFSNode * makeFileNodePath(const Common::String &path) const override
AbstractFSNode * makeCurrentDirectoryFileNode() const override
Definition: singleton.h:42