mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-12-26 03:41:55 +01:00
971b5bdb52
to be divisible with 4 anymore, you can use what you want -moved sound buffers back in mem2, idk but for wiiflow it gives a better result -added mem2 memalign placeholder for new memory manager (after a week still everything but finished) -updated other small things, cleaned up source structure a bit
85 lines
2.3 KiB
C++
85 lines
2.3 KiB
C++
#ifndef CACHEDLIST
|
|
#define CACHEDLIST
|
|
|
|
#include "list.hpp"
|
|
#include "cache.hpp"
|
|
#include "config/config.hpp"
|
|
#include "gecko/gecko.h"
|
|
|
|
using namespace std;
|
|
|
|
enum {
|
|
COVERFLOW_USB,
|
|
COVERFLOW_DML,
|
|
COVERFLOW_CHANNEL,
|
|
COVERFLOW_EMU,
|
|
COVERFLOW_HOMEBREW,
|
|
COVERFLOW_MAX
|
|
};
|
|
|
|
template <typename T = dir_discHdr>
|
|
class CachedList : public vector<T>
|
|
{
|
|
public:
|
|
void Init(string cachedir, string settingsDir, string curLanguage, string DMLgameDir, bool extcheck) /* Initialize Private Variables */
|
|
{
|
|
m_cacheDir = cachedir;
|
|
m_settingsDir = settingsDir;
|
|
m_curLanguage = m_lastLanguage = curLanguage;
|
|
m_loaded = false;
|
|
m_database = "";
|
|
m_update = false;
|
|
m_extcheck = extcheck;
|
|
m_DMLgameDir = DMLgameDir;
|
|
for(u32 i = 0; i < COVERFLOW_MAX; i++)
|
|
force_update[i] = false;
|
|
}
|
|
|
|
void Update(u32 view = COVERFLOW_MAX) /* Force db update on next load */
|
|
{
|
|
if(view == COVERFLOW_MAX)
|
|
for(u32 i = 0; i < COVERFLOW_MAX; i++)
|
|
{
|
|
force_update[i] = true;
|
|
gprintf("force_update[%d] = true\n", i);
|
|
}
|
|
else
|
|
{
|
|
force_update[view] = true;
|
|
gprintf("force_update[%d] = true\n", view);
|
|
}
|
|
}
|
|
|
|
void Load(string path, string containing, string m_lastLanguage, Config &m_plugin);
|
|
void LoadChannels(string path, u32 channelType, string m_lastLanguage);
|
|
|
|
void Unload(){if(m_loaded) {this->clear(); m_loaded = false; m_database = "";}};
|
|
void Save() {if(m_loaded) CCache<T>(*this, m_database, SAVE);} /* Save All */
|
|
|
|
void Get(T tmp, u32 index) {if(m_loaded) CCache<T>(tmp, m_database, index, LOAD);} /* Load One */
|
|
void Set(T tmp, u32 index) {if(m_loaded) CCache<T>(tmp, m_database, index, SAVE);} /* Save One */
|
|
|
|
void Add(T tmp) {if(m_loaded) CCache<T>(*this, m_database, tmp, ADD);} /* Add One */
|
|
void Remove(u32 index) {if(m_loaded) CCache<T>(*this, m_database, index, REMOVE);} /* Remove One */
|
|
|
|
void SetLanguage(string curLanguage) { m_curLanguage = curLanguage; }
|
|
private:
|
|
string make_db_name(string path);
|
|
|
|
bool m_loaded;
|
|
bool m_update;
|
|
bool m_wbfsFS;
|
|
bool m_extcheck;
|
|
u8 force_update[COVERFLOW_MAX];
|
|
CList<T> list;
|
|
string m_database;
|
|
string m_cacheDir;
|
|
string m_settingsDir;
|
|
string m_curLanguage;
|
|
string m_lastLanguage;
|
|
string m_discinf;
|
|
string m_DMLgameDir;
|
|
};
|
|
|
|
#endif
|