Hello Jason,
Sorry about the PM, but I only accept public messages. You can PM me reusing our conversation "THANK YOU VERY MUCH!!".
These 2 lines are not used to play more than one sound. The function plays only ONE sound.
They are used to accept 2 parameters from the URL, separated by a pipe character.
The variable
sound is received by play_rco_sound(). It assumes by default that the sound is found in
system_plugin.rco
The variable
sep checks if there is a pipe character. If it is found, split
sound an sets the new source in the variable
system_plugin.
Code:
const char *system_plugin = (char*)"system_plugin";
char *sep = strchr(sound, '|'); if(sep) {*sep = NULL, system_plugin = sep + 1;}
This is a more simple function, since you don't need to receive an user defined value from an URL.
Code:
static void play_rco_sound(const char *sound, const char *sound rco_plugin)
{
u32 plugin = View_Find(rco_plugin);
if(plugin)
PlayRCOSound(plugin, sound, 1, 0);
}
In regards to the error in strchr(sound, '|'), the function above should solve it because the function is not used.
You can declare strchr() using the following code found in libc.c. Or use the equivalent code: strstr(sound, "|").
Code:
extern char *stdc_DEBEE2AF(const char *str, int c); // strchr()
char* strchr(const char *str, int c) {if(!str) return NULL; return stdc_DEBEE2AF(str, c);}
In webMAN MOD, I do not use cellMsgDialogOpen2. To be honest, I'm not sure if it is possible to use it from a VSH plugin.
However, I use cellMsgDialogOpen2 in IRISMAN (it uses tiny3d to initialize screen memory) .
If you want to display full screen messages you could use the
blitting methods by 3141card to draw anything that you want on XMB. Although I find it would be an overkill. A simple vshtask_notify() or show_msg_with_icon() works for most of the messages.