2011-11-13 10:09:27 +01:00
|
|
|
/***************************************************************************
|
|
|
|
* Copyright (C) 2010 by dude
|
|
|
|
* Copyright (C) 2011 by Miigotu
|
|
|
|
* Copyright (C) 2011 by Dimok
|
|
|
|
*
|
|
|
|
* This software is provided 'as-is', without any express or implied
|
|
|
|
* warranty. In no event will the authors be held liable for any
|
|
|
|
* damages arising from the use of this software.
|
|
|
|
*
|
|
|
|
* Permission is granted to anyone to use this software for any
|
|
|
|
* purpose, including commercial applications, and to alter it and
|
|
|
|
* redistribute it freely, subject to the following restrictions:
|
|
|
|
*
|
|
|
|
* 1. The origin of this software must not be misrepresented; you
|
|
|
|
* must not claim that you wrote the original software. If you use
|
|
|
|
* this software in a product, an acknowledgment in the product
|
|
|
|
* documentation would be appreciated but is not required.
|
|
|
|
*
|
|
|
|
* 2. Altered source versions must be plainly marked as such, and
|
|
|
|
* must not be misrepresented as being the original software.
|
|
|
|
*
|
|
|
|
* 3. This notice may not be removed or altered from any source
|
|
|
|
* distribution.
|
|
|
|
***************************************************************************/
|
|
|
|
#ifndef _CHANNELS_H_
|
|
|
|
#define _CHANNELS_H_
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
#include <gccore.h>
|
|
|
|
#include "usbloader/disc.h"
|
|
|
|
|
|
|
|
class Channels
|
|
|
|
{
|
|
|
|
public:
|
2011-11-20 11:46:07 +01:00
|
|
|
static Channels *Instance(void) { if(!instance) instance = new Channels(); return instance; }
|
|
|
|
static void DestroyInstance(void) { if(instance) delete instance; instance = NULL; }
|
|
|
|
|
|
|
|
static u32 LoadChannel(const u64 &chantitle);
|
|
|
|
static u8 GetRequestedIOS(const u64 &title);
|
2011-12-22 23:44:48 +01:00
|
|
|
static u8 *GetTMD(const u64 &tid, u32 *size, const char *prefix);
|
2023-01-01 18:00:09 +01:00
|
|
|
static u8 *GetDol(const u64 &title, u8 *tmdBuffer, bool &isForwarder);
|
2012-05-06 12:59:58 +02:00
|
|
|
static u8 *GetOpeningBnr(const u64 &title, u32 *outsize, const char *pathPrefix);
|
2011-11-20 11:46:07 +01:00
|
|
|
|
|
|
|
void GetChannelList();
|
2023-01-01 18:00:14 +01:00
|
|
|
void GetEmuChannelList(bool use_cache = false);
|
|
|
|
void clear();
|
2021-08-01 19:00:15 +02:00
|
|
|
std::vector<struct discHdr> & GetNandHeaders(void);
|
|
|
|
std::vector<struct discHdr> & GetEmuHeaders(void);
|
2011-11-13 10:09:27 +01:00
|
|
|
private:
|
2011-11-20 11:46:07 +01:00
|
|
|
static Channels *instance;
|
2011-11-13 10:09:27 +01:00
|
|
|
|
2011-11-20 11:46:07 +01:00
|
|
|
static bool Identify(const u64 &titleid, u8 *tmdBuffer, u32 tmdSize);
|
2015-06-28 16:13:52 +02:00
|
|
|
bool emuExists(char *tmdpath);
|
2011-11-13 10:09:27 +01:00
|
|
|
|
2012-01-01 18:58:10 +01:00
|
|
|
void InternalGetNandChannelList(u32 type);
|
2011-11-20 11:46:07 +01:00
|
|
|
bool ParseTitleDir(char *path, int language);
|
|
|
|
bool GetEmuChanTitle(char *tmdpath, int language, std::string &Title);
|
2011-11-13 10:09:27 +01:00
|
|
|
|
2021-08-01 19:00:15 +02:00
|
|
|
std::vector<struct discHdr> NandChannels;
|
|
|
|
std::vector<struct discHdr> EmuChannels;
|
2011-11-13 10:09:27 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|