mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-27 21:54:15 +01:00
-added a way to play music using wiiflows internal player in plugin
form, just use "MUSIC" as dol name in the plugin ini, here is a example ini which loads up the default wiiflow music folder: https://dl.dropbox.com/u/25620767/music_player.ini oh, and wiiflow only supports mp3 and ogg files
This commit is contained in:
parent
00ddaeee94
commit
648d319925
@ -25,6 +25,7 @@
|
|||||||
#define CHANNEL_DOMAIN "NAND"
|
#define CHANNEL_DOMAIN "NAND"
|
||||||
#define PLUGIN_DOMAIN "EMULATOR"
|
#define PLUGIN_DOMAIN "EMULATOR"
|
||||||
#define HOMEBREW_DOMAIN "HOMEBREW"
|
#define HOMEBREW_DOMAIN "HOMEBREW"
|
||||||
|
#define MUSIC_DOMAIN "MUSIC"
|
||||||
|
|
||||||
#define AGE_LOCK_DEFAULT 13
|
#define AGE_LOCK_DEFAULT 13
|
||||||
|
|
||||||
|
@ -988,6 +988,7 @@ private:
|
|||||||
void _launchChannel(dir_discHdr *hdr);
|
void _launchChannel(dir_discHdr *hdr);
|
||||||
void _launchHomebrew(const char *filepath, vector<string> arguments);
|
void _launchHomebrew(const char *filepath, vector<string> arguments);
|
||||||
void _launchGC(dir_discHdr *hdr, bool disc);
|
void _launchGC(dir_discHdr *hdr, bool disc);
|
||||||
|
void _launchShutdown();
|
||||||
void _setAA(int aa);
|
void _setAA(int aa);
|
||||||
void _loadCFCfg();
|
void _loadCFCfg();
|
||||||
void _loadCFLayout(int version, bool forceAA = false, bool otherScrnFmt = false);
|
void _loadCFLayout(int version, bool forceAA = false, bool otherScrnFmt = false);
|
||||||
|
@ -629,11 +629,6 @@ void CMenu::_game(bool launch)
|
|||||||
currentPartition = SD;
|
currentPartition = SD;
|
||||||
}
|
}
|
||||||
|
|
||||||
CoverFlow.clear();
|
|
||||||
_showWaitMessage();
|
|
||||||
exitHandler(PRIILOADER_DEF); //Making wiiflow ready to boot something
|
|
||||||
|
|
||||||
CurrentBanner.ClearBanner();
|
|
||||||
// Get banner_title
|
// Get banner_title
|
||||||
if(hdr->type == TYPE_CHANNEL)
|
if(hdr->type == TYPE_CHANNEL)
|
||||||
_extractChannelBnr(chantitle);
|
_extractChannelBnr(chantitle);
|
||||||
@ -662,8 +657,8 @@ void CMenu::_game(bool launch)
|
|||||||
WPAD_SetVRes(chan, m_vid.width() + m_cursor[chan].width(), m_vid.height() + m_cursor[chan].height());
|
WPAD_SetVRes(chan, m_vid.width() + m_cursor[chan].width(), m_vid.height() + m_cursor[chan].height());
|
||||||
m_gcfg2.unload();
|
m_gcfg2.unload();
|
||||||
_showGame();
|
_showGame();
|
||||||
_initCF();
|
//_initCF();
|
||||||
CoverFlow.select();
|
//CoverFlow.select();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -799,6 +794,14 @@ void CMenu::directlaunch(const char *GameID)
|
|||||||
error(sfmt("errgame1", L"Cannot find the game with ID: %s", GameID));
|
error(sfmt("errgame1", L"Cannot find the game with ID: %s", GameID));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMenu::_launchShutdown()
|
||||||
|
{
|
||||||
|
CoverFlow.clear();
|
||||||
|
_showWaitMessage();
|
||||||
|
exitHandler(PRIILOADER_DEF); //Making wiiflow ready to boot something
|
||||||
|
CurrentBanner.ClearBanner();
|
||||||
|
}
|
||||||
|
|
||||||
void CMenu::_launch(dir_discHdr *hdr)
|
void CMenu::_launch(dir_discHdr *hdr)
|
||||||
{
|
{
|
||||||
/* Lets boot that shit */
|
/* Lets boot that shit */
|
||||||
@ -810,11 +813,19 @@ void CMenu::_launch(dir_discHdr *hdr)
|
|||||||
_launchChannel(hdr);
|
_launchChannel(hdr);
|
||||||
else if(hdr->type == TYPE_PLUGIN)
|
else if(hdr->type == TYPE_PLUGIN)
|
||||||
{
|
{
|
||||||
|
const char *plugin_dol_name = m_plugin.GetDolName(hdr->settings[0]);
|
||||||
|
u8 plugin_dol_len = strlen(plugin_dol_name);
|
||||||
char title[101];
|
char title[101];
|
||||||
memset(&title, 0, sizeof(title));
|
memset(&title, 0, sizeof(title));
|
||||||
const char *path;
|
const char *path = NULL;
|
||||||
if(strchr(hdr->path, ':') != NULL)
|
if(strchr(hdr->path, ':') != NULL)
|
||||||
{
|
{
|
||||||
|
if(plugin_dol_len == strlen(MUSIC_DOMAIN) && strcmp(plugin_dol_name, MUSIC_DOMAIN) == 0)
|
||||||
|
{
|
||||||
|
MusicPlayer.LoadFile(hdr->path, false);
|
||||||
|
m_exit = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
strncpy(title, strrchr(hdr->path, '/') + 1, 100);
|
strncpy(title, strrchr(hdr->path, '/') + 1, 100);
|
||||||
*strrchr(hdr->path, '/') = '\0';
|
*strrchr(hdr->path, '/') = '\0';
|
||||||
path = strchr(hdr->path, '/') + 1;
|
path = strchr(hdr->path, '/') + 1;
|
||||||
@ -828,7 +839,7 @@ void CMenu::_launch(dir_discHdr *hdr)
|
|||||||
const char *device = (currentPartition == 0 ? "sd" : (DeviceHandle.GetFSType(currentPartition) == PART_FS_NTFS ? "ntfs" : "usb"));
|
const char *device = (currentPartition == 0 ? "sd" : (DeviceHandle.GetFSType(currentPartition) == PART_FS_NTFS ? "ntfs" : "usb"));
|
||||||
const char *loader = fmt("%s:/%s/WiiFlowLoader.dol", device, strchr(m_pluginsDir.c_str(), '/') + 1);
|
const char *loader = fmt("%s:/%s/WiiFlowLoader.dol", device, strchr(m_pluginsDir.c_str(), '/') + 1);
|
||||||
vector<string> arguments = m_plugin.CreateArgs(device, path, title, loader, hdr->settings[0]);
|
vector<string> arguments = m_plugin.CreateArgs(device, path, title, loader, hdr->settings[0]);
|
||||||
_launchHomebrew(fmt("%s/%s", m_pluginsDir.c_str(), m_plugin.GetDolName(hdr->settings[0])), arguments);
|
_launchHomebrew(fmt("%s/%s", m_pluginsDir.c_str(), plugin_dol_name), arguments);
|
||||||
}
|
}
|
||||||
else if(hdr->type == TYPE_HOMEBREW)
|
else if(hdr->type == TYPE_HOMEBREW)
|
||||||
{
|
{
|
||||||
@ -847,6 +858,7 @@ void CMenu::_launch(dir_discHdr *hdr)
|
|||||||
|
|
||||||
void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
|
void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
|
||||||
{
|
{
|
||||||
|
_launchShutdown();
|
||||||
const char *id = hdr->id;
|
const char *id = hdr->id;
|
||||||
memcpy((u8*)Disc_ID, id, 6);
|
memcpy((u8*)Disc_ID, id, 6);
|
||||||
DCFlushRange((u8*)Disc_ID, 32);
|
DCFlushRange((u8*)Disc_ID, 32);
|
||||||
@ -959,6 +971,7 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
|
|||||||
|
|
||||||
void CMenu::_launchHomebrew(const char *filepath, vector<string> arguments)
|
void CMenu::_launchHomebrew(const char *filepath, vector<string> arguments)
|
||||||
{
|
{
|
||||||
|
_launchShutdown();
|
||||||
m_gcfg1.save(true);
|
m_gcfg1.save(true);
|
||||||
m_gcfg2.save(true);
|
m_gcfg2.save(true);
|
||||||
m_cat.save(true);
|
m_cat.save(true);
|
||||||
@ -1063,6 +1076,7 @@ int CMenu::_loadIOS(u8 gameIOS, int userIOS, string id, bool RealNAND_Channels)
|
|||||||
|
|
||||||
void CMenu::_launchChannel(dir_discHdr *hdr)
|
void CMenu::_launchChannel(dir_discHdr *hdr)
|
||||||
{
|
{
|
||||||
|
_launchShutdown();
|
||||||
u32 gameIOS = 0;
|
u32 gameIOS = 0;
|
||||||
string id = string(hdr->id);
|
string id = string(hdr->id);
|
||||||
|
|
||||||
@ -1182,6 +1196,7 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
|
|
||||||
void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
|
||||||
{
|
{
|
||||||
|
_launchShutdown();
|
||||||
string id(hdr->id);
|
string id(hdr->id);
|
||||||
string path(hdr->path);
|
string path(hdr->path);
|
||||||
if(neek2o())
|
if(neek2o())
|
||||||
|
@ -138,12 +138,17 @@ void Musicplayer::Tick(bool attenuate)
|
|||||||
|
|
||||||
void Musicplayer::LoadCurrentFile()
|
void Musicplayer::LoadCurrentFile()
|
||||||
{
|
{
|
||||||
MusicFile.Load((*CurrentFileName).c_str());
|
LoadFile(CurrentFileName->c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
void Musicplayer::LoadFile(const char *name, bool display_change)
|
||||||
|
{
|
||||||
|
MusicFile.Load(name);
|
||||||
SetVolume(CurrentVolume);
|
SetVolume(CurrentVolume);
|
||||||
MusicFile.Play();
|
MusicFile.Play();
|
||||||
CurrentPosition = 0;
|
CurrentPosition = 0;
|
||||||
MusicStopped = false;
|
MusicStopped = false;
|
||||||
MusicChanged = true;
|
MusicChanged = display_change;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For our GUI */
|
/* For our GUI */
|
||||||
|
@ -47,6 +47,8 @@ public:
|
|||||||
bool SongChanged();
|
bool SongChanged();
|
||||||
time_t DisplayTime;
|
time_t DisplayTime;
|
||||||
bool OneSong;
|
bool OneSong;
|
||||||
|
/* Plugin */
|
||||||
|
void LoadFile(const char *name, bool display_change = true);
|
||||||
protected:
|
protected:
|
||||||
bool PosFromPrevFile();
|
bool PosFromPrevFile();
|
||||||
void LoadCurrentFile();
|
void LoadCurrentFile();
|
||||||
|
Loading…
Reference in New Issue
Block a user