Brauche Hilfe mit WSH Pannel Mod!
Habe mir das http://inappropriatenudging.deviantart.com/art/MonoLite-Plus-Mod-152653819
Skin mal angeschaut und ich würde gerne die Shoutcast Suchfunktion als eigenständigen Textbutton
umschreiben für das WSH Pannel!
etwa so...
RMT - Qualitätseinstellungen Genre Mood
LMT - Shoutcast Auswahl sowie Eingabefeld
Was muß ich alles rauslöschen?
Oder kann mir jemand das Skript umschreiben?
// ==PREPROCESSOR==
// @import "%fb2k_path%skin\mono_lite_2\scripts\common.js"
// @import "%fb2k_path%skin\mono_lite_2\scripts\tooltip_buttons.js"
// ==/PREPROCESSOR==
window.GetProperty("mode",1);
window.GetProperty("quality",5);
window.GetProperty("genre",1);
window.GetProperty("mood",0);
//Refresh on track change
on_item_focus_change();
function on_paint(gr){
var FP = fb.ComponentPath.replace("components","skin");
var icon = gdi.Image(FP+ "mono_lite_2/menu.png");
gr.FillSolidRect(0,0,ww,wh,RGB(220,220,220));
gr.DrawImage(icon,0,0,20,18,0,0,20,18);
}
//Preferences
function on_mouse_rbtn_down(x, y) {
var basemenu = window.CreatePopupMenu();
var child1 = window.CreatePopupMenu();
var ret;
basemenu.AppendMenuItem(MF_STRING, 6, "Show toolbars");
basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
basemenu.AppendMenuItem(MF_STRING, 2, "Compact menu");
basemenu.AppendMenuItem(MF_STRING, 1, "Full menu");
basemenu.CheckMenuRadioItem(1, 2, window.GetProperty("mode"));
basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child1.ID, "Shoutcast");
child1.AppendMenuItem(MF_STRING, 3, "Search by Genre");
child1.AppendMenuItem(MF_STRING, 4, "Search by Mood");
child1.CheckMenuItem(3, window.GetProperty("genre"));
child1.CheckMenuItem(4, window.GetProperty("mood"));
child1.AppendMenuItem(MF_SEPARATOR, 0, 0);
child1.AppendMenuItem(MF_STRING, 5, "Any quality");
child1.AppendMenuItem(MF_STRING, 999, "Broadband");
child1.AppendMenuItem(MF_STRING, 128, "128 kpbs");
child1.AppendMenuItem(MF_STRING, 56, "56 kpbs");
child1.AppendMenuItem(MF_STRING, 28, "28 kpbs");
child1.CheckMenuRadioItem(5, 128, window.GetProperty("quality"));
var ret = basemenu.TrackPopupMenu(x, y);
if (ret == 0) return;
switch (ret) {
case 1:
window.SetProperty("mode",1);
break;
case 2:
window.SetProperty("mode",2);
break;
case 3:
window.GetProperty("genre") == 0 ? window.SetProperty("genre", 1) : window.SetProperty("genre", 0);
break;
case 4:
window.GetProperty("mood") == 0 ? window.SetProperty("mood", 1) : window.SetProperty("mood", 0);
break;
case 5:
window.SetProperty("quality",5);
break;
case 6:
fb.RunMainMenuCommand("View/Show toolbars");
break;
case 999:
window.SetProperty("quality",999);
break;
case 128:
window.SetProperty("quality",128);
break;
case 56:
window.SetProperty("quality",56);
break;
case 28:
window.SetProperty("quality",28);
break;
}
}
function on_mouse_mbtn_down(x, y) {
window.ShowConfigure();
}
//Fixed coords for menu
function on_mouse_lbtn_down(x, y) {
draw_menu(0,19)
}
function draw_menu(x, y) {
if(window.GetProperty("mode") == 1) {
var basemenu = window.CreatePopupMenu();
var child1 = window.CreatePopupMenu(); //File
var child2 = window.CreatePopupMenu(); //Edit
var child3 = window.CreatePopupMenu(); //View
var child4 = window.CreatePopupMenu(); //Playback
var child5 = window.CreatePopupMenu(); //Library
var child6 = window.CreatePopupMenu(); //Help
var menuman1 = fb.CreateMainMenuManager();
var menuman2 = fb.CreateMainMenuManager();
var menuman3 = fb.CreateMainMenuManager();
var menuman4 = fb.CreateMainMenuManager();
var menuman5 = fb.CreateMainMenuManager();
var menuman6 = fb.CreateMainMenuManager();
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child1.ID, "File");
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child2.ID, "Edit");
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child3.ID, "View");
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child4.ID, "Playback");
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child5.ID, "Library");
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child6.ID, "Help");
menuman1.Init("file");
menuman2.Init("edit");
menuman3.Init("View");
menuman4.Init("playback");
menuman5.Init("library");
menuman6.Init("help");
menuman1.BuildMenu(child1, 1, 1000);
menuman2.BuildMenu(child2, 1001, 1000);
menuman3.BuildMenu(child3, 2001, 1000);
menuman4.BuildMenu(child4, 3001, 1000);
menuman5.BuildMenu(child5, 4001, 1000);
menuman6.BuildMenu(child6, 5001, 1000);
ret = 0;
ret = basemenu.TrackPopupMenu(x, y);
//fb.trace(ret);
switch (true){
case (ret >= 1 && ret <= 1000):
menuman1.ExecuteByID(ret - 1);
break;
case (ret >= 1001 && ret <= 2000):
menuman2.ExecuteByID(ret - 1001);
break;
case (ret >= 2001 && ret <= 3000):
menuman3.ExecuteByID(ret - 2001);
break;
case (ret >= 3001 && ret <= 4000):
menuman4.ExecuteByID(ret - 3001);
break;
case (ret >= 4001 && ret <= 5000):
menuman5.ExecuteByID(ret - 4001);
break;
case (ret >= 5001 && ret <= 6000):
menuman6.ExecuteByID(ret - 5001);
break;
}
basemenu.Dispose();
menuman1.Dispose();
menuman2.Dispose();
menuman3.Dispose();
menuman4.Dispose();
menuman5.Dispose();
menuman6.Dispose();
}
else{
//Compact menu
var basemenu = window.CreatePopupMenu();
var child1 = window.CreatePopupMenu();
var child2 = window.CreatePopupMenu();
var child3 = window.CreatePopupMenu();
var child4 = window.CreatePopupMenu();
var child5 = window.CreatePopupMenu();
var child6 = window.CreatePopupMenu();
var ret;
var mood_array;
var genre_array;
//Split multiline tags into an array
function split_tag(t) {
var splitstrings = [", ",",","; "," - ","/"," "];
var tag=fb.TitleFormat("$caps(%"+t+"%)").EvalWithMetadb(g_metadb);
var foo = -1;
do {
foo++;
var splitcheck = tag.indexOf(splitstrings[foo]);
} while (splitcheck == -1 && foo <tag.length)
return tag.split(splitstrings[foo]);
}
//Shoutcast stations to display when metadata unavailable
function default_items(g,m){
if (g || m) return;
else {
child4.AppendMenuItem(MF_STRING, 52, "Search for Pop stations");
child4.AppendMenuItem(MF_STRING, 53, "Search for Hip-Hop stations");
child4.AppendMenuItem(MF_STRING, 54, "Search for Indie stations");
child4.AppendMenuItem(MF_STRING, 55, "Search for Rock stations");
child4.AppendMenuItem(MF_SEPARATOR, 0, 0);
}
}
//Builds a shoutcast menu entry for each value in a tag
function scast_menu(tag,menuid) {
if (g_metadb) {
if (fb.TitleFormat("$caps(%"+tag+"%)").EvalWithMetadb(g_metadb) != "?") {
var s_tag = split_tag(tag);
var foo = -1;
do {
foo++;
child4.AppendMenuItem(MF_STRING,menuid++,"Search for "+s_tag[foo]+" stations");
} while (foo < s_tag.length-1)
child4.AppendMenuItem(MF_SEPARATOR, 0, 0);
return s_tag
}
}
}
//this is messy, but it works
function scast_menu_run(t_array,id) {
if(ret >= id && ret <= id+999){
var shout;
var url = "http://www.shoutcast.com/";
var bitrate = "&searchCrit=advanced&maxbitrate="+window.GetProperty("quality")+"&mode=bitrate";
if (t_array == genre_array) {
if(window.GetProperty("quality") == 5) {
shout = url+"radio/"+encodeURIComponent(t_array[ret-id]);
}
else {
shout = url+"directory/search_results.jsp?s=&sgenre="+encodeURIComponent(t_array[ret-id])+bitrate;
}
}
else {
if(window.GetProperty("quality") == 5) {
shout = url+"Internet-Radio/"+encodeURIComponent(t_array[ret-id]);
}
else {
shout = url+"directory/search_results.jsp?s="+encodeURIComponent(t_array[ret-id])+bitrate;
}
}
WshShell.Run(shout);
}
}
basemenu.AppendMenuItem(MF_STRING, 1, "Play File...");
if (utils.CheckComponent("foo_cdda", true)) {
basemenu.AppendMenuItem(MF_STRING, 2, "Play Audio CD...");}
basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child1.ID, "Library");
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child2.ID, "Playlists");
basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
if (utils.CheckComponent("foo_lastfm_radio", true)) {
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child3.ID, "Last.fm");}
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child4.ID, "Shoutcast");
if (utils.CheckComponent("foo_dop", true)){
basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
basemenu.AppendMenuItem(MF_STRING | MF_POPUP, child5.ID, "iPod");}
child1.AppendMenuItem(MF_STRING, 10, "Add files...");
child1.AppendMenuItem(MF_STRING, 11, "Add folder...");
child1.AppendMenuItem(MF_STRING, 12, "Add location...");
child1.AppendMenuItem(MF_SEPARATOR, 0, 0);
child1.AppendMenuItem(MF_STRING, 13, "Music folders...");
child2.AppendMenuItem(MF_STRING, 25, "Undo");
child2.AppendMenuItem(MF_STRING, 26, "Redo");
child2.AppendMenuItem(MF_SEPARATOR, 0, 0);
child2.AppendMenuItem(MF_STRING, 20, "New playlist");
child2.AppendMenuItem(MF_STRING, 21, "Load playlist...");
child2.AppendMenuItem(MF_STRING, 22, "Save playlist...");
child2.AppendMenuItem(MF_SEPARATOR, 0, 0);
child2.AppendMenuItem(MF_STRING, 23, "Load XSPF playlist...");
child2.AppendMenuItem(MF_STRING, 24, "Save XSPF playlist...");
child3.AppendMenuItem(MF_STRING, 30, "Open a custom station...");
child3.AppendMenuItem(MF_SEPARATOR, 0, 0);
child3.AppendMenuItem(MF_STRING, 31, "Personal Last.fm radio");
child3.AppendMenuItem(MF_STRING, 32, "Recommended Last.fm radio");
child3.AppendMenuItem(MF_STRING, 33, "Neighbours' Last.fm radio");
child3.AppendMenuItem(MF_STRING, 34, "Playlist Last.fm radio");
child3.AppendMenuItem(MF_SEPARATOR, 0, 0);
child3.AppendMenuItem(MF_STRING, 35, "Friends of Foobar2000 group radio");
child5.AppendMenuItem(MF_STRING, 47, "Load library");
child5.AppendMenuItem(MF_SEPARATOR, 0, 0);
child5.AppendMenuItem(MF_STRING, 40, "Synchronize...");
child5.AppendMenuItem(MF_STRING, 41, "Send playlists...");
child5.AppendMenuItem(MF_STRING, 42, "Manage contents...");
child5.AppendMenuItem(MF_SEPARATOR, 0, 0);
child5.AppendMenuItem(MF_STRING, 43, "Properties...");
child5.AppendMenuItem(MF_SEPARATOR, 0, 0);
child5.AppendMenuItem(MF_STRING, 44, "Eject");
child4.AppendMenuItem(MF_STRING, 50, "Open a custom station...");
child4.AppendMenuItem(MF_SEPARATOR, 0, 0);
if(window.GetProperty("genre") == 1) {
g_id = 1001;
genre_array = scast_menu("genre",g_id);
}
if(window.GetProperty("mood") == 1) {
m_id = 2001;
mood_array = scast_menu("mood",m_id);
}
default_items(genre_array,mood_array);
child4.AppendMenuItem(MF_STRING, 51, "Most popular stations");
var ret = basemenu.TrackPopupMenu(x, y);
if (ret == 0) return;
switch (ret) {
case 1:
fb.RunMainMenuCommand("File/Open...");
break;
case 2:
fb.RunMainMenuCommand("File/Open Audio CD...");
break;
case 3:
fb.RunMainMenuCommand("Library/Album List");
break;
case 10:
fb.RunMainMenuCommand("File/Add Files...");
break;
case 11:
fb.RunMainMenuCommand("File/Add Folder...");
break;
case 12:
fb.RunMainMenuCommand("File/Add Location...");
break;
case 13:
fb.RunMainMenuCommand("Library/Configure");
break;
case 20:
fb.RunMainMenuCommand("File/New Playlist");
break;
case 21:
fb.RunMainMenuCommand("File/Load Playlist...");
break;
case 22:
fb.RunMainMenuCommand("File/Save Playlist...");
break;
case 23:
fb.RunMainMenuCommand("Library/Load XSPF Playlist...");
break;
case 24:
fb.RunMainMenuCommand("Library/Save to XSPF Playlist...");
break;
case 25:
fb.RunMainMenuCommand("Edit/Undo");
break;
case 26:
fb.RunMainMenuCommand("Edit/Redo");
break;
case 30:
fb.RunMainMenuCommand("File/Open Last.fm Radio Station/A custom Last.fm station.");
break;
case 31:
fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your personal Last.fm radio.");
break;
case 32:
fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your recommended Last.fm radio.");
break;
case 33:
fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your neighbours' Last.fm radio.");
break;
case 34:
fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your playlist Last.fm radio.");
break;
case 35:
fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Friends of foobar2000 Last.fm group.");
break;
case 40:
fb.RunMainMenuCommand("File/iPod/Synchronise...");
break;
case 41:
fb.RunMainMenuCommand("File/iPod/Send playlists...");
break;
case 42:
fb.RunMainMenuCommand("File/iPod/Manage contents");
break;
case 43:
fb.RunMainMenuCommand("File/iPod/Properties");
break;
case 44:
fb.RunMainMenuCommand("File/iPod/Eject");
break;
case 47:
fb.RunMainMenuCommand("File/iPod/Load library");
break;
case 50:
text_input_box2("Shoutcast Radio","Search for a Shoutcast station...")
break;
case 51:
var shout = "http://www.shoutcast.com/most-popular-radio-stations";
WshShell.Run(shout);
break;
case 52:
var shout = "http://www.shoutcast.com/radio/pop";
WshShell.Run(shout);
break;
case 53:
var shout = "http://www.shoutcast.com/radio/hip-hop";
WshShell.Run(shout);
break;
case 54:
var shout = "http://www.shoutcast.com/radio/indie";
WshShell.Run(shout);
break;
case 55:
var shout = "http://www.shoutcast.com/radio/rock";
WshShell.Run(shout);
break;
default:
if(window.GetProperty("genre") == 1) {scast_menu_run(genre_array,g_id);}
if(window.GetProperty("mood") == 1) {scast_menu_run(mood_array,m_id);}
break;
}
basemenu.Dispose();
child1.Dispose();
child2.Dispose();
child3.Dispose();
child4.Dispose();
child5.Dispose();
child6.Dispose();
}
}
function on_size() {
ww = window.Width;
wh = window.Height;
}
function on_playback_new_track() {
on_item_focus_change();
}