Initial community commit

This commit is contained in:
Jef
2024-09-24 14:54:57 +02:00
parent 537bcbc862
commit 20d28e80a5
16810 changed files with 4640254 additions and 2 deletions

View File

@ -0,0 +1,135 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: albumart.m
Version: 1.1
Type: maki
Date: 20. Sep. 2007 - 16:54
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/com/songinfo.m>
#define WEBCOVER_SHOUTCAST "winamp.cover.shoutcast"
Function loadFileInfo();
//Function loadPlaylistArtWork();
Global Int plArtRetries = 0;
Global Group scriptGroup;
Global AlbumArtLayer l_albumart;
Global String notfoundImage = "winamp.cover.notfound.xxl";
System.onScriptLoaded ()
{
scriptGroup = getScriptGroup();
l_albumart = scriptGroup.findObject(getToken(getParam(), ",", 0));
notfoundImage = getToken(getParam(), ",", 1);
loadFileInfo();
}
l_albumart.onRightButtonDown (int x, int y)
{
popupmenu p = new popupmenu;
p.addCommand("Refresh Album Art", 1, 0, 0);
String path = getPath(getPlayItemMetaDataString("filename"));
if(path != "")
{
p.addCommand("Open Folder", 2, 0, 0);
}
int result = p.popatmouse();
delete p;
if (result == 1)
{
l_albumart.refresh();
}
else if (result == 2)
{
if(path != "")
{
System.navigateUrl(path);
}
else
{
String url = getPlayItemMetaDataString("streamurl");
if(url != "")
{
System.navigateUrl(url);
}
}
}
}
l_albumart.onLeftButtonDblClk (int x, int y)
{
String path = getPath(getPlayItemMetaDataString("filename"));
if(path != "")
{
System.navigateUrl(path);
}
else
{
String url = getPlayItemMetaDataString("streamurl");
if(url != "")
{
System.navigateUrl(url);
}
}
}
loadFileInfo ()
{
songinfo_reload(); // refresh vars
plArtRetries = 0;
l_albumart.setXMLParam("notfoundImage", notfoundImage);
//debugInt(songinfo_isStream);
if (songinfo_isStream)
{
// setCover either from a supplied url or from in-stream artwork or default to a generic image
if (songinfo_streamAlbumArt != "")
{
l_albumart.setXMLParam("image", songinfo_streamAlbumArt);
l_albumart.setXMLParam("notfoundImage", notfoundImage);
}
if(songinfo_streamType == SONGINFO_STREAMTYPE_SHOUTCAST || songinfo_streamType == SONGINFO_STREAMTYPE_SHOUTCAST2)
{
if(songinfo_streamType == SONGINFO_STREAMTYPE_SHOUTCAST2)
{
if(l_albumart.isInvalid() && plArtRetries < 5)
{
if(!plArtRetries)
{
l_albumart.setXMLParam("notfoundImage", WEBCOVER_SHOUTCAST);
}
plArtRetries += 1;
l_albumart.refresh();
}
}
else
{
l_albumart.setXMLParam("notfoundImage", WEBCOVER_SHOUTCAST);
}
}
}
}
// Hide branding of we start playback
System.onPlay ()
{
loadFileInfo();
}
System.onTitleChange (String newtitle)
{
loadFileInfo();
}

Binary file not shown.

View File

@ -0,0 +1,106 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: gen_pageguids.m
Version: 1.0
Type: maki/page guid definitions
Date: 03. Jul. 2006 - 18:29
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef __GEN_PAGEGUIDS_M
#define __GEN_PAGEGUIDS_M
#include <lib/config.mi>
Function initPages();
/*--NON CHANGEABLE GUIDS:--------------------------*/
// this is the page that maps its items to the options menu, you can add attribs or more pages (submenus)
#define CUSTOM_OPTIONSMENU_ITEMS "{1828D28F-78DD-4647-8532-EBA504B8FC04}"
Global ConfigItem optionsmenu_page;
// this is the page that maps its items to the windows menu (aka View), you can add attribs or more pages (submenus)
#define CUSTOM_WINDOWSMENU_ITEMS "{6559CA61-7EB2-4415-A8A9-A2AEEF762B7F}"
Global ConfigItem custom_windows_page;
// non exposed attribs page
#define CUSTOM_PAGE_NONEXPOSED "{E9C2D926-53CA-400f-9A4D-85E31755A4CF}"
Global ConfigItem custom_page_nonexposed;
/*--DECLARE PAGES HERE:----------------------------*/
initPages()
{
#ifndef __PAGES
#define __PAGES
custom_page_nonexposed = Config.newItem("Hidden", CUSTOM_PAGE_NONEXPOSED);
// load up the cfgpage in which we'll insert our custom page
optionsmenu_page = Config.getItem(CUSTOM_OPTIONSMENU_ITEMS);
custom_windows_page = Config.getItem(CUSTOM_WINDOWSMENU_ITEMS);
#endif
}
/*--GLOBAL DEFINITIONS:----------------------------*/
#define NOOFF if (getData()=="0") { setData("1"); return; }
Global Int attribs_mychange, attribs_mychange2;
Global ConfigAttribute sep;
Global Int sep_count = 0;
Function addMenuSeparator(ConfigItem cfgmenupage);
addMenuSeparator(ConfigItem cfgmenupage)
{
#ifdef MAIN_ATTRIBS_LOADER
sep_count = sep_count + 1;
sep = cfgmenupage.newAttribute(getSkinName() + "seperator" + integerToString(sep_count), "");
sep.setData("-");
#endif
}
Function ConfigItem addConfigSubMenu(configitem parent, string name, string guid);
ConfigItem addConfigSubMenu(configitem parent, string name, string guid)
{
ConfigItem __ret = Config.newItem(name, guid);
ConfigAttribute __dret = parent.newAttribute(name, "");
__dret.setData(guid);
return __ret;
}
Function toggleAttrib(ConfigAttribute attrib);
toggleAttrib(ConfigAttribute attrib)
{
if (attrib.getData() == "0")
{
attrib.setData("1");
}
else
{
attrib.setData("0");
}
}
#endif

View File

@ -0,0 +1,92 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_Autoresize.m
Version: 1.1
Type: maki/attrib definitions
Date: 23. Jan. 2008 - 20:31
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/maximize.m
scripts/videoresize.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_Autoresize();
#define CUSTOM_PAGE_RESIZE "{E704AB5A-108E-4309-B54B-43EBA5C0C3AA}"
Global ConfigAttribute sui_autorsize_attrib, link_w_attrib, titlebar_dblclk_max_attib, titlebar_dblclk_shade_attib, collapse_top_attrib, collapse_bottom_attrib;
Global ConfigAttribute video_inframe_attrib;
initAttribs_Autoresize()
{
initPages();
ConfigItem custom_page_autoresize = addConfigSubMenu(optionsmenu_page, "Window Sizing", CUSTOM_PAGE_RESIZE);
sui_autorsize_attrib = custom_page_autoresize.newAttribute("Autoresize Main Window if maximized", "0");
link_w_attrib = custom_page_autoresize.newAttribute("Link shade and player width", "1");
addMenuSeparator(custom_page_autoresize);
video_inframe_attrib = custom_page_autoresize.newAttribute("Enable Video in Window resizing", "0");
addMenuSeparator(custom_page_autoresize);
titlebar_dblclk_shade_attib = custom_page_autoresize.newAttribute("Switch to Shade on Titlebar Doubleclick", "1");
titlebar_dblclk_max_attib = custom_page_autoresize.newAttribute("Maximize Window on Titlebar Doubleclick", "0");
addMenuSeparator(custom_page_autoresize);
collapse_top_attrib = custom_page_autoresize.newAttribute("Collapse Window to Top", "1");
collapse_bottom_attrib = custom_page_autoresize.newAttribute("Collapse Window to Bottom", "0");
}
#ifdef MAIN_ATTRIBS_MGR
titlebar_dblclk_shade_attib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") titlebar_dblclk_max_attib.setData("0");
if (getData() == "0") titlebar_dblclk_max_attib.setData("1");
attribs_mychange = 0;
}
titlebar_dblclk_max_attib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") titlebar_dblclk_shade_attib.setData("0");
if (getData() == "0") titlebar_dblclk_shade_attib.setData("1");
attribs_mychange = 0;
}
collapse_bottom_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") collapse_top_attrib.setData("0");
if (getData() == "0") collapse_top_attrib.setData("1");
attribs_mychange = 0;
}
collapse_top_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") collapse_bottom_attrib.setData("0");
if (getData() == "0") collapse_bottom_attrib.setData("1");
attribs_mychange = 0;
}
#endif

View File

@ -0,0 +1,63 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_appearance.m
Version: 2.2
Type: maki/attrib definitions
Date: 28. Jun. 2007 - 22:08
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/mainmenu.maki
scripts/visualizer.maki
scripts/beatvisualization.maki
scripts/shadesize.maki
scripts/mcvcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_Appearance();
#define CUSTOM_PAGE_APPEARANCE "{F1036C9C-3919-47ac-8494-366778CF10F9}"
Global ConfigAttribute vis_reflection_attrib;
Global ConfigAttribute timer_reflection_attrib;
Global ConfigAttribute menubar_main_attrib;
Global configAttribute beatvis_attrib;
//Global configAttribute artist_info_buttons_attrib;
Global ConfigAttribute pl_tab_attrib;
Global ConfigItem custom_page_appearance;
initAttribs_Appearance()
{
initPages();
custom_page_appearance = addConfigSubMenu(optionsmenu_page, "Appearance", CUSTOM_PAGE_APPEARANCE);
menubar_main_attrib = custom_page_appearance.newAttribute("Show Main Window Menu", "1");
addMenuSeparator(custom_page_appearance);
vis_reflection_attrib = custom_page_appearance.newAttribute("Show Visualizer Reflection", "1");
timer_reflection_attrib = custom_page_appearance.newAttribute("Show Timer Reflection", "1");
addMenuSeparator(custom_page_appearance);
//artist_info_buttons_attrib = custom_page_appearance.newAttribute("Show Artist-Information Buttons", "0");
pl_tab_attrib = custom_page_appearance.newAttribute("Show Playlist Tab", "0");
addMenuSeparator(custom_page_appearance);
beatvis_attrib = custom_page_appearance.newAttribute("Enable Beat Visualization", "1");
}

View File

@ -0,0 +1,133 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_browser.m
Version: 1.1
Type: maki/attrib definitions
Date: 27. Jul. 2007 - 13:36
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/browser.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
#define CUSTOM_PAGE_BROWSER "{0E17DBEA-9398-49e6-AE6F-3AB17D001DF3}"
#define CUSTOM_PAGE_BROWSER_WASEARCH "{180E87DF-C482-41fe-A570-8575C673E1BA}"
#define CUSTOM_PAGE_BROWSER_CONCERTSEARCH "{B8171DB3-ECF6-40c6-9332-DDEA57A8F13E}"
Function initAttribs_browser();
Class ConfigAttribute SearchAttribute;
Function check (string unknown, SearchAttribute compare);
#ifdef BROWSER_SCRIPT
Global list SearchAttributeList;
#endif
#ifndef BROWSER_SCRIPT
#define SearchAttributeList //
#endif
Global ConfigAttribute browser_scr_show_attrib, browser_search_attrib;
Global SearchAttribute browser_search_winamp_mskins_attrib, browser_search_winamp_cskins_attrib, browser_search_winamp_plugins_attrib,
browser_search_winamp_web_attrib, browser_search_wiki_attrib, browser_c_pollstar_attrib, browser_c_bit_attrib,
browser_c_jambase_attrib;
initAttribs_browser()
{
initPages();
ConfigItem custom_page_browser = addConfigSubMenu(optionsmenu_page, "Browser", CUSTOM_PAGE_BROWSER);
browser_search_attrib = custom_page_nonexposed.newAttribute("Onesie browser Quicksearch", "Web Search");
SearchAttributeList = new List;
SearchAttributeList.addItem (custom_page_browser);
browser_search_winamp_web_attrib = custom_page_browser.newAttribute("Web Search", "1");
SearchAttributeList.addItem (browser_search_winamp_web_attrib);
browser_search_wiki_attrib = custom_page_browser.newAttribute("Wikipedia Search", "0");
SearchAttributeList.addItem (browser_search_wiki_attrib);
ConfigItem custom_page_browser_concertsearch = addConfigSubMenu(custom_page_browser, "Concert Search", CUSTOM_PAGE_BROWSER_CONCERTSEARCH);
browser_c_jambase_attrib = custom_page_browser_concertsearch.newAttribute("JamBase", "0");
SearchAttributeList.addItem (browser_c_jambase_attrib);
browser_c_pollstar_attrib = custom_page_browser_concertsearch.newAttribute("Pollstar", "0");
SearchAttributeList.addItem (browser_c_pollstar_attrib);
browser_c_bit_attrib = custom_page_browser_concertsearch.newAttribute("Bandsintown", "0");
SearchAttributeList.addItem (browser_c_bit_attrib);
ConfigItem custom_page_browser_winampsearch = addConfigSubMenu(custom_page_browser, "Winamp Search", CUSTOM_PAGE_BROWSER_WASEARCH);
browser_search_winamp_mskins_attrib = custom_page_browser_winampsearch.newAttribute("Modern Skins", "0");
SearchAttributeList.addItem (browser_search_winamp_mskins_attrib);
browser_search_winamp_cskins_attrib = custom_page_browser_winampsearch.newAttribute("Classic Skins", "0");
SearchAttributeList.addItem (browser_search_winamp_cskins_attrib);
browser_search_winamp_plugins_attrib = custom_page_browser_winampsearch.newAttribute("Plug-ins", "0");
SearchAttributeList.addItem (browser_search_winamp_plugins_attrib);
addMenuSeparator(custom_page_browser);
browser_scr_show_attrib = custom_page_browser.newAttribute("Show Media Monitor", "1");
}
#ifdef MAIN_ATTRIBS_MGR
browser_search_attrib.onDataChanged ()
{
if (attribs_mychange) return;
string dta = getData();
if (dta == "Modern Skins") browser_search_winamp_mskins_attrib.setData("1");
else if (dta == "Classic Skins") browser_search_winamp_plugins_attrib.setData("1");
else if (dta == "Plug-ins") browser_search_winamp_plugins_attrib.setData("1");
else if (dta == "Web Search with Google") browser_search_winamp_web_attrib.setData("1");
else if (dta == "Pollstar") browser_c_pollstar_attrib.setData("1");
else if (dta == "Bands in Town") browser_c_bit_attrib.setData("1");
else if (dta == "JamBase") browser_c_jambase_attrib.setData("1");
else if (dta == "Wikipedia Search") browser_search_wiki_attrib.setData("1");
}
SearchAttribute.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
String s = SearchAttribute.getAttributeName();
check (s, browser_search_winamp_mskins_attrib);
check (s, browser_search_winamp_cskins_attrib);
check (s, browser_search_winamp_plugins_attrib);
check (s, browser_search_winamp_web_attrib);
check (s, browser_c_jambase_attrib);
check (s, browser_c_bit_attrib);
check (s, browser_c_pollstar_attrib);
check (s, browser_search_wiki_attrib);
attribs_mychange = 0;
}
check (String unknown, SearchAttribute compare)
{
if (unknown == compare.getAttributeName())
{
browser_search_attrib.setData(compare.getAttributeName());
}
else
{
compare.setData("0");
}
}
#endif

View File

@ -0,0 +1,327 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_notifier.m
Type: maki/attrib definitions
Version: 1.1
Date: 12. Jul. 2006 - 16:15
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
wasabi/notifier/notifier.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_notifier();
#define CUSTOM_PAGE_NOTIFIER "{1AB968B3-8687-4a35-BA70-FCF6D92FB57F}"
#define CUSTOM_PAGE_NOTIFIER_AA "{7BF45B05-2B98-4de8-8778-E5CCC9639ED1}"
#define CUSTOM_PAGE_NOTIFIER_LOC "{715B2C0D-1DF0-4bb2-9D74-0FACAE27CE97}"
#define CUSTOM_PAGE_NOTIFIER_FDIN "{D9891A39-7A38-45d8-9D51-A08F7270C836}"
#define CUSTOM_PAGE_NOTIFIER_FDOUT "{560EAE41-1379-4927-AC55-FB5F4D47C9B8}"
Global ConfigAttribute notifier_minimized_attrib;
Global ConfigAttribute notifier_always_attrib;
Global ConfigAttribute notifier_never_attrib;
Global ConfigAttribute notifier_fadeintime_attrib;
Global ConfigAttribute notifier_fadeouttime_attrib;
Global ConfigAttribute notifier_holdtime_attrib;
Global ConfigAttribute notifier_hideinfullscreen_attrib;
Global ConfigAttribute notifier_windowshade_attrib;
//Global ConfigAttribute notifier_opennowplaying_attrib;
Global ConfigAttribute notifier_artworkinnotification_attrib;
Global ConfigAttribute notifier_fdout_alpha;
Global ConfigAttribute notifier_fdout_hslide;
Global ConfigAttribute notifier_fdout_vslide;
Global ConfigAttribute notifier_fdin_alpha;
Global ConfigAttribute notifier_fdin_hslide;
Global ConfigAttribute notifier_fdin_vslide;
Global ConfigAttribute notifier_loc_br_attrib;
Global ConfigAttribute notifier_loc_bl_attrib;
Global ConfigAttribute notifier_loc_tr_attrib;
Global ConfigAttribute notifier_loc_tl_attrib;
Global ConfigAttribute notifier_loc_bc_attrib;
Global ConfigAttribute notifier_loc_tc_attrib;
Global ConfigAttribute notifier_loc_vport_attrib;
Global ConfigAttribute notifier_loc_monitor_attrib;
initAttribs_notifier()
{
initPages();
ConfigItem custom_page_notifier = addConfigSubMenu(optionsmenu_page, "Notifications", CUSTOM_PAGE_NOTIFIER);
notifier_always_attrib = custom_page_notifier.newAttribute("Show always", "1");
notifier_windowshade_attrib = custom_page_notifier.newAttribute("Show with windowshade and when minimized", "0");
notifier_minimized_attrib = custom_page_notifier.newAttribute("Show only when minimized", "0");
notifier_minimized_attrib = custom_page_notifier.newAttribute("Show only when minimized", "0");
notifier_never_attrib = custom_page_notifier.newAttribute("Never show", "0");
addMenuSeparator(custom_page_notifier);
ConfigItem custom_page_notifier_loc = addConfigSubMenu(custom_page_notifier, "Location", CUSTOM_PAGE_NOTIFIER_LOC);
ConfigItem custom_page_notifier_fdin = addConfigSubMenu(custom_page_notifier, "Fade In Effect", CUSTOM_PAGE_NOTIFIER_FDIN);
ConfigItem custom_page_notifier_fdout = addConfigSubMenu(custom_page_notifier, "Fade Out Effect", CUSTOM_PAGE_NOTIFIER_FDOUT);
addMenuSeparator(custom_page_notifier);
notifier_hideinfullscreen_attrib = custom_page_notifier.newAttribute("Disable in fullscreen", "1");
addMenuSeparator(custom_page_notifier);
//notifier_opennowplaying_attrib = custom_page_notifier.newAttribute("Open Now Playing on Click", "1");
sep = custom_page_notifier.newAttribute("sep333", ""); sep.setData("-");
notifier_artworkinnotification_attrib = custom_page_notifier.newAttribute("Show Now Playing Artwork", "1");
notifier_fadeintime_attrib = custom_page_nonexposed.newAttribute("Notifications fade in time", "1000");
notifier_fadeouttime_attrib = custom_page_nonexposed.newAttribute("Notifications fade out time", "5000");
notifier_holdtime_attrib = custom_page_nonexposed.newAttribute("Notifications display time", "2000");
// Notifications > Location
notifier_loc_bl_attrib = custom_page_notifier_loc.newAttribute("Bottom Left", "0");
notifier_loc_bc_attrib = custom_page_notifier_loc.newAttribute("Bottom Center", "0");
notifier_loc_br_attrib = custom_page_notifier_loc.newAttribute("Bottom Right", "1");
notifier_loc_tl_attrib = custom_page_notifier_loc.newAttribute("Top Left", "0");
notifier_loc_tc_attrib = custom_page_notifier_loc.newAttribute("Top Center", "0");
notifier_loc_tr_attrib = custom_page_notifier_loc.newAttribute("Top Right", "0");
addMenuSeparator(custom_page_notifier_loc);
notifier_loc_vport_attrib = custom_page_notifier_loc.newAttribute("Relative to Viewport", "1");
notifier_loc_monitor_attrib = custom_page_notifier_loc.newAttribute("Relative to Monitor", "0");
// Notifications > Fade...
notifier_fdout_alpha = custom_page_notifier_fdout.newAttribute("Alpha Fade ", "1");
notifier_fdout_vslide = custom_page_notifier_fdout.newAttribute("Vertical Slide ", "0");
notifier_fdout_hslide = custom_page_notifier_fdout.newAttribute("Horizontal Slide ", "0");
// Martin> We need a additional spacer for the last 3 attribs, so we won't cross withe the 3 below in studio.xnf
notifier_fdin_alpha = custom_page_notifier_fdin.newAttribute("Alpha Fade", "1");
notifier_fdin_vslide = custom_page_notifier_fdin.newAttribute("Vertical Slide", "0");
notifier_fdin_hslide = custom_page_notifier_fdin.newAttribute("Horizontal Slide", "0");
}
#ifdef MAIN_ATTRIBS_MGR
notifier_always_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_minimized_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
attribs_mychange = 0;
}
notifier_never_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_always_attrib.setData("0");
notifier_minimized_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
attribs_mychange = 0;
}
notifier_minimized_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_always_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
attribs_mychange = 0;
}
notifier_windowshade_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_always_attrib.setData("0");
notifier_minimized_attrib.setData("0");
attribs_mychange = 0;
}
notifier_fdout_alpha.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdout_hslide.setData("0");
notifier_fdout_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdout_hslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdout_alpha.setData("0");
notifier_fdout_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdout_vslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdout_hslide.setData("0");
notifier_fdout_alpha.setData("0");
attribs_mychange = 0;
}
notifier_fdin_alpha.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdin_hslide.setData("0");
notifier_fdin_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdin_hslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdin_alpha.setData("0");
notifier_fdin_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdin_vslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdin_hslide.setData("0");
notifier_fdin_alpha.setData("0");
attribs_mychange = 0;
}
notifier_loc_br_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_bl_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_br_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_tl_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_tr_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_tc_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_bc_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_vport_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_monitor_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_monitor_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_vport_attrib.setData("0");
attribs_mychange = 0;
}
#endif

View File

@ -0,0 +1,39 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_playlist.m
Version: 1.0
Type: maki/attrib definitions
Date: 23. Okt. 2006 - 16:58
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
config/configsystem.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
#define COSTUM_PAGE_PLAYLIST "{0167CFD9-5D35-404a-8F03-80ED5B89DEDF}"
Function initAttribs_playlist();
Global ConfigAttribute playlist_enlarge_attrib;
Global ConfigAttribute playlist_cover_attrib;
initAttribs_Playlist()
{
initPages();
ConfigItem playlist_parent = addConfigSubMenu(optionsmenu_page, "Playlist", COSTUM_PAGE_PLAYLIST);
playlist_enlarge_attrib = playlist_parent.newAttribute("Enlarge Playlist", "1");
playlist_cover_attrib = playlist_parent.newAttribute("Show Album Art if Playlist is enlarged", "1");
}

View File

@ -0,0 +1,82 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_songticker.m
Version: 1.0
Type: maki/attrib definitions
Date: 01. Sep. 2007 - 01:10
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/songticker.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_Songticker();
Class ConfigAttribute ScrollingAttribute;
#define CUSTOM_PAGE_SONGTICKER "{7061FDE0-0E12-11D8-BB41-0050DA442EF4}"
Global ScrollingAttribute songticker_scrolling_disabled_attrib;
Global ScrollingAttribute songticker_style_modern_attrib;
Global ScrollingAttribute songticker_style_old_attrib;
initAttribs_Songticker()
{
initPages();
ConfigItem custom_page_songticker = addConfigSubMenu(optionsmenu_page, "Songticker", CUSTOM_PAGE_SONGTICKER);
songticker_scrolling_disabled_attrib = custom_page_songticker.newAttribute("Disable Songticker Scrolling", "0");
songticker_style_modern_attrib = custom_page_songticker.newAttribute("Modern Songticker Scrolling", "1");
songticker_style_old_attrib = custom_page_songticker.newAttribute("Classic Songticker Scrolling", "0");
}
#ifdef MAIN_ATTRIBS_MGR
songticker_scrolling_disabled_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_style_modern_attrib.setData("0");
songticker_style_old_attrib.setData("0");
attribs_mychange = 0;
}
songticker_style_old_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_style_modern_attrib.setData("0");
songticker_scrolling_disabled_attrib.setData("0");
attribs_mychange = 0;
}
songticker_style_modern_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_scrolling_disabled_attrib.setData("0");
songticker_style_old_attrib.setData("0");
attribs_mychange = 0;
}
#endif

View File

@ -0,0 +1,80 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_vis.m
Version: 1.0
Type: maki/attrib definitions
Date: 03. Nov. 2006 - 18:12
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_vis();
Global ConfigAttribute vis_lefttoplayer_attrib, vis_inbig_attrib, vis_lefttoplayer_full_attrib;
#define CUSTOM_PAGE_VIS "{090B63DE-FD24-4528-ABE5-A522615E8AE9}"
initAttribs_vis()
{
initPages();
// System.isSafeMode() is not recognized by mc.exe
// if (!System.isSafeMode())
// {
ConfigItem vis_parent = addConfigSubMenu(optionsmenu_page, "Visualization", CUSTOM_PAGE_VIS);
vis_inbig_attrib = vis_parent.newAttribute("Open in Big Component View", "1");
vis_lefttoplayer_full_attrib = vis_parent.newAttribute("Open in Multi Content View (stretched)", "0");
vis_lefttoplayer_attrib = vis_parent.newAttribute("Open in Multi Content View (mini)", "0");
// }
}
#ifdef MAIN_ATTRIBS_MGR
vis_lefttoplayer_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
vis_inbig_attrib.setData("0");
vis_lefttoplayer_full_attrib.setData("0");
attribs_mychange = 0;
}
vis_inbig_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
vis_lefttoplayer_attrib.setData("0");
vis_lefttoplayer_full_attrib.setData("0");
attribs_mychange = 0;
}
vis_lefttoplayer_full_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
vis_lefttoplayer_attrib.setData("0");
vis_inbig_attrib.setData("0");
attribs_mychange = 0;
}
#endif

View File

@ -0,0 +1,309 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_windowpage.m
Version: 1.1
Type: maki/attrib definitions
Date: 08. Jul. 2006 - 17:28
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/mcvcompcore.maki
scripts/suicore.maki
scripts/browser.maki
scripts/fileinfo.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
//#define DOHIDEMCV
//#define IC_COVERFLOW
#define CUSTOM_PAGE_FILEINFO "{6A619628-6A91-46e3-A3F3-5C1B2D93DF4F}"
Function initAttribs_windowpage();
Global ConfigAttribute sui_browser_attrib, sui_eq_attrib, sui_config_attrib;
Global ConfigAttribute ic_fileinfo, ic_cover_fileinfo, ic_vis, ic_vis_fileinfo, ic_hidden, ic_eq, ic_config, _plsc_ic_attrib;
#ifdef IC_COVERFLOW
Global ConfigAttribute _cflow_ic_attrib;
#else
#define _cflow_ic_attrib //
#endif
#ifdef DOHIDEMCV
Global ConfigAttribute ic_hidden;
#endif
Global ConfigItem custom_page_fileinfo;
#ifndef DOHIDEMCV
#define ic_hidden //
#endif
#define CUSTOM_PAGE_INFOCOMP "{8D3829F9-5790-4c8e-9C3A-C397D3602FF9}"
Class ConfigAttribute InfoLineAttribute;
Global InfoLineAttribute infocomp_show_rating, infocomp_show_genre, infocomp_show_year, infocomp_show_track, infocomp_show_publisher, infocomp_show_composer, infocomp_show_albumartist, infocomp_show_format, infocomp_show_disc;
Global ConfigAttribute infocomp_cycle, infocomp_nowplaying, infocomp_browser;
initAttribs_windowpage()
{
initPages();
sui_eq_attrib = custom_windows_page.newAttribute("Equalizer\tAlt+G", "0");
// sui_browser_attrib = custom_windows_page.newAttribute("Web Browser\tAlt+X", "0");
sui_config_attrib = custom_windows_page.newAttribute("Skin Settings\tAlt+C", "0");
custom_page_fileinfo = addConfigSubMenu(optionsmenu_page, "Multi Content View", CUSTOM_PAGE_FILEINFO);
ic_fileinfo = custom_page_fileinfo.newAttribute("File Info", "1");
_cflow_ic_attrib = custom_page_fileinfo.newAttribute("Cover Flow", "0");
ic_vis = custom_page_fileinfo.newAttribute("Visualization ", "0");
_plsc_ic_attrib = custom_page_fileinfo.newAttribute("Stored Playlists", "0");
ic_eq = custom_page_fileinfo.newAttribute("Equalizer", sui_eq_attrib.getData());
ic_config = custom_page_fileinfo.newAttribute("Skin Settings", sui_config_attrib.getData());
#ifdef DOHIDEMCV
ic_hidden = custom_page_fileinfo.newAttribute("Hide Multi Content View", "0");
#endif
addMenuSeparator(custom_page_fileinfo);
ConfigItem fileinfo_parent = addConfigSubMenu(custom_page_fileinfo, "File Info Components", CUSTOM_PAGE_INFOCOMP);
ic_vis_fileinfo = fileinfo_parent.newAttribute("Visualization ", "0");
ic_cover_fileinfo = fileinfo_parent.newAttribute("Album Art", "1");
addMenuSeparator(fileinfo_parent);
infocomp_show_track = fileinfo_parent.newAttribute("Show Track #", "1");
infocomp_show_year = fileinfo_parent.newAttribute("Show Year", "1");
infocomp_show_genre = fileinfo_parent.newAttribute("Show Genre", "1");
infocomp_show_disc = fileinfo_parent.newAttribute("Show Disc", "1");
infocomp_show_albumartist = fileinfo_parent.newAttribute("Show Album Artist", "1");
infocomp_show_composer = fileinfo_parent.newAttribute("Show Composer", "1");
infocomp_show_publisher = fileinfo_parent.newAttribute("Show Publisher", "1");
infocomp_show_format = fileinfo_parent.newAttribute("Show Decoder", "1");
infocomp_show_rating = fileinfo_parent.newAttribute("Show Song Rating", "1");
addMenuSeparator(fileinfo_parent);
infocomp_cycle = fileinfo_parent.newAttribute("Cycle File Info", "1");
addMenuSeparator(fileinfo_parent);
//infocomp_nowplaying = fileinfo_parent.newAttribute("Open Links in Now Playing", "1");
//infocomp_browser = fileinfo_parent.newAttribute("Open Links in Browser", "0");
}
#ifdef MAIN_ATTRIBS_MGR
System.onKeyDown(String key) {
if (key == "alt+x")
{
if (sui_browser_attrib.getData() == "0") sui_browser_attrib.setData("1");
else sui_browser_attrib.setData("0");
complete;
}
/*if (key == "alt+n")
{
if (sui_browser_attrib.getData() == "0") sui_browser_attrib.setData("1");
else sui_browser_attrib.setData("0");
complete;
}*/
/*if (key == "alt+c")
{
if (sui_cover_attrib.getData() == "0") sui_cover_attrib.setData("1");
else sui_cover_attrib.setData("0");
complete;
}*/
if (key == "alt+c")
{
if (sui_config_attrib.getData() == "0") sui_config_attrib.setData("1");
else sui_config_attrib.setData("0");
complete;
}
if (key == "alt+g")
{
if (sui_eq_attrib.getData() == "0") sui_eq_attrib.setData("1");
else sui_eq_attrib.setData("0");
complete;
}
/*if (key == "ctrl+f") {
navigateUrl(getPath(getPlayItemString()));
complete;
}*/
}
ic_fileinfo.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
ic_vis.onDataChanged()
{
//debugString("ic_vis.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_fileinfo.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
ic_eq.onDataChanged()
{
if (!attribs_mychange)
{
attribs_mychange = 1;
sui_eq_attrib.setData(getData());
if (getData() == "1") sui_config_attrib.setData("0");
attribs_mychange = 0;
}
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_fileinfo.setData("0");
ic_vis.setData("0");
ic_config.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
ic_config.onDataChanged()
{
if (!attribs_mychange)
{
attribs_mychange = 1;
sui_config_attrib.setData(getData());
if (getData() == "1") sui_eq_attrib.setData("0");
attribs_mychange = 0;
}
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_fileinfo.setData("0");
ic_vis.setData("0");
ic_eq.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
_plsc_ic_attrib.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
ic_fileinfo.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
#ifdef IC_COVERFLOW
_cflow_ic_attrib.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
ic_fileinfo.setData("0");
_plsc_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
#endif
#ifdef DOHIDEMCV
ic_hidden.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
ic_fileinfo.setData("0");
_plsc_ic_attrib.setdata("0");
_cflow_ic_attrib.setData("0");
attribs_mychange2 = 0;
}
#endif
sui_eq_attrib.onDataChanged()
{
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange) return;
attribs_mychange = 1;
if (getData() == "1")
{
ic_eq.setData("1");
sui_config_attrib.setData("0");
}
else ic_fileinfo.setData("1");
attribs_mychange = 0;
}
sui_config_attrib.onDataChanged()
{
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange) return;
attribs_mychange = 1;
if (getData() == "1")
{
ic_config.setData("1");
sui_eq_attrib.setData("0");
}
else ic_fileinfo.setData("1");
attribs_mychange = 0;
}
/* infocomp_nowplaying.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
infocomp_browser.setData("0");
attribs_mychange = 0;
}
infocomp_browser.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
infocomp_nowplaying.setData("0");
attribs_mychange = 0;
}
*/
#endif

View File

@ -0,0 +1,160 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: beatvisualization.m
Version: 1.0
Type: maki
Date: 24. Sep. 2007 - 21:11
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Based on Winamp Modern
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Function updateObj(int w);
#define CENTER_VAR CONTENTGRP
Global Group contentGroup;
#include <lib/com/centerlayer.m>
#undef CENTER_VAR
Global Group scriptGroup;
Global animatedLayer beatVisL, beatVisR;
Global int lastBeatLeft, lastBeatRight;
Global Timer refreshVis;
Global Int totalFrames;
Global GuiObject SongTicker;
System.onScriptLoaded ()
{
initAttribs_Appearance();
scriptGroup = getScriptGroup();
contentGroup = scriptGroup.getObject("player.display.beatvis.content");
beatVisL = contentGroup.getObject("beatvisleft");
beatVisR = contentGroup.getObject("beatvisright");
_CONTENTGRPInit(contentGroup, scriptGroup, 1, 0);
SongTicker = contentGroup.getParent().findObject("Songticker");
totalFrames = beatVisR.getLength() - 1;
lastBeatLeft = 0;
lastBeatRight = 0;
refreshVis = new Timer;
refreshVis.setDelay(10);
updateObj(scriptGroup.getWidth());
vis_reflection_attrib.onDataChanged();
}
System.onScriptUnloading ()
{
refreshVis.stop();
delete refreshVis;
}
scriptGroup.onResize (int x, int y, int w, int h)
{
updateObj(w);
}
updateObj (int w)
{
if (w > 98)
{
if (scriptGroup.isVisible()) return;
scriptGroup.show();
if (beatvis_attrib.getData() == "1") refreshVis.start();
//SongTicker.sendAction("setGuiX", "", 191,0,0,0);
}
else
{
refreshVis.stop();
scriptGroup.hide();
//SongTicker.sendAction("restoreGuiX", "", 0,0,0,0);
}
}
refreshVis.onTimer ()
{
if (beatvis_attrib.getData() == "0")
{
lastBeatLeft--;
if (lastBeatLeft<0) lastBeatLeft=0;
lastBeatRight--;
if (lastBeatRight<0) lastBeatRight=0;
beatVisL.gotoframe(lastBeatLeft);
beatVisR.gotoframe(lastBeatRight);
if (lastBeatLeft + lastBeatRight == 0)
{
refreshVis.stop();
}
return;
}
int beatLeft= System.getLeftVuMeter();
int beatRight= System.getRightVuMeter();
int frameLeft=beatLeft/(totalFrames+7);
int frameRight=beatRight/(totalFrames+7);
if (frameLeft>totalFrames) frameLeft=totalFrames;
if (frameRight>totalFrames) frameRight=totalFrames;
if (frameLeft<lastBeatLeft)
{
frameLeft=lastBeatLeft-1;
if (frameLeft<0) frameLeft=0;
}
if (frameRight<lastBeatRight)
{
frameRight=lastBeatRight-1;
if (frameRight<0) frameRight=0;
}
lastBeatLeft=frameLeft;
lastBeatRight=frameRight;
beatVisL.gotoframe(frameLeft);
beatVisR.gotoframe(frameRight);
}
beatvis_attrib.onDataChanged ()
{
if (getData() == "1" )
{
if (scriptGroup.isVisible())
{
refreshVis.start();
}
}
}
vis_reflection_attrib.onDataChanged ()
{
if (getdata() == "1")
{
beatVisR.setXmlParam("image", "player.beatvis.right");
beatVisL.setXmlParam("image", "player.beatvis.left");
}
else
{
beatVisR.setXmlParam("image", "player.beatvis.right.wo");
beatVisL.setXmlParam("image", "player.beatvis.left.wo");
}
}

View File

@ -0,0 +1,8 @@
@echo off
pushd %~dp0..\..\..\..\wasabi\
set basedir=%cd%
popd
for %%a in (*.m) do "%basedir%\mc.exe" %%a
pause

View File

@ -0,0 +1,293 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: cbuttons.m
Version: 1.0
Type: maki
Date: 03. Nov. 2006 - 17:02
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/pldir.mi>
#define GLOW_OBJECT Prev
#include <lib/com/glow.m>
#define GLOW_OBJECT Next
#include <lib/com/glow.m>
#define GLOW_OBJECT Play
#include <lib/com/glow.m>
#define GLOW_OBJECT Pause
#include <lib/com/glow.m>
#define GLOW_OBJECT Stop
#include <lib/com/glow.m>
#define GLOW_OBJECT Eject
#include <lib/com/glow.m>
#define GLOW_OBJECT Repeat
#include <lib/com/glow.m>
#define GLOW_OBJECT Shuffle
#include <lib/com/glow.m>
#define GLOW_OBJECT Bolt
#include <lib/com/glow.m>
Class Button InfoButton;
Class ToggleButton InfoToggleButton;
Global InfoButton b_play, b_pause, b_eject, b_prev, b_next, b_stop, b_bolt;
Global InfoToggleButton b_repeat, b_shuffle;
Global GuiObject SongTicker;
Global Group buttongroup;
Global GuiObject shuffleActive, repeatActive, boltGlow;
Global Int shuffleActive_Y, repeatActive_Y, minW, boltX, grabbX;
Global Layer mainframe_grabber;
Global Timer beatvis;
System.onScriptLoaded ()
{
buttongroup = getScriptGroup().findObject("player.cbuttons");
b_play = buttongroup.getObject("Play");
b_pause = buttongroup.getObject("Pause");
b_eject = buttongroup.getObject("Eject");
b_prev = buttongroup.getObject("Prev");
b_next = buttongroup.getObject("Next");
b_stop = buttongroup.getObject("Stop");
b_repeat = buttongroup.getObject("repeat");
b_shuffle = buttongroup.getObject("shuffle");
b_bolt = buttongroup.getParentLayout().getObject("bolt");
boltGlow = buttongroup.getParentLayout().getObject("bolt.glow");
shuffleActive = getScriptGroup().findObject("shuffle.active");
shuffleActive_Y = shuffleActive.getGuiY();
repeatActive = getScriptGroup().findObject("repeat.active");
repeatActive_Y = repeatActive.getGuiY();
mainframe_grabber = buttongroup.getParentLayout().getObject("player.mainframe.grabber");
beatvis = new Timer;
beatvis.setDelay(33);
minW = stringToInteger(getParam());
boltX = b_bolt.getGuiX();
grabbX = mainframe_grabber.getGuiX();
b_bolt.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
boltGlow.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
mainframe_grabber.setXmlParam("x", integerToString(grabbX + buttongroup.GetWidth() - minW));
_Play_GlowInit (b_play, buttongroup.findObject("Play.glow"), 0.3);
_Pause_GlowInit (b_pause, buttongroup.findObject("Pause.glow"), 0.3);
_Stop_GlowInit (b_stop, buttongroup.findObject("Stop.glow"), 0.3);
_Prev_GlowInit (b_prev, buttongroup.findObject("Prev.glow"), 0.3);
_Next_GlowInit (b_next, buttongroup.findObject("Next.glow"), 0.3);
_Eject_GlowInit (b_eject, buttongroup.findObject("Eject.glow"), 0.3);
_Repeat_GlowInit (b_repeat, buttongroup.findObject("repeat.glow"), 0.3);
_Shuffle_GlowInit (b_shuffle, buttongroup.findObject("shuffle.glow"), 0.3);
_Bolt_GlowInit (b_bolt, buttongroup.getParentLayout().getObject("bolt.glow"), 0.7);
SongTicker = buttongroup.getParentLayout().findObject("songticker");
}
system.onScriptUnloading ()
{
beatvis.stop();
delete beatvis;
}
InfoButton.onLeftButtonDown (int x, int y)
{
if (InfoButton == b_play)
{
if (getStatus() == -1)
{
SongTicker.sendAction("showinfo", "Resume Playback", 0, 0, 0, 0);
}
else if (getStatus() == 0)
{
SongTicker.sendAction("showinfo", "Start Playback", 0, 0, 0, 0);
}
else if (getStatus() == 1)
{
SongTicker.sendAction("showinfo", "Restart Playback", 0, 0, 0, 0);
}
}
else if (InfoButton == b_pause)
{
if (getStatus() == -1)
{
SongTicker.sendAction("showinfo", "Resume Playback", 0, 0, 0, 0);
}
else if (getStatus() == 1)
{
SongTicker.sendAction("showinfo", "Pause Playback", 0, 0, 0, 0);
}
}
else if (InfoButton == b_pause)
{
if (getStatus() == 1)
{
SongTicker.sendAction("showinfo", "Pause Playback", 0, 0, 0, 0);
}
}
else
{
string info = InfoButton.getXmlParam("tooltip");
SongTicker.sendAction("showinfo", info, 0, 0, 0, 0);
}
}
InfoToggleButton.onLeftButtonDown (int x, int y)
{
if (InfoToggleButton == b_shuffle)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Shuffle: On", 0, 0, 0, 0);
}
else
{
SongTicker.sendAction("showinfo", "Shuffle: Off", 0, 0, 0, 0);
}
}
else if (InfoToggleButton == b_repeat)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Repeat: Playlist", 0, 0, 0, 0);
}
else if (getCurCfgVal() == -1)
{
SongTicker.sendAction("showinfo", "Repeat: Track", 0, 0, 0, 0);
}
else if (getCurCfgVal() == 0)
{
SongTicker.sendAction("showinfo", "Repeat: Off", 0, 0, 0, 0);
}
}
}
InfoToggleButton.onLeftButtonUp (int x, int y)
{
if (InfoToggleButton == b_shuffle)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Shuffle: On", 0, 0, 0, 0);
}
else
{
SongTicker.sendAction("showinfo", "Shuffle: Off", 0, 0, 0, 0);
}
}
else if (InfoToggleButton == b_repeat)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Repeat: Playlist", 0, 0, 0, 0);
}
else if (getCurCfgVal() == -1)
{
SongTicker.sendAction("showinfo", "Repeat: Track", 0, 0, 0, 0);
}
else if (getCurCfgVal() == 0)
{
SongTicker.sendAction("showinfo", "Repeat: Off", 0, 0, 0, 0);
}
}
}
Global Boolean shuffleDown, repeatDown;
b_shuffle.onLeftButtonDown (int x, int y)
{
shuffleDown = 1;
shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y+1));
}
b_shuffle.onLeftButtonUp (int x, int y)
{
shuffleDown = 0;
shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y));
}
b_shuffle.onleaveArea ()
{
shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y));
}
b_shuffle.onEnterArea ()
{
if (shuffleDown) shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y+1));
}
b_repeat.onLeftButtonDown (int x, int y)
{
repeatDown = 1;
repeatActive.setXmlParam("y", integerToString(repeatActive_Y+1));
}
b_repeat.onLeftButtonUp (int x, int y)
{
repeatDown = 0;
repeatActive.setXmlParam("y", integerToString(repeatActive_Y));
}
b_repeat.onleaveArea ()
{
repeatActive.setXmlParam("y", integerToString(repeatActive_Y));
}
b_repeat.onEnterArea ()
{
if (repeatDown) repeatActive.setXmlParam("y", integerToString(repeatActive_Y+1));
}
buttongroup.onResize (int x, int y, int w, int h)
{
b_bolt.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
boltGlow.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
mainframe_grabber.setXmlParam("x", integerToString(grabbX + buttongroup.GetWidth() - minW));
}
b_bolt.onLeftButtonUp (int x, int y)
{
if (isKeyDown(VK_ALT) && isKeyDown(VK_SHIFT) && isKeyDown(VK_CONTROL))
{
if (beatvis.isRunning())
{
beatvis.stop();
}
else
{
beatvis.start();
}
complete;
}
}
beatvis.onTimer ()
{
int value = (getRightVuMeter() + getLeftVuMeter()) / 2;
boltGlow.setAlpha(value);
}
/*
System.onKeyDown (String key)
{
if (key == "space")
{
PlEdit.showCurrentlyPlayingTrack();
complete;
}
}*/
System.onAccelerator (String action, String section, String key)
{
if (strupper(action) == "SHOW_CURRENT_TRACK")
{
PlEdit.showCurrentlyPlayingTrack();
complete;
}
}

Binary file not shown.

View File

@ -0,0 +1,56 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: colorthemes.m
Version: 1.0
Type: maki
Date: 29. Jun. 2007 - 13:06
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Group scriptGroup;
Global GuiObject ColorthemesList, parent;
Global string sgID;
Global Button getmore;
System.onScriptLoaded ()
{
scriptGroup = getScriptGroup();
sgID = scriptGroup.getID();
ColorthemesList = scriptGroup.getObject("colorthemes");
parent = scriptGroup.getParent().findObject("skin.config.target");
getmore = scriptGroup.getObject("colorthemes.more");
}
scriptGroup.onTargetReached ()
{
if (getAlpha() == 0) ColorthemesList.hide();
else ColorthemesList.show();
}
parent.onAction(String action, String param, int x, int y, int p1, int p2, GuiObject source)
{
if (getToken(action,";",0) == "switchto")
{
if (getToken(action, ";", 1) == sgID)
{
ColorthemesList.show();
}
else ColorthemesList.hide();
}
}
getmore.onLeftClick ()
{
group sui = scriptGroup.getParentLayout().findObject("sui.content");
sui.sendAction ("browser_navigate", "http://forums.winamp.com/showthread.php?threadid=276371", 0, 0, 0, 0);
}

Binary file not shown.

View File

@ -0,0 +1,159 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: configtarget.m
Version: 2.1
Type: maki
Date: 04. Jan. 2007 - 22:46
Edited by: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on configtarget.m
from Winamp Modern
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
// ------------------------------------------------------------------------------------
Global GuiObject target;
Global ComponentBucket buck;
Global GuiObject last, current;
// ------------------------------------------------------------------------------------
Function turnAllOffExcept(GuiObject except);
Function turnOn(GuiObject obj);
Function turnOff(GuiObject obj);
//Member int target.fff;
//function fff();
//Member button int fff();
// ------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------
// init
// ------------------------------------------------------------------------------------
System.onScriptLoaded()
{
target = getScriptGroup().findObject("skin.config.target");
buck = getScriptGroup().findObject("my.bucket");
last = NULL;
current = NULL;
//debugInt(guiobject.fff);ffff
// target.fff = 4;
// turn off all
GuiObject o = NULL;
turnAllOffExcept(o);
}
// ------------------------------------------------------------------------------------
// save scroller position
// ------------------------------------------------------------------------------------
/*System.onScriptUnloading()
{
if (buck)
{
setPrivateInt(getSkinName(), "", buck.getScroll());
}
}*/
// ------------------------------------------------------------------------------------
// turn on last open
// ------------------------------------------------------------------------------------
buck.onStartup()
{
//setScroll(getPrivateInt(getSkinName(), "settings_last_pos", 0));
Group g = buck.enumChildren(getPrivateInt(getSkinName(), "settings_last_pos", 0));
if (!g) g = buck.enumChildren(0);
if (!g) return;
ToggleButton btn = g.getObject("btn");
if (btn) btn.leftClick();
}
// ------------------------------------------------------------------------------------
// this is called by the bucket button to switch to a new group
// ------------------------------------------------------------------------------------
target.onAction(String action, String param, int x, int y, int p1, int p2, GuiObject source)
{
if (getToken(action,";",0) == "switchto")
{
String grp = getToken(action, ";", 1);
String is_subpage = getToken(action, ";", 2);
if (current != NULL)
{
last = current;
}
target.setXmlParam("groupid", grp);
current = getScriptGroup().findObject(grp);
// setPrivateInt(getSkinName(), "settings_last_pos", stringToInteger(param));
if (is_subpage!="subpage") turnAllOffExcept(source.getParent()); // getParent because the source is the button itself, the parent is the whole group item in the bucket
}
}
// Hack to hide last item
last.onTargetReached ()
{
if (getAlpha() == 0)
{
hide();
}
}
// ------------------------------------------------------------------------------------
// turn off all buttons except for the parameter, also save last_page param based on param item
// ------------------------------------------------------------------------------------
turnAllOffExcept(GuiObject except)
{
if (!buck) return;
int i=0;
// enumerate all inserted groups, turn them off if they're not our exception
while (i<buck.getNumChildren())
{
GuiObject obj = buck.enumChildren(i);
if (obj == except)
{ // otherwise record last page
setPrivateInt(getSkinName(), "settings_last_pos", i);
i++;
continue;
}
if (obj == NULL) { break; } // shoundnt happen
turnOff(obj);
i++;
}
// turn on the clicked item
if (except) turnOn(except);
}
// ------------------------------------------------------------------------------------
turnOn(GuiObject obj)
{
Group gobj = obj;
// otherwise we just need this :
ToggleButton tg = gobj.getObject("btn");
tg.setActivated(1);
}
// ------------------------------------------------------------------------------------
turnOff(GuiObject obj)
{
Group gobj = obj;
// otherwise we just need this :
ToggleButton tg = gobj.getObject("btn");
tg.setActivated(0);
}

View File

@ -0,0 +1,229 @@
/********************************************************\
** Filename: coverflow.m **
** Version: 1.0 **
** Date: 20. Nov. 2007 - 15:25 **
**********************************************************
** Type: winamp.wasabi/maki **
** Project: Cover Flow **
**********************************************************
** Author: Martin Poehlmann aka Deimos **
** E-Mail: martin@skinconsortium.com **
** Internet: http://www.skinconsortium.com **
** http://home.cs.tum.edu/~poehlman **
\********************************************************/
#include <lib/std.mi>
#include <lib/pldir.mi>
Function update();
Function fade (GuiObject o, int alpha, float s);
Class GuiObject AlbumCover;
Class AlbumCover playButton;
Global AlbumCover prev2, prev1, curr, next1, next2;
Global String sprev2, sprev1, scurr, snext1, snext2;
Global playButton bprev2, bprev1, bcurr, bnext1, bnext2;
Global text info;
#define CENTER_VAR SGrp
Global Group sg;
#include <lib/com/centerlayer.m>
#undef CENTER_VAR
Global PlEdit PleditListener;
Global Timer delay;
System.onScriptLoaded ()
{
sg = getScriptGroup();
PleditListener = new PlEdit;
prev2 = sg.getObject("aa.prev2");
prev1 = sg.getObject("aa.prev1");
curr = sg.getObject("aa.curr");
next1 = sg.getObject("aa.next1");
next2 = sg.getObject("aa.next2");
bprev2 = sg.getObject("play.prev2");
bprev1 = sg.getObject("play.prev1");
bcurr = sg.getObject("play.curr");
bnext1 = sg.getObject("play.next1");
bnext2 = sg.getObject("play.next2");
info = sg.getParent().findObject("info");
_SGrpInit(sg, sg.getParent(), 1, 0);
delay = new Timer;
delay.setDelay(10);
update();
}
System.onScriptUnloading ()
{
delete delay;
}
System.onTitleChange (String newtitle)
{
update();
}
update ()
{
int cur = PlEdit.getCurrentIndex();
int max = PlEdit.getNumTracks();
if (cur > 1)
{
prev2.setXmlParam("source", PlEdit.getFileName(cur-2));
prev2.show();
sprev2 = PlEdit.getTitle(cur-2);
}
else prev2.hide();
if (cur > 0)
{
prev1.setXmlParam("source", PlEdit.getFileName(cur-1));
prev1.show();
sprev1 = PlEdit.getTitle(cur-1);
}
else prev1.hide();
scurr = PlEdit.getTitle(cur);
if (cur < max-2)
{
next2.setXmlParam("source", PlEdit.getFileName(cur+2));
next2.show();
snext2 = PlEdit.getTitle(cur+2);
}
else next2.hide();
if (cur < max-1)
{
next1.setXmlParam("source", PlEdit.getFileName(cur+1));
next1.show();
snext1 = PlEdit.getTitle(cur+1);
}
else next1.hide();
}
PleditListener.onPleditModified ()
{
if (delay) delay.start();
}
delay.onTimer ()
{
delay.stop();
update();
}
AlbumCover.onRightButtonDown (int x, int y)
{
popupmenu p = new popupmenu;
p.addCommand("Get Album Art", 1, 0, 0);
p.addCommand("Refresh Album Art", 2, 0, 0);
p.addCommand("Open Folder", 3, 0, 0);
int result = p.popatmouse();
delete p;
String pis = getXmlParam("source");
if (pis == "") pis = system.getPlayItemString();
if (result == 1)
{
if (system.getAlbumArt(pis) > 0)
{
setXmlParam("notfoundimage", getXmlParam("notfoundimage")); // a nesty refresh - isn't it?
}
}
else if (result == 2)
{
setXmlParam("notfoundimage", getXmlParam("notfoundimage")); // a nesty refresh - isn't it?
}
else if (result == 3)
{
System.navigateUrl(getPath(pis));
}
}
AlbumCover.onLeftButtonDblClk (int x, int y)
{
if (AlbumCover == playButton)
return;
String pis = getXmlParam("source");
if (pis == "") pis = system.getPlayItemString();
System.navigateUrl(getPath(pis));
}
AlbumCover.onEnterArea ()
{
if (!findObject("aa." + getToken(getId(), ".", 1)).isVisible())
{
return;
}
int cur = PlEdit.getCurrentIndex();
if (AlbumCover == prev2 || AlbumCover == bprev2)
info.setText(sprev2);
else if (AlbumCover == prev1 || AlbumCover == bprev1)
info.setText(sprev1);
else if (AlbumCover == curr || AlbumCover == bcurr)
info.setText(scurr);
else if (AlbumCover == next1 || AlbumCover == bnext1)
info.setText(snext1);
else if (AlbumCover == next2 || AlbumCover == bnext2)
info.setText(snext2);
GuiObject o = sg.findObject("play." + getToken(getId(), ".", 1));
if (o )
{
fade(o, 255, 0.133);
}
}
AlbumCover.onLeaveArea ()
{
info.setText("");
GuiObject o = sg.findObject("play." + getToken(getId(), ".", 1));
if (o)
{
fade(o, 0, 0.3);
}
}
playButton.onLeftButtonUp (int x, int y)
{
int cur = PlEdit.getCurrentIndex();
if (playButton == bprev2)
PlEdit.playTrack(cur-2);
else if (playButton == bprev1)
PlEdit.playTrack(cur-1);
else if (playButton == bnext1)
PlEdit.playTrack(cur+1);
else if (playButton == bnext2)
PlEdit.playTrack(cur+2);
setAlpha(0);
info.setTexT("");
}
fade (GuiObject o, int alpha, float s)
{
o.cancelTarget();
o.setTargetA(alpha);
o.setTargetSpeed(s);
o.gotoTarget();
}

Binary file not shown.

View File

@ -0,0 +1,247 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: eq.m
Version: 2.0
Type: maki
Date: 25. Jun. 2007 - 11:30
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/winampconfig.mi>
#define CENTER_VAR eqGroup
#include <lib/com/centerlayer.m>
#define ISOBANDS "31.5 Hz,63 Hz,125 Hz,250 Hz,500 Hz,1 KHz,2 KHz,4 KHz,8 KHz,16 KHz"
#define WINAMPBANDS "70 Hz,180 Hz,320 Hz,600 Hz,1 KHz,3 KHz,6 KHz,12 KHz,14 KHz,16 KHz"
Class Button Eqbutton;
Member int EqButton.setTo;
Global Group frameGroup, buttongroup;
Global Slider slidercb, Balance;
Global Text fadertext;
Global Button CFIncrease, CFDecrease, eqon, eqauto;
Global ToggleButton Crossfade;
Global GuiObject CrossfadeActive, eqonActive, eqautoActive, SongTicker;
Global Int CrossfadeActive_Y, eqonActive_Y, eqautoActive_Y;
Global Eqbutton btnEQp12,btnEQ0,btnEQm12;
Global layer frequencyLabel;
System.onScriptLoaded()
{
buttongroup = getScriptGroup().findObject("player.cbuttons");
WinampConfigGroup eqwcg = WinampConfig.getGroup("{72409F84-BAF1-4448-8211-D84A30A1591A}");
int freqmode = eqwcg.getInt("frequencies"); // returns 0 for classical winamp levels, 1 for ISO levels
frameGroup = getScriptGroup();
_eqGroupInit(frameGroup.findObject("info.component.eq.content"), frameGroup, 1, 0);
slidercb = frameGroup.findObject("sCrossfade");
fadertext = frameGroup.findObject("CFDisplay");
CFIncrease = frameGroup.findObject("CrossfadeIncrease");
CFDecrease = frameGroup.findObject("CrossfadeDecrease");
Crossfade = frameGroup.findObject("Crossfade");
CrossfadeActive = frameGroup.findObject("CrossfadeActive");
CrossfadeActive_Y = CrossfadeActive.getGuiY();
eqon = frameGroup.findObject("eqonoff");
eqonActive = frameGroup.findObject("eqonoffActive");
eqonActive_Y = eqonActive.getGuiY();
eqauto = frameGroup.findObject("eqauto");
eqautoActive = frameGroup.findObject("eqautoActive");
eqautoActive_Y = eqautoActive.getGuiY();
btnEQp12 = frameGroup.findObject("EQ_p12");
btnEQp12.setTo = 127;
btnEQ0 = frameGroup.findObject("EQ_0");
btnEQ0.setTo = 0;
btnEQm12 = frameGroup.findObject("EQ_m12");
btnEQm12.setTo = -127;
Balance = frameGroup.findObject("Balance");
SongTicker = buttongroup.getParentLayout().findObject("songticker");
frequencyLabel = frameGroup.findObject("frequency.labels");
system.onEqFreqChanged(freqmode);
slidercb.onSetPosition(slidercb.getPosition());
Crossfade.onToggle(Crossfade.getActivated());
}
Balance.onSetPosition(int newpos)
{
string t=translate("Balance")+":";
if (newpos==127) t+= " " + translate("Center");
if (newpos<127) t += " " + integerToString((100-(newpos/127)*100))+"% "+translate("Left");
if (newpos>127) t += " " + integerToString(((newpos-127)/127)*100)+"% "+translate("Right");
SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
}
slidercb.onSetPosition(int val)
{
String s = IntegerToString(val);
fadertext.setText(s);
}
CFIncrease.onLeftClick()
{
slidercb.SetPosition(slidercb.getPosition()+1);
}
CFDecrease.onLeftClick()
{
slidercb.SetPosition(slidercb.getPosition()-1);
}
Crossfade.onToggle(boolean on)
{
if (!on)
{
fadertext.setAlpha(150);
CFIncrease.setAlpha(150);
CFDecrease.setXmlParam("ghost" , "1");
CFDecrease.setAlpha(150);
CFIncrease.setXmlParam("ghost" , "1");
CrossfadeActive.hide();
}
else
{
fadertext.setAlpha(255);
CFIncrease.setAlpha(255);
CFDecrease.setAlpha(255);
CFIncrease.setXmlParam("ghost" , "0");
CFDecrease.setXmlParam("ghost" , "0");
CrossfadeActive.show();
}
}
Global Boolean cfDown, onDown, autoDown, manual_set;
Crossfade.onLeftButtonDown (int x, int y)
{
cfDown = 1;
CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y+1));
}
Crossfade.onLeftButtonUp (int x, int y)
{
cfDown = 0;
CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y));
}
Crossfade.onleaveArea ()
{
CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y));
}
Crossfade.onEnterArea ()
{
if (cfDown) CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y+1));
}
eqon.onEnterArea ()
{
if (onDown) eqonActive.setXmlParam("y", integerToString(eqonActive_Y+1));
}
eqon.onLeftButtonDown (int x, int y)
{
onDown = 1;
eqonActive.setXmlParam("y", integerToString(eqonActive_Y+1));
}
eqon.onLeftButtonUp (int x, int y)
{
onDown = 0;
eqonActive.setXmlParam("y", integerToString(eqonActive_Y));
}
eqon.onleaveArea ()
{
eqonActive.setXmlParam("y", integerToString(eqonActive_Y));
}
eqauto.onLeftButtonDown (int x, int y)
{
autoDown = 1;
eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y+1));
}
eqauto.onLeftButtonUp (int x, int y)
{
autoDown = 0;
eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y));
}
eqauto.onleaveArea ()
{
eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y));
}
eqauto.onEnterArea ()
{
if (autoDown) eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y+1));
}
EqButton.onLeftClick()
{
manual_set = 1;
for(int i=0; i<10; i++) setEqBand(i, EqButton.setTo);
manual_set = 0;
}
System.onEqFreqChanged (boolean isoonoff)
{
if (isoonoff == 1)
{
frequencyLabel.setXmlParam("image", "equalizer.labels.iso");
for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(ISOBANDS,",",i));
}
else
{
frequencyLabel.setXmlParam("image", "equalizer.labels.winamp");
for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(WINAMPBANDS,",",i));
}
}
system.onEqBandChanged(int band, int value)
{
if (manual_set) return;
String t;
Float f = value;
f = f / 10.5;
WinampConfigGroup eqwcg = WinampConfig.getGroup("{72409F84-BAF1-4448-8211-D84A30A1591A}");
if (eqwcg.getInt("frequencies") == 1) {
if (f >= 0) t = "EQ: " + translate(getToken(ISOBANDS,",",band)) + ": +" + floattostring(f, 1) + " "+ translate("dB");
else t = "EQ: " + translate(getToken(ISOBANDS,",",band)) + ": " + floattostring(f, 1) + " "+ translate("dB");
}
else {
if (f >= 0) t = "EQ: " + translate(getToken(WINAMPBANDS,",",band)) + ": +" + floattostring(f, 1) + " "+ translate("dB");
else t = "EQ: " + translate(getToken(WINAMPBANDS,",",band)) + ": " + floattostring(f, 1) + " "+ translate("dB");
}
SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
}
system.onEqPreampChanged(int value)
{
slider s = getScriptGroup().findObject("preamp");
value = s.getPosition(); // Somehow this function returns a range from [-127;125] with hotpos -3, so we take the slider instead
String t = "EQ: " + translate("Preamp:") + " ";
Float f = value;
f = f / 10.5;
if (f >= 0) t += "+"+floattostring(f, 1) + " "+ translate("dB");
else t += floattostring(f, 1) + " "+ translate("dB");
SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,145 @@
#include <lib/std.mi>
#define GUID_DROPBOX "{E2E4AD32-D87B-4B9E-BF58-46A1336DDC8F}"
#define GUID_DROPBOX_ "{E2E4AD32-D87B-4b9e-BF58-46A1336DDC8F}"
#define USE_BIG_HACK
Global Frame dualwnd;
Global Group sui_window;
Global Group dropbox;
Global Timer box_tmr;
Global windowholder dropbox_wdh;
Global Container main;
Global int MIN_WIDTH;
System.onScriptLoaded ()
{
dualwnd = getScriptGroup().findObject("wdh.ml.dualwnd");
sui_window = getScriptGroup().getParentLayout().findObject("sui.content");
dropbox = dualwnd.findObject("wdh.ml.dualwnd.dropbox");
dropbox_wdh = dropbox.findObject("wdh");
main = dropbox.getParentLayout().getContainer();
//showWindow(GUID_DROPBOX, "", false);
MIN_WIDTH = stringToInteger(dualwnd.getXmlParam("minwidth"));
dualwnd.setXmlParam("resizable", "0");
dualwnd.setPosition(0);
box_tmr = new Timer;
box_tmr.setDelay(1);
}
System.onScriptUnloading ()
{
delete box_tmr;
int w = dualwnd.getPosition();
if (w >= MIN_WIDTH)
{
setPrivateInt(getSkinName(), "gen_dropbox_poppler", w);
}
}
#ifdef 0
Global Boolean gettingclosed;
System.onGetCancelComponent (String guid, boolean goingvisible)
{
if (guid != GUID_DROPBOX)
{
return FALSE;
}
if (goingvisible && !gettingclosed)
{
box_tmr.start();
return TRUE;
}
else
{
if (gettingclosed)
{
gettingclosed = false;
}
else
{
/*int w = dualwnd.getPosition();
if (w >= MIN_WIDTH)
{
setPrivateInt(getSkinName(), "gen_dropbox_poppler", w);
}
dualwnd.setXmlParam("resizable", "0");
dualwnd.setPosition(0);*/
}
}
RETURN FALSE;
}
box_tmr.onTimer ()
{
box_tmr.stop();
int w = getPrivateInt(getSkinName(), "gen_dropbox_poppler", 200);
if (w < MIN_WIDTH)
w = MIN_WIDTH;
dualwnd.setXmlParam("resizable", "1");
System.showWindow("{6B0EDF80-C9A5-11D3-9F26-00C04F39FFC6}", "", 0);
//sui_window.sendAction("opentab", "ml", 0,0,0,0);
dualwnd.setPosition(w);
dropbox.hide();
dropbox_wdh.hide();
//dropbox_wdh.setXMLParam("hold", "");
dropbox_wdh.show();
//dropbox_wdh.setXMLParam("hold", "@all@");
dropbox.show();
}
#ifdef USE_BIG_HACK
sui_window.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "callback")
{
if (param == "onbeforehidesui")
{
/*//dualwnd.setPosition(0);
//dropbox.findObject("wdh").setXmlParam("relatw", "0");
//dropbox.findObject("wdh").setXmlParam("w", "0");
int i = dualwnd.getLeft() + dualwnd.getWidth();
dualwnd.setShaded(dualwnd.clientToScreenX(dualwnd.getLeft() +dualwnd.getWidth()),dualwnd.clientToScreenX(dualwnd.getLeft() + dualwnd.getWidth()-dualwnd.getPosition()-4));
debugInt(dualwnd.clientToScreenX(dualwnd.getLeft() +dualwnd.getWidth()));*/
dropbox.hide();
gettingclosed = true;
//dualwnd.setPosition(0);
}
else if (param == "onshowsui")
{
//dualwnd.setPosition(200);
}
}
}
main.onBeforeSwitchToLayout (Layout oldlayout, Layout newlayout)
{
if (newLayout.getID() == "shade")
{
dropbox.hide();
gettingclosed = true;
}
}
#endif
#endif

Binary file not shown.

View File

@ -0,0 +1,83 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: hoverstimulate.m
Version: 1.0
Type: maki
Date: 03. Jul. 2007 - 23:09
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Button mainButton;
Global Layer overlay;
Global Boolean mouseDown;
Global String img_normal, img_hover, img_down, img_active;
System.onScriptLoaded ()
{
mainButton = getScriptGroup().findObject(getToken(getParam(), ";", 0));
overlay = getScriptGroup().findObject(getToken(getParam(), ";", 1));
img_normal = getToken(getParam(), ";", 2);
img_hover = getToken(getParam(), ";", 3);
img_down = getToken(getParam(), ";", 4);
img_active = getToken(getParam(), ";", 5);
}
mainButton.onSetVisible (Boolean onoff)
{
if (onoff)
{
overlay.show();
}
else
{
overlay.hide();
}
}
mainButton.onLeftButtonDown (int x, int y)
{
mouseDown = 1;
if (img_down != "NULL") overlay.setXmlParam("image", img_down);
}
mainButton.onLeftButtonUp (int x, int y)
{
mouseDown = 0;
if (img_hover != "NULL" && !getActivated() && isMouseOverRect()) overlay.setXmlParam("image", img_hover);
}
mainButton.onleaveArea ()
{
if (!getActivated())
{
if (img_normal != "NULL") overlay.setXmlParam("image", img_normal);
}
else
{
if (img_active != "NULL") overlay.setXmlParam("image", img_active);
}
}
mainButton.onEnterArea ()
{
if (img_hover != "NULL") overlay.setXmlParam("image", img_hover);
}
mainButton.onActivate (int activated)
{
if (activated)
{
if (img_active != "NULL") overlay.setXmlParam("image", img_active);
}
else
{
if (img_normal != "NULL") overlay.setXmlParam("image", img_normal);
}
}

View File

@ -0,0 +1,99 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: imagecontrol.m
Version: 1.0
Type: maki
Date: 29. Jun. 2007 - 12:28
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/config.mi>
Function updateAttrib ();
Class ConfigAttribute ImageAttribute;
Global ImageAttribute a1, a2, a3, a4, a5, a6;
Global String img1, img2, img3, img4, img5, img6;
Global layer Display;
Global boolean myChange;
System.onScriptLoaded ()
{
string param = getParam();
string objects = getToken(param, "|", 0);
group scriptGroup = getScriptGroup();
Display = scriptGroup.findObject(objects);
int n = stringToInteger(getToken(param, "|", 1)) + 1;
int i = 2;
if (i <= n)
{
objects = getToken(param, "|", i);
a1 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img1 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a2 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img2 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a3 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img3 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a4 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img4 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a5 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img5 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a6 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img6 = getToken(objects, ";", 2);
i++;
}
updateAttrib ();
}
ImageAttribute.onDataChanged ()
{
if (myChange) return;
updateAttrib ();
}
updateAttrib ()
{
myChange = 1;
if (a1) if (a1.getData() == "1") Display.setXmlParam("image", img1);
if (a2) if (a2.getData() == "1") Display.setXmlParam("image", img2);
if (a3) if (a3.getData() == "1") Display.setXmlParam("image", img3);
if (a4) if (a4.getData() == "1") Display.setXmlParam("image", img4);
if (a5) if (a5.getData() == "1") Display.setXmlParam("image", img5);
if (a6) if (a6.getData() == "1") Display.setXmlParam("image", img6);
myChange = 0;
}

View File

@ -0,0 +1,44 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: infoline.m
Version: 1.0
Type: maki
Date: 06. Nov. 2007 - 22:40
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Text txt;
Global Text label;
Global Layer link;
Global Group sg;
Global Int shift = 0;
System.onScriptLoaded ()
{
sg = getScriptGroup();
txt = sg.getObject("text");
label = sg.getObject("label");
link = sg.getObject("link");
}
System.onSetXuiParam (String param, String value)
{
if (strlower(param) == "shift") shift = stringToInteger(value);
if (strlower(param) == "label") label.setText(value);
if (strlower(param) == "link") link.setXmlparam("tooltip", value);
}
label.onTextChanged (String newtxt)
{
int w = label.getAutoWidth() + shift;
txt.setXmlParam("x", integerToString(w));
txt.setXmlParam("w", integerToString(-w));
}

Binary file not shown.

View File

@ -0,0 +1,52 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: debug.m
Version: 1.2
Type: maki/attrib loader
Date: 29. Aug. 2006 - 23:43
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef DEBUG
#define debugString //
#endif
#ifdef DEBUG
#define DEBUG_PREFIX "["+ FILE_NAME +": " + getTimeStamp() + "] " +
Function String getTimeStamp();
String getTimeStamp()
{
int msc = getTimeOfDay();
int h = msc / 1000 / 3600;
msc -= h * 1000 * 3600;
int m = msc / 1000 / 60;
msc -= m * 1000 * 60;
int s = msc / 1000;
msc -= s * 1000;
string zeros = "";
if (msc < 100)
{
zeros += "0";
}
if (msc < 10)
{
zeros += "0";
}
return integerToString(h)+":"+integerToString(m)+":"+integerToString(s)+"."+zeros+integerToString(msc);
}
#define D_WTF 9
#define D_NWTF 9
#endif

View File

@ -0,0 +1,111 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: glow.m
Version: 1.0
Type: maki/glow class
Date: 16. Jun. 2007 - 23:13
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Usage: 1: #include glow.m
2: #define GLOW_OBJECT MyGlow
3: call _MyGlow_GlowInit (someObj, otherObj)
to init the objects.
You can also call _MyGlow_GlowInit (NULL, otherObj)
and load a bunch of GuiObjects in _MyGlow_GlowTrigger
or load up to 5 objects via _MyGlow_addTarget(obj);
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef GLOW_OBJECT
#error GLOW_OBJECT not defined!
#endif
Class GuiObject _##GLOW_OBJECT##_GlowTrigger;
Global _##GLOW_OBJECT##_GlowTrigger _##GLOW_OBJECT##_trigger0, _##GLOW_OBJECT##_trigger1, _##GLOW_OBJECT##_trigger2, _##GLOW_OBJECT##_trigger3, _##GLOW_OBJECT##_trigger4, _##GLOW_OBJECT##_trigger5;
Global GuiObject _##GLOW_OBJECT##_glow;
Global float _##GLOW_OBJECT##_fdoutspeed;
Global boolean _##GLOW_OBJECT##_mouseDown;
Function _##GLOW_OBJECT##_GlowInit (GuiObject triggerObject, GuiObject glowObject, float fdoutspeed);
Function _##GLOW_OBJECT##_addTrigger (GuiObject triggerObject);
_##GLOW_OBJECT##_GlowInit (GuiObject triggerObject, GuiObject glowObject, float fdoutspeed)
{
if (triggerObject) _##GLOW_OBJECT##_trigger0 = triggerObject;
if (glowObject) _##GLOW_OBJECT##_glow = glowObject;
_##GLOW_OBJECT##_fdoutspeed = fdoutspeed;
}
_##GLOW_OBJECT##_addTrigger(GuiObject triggerObject)
{
if (triggerObject)
{
if (!_##GLOW_OBJECT##_trigger1)
{
_##GLOW_OBJECT##_trigger1 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger2)
{
_##GLOW_OBJECT##_trigger2 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger3)
{
_##GLOW_OBJECT##_trigger3 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger4)
{
_##GLOW_OBJECT##_trigger4 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger5)
{
_##GLOW_OBJECT##_trigger5 = triggerObject;
return;
}
}
}
_##GLOW_OBJECT##_GlowTrigger.onEnterArea ()
{
_##GLOW_OBJECT##_glow.cancelTarget();
_##GLOW_OBJECT##_glow.setAlpha(255);
}
_##GLOW_OBJECT##_GlowTrigger.onLeftButtonDown (int x, int y)
{
_##GLOW_OBJECT##_mouseDown = 1;
_##GLOW_OBJECT##_glow.cancelTarget();
_##GLOW_OBJECT##_glow.setAlpha(0);
}
_##GLOW_OBJECT##_GlowTrigger.onLeftButtonUp (int x, int y)
{
_##GLOW_OBJECT##_mouseDown = 0;
_##GLOW_OBJECT##_glow.cancelTarget();
if (_##GLOW_OBJECT##_GlowTrigger.isMouseOverRect()) _##GLOW_OBJECT##_glow.setAlpha(255);
}
_##GLOW_OBJECT##_GlowTrigger.onLeaveArea ()
{
if (_##GLOW_OBJECT##_mouseDown) return;
_##GLOW_OBJECT##_glow.cancelTarget();
_##GLOW_OBJECT##_glow.setTargetA(0);
_##GLOW_OBJECT##_glow.setTargetX(_##GLOW_OBJECT##_glow.getGuiX());
_##GLOW_OBJECT##_glow.setTargetSpeed(_##GLOW_OBJECT##_fdoutspeed);
_##GLOW_OBJECT##_glow.gotoTarget();
}
#undef GLOW_OBJECT

View File

@ -0,0 +1,89 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: loadattribs.m
Version: 1.2
Type: maki/attrib loader
Date: 29. Aug. 2006 - 23:43
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#define MAIN_ATTRIBS_MGR
#define MAIN_ATTRIBS_LOADER
#include <lib/std.mi>
#include attribs/init_windowpage.m
#include attribs/init_playlist.m
#include attribs/init_Autoresize.m
#include attribs/init_Vis.m
#include attribs/init_appearance.m
#include attribs/init_songticker.m
#include attribs/init_notifier.m
Global Configattribute FontRenderer, findOpenRect;
Global String FontRenderer_default, findOpenRect_default;
Global configAttribute skin_attrib;
System.onScriptLoaded()
{
initAttribs_Appearance();
initAttribs_Songticker();
initAttribs_Autoresize();
initAttribs_notifier();
initAttribs_Vis();
//without optionsmenu entry:
initAttribs_windowpage();
initAttribs_Playlist();
// Add skin switcher to Appearance menu
addMenuSeparator(custom_page_appearance);
if (getParam() == "big")
{
skin_attrib = custom_page_appearance.newAttribute("Switch to Bento with Small Buttons", "0");
}
else
{
skin_attrib = custom_page_appearance.newAttribute("Switch to Bento with Big Buttons", "0");
}
// Turn 'find open rect' temporary off
findOpenRect = config.getItemByGuid("{280876CF-48C0-40BC-8E86-73CE6BB462E5}").getAttribute("Find open rect");
findOpenRect_default = findOpenRect.getData();
findOpenRect.setData("0");
}
System.onScriptUnloading ()
{
findOpenRect.setData(findOpenRect_default);
}
findOpenRect.onDataChanged ()
{
if (getData() == "0") return;
findOpenRect.setData("0");
}
global boolean passtrough;
skin_attrib.onDataChanged ()
{
if (passtrough)
{
return;
}
passtrough = TRUE;
setData("0");
if (getParam() == "big") switchSkin("Bento");
else switchSkin("Big Bento");
passtrough = FALSE;
}

Binary file not shown.

View File

@ -0,0 +1,164 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: songinfo.m
Version: 1.0
Type: maki
Date: 20. Nov. 2006 - 22:47
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Class Layer LinkedLayer;
Function initLL(linkedLayer l);
Function fadeLL(linkedLayer l, boolean in);
Function setLL(linkedLayer l, boolean in);
Global Group MenuBar;
Global GuiObject mousetrap;
Global Int texth;
Global LinkedLayer _play, _options, _file, _view, _help;
Global int xpos;
Global guiObject titlebargrid;
System.onScriptLoaded()
{
initAttribs_Appearance();
MenuBar = getscriptgroup().findobject("player.mainmenu");
xpos = 0;
titlebargrid = getScriptGroup().findObject("titlebar.grid.right");
_file = MenuBar.getObject("menu.text.file");
initLL(_file);
_play = MenuBar.getObject("menu.text.play");
initLL(_play);
_options = MenuBar.getObject("menu.text.options");
initLL(_options);
_view = MenuBar.getObject("menu.text.view");
initLL(_view);
_help = MenuBar.getObject("menu.text.help");
initLL(_help);
mousetrap = MenuBar.findObjecT("menu.hidden.mousetrap");
texth = _file.getGuiH();
if (menubar_main_attrib.getData() == "1")
{
_options.setXmlParam("h", integerToString(texth));
_file.setXmlParam("h", integerToString(texth));
_help.setXmlParam("h", integerToString(texth));
_view.setXmlParam("h", integerToString(texth));
_play.setXmlParam("h", integerToString(texth));
mousetrap.hide();
}
else
{
_options.setXmlParam("h", "0");
_file.setXmlParam("h", "0");
_help.setXmlParam("h", "0");
_view.setXmlParam("h", "0");
_play.setXmlParam("h", "0");
mousetrap.show();
}
}
menubar_main_attrib.onDataChanged() {
if (getData() == "1")
{
mousetrap.hide();
fadeLL(_play, 1);
fadeLL(_view, 1);
fadeLL(_help, 1);
fadeLL(_file, 1);
fadeLL(_options, 1);
}
else
{
mousetrap.show();
fadeLL(_play, 0);
fadeLL(_view, 0);
fadeLL(_help, 0);
fadeLL(_file, 0);
fadeLL(_options, 0);
}
}
System.onAccelerator(String action, String section, String key) {
if (menubar_main_attrib.getData() == "0") return;
Layout l = getScriptGroup().getParentLayout();
if (!l.isActive()) return;
if (action == "MENUHOTKEY_FILE")
{
MenuBar.findObject("file.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_PLAY")
{
MenuBar.findObject("play.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_OPTIONS")
{
MenuBar.findObject("options.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_VIEW")
{
MenuBar.findObject("view.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_HELP")
{
MenuBar.findObject("help.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
}
initLL (LinkedLayer l)
{
int w = l.getAutoWidth();
String id = getToken(l.getId(), ".", 2);
GuiObject o = MenuBar.findObject("menu.layer." + id + ".normal");
if (o) o.setXmlParam("w", integerToString(w));
if (o) o.setXmlParam("x", integerToString(xpos));
o = MenuBar.findObject("menu.layer." + id + ".hover");
if (o) o.setXmlParam("w", integerToString(w));
if (o) o.setXmlParam("x", integerToString(xpos));
o = MenuBar.findObject("menu.layer." + id + ".down");
if (o) o.setXmlParam("w", integerToString(w));
if (o) o.setXmlParam("x", integerToString(xpos));
Menu m = MenuBar.findObject(id + ".menu");
if (m) m.setXmlParam("w", integerToString(w));
if (m) m.setXmlParam("x", integerToString(xpos));
l.setXmlParam("x", integerToString(xpos));
xpos += w;
}
fadeLL (linkedLayer l, boolean in)
{
l.cancelTarget();
l.setTargetH(texth*in);
l.setTargetSpeed(0.5);
l.gotoTarget();
}

Binary file not shown.

View File

@ -0,0 +1,648 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: maximize.m
Version: 3.4
Type: maki
Date: 13. Sep. 2007 - 15:05
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_Autoresize.m
Function setImages(boolean isMaximized);
Function maximizeShade(boolean save);
Function restoreShade();
Function maximizePlayer(boolean save);
Function restorePlayer();
Function setWndToScreen();
#define SAVEPOS_SHADE 2
#define SAVEPOS_NORMAL 1
#define SAVEPOS_ALL 0
Function savePos(int code);
Class GuiObject Mousetrap;
Global Button Maximize, MaximizeShade, Restore, RestoreShade;
Global Mousetrap noResizerTB, MousetrapTB, MousetrapShade, MousetrapMenu;
Global Layout normal, shade;
Global Boolean tgst;
Global Layer resizer, noResizer, resizerShade, resizerShade2, topResizer;
Global Container player;
Global GuiObject shadeticker, slamclose;
Global Group regions, regionsShade;
Global Layer regionBlack, regionBlackShade;
Global Int DEFAULT_PLAYER_H, DEFAULT_SHADE_H;
Global Int old_x, old_y, old_h, old_w;
System.onScriptLoaded ()
{
initAttribs_Autoresize();
player = System.getContainer("main");
normal = player.getLayout("normal");
Maximize = normal.findObject("player.titlebar.button.maximize");
Restore = normal.findObject("player.titlebar.button.restore");
MousetrapTB = normal.findObject("player.mousetrap.maximize");
resizer = normal.findObject("player.resizer.bottomright");
noResizer = normal.findObject("player.resizer.disable");
noResizerTB = normal.findObject("titlebar.resizer.disable");
regions = normal.findObject("window.background.regions");
regionBlack = normal.findObject("window.background.maximize");
topResizer = normal.findObject("titlebar.resizer.top");
slamclose = normal.findObject("maximize.slam.close");
MousetrapMenu = normal.findObject("menu.hidden.mousetrap");
shade = player.getLayout("shade");
shadeticker = shade.findObject("Songticker");
MaximizeShade = shade.findObject("shade.button.maximize");
RestoreShade = shade.findObject("shade.button.restore");
resizerShade = shade.findObject("shade.resizer.right");
resizerShade2 = shade.findObject("shade.resizer.right2");
MousetrapShade = shade.findObject("shade.mousetrap");
regionsShade = Shade.findObject("window.background.regions");
regionBlackShade = Shade.findObject("window.background.maximize");
DEFAULT_PLAYER_H = stringToInteger(getToken(getParam(), "," , 0));
DEFAULT_SHADE_H = stringToInteger(getToken(getParam(), "," , 1));
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (FALSE);
maximizeShade (FALSE);
setImages (1);
}
else
{
if (getPrivateInt(getSkinName(), "First Start", 1)) setWndToScreen();
else
{
restorePlayer ();
restoreShade ();
}
}
}
// ------------------------------------------------------------------------------
// Cope with viewport changes so we're happy with Windows 8.x snapping mode, etc
// ------------------------------------------------------------------------------
System.onViewPortChanged(int width, int height)
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
if (normal == player.getCurLayout()) maximizePlayer (FALSE);
else if (shade == player.getCurLayout()) maximizeShade (FALSE);
}
}
// ------------------------------------------------------------------------------
// Save all our window positions on skin unloading
// ------------------------------------------------------------------------------
System.onScriptUnloading ()
{
// if (player.getCurLayout() == normal) savePos(SAVEPOS_NORMAL);
// else if (player.getCurLayout() == shade) savePos(SAVEPOS_SHADE);
}
// ------------------------------------------------------------------------------
// Prohibit autoresizing by Video if we're in maximized player (layout_normal)
// ------------------------------------------------------------------------------
sui_autorsize_attrib.onDataChanged ()
{
if (getData() == "1")
{
normal.setXMLParam("lockminmax", "0");
}
else
{
double d = normal.getScale();
if (normal.getLeft() == getViewportLeft() && normal.getTop() == getViewportTop() && normal.getWidth() == getViewPortWidthfromGuiObject(normal)/d && normal.getHeight() == getViewPortHeightfromGuiObject(normal)/d)
{
normal.setXMLParam("lockminmax", "1");
}
}
}
System.onKeyDown (String key)
{
if (key == "ctrl+w" && (shade.isActive() || normal.isActive()))
{
if (shade != player.getCurLayout())
{
player.switchToLayout("shade");
}
else
{
player.switchToLayout("normal");
}
complete;
}
}
// ------------------------------------------------------------------------------
// Button clicks
// ------------------------------------------------------------------------------
Maximize.onLeftClick ()
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (TRUE);
}
}
Restore.onLeftClick ()
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
restorePlayer ();
}
}
MaximizeShade.onLeftClick ()
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
restoreShade ();
}
else
{
maximizeShade (TRUE);
}
}
RestoreShade.onLeftClick ()
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
restoreShade ();
}
else
{
maximizeShade (TRUE);
}
}
/** This will detect the second down click */
Mousetrap.onLeftButtonDblClk (int x, int y)
{
tgst = true;
}
/** Once the button gets up, we'll toggle the maximized state */
mousetrap.onLeftButtonUp (int x, int y)
{
if (tgst)
{
if (shade == player.getCurLayout())
{
if (titlebar_dblclk_max_attib.getData() == "1")
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizeShade (TRUE);
}
else
{
restoreShade();
}
}
else
{
player.switchToLayout("normal");
}
}
else
{
if (titlebar_dblclk_max_attib.getData() == "1")
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (TRUE);
}
else
{
restorePlayer();
}
}
else
{
player.switchToLayout("shade");
}
}
}
tgst = false;
}
topResizer.onLeftButtonDblClk (int x, int y)
{
if (titlebar_dblclk_max_attib.getData() == "1")
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (TRUE);
}
else
{
restorePlayer();
}
}
else
{
player.switchToLayout("shade");
}
}
// ------------------------------------------------------------------------------
// Detect maximized states on window resize
// ------------------------------------------------------------------------------
normal.onEndMove ()
{
savePos(SAVEPOS_NORMAL);
}
normal.onResize (int x, int y, int w, int nh)
{
//debugString("onResize("+integertoString(x)+","+integertoString(y)+","+integertoString(w)+","+integertoString(nh)+");", 9);
y = normal.getTop();
// prohibit to set nh = 0
if (nh == 0 || w == 0)
{
//debug("error setting player_normal w=" + integerToString(w) + " , h=" + integerToString(nh));
normal.resize(getLeft(), getTop(), getWidth(), DEFAULT_PLAYER_H);
return;
}
if (normal != player.getCurLayout()) return;
if (old_x == x && old_y == y && old_h = nh && old_w == w) return;
old_x = x; old_y = y; old_h = nh; old_w = w;
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
double d = normal.getScale();
if (w == getViewPortWidthfromGuiObject(normal)/d && x == getViewportLeft() && y == getViewportTop())
{
//setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
//setImages (1);
}
else
{
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
}
else
{
double d = normal.getScale();
if (w == getViewPortWidthfromGuiObject(normal)/d && nh == getViewPortHeightfromGuiObject(normal)/d)
{
//setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
//setImages (1);
}
else
{
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
}
savePos(SAVEPOS_NORMAL);
}
shade.onEndMove ()
{
savePos(SAVEPOS_SHADE);
}
shade.onResize (int x, int y, int w, int nh)
{
y = shade.getTop();
// prohibit to set nh = 0
if (nh == 0 || w == 0)
{
debug("error setting player_shade w=" + integerToString(w) + " , h=" + integerToString(nh));
shade.resize(getLeft(), getTop(), getWidth(), DEFAULT_SHADE_H);
return;
}
if (shade != player.getCurLayout()) return;
if (old_x == x && old_y == y && old_h = nh && old_w == w) return;
old_x = x; old_y = y; old_h = nh; old_w = w;
double d = shade.getScale();
if (w == getViewPortWidthfromGuiObject(shade)/d && y == getViewportTop() && x == getViewportLeft())
{
//setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
//setImages (1);
}
else
{
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
savePos(SAVEPOS_SHADE);
}
// ------------------------------------------------------------------------------
// Resize our window on scale if we are maximized
// ------------------------------------------------------------------------------
normal.onScale (Double newscalevalue)
{
if (normal != player.getCurLayout()) return;
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer(FALSE);
}
savePos(SAVEPOS_NORMAL);
}
shade.onScale (Double newscalevalue)
{
if (shade != player.getCurLayout()) return;
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizeShade(FALSE);
}
savePos(SAVEPOS_SHADE);
}
// ------------------------------------------------------------------------------
// Before we switch between layouts, check all images and window sizes
// ------------------------------------------------------------------------------
player.onBeforeSwitchToLayout (Layout _layoutnow, Layout _layouttobe)
{
if (_layoutnow == normal) savePos(SAVEPOS_NORMAL);
else if (_layoutnow == shade) savePos(SAVEPOS_SHADE);
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
if (_layouttobe == normal) maximizePlayer (FALSE);
else if (_layouttobe == shade) maximizeShade (FALSE);
setImages (1);
}
else
{
if (_layouttobe == normal) restorePlayer ();
else if (_layouttobe == shade) restoreShade ();
}
}
// ------------------------------------------------------------------------------
// Save wnd position before we go to collapsed state
// ------------------------------------------------------------------------------
normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "sui" && param == "tonocomp" && x == 0)
{
savePos (SAVEPOS_NORMAL);
}
}
// ******************************************************************************
// Our Function Handles
// ******************************************************************************
setImages (boolean isMaximized)
{
if (isMaximized)
{
// Normal
Maximize.hide();
Restore.show();
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
MousetrapTB.setXMLparam("move", "0");
MousetrapMenu.setXMLparam("move", "0");
noResizerTB.setXMLparam("ghost", "0");
}
else
{
MousetrapTB.setXMLparam("move", "0");
MousetrapMenu.setXMLparam("move", "0");
noResizerTB.setXMLparam("ghost", "0");
}
if (sui_autorsize_attrib.getData() == "0") normal.setXMLParam("lockminmax", "1");
else normal.setXMLParam("lockminmax", "0");
resizer.hide();
noResizer.show();
regions.hide();
regionBlack.show();
// Shade
MousetrapShade.setXMLparam("move", "0");
shadeticker.setXmlParam("move", "0");
MaximizeShade.hide();
RestoreShade.show();
resizerShade.hide();
regionsShade.hide();
resizerShade2.hide();
regionBlackShade.show();
slamclose.show();
}
else
{
// Normal
resizer.show();
noResizer.hide();
MousetrapTB.setXMLparam("move", "1");
noResizerTB.setXMLparam("ghost", "1");
MousetrapMenu.setXMLparam("move", "1");
normal.setXMLParam("lockminmax", "0");
Maximize.show();
Restore.hide();
regions.show();
regionBlack.hide();
// Shade
MousetrapShade.setXMLparam("move", "1");
shadeticker.setXmlParam("move", "1");
resizerShade.show();
resizerShade2.show();
MaximizeShade.show();
RestoreShade.hide();
regionsShade.show();
regionBlackShade.hide();
slamclose.hide();
}
}
maximizeShade (boolean save)
{
if (save)
{
savePos(SAVEPOS_SHADE);
setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
setImages (1);
}
double newscalevalue = shade.getScale();
int sh = shade.getHeight();
if (sh < 1) sh = DEFAULT_SHADE_H;
shade.resize(getViewPortLeftfromGuiObject(shade),getViewPortTopfromGuiObject(shade),getViewportWidthfromGuiObject(shade)/newscalevalue, sh);
}
restoreShade ()
{
if (link_w_attrib.getData() == "0")
{
shade.resize(
getPrivateInt(getSkinName(), "shade_nomax_x", shade.getLeft()),
getPrivateInt(getSkinName(), "shade_nomax_y", shade.getTop()),
getPrivateInt(getSkinName(), "shade_nomax_w", 500),
DEFAULT_SHADE_H
);
}
else
{
shade.resize(
getPrivateInt(getSkinName(), "nomax_x", shade.getLeft()),
getPrivateInt(getSkinName(), "nomax_y", shade.getTop()),
getPrivateInt(getSkinName(), "nomax_w", 700),
DEFAULT_SHADE_H
);
}
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
maximizePlayer (boolean save)
{
if (save)
{
savePos(SAVEPOS_NORMAL);
setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
setImages (1);
}
double newscalevalue = normal.getScale();
int nh;
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
nh = DEFAULT_PLAYER_H;
}
else
{
nh = getViewPortHeightfromGuiObject(normal)/newscalevalue;
}
if (nh < 1) nh = DEFAULT_PLAYER_H;
normal.resize(getViewPortLeftfromGuiObject(normal), getViewPortTopfromGuiObject(normal), getViewPortWidthfromGuiObject(normal)/newscalevalue, nh);
}
restorePlayer ()
{
//messagebox("restorePlayer", "", 0, "");
int x, y, w, h;
x = getPrivateInt(getSkinName(), "nomax_x", normal.getLeft());
y = getPrivateInt(getSkinName(), "nomax_y", normal.getTop());
w = getPrivateInt(getSkinName(), "nomax_w", normal.getWidth());
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
h = DEFAULT_PLAYER_H;
}
else
{
h = getPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
}
// check if player_w is too small
if (w < stringToInteger(normal.getXmlParam("minimum_w"))) w = stringToInteger(normal.getXmlParam("minimum_w"));
normal.resize(x, y, w, h);
normal.sendAction("pledit_posupdate", "", 0,0,0,0);
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
savePos (int code)
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
if (code == SAVEPOS_NORMAL || code == SAVEPOS_ALL)
{
if (getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden")
{
int nnh = normal.getHeight();
//martin> i really dunno why i've added this code:
//if (nnh > 0 && nnh < 200) setPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
//So lets try it again w/o switch in order to fix resizing - goto shade - goback - size not remembered bug
if (nnh > 200) setPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
// ^ otherwise we save in collapsed mode
}
setPrivateInt(getSkinName(), "nomax_x", normal.getLeft());
setPrivateInt(getSkinName(), "nomax_y", normal.getTop());
if (normal.getWidth() > 0) setPrivateInt(getSkinName(), "nomax_w", normal.getWidth());
//debugInt(getPrivateInt(getSkinName(), "nomax_w", normal.getWidth()));
}
if (code == SAVEPOS_SHADE || code == SAVEPOS_ALL)
{
if (link_w_attrib.getData() == "0")
{
setPrivateInt(getSkinName(), "shade_nomax_x", shade.getLeft());
setPrivateInt(getSkinName(), "shade_nomax_y", shade.getTop());
if (shade.getWidth() > 0) setPrivateInt(getSkinName(), "shade_nomax_w", shade.getWidth());
}
else
{
if (shade.getWidth() > 0) setPrivateInt(getSkinName(), "nomax_w", shade.getWidth());
setPrivateInt(getSkinName(), "nomax_x", shade.getLeft());
setPrivateInt(getSkinName(), "nomax_y", shade.getTop());
}
//debugInt(getPrivateInt(getSkinName(), "nomax_w", shade.getWidth()));
//debugInt(getPrivateInt(getSkinName(), "shade_nomax_w", shade.getWidth()));
}
}
if (code == SAVEPOS_NORMAL || code == SAVEPOS_ALL)
{
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden") setPrivateInt(getSkinName(), "nomax_y_h", normal.getTop());
}
//debugInt(getPrivateInt(getSkinName(), "nomax_w", shade.getWidth()));
}
setWndToScreen ()
{
int y = getViewPortTop();
int x = getViewPortLeft();
int h = getViewPortHeight();
int w = getViewPortWidth();
int sw = 0.8 * w;
int sh = 0.85 * h;
int mh = stringToInteger(normal.getXmlParam("minimum_h"));
int mw = stringToInteger(normal.getXmlParam("minimum_w"));
if (sh < mh) sh = mh;
if (sw < mw) sw = mw;
/* int sx = x + (w-sw)/2;
int sy = y + (h-sh)/2;*/
normal.resize(normal.getLeft(), normal.getTop(), sw, sh);
setPrivateInt(getSkinName(), "First Start", 0);
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}

Binary file not shown.

View File

@ -0,0 +1,469 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: mcvcore.m
Version: 4.5
Type: maki
Date: 13. Aug. 2007 - 11:22
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on drawer.m
from Winamp Modern, but extended to
5 components presets!
Like in drawer.m I warn everybody not
to modify this script, cause it can be
harmed very fast! And you don't want
a buggy winamp skin, want you?
Since script version 3.1
(onesie build #022)
the script is devided into subscripts
for better debugging.
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_windowpage.m
#include attribs/init_vis.m
#include attribs/init_appearance.m
//define DEBUG
#define FILE_NAME "infocompcore.m"
#include <lib/com/debug.m>
#define VIS_GUID "{0000000A-000C-0010-FF7B-01014263450C}"
#ifndef DOHIDEMCV
#define updateSaving //
#endif
//define FIT_W2_COMP fit(sui_fi, 159, 0, 2, 0, -162, 1, 76, 0)
#define FIT_W2_COMP fit(sui_fi, 234, 0, 2, 0, -236, 1, 117, 0)
//define FIT_W_COMP fit(sui_fi, 81, 0, 2, 0, -84, 1, 76, 0)
#define FIT_W_COMP fit(sui_fi, 119, 0, 2, 0, -121, 1, 117, 0)
#define FIT_WO_COMP fit(sui_fi, 4, 0, 2, 0, -6, 1, 117, 0)
Global Boolean bypasscancel;
Global Timer callbackTimer, tempDisable;
#define CURR_COMP plsc
#include mcvcore/defs.m
#ifdef IC_COVERFLOW
#undef CURR_COMP
#define CURR_COMP cflow
#include mcvcore/defs.m
#endif
Function fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh);
Function switchToIcOnly();
Function switchToCover();
Function switchToVisCover();
Function switchToVis();
Function switchToEQ();
Function switchToCfg();
Function switchToVis_Full();
Function updateFileInfo();
Function hideFi();
Function showFi();
Function hideCover();
Function showCover();
Function hideVis();
Function showVis();
Function hideVis_Full();
Function showVis_Full();
Function hideEq();
Function showEq();
Function hideCfg();
Function showCfg();
Function openIC();
Function closeIC();
Function openLC();
Function closeLC();
#ifdef DOHIDEMCV
Function hideMCV();
#endif
Function onHideFi();
Function onShowFi();
Function onHideCover();
Function onShowCover();
Function onHideVis();
Function onShowVis();
Function onHideVis_Full();
Function onShowVis_Full();
Function onHideEq();
Function onShowEq();
Function onHideCfg();
Function onShowCfg();
Function onCloseIC();
Function onOpenIC();
Function onhideMCV();
Function dc_hideFi();
Function dc_showFi();
Function dc_showEq();
Function dc_hideEq();
Function dc_showCfg();
Function dc_hideCfg();
Function dc_hideCover();
Function dc_showCover();
Function dc_hideVis();
Function dc_showVis();
Function dc_hideVis_Full();
Function dc_showVis_Full();
Function updateFooter();
Function ProcessMenuResult (int a);
#ifdef DOHIDEMCV
function updateSaving (int l);
#endif
Global Group sg, sui_cover, sui_vis_full, sui_vis, sui_fi, sui_eq, sui_cfg, g_footer, g_visbtns;
Global WindowHolder sui_vis_wdh, sui_vis_full_wdh;
Global Layout main;
Global Boolean callback_showing_vis, callback_hiding_vis, callback_showing_vis_full, callback_hiding_vis_full, callback_showing_cover, callback_hiding_cover, callback_showing_fi, callback_hiding_fi, callback_hiding_eq, callback_showing_eq, callback_hiding_cfg, callback_showing_cfg;
Global Boolean showing_vis, hiding_vis, showing_vis_full, hiding_vis_full, showing_cover, hiding_cover, hiding_fi, showing_fi, showing_eq, hiding_eq, showing_cfg, hiding_cfg;
Global Boolean Mychange;
Global Boolean prevent_vis = 1;
Global Frame dualwnd, mainframe;
Global GuiObject footerGrid, sendToBtn;
Global Popupmenu compMenu;
// Global Button compChoose, nowPlayingBtn, webSearchBtn;
Global Button compChoose;
Global Boolean startup_done;
Global Int substract = 0;
#ifdef DOHIDEMCV
Global Int last_menu_sel;
#endif
// script loading/unloading goes here
#include mcvcore/load_handles.m
// open / hiding components not caused by button clicks
#include mcvcore/external_handles.m
// showing and hiding the components
#include mcvcore/show_hide.m
/* Switching menu */
compChoose.onRightButtonUp(int x, int y)
{
complete;
}
compChoose.onRightClick () {
compChoose.onLeftClick ();
}
compChoose.onLeftClick ()
{
compMenu = new Popupmenu;
popupmenu fiSub = new Popupmenu;
compMenu.addCommand("File Info", 1, ic_fileinfo.getData() == "1", 0);
#ifdef IC_COVERFLOW
compMenu.addCommand("Cover Flow", 7, _cflow_ic_attrib.getData() == "1", 0);
#endif
// System.isSafeMode() is not recognized by mc.exe
// if(!System.isSafeMode())
// {
compMenu.addCommand("Visualization", 2, ic_vis.getData() == "1", 0);
// }
compMenu.addCommand("Stored Playlists", 3, _plsc_ic_attrib.getData() == "1", 0);
compMenu.addCommand("Equalizer", 4, ic_eq.getData() == "1", 0);
compMenu.addCommand("Skin Settings", 5, ic_config.getData() == "1", 0);
#ifdef DOHIDEMCV
compMenu.addCommand("Hide Multi Content View", 6, ic_hidden.getData() == "1", 0);
#endif
compMenu.addSeparator();
compMenu.addSubmenu(fiSub, "File Info Components");
// System.isSafeMode() is not recognized by mc.exe
// if(!System.isSafeMode())
// {
fiSub.addCommand("Visualization", 12, ic_vis_fileinfo.getData() == "1", 0);
// }
fiSub.addCommand("Album Art", 11, ic_cover_fileinfo.getData() == "1", 0);
fiSub.addSeparator();
fiSub.addCommand("Show Track #", 24, infocomp_show_track.getData() == "1", 0);
fiSub.addCommand("Show Year", 21, infocomp_show_year.getData() == "1", 0);
fiSub.addCommand("Show Genre", 22, infocomp_show_genre.getData() == "1", 0);
fiSub.addCommand("Show Disc", 28, infocomp_show_disc.getData() == "1", 0);
fiSub.addCommand("Show Album Artist", 25, infocomp_show_albumartist.getData() == "1", 0);
fiSub.addCommand("Show Composer", 26, infocomp_show_composer.getData() == "1", 0);
fiSub.addCommand("Show Publisher", 23, infocomp_show_publisher.getData() == "1", 0);
fiSub.addCommand("Show Decoder", 27, infocomp_show_format.getData() == "1", 0);
fiSub.addCommand("Show Song Rating", 20, infocomp_show_rating.getData() == "1", 0);
fiSub.addSeparator();
fiSub.addCommand("Cycle File Info", 30, infocomp_cycle.getData() == "1", 0);
fiSub.addSeparator();
//fiSub.addCommand("Open Links in Now Playing", 40, infocomp_nowplaying.getData() == "1", 0);
//fiSub.addCommand("Open Links in Browser", 41, infocomp_browser.getData() == "1", 0);
ProcessMenuResult (compMenu.popAtXY(clientToScreenX(compChoose.getLeft()), clientToScreenY(compChoose.getTop() + compChoose.getHeight())));
delete compMenu;
delete fiSub;
complete;
}
ProcessMenuResult (int a)
{
if (a < 1) return;
if (a == 1)
{
ic_fileinfo.setData("1");
}
else if (a == 2)
{
ic_vis.setData("1");
}
else if (a == 3)
{
_plsc_ic_attrib.setData("1");
}
#ifdef IC_COVERFLOW
else if (a == 7)
{
_cflow_ic_attrib.setData("1");
}
#endif
else if (a == 4)
{
ic_eq.setData("1");
}
else if (a == 5)
{
ic_config.setData("1");
}
#ifdef DOHIDEMCV
else if (a == 6)
{
ic_hidden.setData("1");
}
#endif
else if (a == 11)
{
toggleAttrib(ic_cover_fileinfo);
}
else if (a == 12)
{
toggleAttrib(ic_vis_fileinfo);
}
else if (a == 20)
{
toggleAttrib(infocomp_show_rating);
}
else if (a == 21)
{
toggleAttrib(infocomp_show_year);
}
else if (a == 22)
{
toggleAttrib(infocomp_show_genre);
}
else if (a == 23)
{
toggleAttrib(infocomp_show_publisher);
}
else if (a == 24)
{
toggleAttrib(infocomp_show_track);
}
else if (a == 25)
{
toggleAttrib(infocomp_show_albumartist);
}
else if (a == 26)
{
toggleAttrib(infocomp_show_composer);
}
else if (a == 27)
{
toggleAttrib(infocomp_show_format);
}
else if (a == 28)
{
toggleAttrib(infocomp_show_disc);
}
else if (a == 30)
{
toggleAttrib(infocomp_cycle);
}
/* else if (a == 40)
{
toggleAttrib(infocomp_nowplaying);
}
else if (a == 41)
{
toggleAttrib(infocomp_browser);
}
*/
}
// Hiding footer buttons (for file info view)
/* artist_info_buttons_attrib.onDataChanged ()
{
updateFooter ();
}
*/
g_footer.onResize (int x, int y, int w, int h)
{
if (substract == 1)
w += stringToInteger(dualwnd.getXmlParam("maxwidth")) + 78;
else if (substract == 2)
w += stringToInteger(dualwnd.getXmlParam("maxwidth")) + 102;
/* if (artist_info_buttons_attrib.getData() == "1")
{
if (w < 132) footerGrid.hide();
else footerGrid.show();
if (w < 125) nowPlayingBtn.hide();
else nowPlayingBtn.show();
if (w < 94) webSearchBtn.hide();
else webSearchBtn.show();
}
else
{
if (w < 70) footerGrid.hide();
else footerGrid.show();
nowPlayingBtn.hide();
webSearchBtn.hide();
}
*/
if (w < 63) sendToBtn.hide();
else sendToBtn.show();
if (w < 32) compChoose.hide();
else compChoose.show();
}
updateFooter ()
{
g_footer.onResize (0, 0, g_footer.getWidth(), 0);
}
#ifdef DOHIDEMCV
// Switching back from no comp
sg.onResize (int x, int y, int w, int h)
{
if (ic_hidden.getData() == "0" || last_menu_sel == 0 || w == 0)// && dualwnd.getXmlParam("from") == "left")
{
return;
}
ProcessMenuResult (getPrivateInt(getSkinName(), "MCV last sel", 1));
}
// save last pos
updateSaving (int l)
{
if (last_menu_sel == l)
{
return;
}
if (last_menu_sel != 0) setPrivateInt(getSkinName(), "MCV last sel", last_menu_sel);
last_menu_sel = l;
}
#endif
/** OSD */
/*
Global boolean mouse_is_over = FALSE;
osd_trigger.onEnterArea ()
{
//setXmlParam("ghost", "1");
}
osd_trigger.onMouseMove (int x, int y)
{
if (!isMouseOverRect() && mouse_is_over)
{
mouse_is_over = 0;
component c = sui_vis_full.findObject("vis");
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
c = sui_vis.findObject("vis");
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
}
else if (isMouseOverRect() && !mouse_is_over)
{
mouse_is_over = 1;
component c = sui_vis_full.findObject("vis");
c.sendAction("setregion", "vis.button.region", 0, 0, 0, 0);
c = sui_vis.findObject("vis");
c.sendAction("setregion", "vis.button.region", 0, 0, 0, 0);
}
}
osd_trigger.onLeaveArea ()
{
component c = sui_vis_full.findObject("vis");
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
}*/
/** Calls after comp is shown */
onCloseIC() {}
onOpenIC() {}
onShowCover() {}
onHideCover() {}
onShowFi() {}
onHideFi() {}
onShowEq() {}
onHideEq() {}
onShowCfg() {}
onHideCfg() {}
onShowVis()
{
g_visbtns.show();
}
onHideVis()
{
g_visbtns.hide();
}
onShowVis_Full() {}
onHideVis_Full() {}
#ifdef DOHIDEMCV
onhideMCV() {}
#endif
fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh)
{
if (!g) return;
g.setXmlParam("x", integerToString(x));
g.setXmlParam("y", integerToString(y));
g.setXmlParam("w", integerToString(w));
g.setXmlParam("h", integerToString(h));
g.setXmlParam("relatx", integerToString(rx));
g.setXmlParam("relaty", integerToString(ry));
g.setXmlParam("relatw", integerToString(rw));
g.setXmlParam("relath", integerToString(rh));
}

Binary file not shown.

View File

@ -0,0 +1,98 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: defs.m
Version: 1.0
Type: maki
Date: 08. Jun. 2007 - 23:32
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
Function _##CURR_COMP##_switchTo();
Function _##CURR_COMP##_show();
Function _##CURR_COMP##_hide();
Function _##CURR_COMP##_onHide();
Function _##CURR_COMP##_onShow();
Function _##CURR_COMP##_dc_show();
Function _##CURR_COMP##_dc_hide();
Global Group _##CURR_COMP##_sui;
Global Boolean _##CURR_COMP##_callback_hiding, _##CURR_COMP##_callback_showing;
Global Boolean _##CURR_COMP##_showing, _##CURR_COMP##_hiding;
_##CURR_COMP##_show()
{
debugString(DEBUG_PREFIX "_##CURR_COMP##_show() {", D_WTF);
_##CURR_COMP##_showing = 1;
GuiObject o = _##CURR_COMP##_sui;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) ##CURR_COMP## object not provided (show)", D_WTF);
#endif
_##CURR_COMP##_onShow();
_##CURR_COMP##_showing = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
_##CURR_COMP##_hide()
{
debugString(DEBUG_PREFIX "_##CURR_COMP##_hide() {", D_WTF);
_##CURR_COMP##_hiding = 1;
GuiObject o = _##CURR_COMP##_sui;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) ##CURR_COMP## object not provided (hide)", D_WTF);
#endif
_##CURR_COMP##_onHide();
_##CURR_COMP##_hiding = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
_##CURR_COMP##_dc_show ()
{
debugString(DEBUG_PREFIX "_##CURR_COMP##__dc_show();", D_WTF);
_##CURR_COMP##_callback_showing = 1;
_##CURR_COMP##_callback_hiding = 0;
callbackTimer.start();
}
_##CURR_COMP##_dc_hide()
{
_##CURR_COMP##_callback_showing = 0;
_##CURR_COMP##_callback_hiding = 1;
callbackTimer.start();
}
_##CURR_COMP##_onShow() {}
_##CURR_COMP##_onHide() {}

View File

@ -0,0 +1,295 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: external_handles.m
Version: 1.0
Type: maki
Date: 29. Nov. 2006 - 15:57
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifdef DEBUG
/** has only debug aims :) */
/*
System.onLookForComponent(String guid) {
debugString(DEBUG_PREFIX "System.onLookForComponent ( "+ guid + " )", D_WTF);
}*/
#endif
#ifdef IC_COVERFLOW
#define ACTIONPERFORMED showing_Fi || hiding_Fi || showing_Cover || hiding_Cover || showing_Vis || hiding_Vis || showing_Vis_Full || hiding_Vis_Full || hiding_eq || showing_eq || hiding_cfg || showing_cfg || _plsc_hiding || _plsc_showing || _cflow_hiding || _cflow_showing
#endif
#ifndef IC_COVERFLOW
#define ACTIONPERFORMED showing_Fi || hiding_Fi || showing_Cover || hiding_Cover || showing_Vis || hiding_Vis || showing_Vis_Full || hiding_Vis_Full || hiding_eq || showing_eq || hiding_cfg || showing_cfg || _plsc_hiding || _plsc_showing
#endif
/** the component switching */
System.onGetCancelComponent(String guid, boolean goingvisible) {
debugString(DEBUG_PREFIX "System.onGetCancelComponent ( "+ guid + " , " + integerToString(goingvisible) + " ) {", D_WTF);
if (bypasscancel)
{
debugString(DEBUG_PREFIX " --> bypasscancel", 0);
debugString(DEBUG_PREFIX " return FALSE;", 0);
debugString(DEBUG_PREFIX "}", 0);
return FALSE;
}
if (guid == VIS_GUID && !goingvisible && hiding_vis)
{
debugString(DEBUG_PREFIX " --> hiding_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && goingvisible && showing_vis)
{
debugString(DEBUG_PREFIX " --> showing_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && !goingvisible && hiding_vis_full)
{
debugString(DEBUG_PREFIX " --> hiding_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && goingvisible && showing_vis_full)
{
debugString(DEBUG_PREFIX " --> showing_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (!main.isVisible())
{
debugString(DEBUG_PREFIX " --> main layout isn't visible", 0);
debugString(DEBUG_PREFIX " return FALSE;", 0);
debugString(DEBUG_PREFIX "}", 0);
return FALSE;
}
if (goingvisible) {
if (guid == VIS_GUID)
{
if (vis_inbig_attrib.getData() == "1") return FALSE;
debugString(DEBUG_PREFIX " --> external showing_vis --- start Timer", D_WTF);
if (vis_lefttoplayer_attrib.getData() == "1" && !sui_vis.isVisible())
{
sui_vis_wdh.setXmlParam("autoopen", "0");
//showVis();
callback_showing_vis = 1;
callback_hiding_vis = 0;
callbackTimer.onTimer();
sui_vis_wdh.setXmlParam("autoopen", "1");
debugString(DEBUG_PREFIX " --> open SMALL", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (vis_lefttoplayer_full_attrib.getData() == "1" && !sui_vis_full.isVisible())
{
sui_vis_full_wdh.setXmlParam("autoopen", "0");
//switchToVis_Full();
callback_showing_vis_full = 1;
callback_hiding_vis_full = 0;
callbackTimer.onTimer();
sui_vis_full_wdh.setXmlParam("autoopen", "1");
debugString(DEBUG_PREFIX " --> open FULL", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
debugString(DEBUG_PREFIX " return FALSE; (other handle?)", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
}
if (!goingvisible) {
if (guid == VIS_GUID && (sui_vis.isVisible() || sui_vis_full.isVisible())) {
if (vis_inbig_attrib.getData() == "1") return FALSE;
debugString(DEBUG_PREFIX " --> external hiding_vis", D_WTF);
if (ic_vis.getdata() == "1")
{
ic_fileinfo.setdata("1");
}
ic_vis_fileinfo.setData("0");
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
}
debugString(DEBUG_PREFIX " --> Went thru", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
ic_cover_fileinfo.onDataChanged ()
{
if (ic_fileinfo.getData() == "0") return;
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
updateFileInfo();
mychange = 0;
}
ic_fileinfo.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
updateFileInfo();
}
mychange = 0;
}
ic_eq.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
switchToEq();
}
mychange = 0;
}
ic_config.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
switchToCfg();
}
mychange = 0;
}
_plsc_ic_attrib.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
_Plsc_switchTo();
}
mychange = 0;
}
#ifdef IC_COVERFLOW
_cflow_ic_attrib.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
_Cflow_switchTo();
}
mychange = 0;
}
#endif
ic_vis.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
ic_vis_fileinfo.setData("0");
switchToVis_Full();
}
mychange = 0;
}
ic_vis_fileinfo.onDataChanged ()
{
if (ic_fileinfo.getData() == "0") return;
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
updateFileInfo();
mychange = 0;
}
#ifdef DOHIDEMCV
ic_hidden.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
hideMCV();
}
mychange = 0;
}
#endif
vis_lefttoplayer_attrib.onDataChanged ()
{
if (mychange) return;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
int xg = getPrivateInt(getSkinName(), "ComponentXgive", 0);
if (getData() == "1" && (window_content == "Vis" || ic_vis.getData() == "1" || xg))
{
if (xg) setPrivateInt(getSkinName(), "ComponentXgive", 0);
ic_vis_fileinfo.setData("1");
ic_fileinfo.setData("0");
}
else if (getData() == "0" && sui_vis.isVisible() && vis_lefttoplayer_full_attrib.getData() != "1")
{
setPrivateInt(getSkinName(), "ComponentXgive", 1);
ic_vis_fileinfo.setData("0");
}
}
vis_lefttoplayer_full_attrib.onDataChanged ()
{
if (mychange) return;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
int xg = getPrivateInt(getSkinName(), "ComponentXgive", 0);
if (getData() == "1" && (window_content == "Vis" || ic_vis_fileinfo.getData() == "1" || xg))
{
if (xg) setPrivateInt(getSkinName(), "ComponentXgive", 0);
switchToVis_Full();
}
else if (getData() == "0" && sui_vis_full.isVisible() && vis_lefttoplayer_attrib.getData() != "1")
{
setPrivateInt(getSkinName(), "ComponentXgive", 1);
updateFileInfo();
}
}

View File

@ -0,0 +1,138 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: load_handles.m
Version: 1.0
Type: maki
Date: 28. Dez. 2006 - 08:40
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
System.onScriptLoaded ()
{
initAttribs_windowpage();
initAttribs_vis();
initAttribs_Appearance();
debugString(DEBUG_PREFIX "System.onScriptLoded() {", 0);
sg = getScriptGroup();
main = sg.getParentLayout();
if (getParam() == "big")
{
mainframe = main.getObject("player.mainframe.big");
}
else
{
mainframe = main.getObject("player.mainframe");
}
dualwnd = mainframe.findObject("player.dualwnd");
sui_cover = sg.findObject("info.component.cover");
sui_vis = sg.findObject("info.component.vis");
sui_vis_full = sg.findObject("info.component.vis.full");
sui_vis_wdh = sui_vis.getObject("vis");
sui_vis_full_wdh = sui_vis_full.getObject("vis");
sui_fi = sg.findObject("info.component.infodisplay");
sui_eq = sg.findObject("info.component.eq");
sui_cfg = sg.findObject("info.component.config");
_plsc_sui = sg.findObject("info.component.plsidecar");
#ifdef IC_COVERFLOW
_cflow_sui = sg.findObject("info.component.coverflow");
#endif
g_footer = sg.findObject("infocomp.background.footer");
g_visbtns = g_footer.findObject("infocomp.visbuttons");
footerGrid = g_footer.findObject("footer.background.grid");
compChoose = sg.findObject("comp.menu");
sendToBtn = sg.findObject("sendTo");
//nowPlayingBtn = sg.findObject("nowplaying");
//webSearchBtn = sg.findObject("search");
#ifdef DOHIDEMCV
last_menu_sel = getPrivateInt(getSkinName(), "MCV last sel", 1);
#endif
callbackTimer = new Timer;
callbackTimer.setDelay(1);
tempDisable = new Timer;
tempDisable.setDelay(50);
if (ic_fileinfo.getData() == "1")
{
updateFileInfo ();
}
else if (ic_vis.getData() == "1")
{
switchToVis_Full();
}
else if (ic_eq.getData() == "1")
{
switchToEq();
}
else if (ic_config.getData() == "1")
{
switchToCfg();
}
else if (_plsc_ic_attrib.getData() == "1")
{
_plsc_switchTo();
}
#ifdef IC_COVERFLOW
else if (_cflow_ic_attrib.getData() == "1")
{
_cflow_switchTo();
}
#endif
#ifdef DOHIDEMCV
else if (ic_hidden.getData() == "1")
{
hideMCV();
}
#endif
startup_done = 1;
debugString(DEBUG_PREFIX "}", 0);
prevent_vis = 0;
}
updateFileInfo ()
{
if (ic_vis_fileinfo.getData() == "1" && ic_cover_fileinfo.getData() == "1")
{
switchToVisCover();
}
else if (ic_vis_fileinfo.getData() == "1")
{
switchToVis();
}
else if (ic_cover_fileinfo.getData() == "1")
{
switchToCover();
}
else
{
switchToIcOnly();
}
}
System.onScriptUnloading ()
{
debugString(DEBUG_PREFIX "System.onScriptUnloading() {", 0);
delete callbackTimer;
delete tempDisable;
debugString(DEBUG_PREFIX " delete Timers;", 0);
debugString(DEBUG_PREFIX "}", 0);
}

View File

@ -0,0 +1,915 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: show_hide.m
Version: 1.0
Type: maki
Date: 29. Nov. 2006 - 15:57
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
switchToCover ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis();
hideVis_Full();
hideEq();
hideCfg();
openIC();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done)
{
ic_cover_fileinfo.setData("1");
ic_fileinfo.setData("1");
}
mychange = 0;
substract = 0;
sui_cover.setXmlParam("x", "4");
dualwnd.setXmlParam("maxwidth", "-127");
dualwnd.sendAction("set_maxwidth", "", -127, 0 , 0, 0);
g_footer.setXmlParam("x", "117");
g_footer.setXmlParam("w", "-118");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showCover();
FIT_W_COMP;
updateSaving(1);
}
switchToVisCover ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideEq();
hideCfg();
openIC();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done)
{
ic_cover_fileinfo.setData("1");
ic_vis_fileinfo.setData("1");
vis_lefttoplayer_attrib.setData("1");
ic_fileinfo.setData("1");
}
mychange = 0;
substract = 0;
sui_cover.setXmlParam("x", "119");
dualwnd.setXmlParam("maxwidth", "-242");
dualwnd.sendAction("set_maxwidth", "", -242, 0 , 0, 0);
g_footer.setXmlParam("x", "232");
g_footer.setXmlParam("w", "-234");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showCover();
showVis();
FIT_W2_COMP;
updateSaving(1);
}
switchToVis ()
{
debugString(DEBUG_PREFIX "switchToVis();", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideCover();
hideVis_Full();
hideEq();
hideCfg();
openIC();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done)
{
ic_vis_fileinfo.setData("1");
vis_lefttoplayer_attrib.setData("1");
ic_fileinfo.setData("1");
}
mychange = 0;
substract = 1;
dualwnd.setXmlParam("maxwidth", "-127");
dualwnd.sendAction("set_maxwidth", "", -127, 0 , 0, 0);
g_footer.setXmlParam("x", "117");
g_footer.setXmlParam("w", "-118");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showVis();
FIT_W_COMP;
updateSaving(1);
}
switchToIcOnly ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideEq();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done) ic_fileinfo.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 0;
dualwnd.setXmlParam("maxwidth", "-127");
dualwnd.sendAction("set_maxwidth", "", -127, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showFi();
FIT_WO_COMP;
updateSaving(1);
}
switchToEq ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
substract = 1;
ic_eq.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
dualwnd.setXmlParam("maxwidth", "-196");
dualwnd.sendAction("set_maxwidth", "", -196, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showEq();
updateSaving(4);
}
switchToCfg ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideEq();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
ic_config.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 2;
dualwnd.setXmlParam("maxwidth", "-242");
dualwnd.sendAction("set_maxwidth", "", -242, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showCfg();
updateSaving(5);
}
_Plsc_switchTo ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideEq();
hideCfg();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
_plsc_ic_attrib.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 0;
dualwnd.setXmlParam("maxwidth", "-156");
dualwnd.sendAction("set_maxwidth", "", -156, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
_Plsc_show();
updateSaving(3);
}
#ifdef IC_COVERFLOW
_Cflow_switchTo ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideEq();
hideCfg();
_Plsc_hide();
mychange = 1;
_cflow_ic_attrib.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 0;
dualwnd.setXmlParam("maxwidth", "-156");
dualwnd.sendAction("set_maxwidth", "", -156, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
_Cflow_show();
updateSaving(3);
}
#endif
switchToVis_Full ()
{
debugString(DEBUG_PREFIX "switchToVis_FULL();", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
closeIC();
hideVis();
hideCover();
hideEq();
//hideFi();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
ic_vis.setData("1");
vis_lefttoplayer_full_attrib.setData("1");
mychange = 0;
substract = 1;
dualwnd.setXmlParam("maxwidth", "-196");
dualwnd.sendAction("set_maxwidth", "", -196, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showVis_Full();
updateSaving(2);
}
#ifdef DOHIDEMCV
hideMCV ()
{
debugString(DEBUG_PREFIX "hideMCV();", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
closeIC();
hideVis();
hideCover();
hideEq();
//hideFi();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
ic_hidden.setData("1");
mychange = 0;
updateSaving(0);
/*g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
dualwnd.setXmlParam("maxwidth", "-156");
dualwnd.sendAction("set_maxwidth", "", -156, 0 , 0, 0);*/
// dualwnd.setXmlParam("maxwidth", "-8");
// dualwnd.sendAction("set_maxwidth", "", -8, 0 , 0, 0);
dualwnd.setXmlParam("from", "left");
dualwnd.setXmlParam("minwidth", integerToString(8 - stringtoInteger(dualwnd.getXmlParam("maxwidth"))));
dualwnd.setXmlParam("maxwidth", "-155");
dualwnd.sendAction("set_maxwidth", "", -155, 0 , 0, 0);
dualwnd.setPosition(0);
updateSaving(6);
}
#endif
tempDisable.onTimer()
{
stop();
}
closeLC ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis();
hideCover();
hideCfg();
hideEq();
hideVis_Full();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
}
closeIC ()
{
debugString(DEBUG_PREFIX "closeIC() {", 0);
hideFi();
onCloseIC();
debugString(DEBUG_PREFIX "}", 0);
}
openIC ()
{
debugString(DEBUG_PREFIX "openIC() {", 0);
showFi();
onOpenIC();
debugString(DEBUG_PREFIX "}", 0);
}
showFi()
{
debugString(DEBUG_PREFIX "showFi() {", 0);
showing_fi = 1;
setPrivateString(getSkinName(), "Component3", "File Info");
GuiObject o = sui_fi;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) fi object not provided (show)", 0);
#endif
onShowFi();
showing_Fi = 0;
debugString(DEBUG_PREFIX "}", 0);
}
hideFi()
{
debugString(DEBUG_PREFIX "hideFi() {", 0);
hiding_Fi = 1;
GuiObject o = sui_fi;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) sfi object not provided (hide)", 0);
#endif
onHideFi();
hiding_Fi = 0;
debugString(DEBUG_PREFIX "}", 0);
}
showVis()
{
//if (vis_inbig_attrib.getData() == "1") return;
debugString(DEBUG_PREFIX "showVis() {", D_WTF);
showing_vis = 1;
GuiObject o = sui_vis;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) vis object not provided (show)", D_WTF);
#endif
onShowVis();
showing_vis = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideVis()
{
debugString(DEBUG_PREFIX "hideVis() {", D_WTF);
hiding_vis = 1;
GuiObject o = sui_vis;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) vis object not provided (hide)", D_WTF);
#endif
onHideVis();
hiding_vis = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
showCover()
{
debugString(DEBUG_PREFIX "showCover() {", 0);
showing_Cover = 1;
GuiObject o = sui_Cover;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Cover object not provided (show)", 0);
#endif
onShowCover();
showing_Cover = 0;
debugString(DEBUG_PREFIX "}", 0);
}
hideCover()
{
debugString(DEBUG_PREFIX "hideCover() {", 0);
hiding_Cover = 1;
GuiObject o = sui_Cover;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Cover object not provided (hide)", 0);
#endif
onHideCover();
hiding_Cover = 0;
debugString(DEBUG_PREFIX "}", 0);
}
showVis_Full()
{
debugString(DEBUG_PREFIX "showVis_Full() {", D_WTF);
showing_vis_full = 1;
GuiObject o = sui_vis_full;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Vis_Full object not provided (show)", D_WTF);
#endif
onShowVis_Full();
showing_vis_full = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideVis_Full()
{
debugString(DEBUG_PREFIX "hideVis_Full() {", D_WTF);
hiding_vis_full = 1;
GuiObject o = sui_vis_full;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Vis_Full object not provided (hide)", D_WTF);
#endif
onHideVis_Full();
hiding_vis_full = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
showEq()
{
debugString(DEBUG_PREFIX "showEq() {", D_WTF);
showing_eq = 1;
GuiObject o = sui_eq;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Vis_Full object not provided (show)", D_WTF);
#endif
onShowEq();
showing_eq = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideEq()
{
debugString(DEBUG_PREFIX "hideVis_Full() {", D_WTF);
hiding_eq = 1;
GuiObject o = sui_eq;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Eq object not provided (hide)", D_WTF);
#endif
onHideEq();
hiding_eq = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
showCfg()
{
debugString(DEBUG_PREFIX "showCfg() {", D_WTF);
showing_cfg = 1;
GuiObject o = sui_cfg;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) cfg_Full object not provided (show)", D_WTF);
#endif
onShowcfg();
showing_cfg = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideCfg()
{
debugString(DEBUG_PREFIX "hideVis_Full() {", D_WTF);
hiding_cfg = 1;
GuiObject o = sui_cfg;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) cfg object not provided (hide)", D_WTF);
#endif
onHidecfg();
hiding_cfg = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
callbackTimer.onTimer()
{
callbackTimer.stop();
debugString(DEBUG_PREFIX "callbackTimer();", D_WTF);
int _callback_showing_vis = callback_showing_vis;
int _callback_hiding_vis = callback_hiding_vis;
int _callback_showing_fi = callback_showing_fi;
int _callback_hiding_fi = callback_hiding_fi;
int _callback_showing_cover = callback_showing_cover;
int _callback_hiding_cover = callback_hiding_cover;
int _callback_showing_vis_full = callback_showing_vis_full;
int _callback_hiding_vis_full = callback_hiding_vis_full;
int _callback_showing_eq = callback_showing_eq;
int _callback_hiding_eq = callback_hiding_eq;
int _callback_showing_cfg = callback_showing_cfg;
int _callback_hiding_cfg = callback_hiding_cfg;
int _plsc_callback_showing_temp = _plsc_callback_showing;
int _plsc_callback_hiding_temp = _plsc_callback_hiding;
#ifdef IC_COVERFLOW
int _cflow_callback_showing_temp = _cflow_callback_showing;
int _cflow_callback_hiding_temp = _cflow_callback_hiding;
#endif
callback_showing_vis = 0;
callback_hiding_vis = 0;
callback_showing_fi = 0;
callback_hiding_fi = 0;
callback_showing_cover = 0;
callback_hiding_cover = 0;
callback_showing_vis_full = 0;
callback_hiding_vis_full = 0;
callback_showing_eq = 0;
callback_hiding_eq = 0;
callback_showing_cfg = 0;
callback_hiding_cfg = 0;
_plsc_callback_showing = 0;
_plsc_callback_hiding = 0;
#ifdef IC_COVERFLOW
_cflow_callback_showing = 0;
_cflow_callback_hiding = 0;
#endif
if (_callback_showing_vis == 1)
{
ic_vis_fileinfo.setData("1");
ic_fileinfo.setData("1");
}
if (_callback_hiding_vis == 1)
{
ic_vis_fileinfo.setData("0");
}
if (_callback_showing_fi == 1)
{
showFi();
}
if (_callback_hiding_fi == 1)
{
hideFi();
}
if (_callback_showing_cover == 1)
{
ic_cover_fileinfo.setData("1");
ic_fileinfo.setData("1");
}
if (_callback_hiding_cover == 1)
{
ic_cover_fileinfo.setData("0");
}
if (_callback_showing_vis_full == 1)
{
switchToVis_Full();
}
if (_callback_hiding_vis_full == 1)
{
hideVis_Full();
}
if (_callback_showing_eq == 1)
{
switchToEq();
}
if (_callback_hiding_eq == 1)
{
hideEq();
}
if (_callback_showing_cfg == 1)
{
switchTocfg();
}
if (_callback_hiding_cfg == 1)
{
hidecfg();
}
if (_plsc_callback_showing_temp == 1)
{
_Plsc_switchTo();
}
if (_plsc_callback_hiding_temp == 1)
{
_Plsc_hide();
}
#ifdef IC_COVERFLOW
if (_cflow_callback_showing_temp == 1)
{
_Cflow_switchTo();
}
if (_cflow_callback_hiding_temp == 1)
{
_Cflow_hide();
}
#endif
}
dc_showFi ()
{
callback_showing_fi = 1;
callback_hiding_fi = 0;
callbackTimer.start();
}
dc_hideFi ()
{
callback_showing_fi = 0;
callback_hiding_fi = 1;
callbackTimer.start();
}
dc_showCover ()
{
callback_showing_cover = 1;
callback_hiding_cover = 0;
callbackTimer.start();
}
dc_hideCover ()
{
callback_showing_cover = 0;
callback_hiding_cover = 1;
callbackTimer.start();
}
dc_showVis ()
{
debugString(DEBUG_PREFIX "dc_showVis();", D_WTF);
callback_showing_vis = 1;
callback_hiding_vis = 0;
callbackTimer.start();
}
dc_hideVis ()
{
callback_showing_vis = 0;
callback_hiding_vis = 1;
callbackTimer.start();
}
dc_showVis_Full ()
{
debugString(DEBUG_PREFIX "dc_showVis_Full();", D_WTF);
callback_showing_vis_full = 1;
callback_hiding_vis_full = 0;
callbackTimer.start();
}
dc_hideVis_Full ()
{
callback_showing_vis_full = 0;
callback_hiding_vis_full = 1;
callbackTimer.start();
}
dc_showEq ()
{
debugString(DEBUG_PREFIX "dc_showVis_Full();", D_WTF);
callback_showing_eq = 1;
callback_hiding_eq = 0;
callbackTimer.start();
}
dc_hideEq ()
{
callback_showing_eq = 0;
callback_hiding_eq = 1;
callbackTimer.start();
}
dc_showCfg ()
{
debugString(DEBUG_PREFIX "dc_showVis_Full();", D_WTF);
callback_showing_Cfg = 1;
callback_hiding_Cfg = 0;
callbackTimer.start();
}
dc_hideCfg ()
{
callback_showing_Cfg = 0;
callback_hiding_Cfg = 1;
callbackTimer.start();
}

View File

@ -0,0 +1,162 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: mute.m
Version: 1.1
Type: maki
Date: 13. Jun. 2007 - 12:39
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on mute.m
from Winamp Modern
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#define GLOW_OBJECT MuteButton
#include <lib/com/glow.m>
Class Button GlowButton;
Global int VOLUME_FILL_MAX_W;
Global Group frameGroup;
Global Button MuteBtn, DeMuteBtn;
Global GuiObject SongTicker;
Global Float VolumeLevel;
Global Boolean Muted,BtnPressed;
Global GuiObject fill;
Global GuiObject muteActive;
Global Int muteActive_Y;
Global Boolean demuteDown;
Global Boolean isShade;
System.onScriptLoaded()
{
frameGroup = system.getScriptGroup();
isShade = (frameGroup.getParentlayout().getID() == "shade");
MuteBtn = frameGroup.findObject("mute");
DeMuteBtn = frameGroup.findObject("etum");
fill = frameGroup.findObject("player.volume.fill");
muteActive = frameGroup.findObject("mute.active");
SongTicker = frameGroup.findObject("songticker");
if (!isShade) muteActive_Y = muteActive.getGuiY();
if (!isShade) _MuteButton_GlowInit (MuteBtn, frameGroup.findObject("mute.glow"), 0.3);
if (!isShade) _MuteButton_addTrigger (DeMuteBtn);
Muted = getPrivateInt("winamp5", "muted", 0);
VolumeLevel = getPrivateInt("winamp5", "old_volume", 0);
VOLUME_FILL_MAX_W = stringToInteger(getParam());
fill.setXmlParam("w", integerToString(VOLUME_FILL_MAX_W*getVolume()/255));
if (Muted)
{
SongTicker.sendAction("showinfo", "Mute ON", 0, 0, 0, 0);
MuteBtn.hide();
DeMuteBtn.show();
if (!isShade) muteActive.show();
}
else
{
MuteBtn.show();
DeMuteBtn.hide();
if (!isShade) muteActive.hide();
}
BtnPressed = 0;
}
System.onScriptUnloading()
{
setPrivateInt("winamp5", "muted", Muted);
setPrivateInt("winamp5", "old_volume", VolumeLevel);
}
MuteBtn.onLeftClick()
{
BtnPressed = 1;
VolumeLevel = System.getVolume();
System.setVolume(0);
Muted = 1;
DeMuteBtn.show();
MuteBtn.hide();
if (!isShade) muteActive.show();
}
MuteBtn.onLeftButtonDown (int x, int y)
{
SongTicker.sendAction("showinfo", "Mute: Off", 0, 0, 0, 0);
}
DeMuteBtn.onLeftButtonDown (int x, int y)
{
SongTicker.sendAction("showinfo", "Mute: On", 0, 0, 0, 0);
if (!isShade) demuteDown = 1;
if (!isShade) muteActive.setXmlParam("y", integerToString(muteActive_Y+1));
}
MuteBtn.onLeftButtonUp (int x, int y)
{
if (Muted) SongTicker.sendAction("showinfo", "Mute: On", 0, 0, 0, 0);
}
DeMuteBtn.onLeftButtonUp (int x, int y)
{
if (!Muted) SongTicker.sendAction("showinfo", "Mute: Off", 0, 0, 0, 0);
if (!isShade) demuteDown = 0;
if (!isShade) muteActive.setXmlParam("y", integerToString(muteActive_Y));
}
DeMuteBtn.onLeftClick()
{
BtnPressed = 1;
System.setVolume(VolumeLevel);
Muted = 0;
DeMuteBtn.hide();
MuteBtn.show();
if (!isShade) muteActive.hide();
}
DeMuteBtn.onleaveArea ()
{
if (!isShade) muteActive.setXmlParam("y", integerToString(muteActive_Y));
}
DeMuteBtn.onEnterArea ()
{
if (!isShade && demuteDown) muteActive.setXmlParam("y", integerToString(muteActive_Y+1));
}
System.onvolumechanged(int newvol)
{
fill.setXmlParam("w", integerToString(VOLUME_FILL_MAX_W*getVolume()/255));
if (!BtnPressed)
{
SongTicker.sendAction
(
"showinfo",
translate("Volume") + ": " + integerToString(newvol/2.55) + "%",
0, 0, 0, 0
);
if (Muted)
{
Muted = 0;
MuteBtn.show();
DeMuteBtn.hide();
if (!isShade) muteActive.hide();
}
}
BtnPressed = 0;
}

Binary file not shown.

View File

@ -0,0 +1,827 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: notifier.m
Version: 1.3
Type: maki/notifier
Date: 14. Mrz. 2007 - 14:50
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: Based on notifier.m from Winamp Modern
-----------------------------------------------------
// Workaround for Winamp bug by Pieter Nieuwoudt (pjn123) - pjn123@outlook.com \\
Temparary fix for the Winamp bug where the...
extern AlbumArtLayer.onAlbumArtLoaded(boolean success);
...event stops working.
Please note that this workaround only kicks in if the above event stops responding.
If you want to test the workaround, just add // after the FORCE_BUG_MODE below.
Once the above event stop responding the first notifier trigger will be delayed (3 sec),
but after that there will be no delays anymore.
To remove this fix in the future just search //BUGFIX for steps ;)
-----------------------------------------------------
---------------------------------------------------*/
#define FORCE_BUG_MODE
#include <lib/std.mi>
#include attribs/init_notifier.m
#define DEBUG
#define DebugString //
Function reset();
Function createNotifier(boolean cancel);
Function showNotifier(Int w);
Function onNext();
function cancelAnimation();
Function Int fillNextTrackInfo(String corneroverride);
Function Int fillCustomInfo(String customstring);
Function prepareAlbumArtNotifier();
Function checkPref(int bypassfs);
Function getArtist();
Function onAlbumArt(Boolean success);
Global Container notifier_container;
Global Layout notifier_layout;
Global Timer notifier_timer;
Global String last_autotitle, last_autopis, cur_status;
Global Boolean b_tohide = 0;
Global boolean handleAACalback = false;
Global AlbumArtLayer cover;
Global Boolean triggerBug; //BUGFIX remove this
Global Timer fallbackTempFix; //BUGFIX remove this
#define WEBCOVER_SHOUTCAST "winamp.cover.shoutcast"
// ------------------------------------------------------------------------------
// init
// ------------------------------------------------------------------------------
System.onScriptLoaded() {
initAttribs_notifier();
notifier_timer = new Timer;
fallbackTempFix = new Timer; //BUGFIX remove this
fallbackTempFix.setDelay(3000); //BUGFIX remove this / Time that onAlbumArtLoaded have to execute before bug mode is ON
}
// ------------------------------------------------------------------------------
// shutdown
// ------------------------------------------------------------------------------
System.onScriptUnloading() {
delete notifier_timer;
delete fallbackTempFix; //BUGFIX remove this
}
// ------------------------------------------------------------------------------
// called by the system when the global hotkey for notification is pressed
// ------------------------------------------------------------------------------
System.onShowNotification() {
//if (checkPref(1)) return; --mp: if we push the hotkey, we want to show the notifier, no matter what the pref settings are.
createNotifier(false);
if (getStatus() == STATUS_PLAYING) cur_status = "Playing";
if (getStatus() == STATUS_PAUSED) cur_status = "Playback Paused";
if (getStatus() == STATUS_STOPPED) cur_status = "Playback Stopped";
prepareAlbumArtNotifier();
complete; // prevents other scripts from getting the message
return 1; // tells anybody else that might watch the returned value that, yes, we implemented that
}
// ------------------------------------------------------------------------------
// called by the system when the title for the playing item changes, this could be the result of the player
// going to the next track, or of an update in the track title
// ------------------------------------------------------------------------------
// mpdeimos> seems like we get an onTitleChange callback sometimes on pause/resume, d'oh
Global String lastUrl = 0;
System.onTitleChange(String newtitle) {
if (getPlayItemMetaDataString("streamtype") == "0" && lastUrl == getPlayItemString())
{
return;
}
lastUrl = getPlayItemString();
if (StrLeft(newtitle, 1) == "[") {
if (StrLeft(newtitle, 7) == "[Buffer" ||
StrLeft(newtitle, 4) == "[ICY") return;
}
//String newpis = System.getPlayItemString();
//if (last_autotitle == newtitle && last_autopis == newpis) return;
//last_autotitle = newtitle;
//last_autopis = newpis;
DebugString("onTitleChange: "+getPlayItemString(), 9);
onNext();
fallbackTempFix.stop(); //BUGFIX remove later
fallbackTempFix.start(); //BUGFIX remove later
}
// ------------------------------------------------------------------------------
// called by the system when the user clicks the next button
// ------------------------------------------------------------------------------
onNext() {
if (checkPref(0)) return;
createNotifier(false);
cur_status = "";
prepareAlbumArtNotifier();
}
// ------------------------------------------------------------------------------
// called by the system when the user clicks the play button
// ------------------------------------------------------------------------------
System.onPlay() {
if (checkPref(0)) return;
createNotifier(false);
cur_status = "Playing";
prepareAlbumArtNotifier();
}
// ------------------------------------------------------------------------------
// called by the system when the user clicks the pause button
// ------------------------------------------------------------------------------
System.onPause() {
fallbackTempFix.stop();
if (checkPref(0)) return;
DebugString("onPause",9);
createNotifier(true);
showNotifier(fillCustomInfo("Playback Paused"));
}
// ------------------------------------------------------------------------------
// called by the system when the user clicks the pause button again
// ------------------------------------------------------------------------------
System.onResume() {
if (checkPref(0)) return;
DebugString("onResume",9);
createNotifier(false);
cur_status = "Resuming Playback";
prepareAlbumArtNotifier();
}
// ------------------------------------------------------------------------------
// called by the system when the user clicks the play button
// ------------------------------------------------------------------------------
System.onStop() {
fallbackTempFix.stop();
if (checkPref(0)) return;
createNotifier(true);
showNotifier(fillCustomInfo("End of Playback"));
}
// ------------------------------------------------------------------------------
// checks if we should display anything
// ------------------------------------------------------------------------------
Int checkPref(int bypassfs) {
if (!bypassfs && notifier_hideinfullscreen_attrib.getData() == "1" && isVideoFullscreen()) return 1;
if (notifier_never_attrib.getData() == "1") return 1;
if (notifier_minimized_attrib.getData() == "1" && !isMinimized()) return 1;
if (notifier_windowshade_attrib.getData() == "1") {
if (isMinimized()) return 0;
Container c = getContainer("main");
if (!c) return 1;
Layout l = c.getCurLayout();
if (!l) return 1;
if (l.getId() != "shade") return 1;
}
return 0;
}
// ------------------------------------------------------------------------------
// fade in/out completed
// ------------------------------------------------------------------------------
// TODO: on dual monitors the notif stays on 2nd monitor :(
notifier_layout.onTargetReached() {
if (b_tohide) {
notifier_layout.setAlpha(0);
reset();
return;
}
int a = notifier_layout.getAlpha();
if (a == 255 && !b_tohide) {
notifier_timer.setDelay(StringToInteger(notifier_holdtime_attrib.getData()));
notifier_timer.start();
}
else if (a == 0) {
reset();
}
}
// ------------------------------------------------------------------------------
// hold time elapsed
// ------------------------------------------------------------------------------
notifier_timer.onTimer() {
stop();
if (notifier_fdout_alpha.getData() == "1") {
if (notifier_layout.isTransparencySafe()) {
notifier_layout.setTargetA(0);
notifier_layout.setTargetSpeed(StringToInteger(notifier_fadeouttime_attrib.getData()) / 1000);
notifier_layout.gotoTarget();
return;
}
else {
reset();
return;
}
}
else if (notifier_fdout_vslide.getData() == "1") {
b_tohide = 1;
int sy;
int geth;
Layout m = getContainer("main").getCurLayout();
if (notifier_loc_vport_attrib.getData() == "1")
{
geth = getViewportHeightFromGuiObject(m);
}
else
{
geth = getMonitorHeightFromGuiObject(m);
}
if (notifier_layout.getGuiY() == 2) sy = -80;
else sy = geth + 80;
notifier_layout.setTargetY(sy);
notifier_layout.setTargetSpeed(StringToInteger(notifier_fadeintime_attrib.getData()) / 1000);
notifier_layout.gotoTarget();
return;
}
else {
if (b_tohide) return;
b_tohide = 1;
int sx;
int getw;
Layout m = getContainer("main").getCurLayout();
if (notifier_loc_vport_attrib.getData() == "1") {
getw = getViewportWidthFromGuiObject(m);
}
else {
getw = getMonitorWidthFromGuiObject(m);
}
if (notifier_layout.getGuiX() == 2) sx = -notifier_layout.getWidth();
else sx = getw + notifier_layout.getWidth();
notifier_layout.setTargetX(sx);
notifier_layout.setTargetSpeed(StringToInteger(notifier_fadeintime_attrib.getData()) / 1000);
notifier_layout.gotoTarget();
return;
}
}
// ------------------------------------------------------------------------------
// when notifier is clicked, bring back the app from minimized state if its minimized and focus it
// ------------------------------------------------------------------------------
notifier_layout.onLeftButtonDown(int x, int y) {
cancelAnimation();
restoreApplication();
activateApplication();
/*if (notifier_opennowplaying_attrib.getData() == "1")
{
String artist = getArtist();
if (artist == "") return;
System.navigateUrlBrowser("http://client.winamp.com/nowplaying/artist/?icid=notifierbento&artistName=" + artist);
}*/
reset();
}
notifier_layout.onRightButtonUp(int x, int y) {
cancelAnimation();
reset();
complete;
return;
}
//TODO merge w/ code below
String getArtist ()
{
String artist = getPlayItemMetaDataString("artist");
if (artist == "") artist = getPlayItemMetaDataString("uvox/artist");
if (artist == "") artist = getPlayItemMetaDataString("cbs/artist");
if (artist == "") artist = getPlayItemMetaDataString("streamtitle");
if (artist == "") artist = getPlayItemDisplayTitle();
return artist;
}
// ------------------------------------------------------------------------------
// close the notifier window, destroys the container automatically because it's dynamic
// ------------------------------------------------------------------------------
reset() {
notifier_container.close();
notifier_container = NULL;
notifier_layout = NULL;
handleAACalback = FALSE;
}
// ------------------------------------------------------------------------------
createNotifier(boolean cancel) {
if (notifier_container == NULL) {
notifier_container = newDynamicContainer("notifier");
if (!notifier_container) return; // reinstall duh!
if (isDesktopAlphaAvailable())
notifier_layout = notifier_container.getLayout("desktopalpha");
else
notifier_layout = notifier_container.getLayout("normal");
if (!notifier_layout) return; // reinstall twice, man
} else if (cancel) {
cancelAnimation();
}
}
cancelAnimation()
{
notifier_layout.cancelTarget();
notifier_timer.stop();
}
// ------------------------------------------------------------------------------
showNotifier(int w) {
DebugString(IntegerToString(w), 0);
b_tohide = 0;
int x; int y;
int sy; int sx;
w = w + 30;
int getx, gety, geth, getw;
Layout m = getContainer("main").getCurLayout();
if (notifier_loc_vport_attrib.getData() == "1")
{
getx = getViewportLeftFromGuiObject(m);
gety = getViewportTopFromGuiObject(m);
geth = getViewportHeightFromGuiObject(m);
getw = getViewportWidthFromGuiObject(m);
}
else
{
getx = getMonitorLeftFromGuiObject(m);
gety = getMonitorTopFromGuiObject(m);
geth = getMonitorHeightFromGuiObject(m);
getw = getMonitorWidthFromGuiObject(m);
}
if (notifier_loc_br_attrib.getData() == "1") {
x = getw + getx - w - 2;
y = geth + gety - 80 - 2;
}
else if (notifier_loc_bl_attrib.getData() == "1") {
x = getx + 2;
y = geth + gety - 80 - 2;
}
else if (notifier_loc_bc_attrib.getData() == "1") {
x = getx + ((getw - w) / 2);
y = geth + gety - 80 - 2;
}
else if (notifier_loc_tr_attrib.getData() == "1") {
x = getw + getx - w - 2;
y = 2;
}
else if (notifier_loc_tc_attrib.getData() == "1") {
x = getx + ((getw - w) / 2);
y = 2;
}
else {
x = getx + 2;
y = 2;
}
if (notifier_fdin_alpha.getData() == "1") {
if (!notifier_layout.isVisible()) notifier_layout.resize(x, y, w, 80);
else
{
notifier_layout.resize(notifier_layout.getguiX(), y, notifier_layout.getGuiW(), 80);
}
if (notifier_layout.isTransparencySafe()) {
notifier_layout.show();
notifier_layout.settargetA(255);
notifier_layout.setTargetX(x);
notifier_layout.setTargetY(y);
notifier_layout.setTargetW(w);
notifier_layout.setTargetH(80);
notifier_layout.setTargetSpeed(StringToInteger(notifier_fadeintime_attrib.getData()) / 1000);
notifier_layout.gotoTarget();
} else {
notifier_layout.setAlpha(255);
notifier_layout.show();
notifier_layout.settargetA(255);
notifier_layout.setTargetX(x);
notifier_layout.setTargetY(y);
notifier_layout.setTargetW(w);
notifier_layout.setTargetH(80);
notifier_timer.setDelay(StringToInteger(notifier_holdtime_attrib.getData()));
notifier_timer.start();
}
}
else if (notifier_fdin_vslide.getData() == "1") {
if (y == 2) sy = -80;
else sy = geth + 80;
if (!notifier_layout.isVisible()) notifier_layout.resize(x, sy, w, 80);
else
{
notifier_layout.resize(notifier_layout.getguiX(), y, notifier_layout.getGuiW(), 80);
}
notifier_layout.show();
notifier_layout.setAlpha(255);
notifier_layout.setTargetX(x);
notifier_layout.setTargetY(y);
notifier_layout.setTargetW(w);
notifier_layout.setTargetH(80);
notifier_layout.setTargetSpeed(StringToInteger(notifier_fadeintime_attrib.getData()) / 1000);
notifier_layout.gotoTarget();
}
else {
if (x < (getw + getx)/2) sx = -w;
else sx = getw + w;
if (!notifier_layout.isVisible()) {
notifier_layout.resize(sx, y, w, 80);
}
else {
notifier_layout.resize(notifier_layout.getguiX(), y, notifier_layout.getGuiW(), 80);
}
notifier_layout.show();
notifier_layout.setAlpha(255);
notifier_layout.setTargetX(x);
notifier_layout.setTargetY(y);
notifier_layout.setTargetW(w);
notifier_layout.setTargetH(80);
notifier_layout.setTargetSpeed(StringToInteger(notifier_fadeintime_attrib.getData()) / 1000);
notifier_layout.gotoTarget();
}
}
// ------------------------------------------------------------------------------
prepareAlbumArtNotifier()
{
if (!notifier_layout) return;
Group g_albumart = notifier_layout.findObject("notifier.albumart");
DebugString("prepareAlbumArtNotifier: handleAACalback="+integerToString(handleAACalback), 9);
if (g_albumart)
{
cover = g_albumart.findObject("notifier.cover");
DebugString("prepareAlbumArtNotifier: cover.isLoading="+integerToString(cover.isLoading()), 9);
DebugString("prepareAlbumArtNotifier: cover.isInvalid="+integerToString(cover.isInvalid()), 9);
handleAACalback = true;
cover.refresh();
}
}
cover.onAlbumArtLoaded(boolean success)
{
/*
Created a seperate function for the code that was here because for some reason I couldn't force this
event (from the fallbackTempFix.onTimer) with cover.onAlbumArtLoaded(success) after the Winamp bug appears.
Weird, yes.
*/
FORCE_BUG_MODE onAlbumArt(success);
}
// ------------------------------------------------------------------------------
Int fillNextTrackInfo(String corneroverride) {
Int maxv = 0;
Int stream = 0;
if (!notifier_layout) return 0;
Group g_text = notifier_layout.findObject("notifier.text");
Group g_albumart = notifier_layout.findObject("notifier.albumart");
Text plentry = g_text.findObject("plentry");
Text nexttrack = g_text.findObject("nexttrack");
Text _title = g_text.findObject("title");
Text album = g_text.findObject("album");
Text artist = g_text.findObject("artist");
Text endofplayback = notifier_layout.findObject("endofplayback");
Text s_plentry = g_text.findObject("plentry.shadow");
Text s_nexttrack = g_text.findObject("nexttrack.shadow");
Text s_title = g_text.findObject("title.shadow");
Text s_album = g_text.findObject("album.shadow");
Text s_artist = g_text.findObject("artist.shadow");
Text s_endofplayback = notifier_layout.findObject("endofplayback.shadow");
DebugString("got callback for " + getPlayItemString(), 0);
// Get Stream Name - if no stream returns ""
string s = getPlayItemMetaDataString("streamname");
string stype = getPlayItemMetaDataString("streamtype"); //"streamtype" will return "2" for SHOUTcast and "5" for SHOUTcast 2
if (stype == "2" || stype == "5") stream = 1;
if (endofplayback) endofplayback.hide();
if (s_endofplayback) s_endofplayback.hide();
if (plentry)
{
plentry.setText(integerToString(getPlaylistIndex()+1)+translate(" of ")+integerToString(getPlaylistLength()));
plentry.show();
s_plentry.setText(integerToString(getPlaylistIndex()+1)+translate(" of ")+integerToString(getPlaylistLength()));
s_plentry.show();
}
if (nexttrack) {
if (corneroverride == "") {
if (!stream) {
if (!isVideo())
{
nexttrack.setText("New track");
s_nexttrack.setText("New track");
}
else
{
nexttrack.setText("New video");
s_nexttrack.setText("New video");
}
}
else
{
nexttrack.setText("On air");
s_nexttrack.setText("On air");
}
}
else
{
nexttrack.setText(corneroverride);
s_nexttrack.setText(corneroverride);
}
nexttrack.show();
s_nexttrack.show();
}
string set_artist = "";
string set = "";
if (_title) {
_title.setXmlParam("ticker", "0");
_title.setXmlParam("display", "");
s_title.setXmlParam("ticker", "0");
s_title.setXmlParam("display", "");
String str;
if (!stream)
{
str = getPlayitemMetaDataString("title");
if (str == "") str = getPlayitemDisplayTitle();
String l = getPlayItemMetaDataString("length");
if (l != "") {
str += " (" + integerToTime(stringtointeger(l)) + ")";
}
_title.setText(str);
s_title.setText(str);
}
else
{
if (str = getPlayItemMetaDataString("streamtitle") != "")
{
int v = strsearch(str, " - "); // We divide the string by a " - " sublimiter - no luck for old / wrong tagged stations
if (v > 0) {
set_artist = strleft (str, v); // Store artist
string str = strright (str, strlen(str) - 3 - v);
_title.setText(str);
s_title.setText(str);
}
else
{
_title.setXmlParam("ticker", "1"); // These titles can be _very_ long
s_title.setXmlParam("ticker", "1");
_title.setText(str);
s_title.setText(str);
}
} else {
_title.setXmlParam("ticker", "1");
_title.setXmlParam("display", "songtitle");
_title.setText("");
s_title.setXmlParam("ticker", "1");
s_title.setXmlParam("display", "songtitle");
s_title.setText("");
}
}
_title.show();
s_title.show();
}
if (artist) {
if (!stream) {
if (isVideo())
{
artist.setText("");
s_artist.setText("");
}
else
{
artist.setText(getPlayitemMetaDataString("artist"));
s_artist.setText(getPlayitemMetaDataString("artist"));
}
}
else
{
// Perhaps we've stored the artist before?
if (set_artist != "")
{
artist.setText(set_artist);
s_artist.setText(set_artist);
}
// Then display the station name
else if (s != "")
{
artist.setText(s);
s_artist.setText(s);
}
// So, we've had no luck - just display a static text :(
else
{
if (isVideo())
{
artist.setText("Internet TV");
s_artist.setText("Internet TV");
}
else
{
artist.setText("Internet Radio");
s_artist.setText("Internet Radio");
}
}
}
artist.show();
s_artist.show();
}
if (album) {
String str;
if (!stream && !isVideo()) {
s_album.setXmlParam("display", "");
album.setXmlParam("display", "");
str = getPlayitemMetaDataString("album");
String l = getPlayitemMetaDataString("track");
if (l != "" && l != "-1") str += " (" + translate("Track ") + l + ")";
album.setText(str);
s_album.setText(str);
}
else
{
album.setXmlParam("display", "");
s_album.setXmlParam("display", "");
// we have divided the songname - let's display the station name
if (set_artist != "" && s != "")
{
album.setText(s);
s_album.setText(s);
}
// no luck either...
else
{
album.setText("");
album.setXmlParam("display", "songinfo_localise");
s_album.setText("");
s_album.setXmlParam("display", "songinfo_localise");
}
}
album.show();
s_album.show();
}
// Album Art Stuff
Layer webcover;
if (g_albumart)
{
cover = g_albumart.findObject("notifier.cover");
webcover = g_albumart.findObject("notifier.webcover");
}
Boolean showAlbumArt = FALSE;
if (cover != NULL && webcover != NULL && notifier_artworkinnotification_attrib.getData() == "1")
{
if (stream)
{
if(stype == "2" || stype == "5" && cover.isInvalid())
{
webcover.setXMLParam("image", WEBCOVER_SHOUTCAST);
cover.hide();
webcover.show();
showAlbumArt = TRUE;
}
else if(stype == "5" && !cover.isInvalid())
{
webcover.hide();
cover.show();
showAlbumArt = TRUE;
}
}
else
{
if (cover.isInvalid()) // Check if the album art obj shows a pic
{
showAlbumArt = FALSE;
}
else
{
webcover.hide();
cover.show();
showAlbumArt = TRUE;
}
}
}
if (showAlbumArt)
{
if (g_albumart) g_albumart.show();
if (g_text) g_text.setXmlParam("x", "75");
if (g_text) g_text.setXmlParam("w", "-95");
}
else
{
if (g_albumart) g_albumart.hide();
if (g_text) g_text.setXmlParam("x", "15");
if (g_text) g_text.setXmlParam("w", "-35");
}
if (g_text) g_text.show();
maxv = artist.getAutoWidth();
if (maxv < album.getAutoWidth()) maxv = album.getAutoWidth();
if (maxv < _title.getAutoWidth()) maxv = _title.getAutoWidth();
if (maxv < (plentry.getAutoWidth() + nexttrack.getAutoWidth())) maxv = (plentry.getAutoWidth() + nexttrack.getAutoWidth());
if (maxv < 128) maxv = 128;
int getw;
Layout m = getContainer("main").getCurLayout();
if (notifier_loc_vport_attrib.getData() == "1")
{
//getw = getViewportWidth();
getw = getViewportWidthFromGuiObject(m);
}
else
{
getw = getMonitorWidthFromGuiObject(m);
}
if (maxv > getw/4) maxv = getw/4;
return maxv + ( showAlbumArt * 60 ) + 1; // Adds 60 extra pixels if album art is visible
}
// ------------------------------------------------------------------------------
Int fillCustomInfo(String customtext)
{
Group g_text = notifier_layout.findObject("notifier.text");
Group g_albumart = notifier_layout.findObject("notifier.albumart");
Text endofplayback = notifier_layout.findObject("endofplayback");
Text s_endofplayback = notifier_layout.findObject("endofplayback.shadow");
if (g_text) { g_text.hide(); }
if (g_albumart) g_albumart.hide();
if (endofplayback != NULL && s_endofplayback != NULL) {
endofplayback.setText(translate(customtext)+" ");
s_endofplayback.setText(translate(customtext)+" ");
int aw = endofplayback.getAutoWidth();
endofplayback.show();
s_endofplayback.show();
if (aw > 128)
return aw;
}
return 128;
}
//BUGFIX remove this timer later
fallbackTempFix.onTimer() //As soon as this timer run, bug mode is ON ;)
{
if (checkPref(0)) return;
if (!notifier_layout) onNext();
if(!triggerBug)
{
triggerBug = true;
onAlbumArt(cover.isInvalid()); //First time we see the bug
fallbackTempFix.setDelay(30);
DebugString("Hello Bug", 9);
}
else if(triggerBug && !cover.isLoading()) onAlbumArt(cover.isInvalid());
}
onAlbumArt(Boolean success){
fallbackTempFix.stop(); //BUGFIX remove later
DebugString("onAlbumArtLoaded: success="+integerToString(success), 9);
DebugString("onAlbumArtLoaded: handleAACalback="+integerToString(handleAACalback), 9);
DebugString("onAlbumArtLoaded: cover.isLoading="+integerToString(cover.isLoading()), 9);
DebugString("onAlbumArtLoaded: cover.isInvalid="+integerToString(cover.isInvalid()), 9);
if (!handleAACalback || !notifier_layout /*|| isLoading()*/)
{
return;
}
handleAACalback = cover.isLoading();
cancelAnimation();
showNotifier(fillNextTrackInfo(cur_status));
}

Binary file not shown.

View File

@ -0,0 +1,426 @@
/*
PlaylistPro build 005
Originally done by pjn123 (www.skinconsortium.com) for the Classic Pro plugin
*/
#include "lib/std.mi"
#include "lib/pldir.mi"
#include "attribs/init_Playlist.m"
Function resizeResults(int items);
Function doSearch(String input);
Function setSearchBox(boolean onOff);
Function clearSearchBox();
Function int getPlEntry(int search_item);
Function String replaceString(string baseString, string toreplace, string replacedby);
Global Group frameGroup, topbar;
Global Edit searchBox;
Global Text helpSearch, searchNews;// fakeText;
Global GuiObject fakeSB, searchXUI, searchButtonXui;
Global Button searchButton, clearButton, clearButtonText;
Global GuiList searchResults;
Global Boolean foundsomething;
Global int tn, h_tune;
Global String temptoken;
Global Windowholder plwh;
GLobal Timer refreshActiveCheck;
Global PopupMenu search_rc;
Global Container results_container;
Global Layout results_layout, main_layout;
System.onScriptLoaded() {
frameGroup = getScriptGroup();
topbar = frameGroup.findObject("PlaylistPro.topbar");
plwh = frameGroup.findObject("wdh.playlist");
searchBox = frameGroup.findObject("wasabi.edit.box");
searchXUI = frameGroup.findObject("pl.search.edit");
searchButton = frameGroup.findObject("pl.search.go");
searchButtonXui = frameGroup.findObject("pl.search.go");
fakeSB = frameGroup.findObject("pl.search.edit.rect");
clearButton = frameGroup.findObject("pl.search.edit.clear");
clearButtonText = frameGroup.findObject("pl.search.edit.clear.text");
helpSearch = frameGroup.findObject("pl.search.edit.searchhelp");
//fakeText = frameGroup.findObject("pl.search.go.text.fake");
results_container = newDynamicContainer("searchresults");
results_layout = results_container.getLayout("normal");
searchResults = results_layout.findObject("PlaylistPro.list");
searchResults.setFontSize(16);
searchNews = results_layout.findObject("PlaylistPro.list.news");
main_layout = getContainer("main").getLayout("normal");
initAttribs_Playlist();
//translation workaround
/*searchButtonXui.setXmlParam("text", System.translate("Search"));
searchButtonXui.setXmlParam("x", integerToString(-1*fakeText.getAutoWidth()-4));
searchButtonXui.setXmlParam("w", integerToString(fakeText.getAutoWidth()+2));
searchXUI.setXmlParam("w", integerToString(-1*fakeText.getAutoWidth()-9));*/
refreshActiveCheck = new Timer;
refreshActiveCheck.setDelay(100);
}
System.onScriptUnLoading() {
delete refreshActiveCheck;
}
refreshActiveCheck.onTimer(){
if((!System.isAppActive() || System.isMinimized()) && results_layout.isVisible() ) results_layout.hide();
}
results_layout.onSetVisible(boolean onOff){
if(onOff){
refreshActiveCheck.start();
}
else{
refreshActiveCheck.stop();
}
}
System.onShowLayout(Layout _layout){
if(main_layout.isVisible()) results_layout.setXmlParam("ontop", "1");
}
frameGroup.onSetVisible(boolean onOff){
if(!onOff) clearSearchBox();
}
searchButton.onLeftClick(){
doSearch(searchBox.getText());
}
resizeResults(int items){
/*results_layout.setTargetX(results_layout.getLeft());
results_layout.setTargetY(results_layout.getTop());
results_layout.setTargetW(results_layout.getWidth());
results_layout.setTargetH(500);
results_layout.setTargetSpeed(1);
results_layout.gotoTarget();*/
//items++; //temp add one extra for info... xx items found
if(items>20) items=20;
if(items>=1) h_tune=29;
else h_tune=25;
//results_layout.setXmlParam("h", integerToString(20+items*18));
/*results_layout.setTargetX(results_layout.getLeft());
results_layout.setTargetY(results_layout.getTop());
results_layout.setTargetW(results_layout.getWidth());
results_layout.setTargetH(h_tune+items*16);
results_layout.setTargetSpeed(0.3);
results_layout.gotoTarget();*/
results_layout.resize(results_layout.getLeft(), results_layout.getTop(), results_layout.getWidth(), h_tune+items*16);
}
searchBox.onEnter(){
doSearch(searchBox.getText());
}
doSearch(String input){
if(input==""){
clearSearchBox();
return;
}
//search history stuff
String history = getPublicString("cPro.PlaylistPro.history", "");
history = replaceString(history, input, "");
history = replaceString(history, ";;", ";");
if(strleft(history, 1)==";") history = strright(history, strlen(history)-1);
if(strright(history, 1)==";") history = strleft(history, strlen(history)-1);
if(history=="") history= input;
else history= input+";"+history;
String output = getToken(history, ";", 0);
for(int i = 1; i<15; i++){
if(getToken(history, ";", i)=="") break;
output+=";"+getToken(history, ";", i);
}
setPublicString("cPro.PlaylistPro.history", history);
int itemsfound = 0;
input = strlower(input);
results_layout.setXmlParam("x", integerToString(fakeSB.clientToScreenX(fakeSB.getLeft()-2)));
results_layout.setXmlParam("y", integerToString(fakeSB.clientToScreenY(fakeSB.getTop() + fakeSB.getHeight())));
results_layout.setXmlParam("w", integerToString(frameGroup.getWidth()-19));
if(!results_layout.isVisible()) results_layout.setXmlParam("h", "1");
searchResults.deleteAllItems();
searchResults.scrollToItem(0);
for(int i = 0; i<PlEdit.getNumTracks(); i++){
foundsomething=false;
for(tn = 0; tn<10; tn++){
if(getToken(input, " ", tn)==""){
break;
}
temptoken = getToken(input, " ", tn);
if(strsearch(strlower(PlEdit.getTitle(i) + " " + PlEdit.getFileName(i)), temptoken)>=0){
foundsomething=true;
}
else{
foundsomething=false;
}
if(!foundsomething){
break;
}
}
if(foundsomething){
itemsfound++;
searchResults.addItem(integerToString(i+1)+". " + PlEdit.getTitle(i));
if(itemsfound>500){
searchNews.setText("Search result limited to 500 items");
break;
}
}
}
if(itemsfound==0){
searchNews.setText("Nothing was found");
}
else if(itemsfound<=500){
searchNews.setText(System.translate("Items found: ") +integerToString(itemsfound));
}
if(!results_layout.isVisible()) results_layout.show();
// Fix if always on top is enabled.. it just refresh the ontop ;)
results_layout.setXmlParam("ontop", "1");
resizeResults(itemsfound);
}
searchResults.onDoubleClick(Int itemnum){
PlEdit.playTrack (getPlEntry(itemnum));
setSearchBox(false);
}
searchResults.onRightClick(Int itemnum){
search_rc = new PopupMenu;
search_rc.addCommand("Move selected to top", 1, 0, 0);
search_rc.addCommand("Move selected to bottom", 2, 0, 0);
search_rc.addCommand("Move selected after current", 3, 0, 0);
search_rc.addCommand("Move selected together", 4, 0, 0);
search_rc.addSeparator();
search_rc.addCommand("Remove selected from playlist", 5, 0, 0);
int result = search_rc.popAtMouse();
delete search_rc;
int lastselected = searchResults.getFirstItemSelected();
int itemcounter = 1;
if(result==1){
PlEdit.moveTo (getPlEntry(lastselected), 0);
while(searchResults.getNextItemSelected(lastselected) != -1){
lastselected = searchResults.getNextItemSelected(lastselected);
PlEdit.moveTo (getPlEntry(lastselected), itemcounter);
itemcounter++;
}
PlEdit.showTrack(0);
}
else if(result==2){
PlEdit.moveTo (getPlEntry(lastselected), PlEdit.getNumTracks ()-1);
while(searchResults.getNextItemSelected(lastselected) != -1){
lastselected = searchResults.getNextItemSelected(lastselected);
PlEdit.moveTo (getPlEntry(lastselected)-itemcounter, PlEdit.getNumTracks ()-1);
itemcounter++;
}
PlEdit.showTrack(PlEdit.getNumTracks ()-1);
}
else if(result==3){
int align = 0;
int orignalPos = PlEdit.getCurrentIndex();
int temp = getPlEntry(lastselected);
if(PlEdit.getCurrentIndex() > temp) align++;
if(orignalPos > getPlEntry(lastselected)) PlEdit.moveTo (getPlEntry(lastselected), PlEdit.getCurrentIndex());
else PlEdit.moveTo (getPlEntry(lastselected), PlEdit.getCurrentIndex()+1);
while(searchResults.getNextItemSelected(lastselected) != -1){
lastselected = searchResults.getNextItemSelected(lastselected);
if(orignalPos != getPlEntry(lastselected)){
if(orignalPos > getPlEntry(lastselected)){
PlEdit.moveTo (getPlEntry(lastselected)-align, PlEdit.getCurrentIndex()+itemcounter);
}
else{
PlEdit.moveTo (getPlEntry(lastselected), PlEdit.getCurrentIndex()+itemcounter+1);
}
temp = getPlEntry(lastselected);
if(orignalPos > temp) align++;
itemcounter++;
}
}
PlEdit.showCurrentlyPlayingTrack();
}
else if(result==4){
int startpos = getPlEntry(lastselected);
while(searchResults.getNextItemSelected(lastselected) != -1){
lastselected = searchResults.getNextItemSelected(lastselected);
PlEdit.moveTo (getPlEntry(lastselected), startpos+itemcounter);
itemcounter++;
}
PlEdit.showTrack(startpos);
}
else if(result==5){
PlEdit.removeTrack (getPlEntry(lastselected));
while(searchResults.getNextItemSelected(lastselected) != -1){
lastselected = searchResults.getNextItemSelected(lastselected);
PlEdit.removeTrack (getPlEntry(lastselected)-itemcounter);
itemcounter++;
}
}
else return;
//hides the search
setSearchBox(false);
}
int getPlEntry(int search_item){
return stringToInteger(getToken(searchResults.getItemLabel(search_item,0), ". ", 0))-1;
}
setSearchBox(boolean onOff){
if(onOff){
searchBox.show();
clearButton.show();
clearButtonText.show();
helpSearch.hide();
searchBox.setFocus();
}
else{
searchBox.hide();
clearButton.hide();
clearButtonText.hide();
helpSearch.show();
results_layout.hide();
}
}
fakeSB.onLeftButtonDown(int x, int y){
setSearchBox(true);
}
fakeSB.onRightButtonDown(int x, int y){
search_rc = new PopupMenu;
search_rc.addCommand("** Search history **", 0, 0, 1);
search_rc.addSeparator();
String history = getPublicString("cPro.PlaylistPro.history", "");
boolean historyfound=false;
for(int i=0;i<15;i++){
String historyitem = getToken(history, ";", i);
if(historyitem==""){
if(i>0) historyfound=true;
break;
}
search_rc.addCommand(historyitem, i+1, 0, 0);
}
if(historyfound) search_rc.addSeparator();
search_rc.addCommand("Clear History", 100, 0, 0);
int result = search_rc.popAtMouse();
delete search_rc;
if(result>0 && result<100){
setSearchBox(true);
searchBox.setText(getToken(history, ";", result-1));
searchButton.leftClick();
}
else if(result==100){
setPublicString("cPro.PlaylistPro.history", "");
}
}
clearSearchBox(){
searchBox.setText("");
setSearchBox(false);
}
main_layout.onMove(){
if(results_layout.isVisible()){
results_layout.setXmlParam("x", integerToString(fakeSB.clientToScreenX(fakeSB.getLeft()-2)));
results_layout.setXmlParam("y", integerToString(fakeSB.clientToScreenY(fakeSB.getTop() + fakeSB.getHeight())));
results_layout.setXmlParam("ontop", "1");
}
}
main_layout.onResize(int x, int y, int w, int h){
if(results_layout.isVisible()) clearSearchBox();
}
frameGroup.onResize(int x, int y, int w, int h){
if(results_layout.isVisible()) clearSearchBox();
//if(playlist_search_attib.getData()=="0") return;
if(h<102 || playlist_search_attrib.getData()=="0"){
if(!topbar.isVisible()) return; //Don't do the same code over and over
topbar.hide();
plwh.setXmlParam("y", "0");
plwh.setXmlParam("h", "0");
}
else{
if(topbar.isVisible()) return; //Don't do the same code over and over
topbar.show();
plwh.setXmlParam("y", "30");
plwh.setXmlParam("h", "-30");
}
}
clearButton.onLeftClick(){
clearSearchBox();
}
playlist_search_attrib.onDataChanged(){
frameGroup.onResize(frameGroup.getLeft(), frameGroup.getTop(), frameGroup.getWidth(), frameGroup.getHeight());
//debug("abc " + getData());
if (getData() == "0"){
topbar.hide();
plwh.setXMLParam("y", "0");
plwh.setXMLParam("h", "0");
}
else if(getData() == "1"){
topbar.show();
plwh.setXMLParam("y", "30");
plwh.setXMLParam("h", "-30");
}
}
String replaceString(string baseString, string toreplace, string replacedby){
if (toreplace == "") return baseString;
string sf1 = strupper(baseString);
string sf2 = strupper(toreplace);
int i = strsearch(sf1, sf2);
if (i == -1) return baseString;
string left = "", right = "";
if (i != 0) left = strleft(baseString, i);
if (strlen(basestring) - i - strlen(toreplace) != 0) {
right = strright(basestring, strlen(basestring) - i - strlen(toreplace));
}
return left + replacedby + right;
}

Binary file not shown.

View File

@ -0,0 +1,619 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: pledit.m
Version: 3.1
Type: maki
Date: 18. Sep. 2007 - 19:42
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include "lib/std.mi"
//#define DEBUG
#define FILE_NAME "pledit.m"
#include "lib/com/debug.m"
#define PL_GUID "{45F3F7C1-A6F3-4EE6-A15E-125E92FC3F8D}"
#define PLC_POPPLER_POS 200
#include "attribs/init_playlist.m"
Function fitContent (int playlistw, int playlistx);
Function fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh);
Function int updatePoppler(int w);
Function int updateMainPoppler(int w);
Global Frame dualwnd, pl_dualwnd, mainframe;
Global Group g_playlist, g_player, g_sui, g_buttons, g_mcv, g_cover, g_upper, wdh_pl;
Global Button p_enlarge, p_small;
Global Button p_resize;
Global int down_x, down_gx, isresizing;
Global layout normal;
Global Container player;
//Global WindowHolder wdh_pl;
Global Text pl_time;
Global Button pe_add, pe_rem, pe_sel, pe_misc, pe_manage;
Global Boolean startup, isBig, bypass_nocomp;
Global Timer dc_openPl, dc_closePl, dc_loadWnd;
Global Int COMP_Y, COMP_H, SUI_Y, SUI_H, BOTTOMSPACER, MAX_PL_H;
Global Int DEF_PL_W, SIDESPACER;
Global Int min_infowidth;
System.onScriptLoaded ()
{
initAttribs_Playlist();
normal = getScriptGroup();
player = normal.getContainer();
isBig = (getParam() == "big");
if (isBig)
{
mainframe = normal.getObject("player.mainframe.big");
}
else
{
mainframe = normal.getObject("player.mainframe");
}
dualwnd = mainframe.findObject("player.dualwnd");
g_mcv = dualwnd.findObject("player.component.fileinfo");
g_upper = dualwnd.findObject("player.component.playlist.frame");
pl_dualwnd = dualwnd.findObject("playlist.dualwnd");
g_playlist = pl_dualwnd.findObject("player.component.playlist");
g_cover = pl_dualwnd.findObject("player.component.playlist.albumart");
g_player = dualwnd.findObject("player.layout");
g_sui = normal.getObject("sui.content");
g_buttons = g_playlist.getObject("player.component.playlist.buttons");
p_enlarge = g_buttons.getObject("player.playlist.enlarge");
p_small = g_buttons.getObject("player.playlist.small");
p_resize = g_playlist.getObject("player.resize");
wdh_pl = g_playlist.getObject("playlistpro");
pl_time = g_buttons.getObject("PLTime");
pe_add = g_buttons.getObject("player.playlist.add");
pe_rem = g_buttons.getObject("player.playlist.rem");
pe_sel = g_buttons.getObject("player.playlist.sel");
pe_misc = g_buttons.getObject("player.playlist.misc");
pe_manage = g_buttons.getObject("player.playlist.manage");
min_infowidth = stringtoInteger(dualwnd.getXmlParam("maxwidth"));
dc_openPl = new Timer;
dc_openPl.setDelay(1);
dc_closePl = new Timer;
dc_closePl.setDelay(1);
dc_loadWnd = new Timer;
dc_loadWnd.setDelay(1);
// Global Definitions:
DEF_PL_W = g_playlist.getGuiW(); // (-)
SIDESPACER = g_sui.getGuiX(); // (+)
COMP_Y = mainframe.getGuiY(); // (+)
COMP_H = mainframe.getGuiH(); // (+)
SUI_Y = g_sui.getGuiY(); // (+)
SUI_H = g_sui.getGuiH(); // (-)
BOTTOMSPACER = SUI_Y + SUI_H; // (-)
MAX_PL_H = BOTTOMSPACER - COMP_Y; // (-)
startup = 1;
// show playlist album art if checked
playlist_cover_attrib.onDataChanged();
//Bento v0.8 hack
if (mainframe.getPosition() < stringToInteger(mainframe.getXmlParam("minwidth")))
{
mainframe.setPosition(stringToInteger(mainframe.getXmlParam("minwidth")));
}
}
system.onScriptUnloading ()
{
int pos = pl_dualwnd.getPosition();
if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos);
delete dc_loadWnd;
}
dc_loadWnd.onTimer ()
{
stop();
int pos = dualwnd.getPosition();
if (pos > 0) updatePoppler(pos);
playlist_enlarge_attrib.onDataChanged();
if (dualwnd.getPosition() > 0
#ifdef DOHIDEMCV
|| dualwnd.getXMlParam("from") == "left"
#endif
) dc_openPL.start();
else wdh_pl.hide(); //hideWa2Component(PL_GUID);
}
playlist_enlarge_attrib.onDataChanged ()
{
int pl_w = dualwnd.getPosition();
#ifdef DOHIDEMCV
if (dualwnd.getXmlParam("from") == "left")
{
pl_w = dualwnd.getWidth() - 8;
}
#endif
int pl_x = 0 - ( pl_w + SIDESPACER ); // (-)
if (getData() == "1")
{
int sui_w = pl_x - SIDESPACER; // (-)
dualwnd.setXmlParam("relath", "1");
dualwnd.setXmlParam("h", integerToString(0));
mainframe.setXmlParam("relath", "1");
mainframe.setXmlParam("h", integerToString(MAX_PL_H));
g_sui.setXmlParam("w", integerToString(sui_w-8));
int pos = getPrivateInt(getSkinName(), "playlist_cover_poppler", PLC_POPPLER_POS);
if (playlist_cover_attrib.getData() == "1" && pos > 0 && getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden")
{
g_cover.show();
pl_dualwnd.setPosition (pos);
}
else
{
pl_dualwnd.setPosition (0);
g_cover.hide();
}
p_enlarge.hide();
p_small.show();
}
else
{
int sui_w = 0 - SIDESPACER - SIDESPACER; // (-)
int pc_w = pl_x - SIDESPACER; // (-)
g_cover.hide();
if (playlist_cover_attrib.getData() == "1")
{
int pos = pl_dualwnd.getPosition();
if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos);
}
pl_dualwnd.setPosition (0);
dualwnd.setXmlParam("h", integerToString(COMP_H-3));
dualwnd.setXmlParam("relath", "0");
mainframe.setXmlParam("h", integerToString(COMP_H));
mainframe.setXmlParam("relath", "0");
g_sui.setXmlParam("w", integerToString(sui_w));
p_enlarge.show();
p_small.hide();
}
}
g_playlist.onResize (int x, int y, int w, int h)
{
int pos = dualwnd.getPosition();
debugString(integerToString(pos), 9);
updateMainPoppler(min_infowidth - pos - 8);
if (pos > 0
#ifdef DOHIDEMCV
|| dualwnd.getXMlParam("from") == "left"
#endif
)
{
//setPrivateInt(getSkinName(), "pledit poppler width", dualwnd.getPosition());
if (!wdh_pl.isVisible())
{
setPrivateString(getSkinName(), "Pledit_pos", "top");
g_sui.sendAction("hide_comp", "pe", 0,0,0,0);
dc_openPl.start();
}
if (isBig)
{
if (w > 189)
{
pe_add.show();
pe_rem.show();
pe_sel.show();
pe_misc.show();
pe_manage.show();
}
else if (w <= 189 && w >158)
{
pe_add.show();
pe_rem.show();
pe_sel.show();
pe_misc.show();
pe_manage.hide();
}
else if (w <= 158 && w >127)
{
pe_add.show();
pe_rem.show();
pe_sel.show();
pe_misc.hide();
pe_manage.hide();
}
else if (w <= 127 && w >96)
{
pe_add.show();
pe_rem.show();
pe_sel.hide();
pe_misc.hide();
pe_manage.hide();
}
else if (w <= 96 && w >65)
{
pe_add.show();
pe_rem.hide();
pe_sel.hide();
pe_misc.hide();
pe_manage.hide();
}
else
{
pe_add.hide();
pe_rem.hide();
pe_sel.hide();
pe_misc.hide();
pe_manage.hide();
}
}
else
{
if (w > 146)
{
pe_add.show();
pe_rem.show();
pe_sel.show();
pe_misc.show();
pe_manage.show();
}
else if (w <= 146 && w >122)
{
pe_add.show();
pe_rem.show();
pe_sel.show();
pe_misc.show();
pe_manage.hide();
}
else if (w <= 122 && w >98)
{
pe_add.show();
pe_rem.show();
pe_sel.show();
pe_misc.hide();
pe_manage.hide();
}
else if (w <= 98 && w >74)
{
pe_add.show();
pe_rem.show();
pe_sel.hide();
pe_misc.hide();
pe_manage.hide();
}
else if (w <= 74 && w >50)
{
pe_add.show();
pe_rem.hide();
pe_sel.hide();
pe_misc.hide();
pe_manage.hide();
}
else
{
pe_add.hide();
pe_rem.hide();
pe_sel.hide();
pe_misc.hide();
pe_manage.hide();
}
}
}
else wdh_pl.hide();
if (playlist_enlarge_attrib.getdata() == "1")
{
int sui_w = - g_playlist.getWidth() - (2 * SIDESPACER) - 8;
g_sui.setXmlParam("w", integerToString(sui_w));
if (startup)
{
startup = 0;
mainframe.setXmlParam("relath", "1");
mainframe.setXmlParam("h", integerToString(MAX_PL_H));
dualwnd.setXmlParam("relath", "1");
dualwnd.setXmlParam("h", integerToString(0));
}
}
}
normal.onSetVisible (Boolean onoff)
{
if (onoff)
{
playlist_enlarge_attrib.onDataChanged();
int pos = dualwnd.getPosition();
if (pos > 0
#ifdef DOHIDEMCV
|| dualwnd.getXMlParam("from") == "left"
#endif
)
{
updatePoppler(pos);
dc_openPL.start();
}
else wdh_pl.hide();//hideWa2Component(PL_GUID);
}
}
normal.onUserResize (int x, int y, int w, int h)
{
int pos = dualwnd.getPosition();
if (pos > 0) updatePoppler(pos);
}
/** Hide pl_time if it cannot be full displayed */
pl_time.onResize (int x, int y, int w, int h)
{
if (w < getTextWidth())
{
hide();
}
else
{
show();
}
}
pl_time.onTextChanged (String newtxt)
{
if (getWidth() < getTextWidth())
{
hide();
}
else
{
show();
}
}
/** Playlist Component Handling */
System.onGetCancelComponent (String guid, boolean goingvisible)
{
if (getPrivateString(getSkinName(), "Pledit_pos", "top") == "sui")
{
return;
}
debugString(DEBUG_PREFIX "System.onGetCancelComponent ( "+ guid + " , " + integerToString(goingvisible) + " )", D_WTF);
if (guid == PL_GUID)
{
Boolean isShade = player.getCurLayout() != normal;
if (goingvisible == TRUE && !isShade)
{
int poppler_w = getPrivateInt(getSkinName(), "pledit poppler width", 200);
if (poppler_w < 1) poppler_w = 200;
g_playlist.show();
updatePoppler(poppler_w);
dc_openPl.start();
return FALSE;
}
else
{
if (dualwnd.getPosition() > 0) setPrivateInt(getSkinName(), "pledit poppler width", dualwnd.getPosition());
wdh_pl.hide();
dualwnd.setPosition(0);
return FALSE;
}
}
}
normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "load_comp" && strlower(param) == "pledit")
{
int poppler_w = getPrivateInt(getSkinName(), "pledit poppler width", 200);
if (dualwnd.getPosition() > 0) poppler_w = dualwnd.getPosition();
if (dualwnd.getPosition() == 0) poppler_w = 200;
updatePoppler(poppler_w);
dc_openPl.start();
}
if (action == "hide_comp" && strlower(param) == "pledit")
{
setPrivateInt(getSkinName(), "pledit poppler width", dualwnd.getPosition());
wdh_pl.hide();
dualwnd.setPosition(0);
}
if (action == "pledit_posupdate")
{
int pos = dualwnd.getPosition();
if (pos > 0) updatePoppler(pos);
}
if (action == "sui")
{
if (param == "tonocomp")
{
if (playlist_cover_attrib.getData() == "1")
{
int pos = pl_dualwnd.getPosition();
if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos);
}
bypass_nocomp = TRUE; //we need to add a bypass otherwise playlist_cover_attrib will be turned OFF
pl_dualwnd.setPosition (0);
g_cover.hide();
bypass_nocomp = FALSE;
}
else if (param == "fromnocomp")
{
playlist_cover_attrib.onDataChanged ();
}
}
}
dualwnd.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "set_maxwidth")
{
// update poppler for playlist/infocomp
updatePoppler(dualwnd.getPosition());
// update poppler bands for player/infocomp
min_infowidth = x;
updateMainPoppler(min_infowidth - dualwnd.getPosition() - 8);
}
}
wdh_pl.onSetVisible (Boolean onoff)
{
debugString("wdh_pl set visible: " + integerToString(onoff), 9);
if (onoff)
{
playlist_cover_attrib.onDataChanged();
}
else
{
int pos = pl_dualwnd.getPosition();
if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos);
}
}
updatePoppler(int w)
{
if (dualwnd.getPosition() == 0 && w == 0) return;
int min_w = stringToInteger(dualwnd.getXmlParam("minwidth"));
int max_w = stringToInteger(dualwnd.getXmlParam("maxwidth"));
if (max_w < 0) max_w = dualwnd.getWidth() + max_w;
debugString("max_w: " + integerToString(max_w), 9);
boolean reset = FALSE;
reset += (w == 0);
reset += (w < min_w);
if (reset) w = min_w;
// Prevent the playlist from overlapping the player
if (w > max_w)
{
w = max_w;
// Resize the player to get more space
if (max_w < min_w)
{
w = min_w;
int mainframe_pos = mainframe.getPosition() - (min_w - max_w); // I need to save this in a variable first, otherwise mainframe.setPos will crash...
mainframe.setPosition(mainframe_pos);
}
}
debugString("set poppler: " + integerToString(w), 9);
dualwnd.setPosition(w);
}
updateMainPoppler (int w)
{
mainframe.setXmlparam("maxwidth", integerToString(w));
}
dc_openPl.onTimer ()
{
dc_openPl.stop();
debugString("dc_openPl called!", 9);
wdh_pl.show();
g_playlist.show();
g_upper.show();
//if (!wdh_pl.isVisible()) debugInt(g_playlist.getWidth());
}
dc_closePl.onTimer ()
{
dc_closePl.stop();
wdh_pl.hide();
}
//----------------------------------------------------------------------------------------------------------------
// Playlist Album Art Handles
//----------------------------------------------------------------------------------------------------------------
Global boolean attrib_bypass = false;
playlist_cover_attrib.onDataChanged ()
{
if (attrib_bypass)
return;
if (playlist_enlarge_attrib.getData() == "0")
return;
if (getData() == "1")
{
int pos = getPrivateInt(getSkinName(), "playlist_cover_poppler", PLC_POPPLER_POS);
if (pos > 0 && getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden")
{
pl_dualwnd.setPosition (pos);
g_cover.show();
}
else
{
pl_dualwnd.setPosition (0);
g_cover.hide();
}
}
else
{
int pos = pl_dualwnd.getPosition();
if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos);
pl_dualwnd.setPosition(0);
g_cover.hide();
}
}
Global Boolean bypass;
player.onBeforeSwitchToLayout (Layout oldlayout, Layout newlayout)
{
if (oldlayout == normal)
{
bypass = 1;
}
}
g_cover.onSetVisible (Boolean onoff)
{
if (bypass)
{
bypass = 0;
return;
}
if (!onoff && !bypass_nocomp && playlist_cover_attrib.getdata() == "1" && getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden" && playlist_enlarge_attrib.getData() == "1" && dualwnd.getPosition() > 0)
{
playlist_cover_attrib.setdata("0");
}
else if (onoff && !bypass_nocomp && playlist_cover_attrib.getdata() == "0" && dualwnd.getPosition() > 0)
{
attrib_bypass = true;
playlist_cover_attrib.setdata("1");
attrib_bypass = false;
}
}

Binary file not shown.

View File

@ -0,0 +1,90 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: seek.m
Version: 1.2
Type: maki
Date: 23. Jul. 2007 - 22:52
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on seek.m
from Winamp Modern
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Group frameGroup;
Global Slider Seeker, SeekerBehind;
Global Int Seeking;
Global GuiObject SongTicker;
Global GuiObject progressBar;
System.onScriptLoaded()
{
frameGroup = system.getScriptGroup();
Seeker = frameGroup.findObject("seeker.ghost");
SeekerBehind = frameGroup.findObject("seeker.ghost");
progressBar = frameGroup.findObject("progressbar");
SongTicker = frameGroup.getParentLayout().findObject("songticker");
progressBar.hide();
progressBar.show();
if (getStatus() == 0 || !seeker.isvisible())
{
progressBar.hide();
}
}
Seeker.onSetPosition(int p) {
if (seeking) {
Float f;
f = p;
f = f / 255 * 100;
Float len = getPlayItemLength();
if (len != 0) {
int np = len * f / 100;
SongTicker.sendAction
(
"showinfo",
translate("Seek") + ": " + integerToTime(np) + "/" + integerToTime(len) + " (" + integerToString(f) + "%) ",
0, 0, 0, 0
);
}
}
}
/** Hehe, this is the best trick i figured out to indicate if we have a stream */
Seeker.onSetVisible (Boolean onoff)
{
if (onoff)
{
progressBar.show();
}
else
{
progressBar.hide();
}
}
Seeker.onLeftButtonDown(int x, int y) {
seeking = 1;
Seeker.setAlpha(128);
SeekerBehind.show();
}
Seeker.onLeftButtonUp(int x, int y) {
seeking = 0;
Seeker.setAlpha(255);
SeekerBehind.hide();
SongTicker.sendAction("cancelinfo", "", 0, 0, 0, 0);
}
Seeker.onSetFinalPosition(int p) {
SongTicker.sendAction("cancelinfo", "", 0, 0, 0, 0);
}

Binary file not shown.

View File

@ -0,0 +1,74 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: syncbutton.m
Version: 1.0
Type: maki
Date: 25. Jun. 2007 - 14:04
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/com/songinfo.m>
//nothing to see here
Function String getArtist ();
/*
Global Button search, nowplaying;
Global boolean isShade;
System.onScriptLoaded ()
{
search = getScriptGroup().getObject("search");
isShade = (search.getParentLayout().getId() == "shade");
nowplaying = getScriptGroup().getObject("nowplaying");
}
search.onLeftClick ()
{
String artist = getArtist();
if (artist == "") return;
getContainer("main").switchToLayout("normal");
group sui = getContainer("main").getLayout("normal").findObject("sui.content");
sui.sendAction ("browser_search", artist, 0, 0, 0, 0);
}
nowplaying.onLeftClick ()
{
String artist = getArtist();
if (artist == "") return;
//getContainer("main").switchToLayout("normal");
String icid = "fileinfoicon";
if (isShade)
{
icid = "winshadeiconbento";
}
System.navigateUrlBrowser("http://client.winamp.com/nowplaying/artist/?icid="+ icid +"&artistName=" + artist);
}
*/
String getArtist ()
{
songinfo_reload();
if (songinfo_isStream && songinfo_artist == "")
{
int v = strsearch(songinfo_streamtitle, " - ");
if (v > 0)
{
return strleft(songinfo_streamtitle, v);
}
return songinfo_streamtitle;
}
return songinfo_artist;
}

Binary file not shown.

View File

@ -0,0 +1,217 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: shadesize.m
Version: 2.1
Type: maki
Date: 23. Jul. 2007 - 17:24
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Function updateObjectPosition(int w);
Global Group scriptGroup;
//Global Group g_cbuttons, g_sysbuttons, g_display, g_volume, g_seek, g_vis, g_links;
Global Group g_cbuttons, g_sysbuttons, g_display, g_volume, g_seek, g_vis;
//Global Int minumim_w, x_cbuttons, w_cbuttons, w_sysbuttons, w_volume, w_display, w_seek, w_vis, x_seek, w_links, w_links_, x_links, x_links_;
Global Int minumim_w, x_cbuttons, w_cbuttons, w_sysbuttons, w_volume, w_display, w_seek, w_vis, x_seek;
System.onScriptLoaded ()
{
initAttribs_Appearance();
scriptGroup = getScriptGroup();
g_cbuttons = scriptGroup.findObject("shade.cbuttons");
x_cbuttons = stringToInteger(g_cbuttons.getXmlParam("x"));
w_cbuttons = stringToInteger(g_cbuttons.getXmlParam("w"));
g_seek = scriptGroup.findObject("shade.seek");
w_seek = stringToInteger(g_seek.getXmlParam("w"));
x_seek = stringToInteger(g_seek.getXmlParam("x"));
g_vis = scriptGroup.findObject("shade.vis");
w_vis = stringToInteger(g_vis.getXmlParam("w"));
/*
g_links = scriptGroup.findObject("shade.links");
w_links_ = stringToInteger(g_links.getXmlParam("w"));
x_links_ = stringToInteger(g_links.getXmlParam("x"));
*/
w_sysbuttons = stringToInteger(getParam());
g_display = scriptGroup.findObject("shade.display");
w_display = stringToInteger(g_display.getXmlParam("w"));
g_volume = scriptGroup.findObject("shade.volume");
w_volume = stringToInteger(g_volume.getXmlParam("w"));
}
scriptGroup.onResize (int x, int y, int w, int h)
{
updateObjectPosition(w);
}
scriptGroup.onSetVisible (Boolean onoff)
{
if (onoff)
{
updateObjectPosition(scriptGroup.getWidth());
}
}
/*
artist_info_buttons_attrib.onDataChanged ()
{
updateObjectPosition(scriptGroup.getWidth());
}
*/
updateObjectPosition (int w)
{
/* if (artist_info_buttons_attrib.getData() == "1")
{
w_links = w_links_;
x_links = x_links_;
}
else
{
w_links = x_links = 0;
}
*/
// if (w >= x_cbuttons + w_cbuttons + 2 * w_display + w_volume + w_sysbuttons + 3.5 * w_seek + w_vis + w_links)
if (w >= x_cbuttons + w_cbuttons + 2 * w_display + w_volume + w_sysbuttons + 3.5 * w_seek + w_vis)
{
// if(g_links != null) g_links.setXmlParam("x", integerToString(x_seek - 2*w_seek - w_links));
g_seek.setXmlParam("x", integerToString(x_seek - 2*w_seek));
g_seek.setXmlParam("w", integerToString(3 * w_seek));
g_cbuttons.setXmlParam("x", integerToString(2 + x_cbuttons + w_vis));
g_volume.setXmlParam("x", integerToString(2 + x_cbuttons + w_vis + w_cbuttons));
g_display.setXmlParam("x", integerToString(2 + x_cbuttons + w_cbuttons + w_volume + w_vis));
// g_display.setXmlParam("w", integerToString(0 - 1 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - 3 * w_seek - w_vis - w_links));
g_display.setXmlParam("w", integerToString(0 - 1 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - 3 * w_seek - w_vis));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.show();
g_seek.show();
g_vis.show();
/* if(w_links != 0) g_links.show();
else g_links.hide();
*/
}
// else if (w >= x_cbuttons + w_cbuttons + 2 * w_display + w_volume + w_sysbuttons + 2 * w_seek + w_vis + w_links)
else if (w >= x_cbuttons + w_cbuttons + 2 * w_display + w_volume + w_sysbuttons + 2 * w_seek + w_vis)
{
// if(g_links != null) g_links.setXmlParam("x", integerToString(x_seek - w_seek - w_links));
g_seek.setXmlParam("x", integerToString(x_seek - w_seek));
g_seek.setXmlParam("w", integerToString(2 * w_seek));
g_cbuttons.setXmlParam("x", integerToString(2 + x_cbuttons + w_vis));
g_volume.setXmlParam("x", integerToString(2 + x_cbuttons + w_vis + w_cbuttons));
g_display.setXmlParam("x", integerToString(2 + x_cbuttons + w_cbuttons + w_volume + w_vis));
// g_display.setXmlParam("w", integerToString(0 - 1 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - 2 * w_seek - w_vis - w_links));
g_display.setXmlParam("w", integerToString(0 - 1 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - 2 * w_seek - w_vis));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.show();
g_seek.show();
g_vis.show();
/* if(w_links != 0) g_links.show();
else g_links.hide();
*/
}
// else if (w >= x_cbuttons + w_cbuttons + w_display + w_volume + w_sysbuttons + w_seek + w_vis + w_links)
else if (w >= x_cbuttons + w_cbuttons + w_display + w_volume + w_sysbuttons + w_seek + w_vis)
{
// if(g_links != null) g_links.setXmlParam("x", integerToString(x_seek - w_links));
g_seek.setXmlParam("x", integerToString(x_seek));
g_seek.setXmlParam("w", integerToString(w_seek));
g_cbuttons.setXmlParam("x", integerToString(2 + x_cbuttons + w_vis));
g_volume.setXmlParam("x", integerToString(2 + x_cbuttons + w_vis + w_cbuttons));
g_display.setXmlParam("x", integerToString(2 + x_cbuttons + w_cbuttons + w_volume + w_vis));
// g_display.setXmlParam("w", integerToString(0 - 1 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - w_seek - w_vis - w_links));
g_display.setXmlParam("w", integerToString(0 - 1 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - w_seek - w_vis));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.show();
g_seek.show();
g_vis.show();
/* if(w_links != 0) g_links.show();
else g_links.hide();
*/
}
// else if (w >= x_cbuttons + w_cbuttons + w_display + w_volume + w_sysbuttons + w_seek + w_links)
else if (w >= x_cbuttons + w_cbuttons + w_display + w_volume + w_sysbuttons + w_seek)
{
// if(g_links != null) g_links.setXmlParam("x", integerToString(x_seek - w_links));
g_seek.setXmlParam("x", integerToString(x_seek));
g_seek.setXmlParam("w", integerToString(w_seek));
g_volume.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons));
g_cbuttons.setXmlParam("x", integerToString(x_cbuttons));
g_display.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons + w_volume));
// g_display.setXmlParam("w", integerToString(0 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - w_seek - w_links));
g_display.setXmlParam("w", integerToString(0 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - w_seek));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.show();
g_seek.show();
g_vis.hide();
/* if(w_links != 0) g_links.show();
else g_links.hide();
*/
}
else if (w >= x_cbuttons + w_cbuttons + w_display + w_volume + w_sysbuttons + w_seek)
{
g_seek.setXmlParam("x", integerToString(x_seek));
g_seek.setXmlParam("w", integerToString(w_seek));
g_volume.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons));
g_cbuttons.setXmlParam("x", integerToString(x_cbuttons));
g_display.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons + w_volume));
g_display.setXmlParam("w", integerToString(0 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume - w_seek));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.show();
g_seek.show();
g_vis.hide();
// g_links.hide();
}
else if (w >= x_cbuttons + w_cbuttons + w_display + w_volume + w_sysbuttons)
{
g_cbuttons.setXmlParam("x", integerToString(x_cbuttons));
g_volume.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons));
g_display.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons + w_volume));
g_display.setXmlParam("w", integerToString(0 - x_cbuttons - w_cbuttons - w_sysbuttons - w_volume));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.show();
g_seek.hide();
g_vis.hide();
// g_links.hide();
}
else if (w >= x_cbuttons + w_cbuttons + w_display + w_sysbuttons)
{
g_cbuttons.setXmlParam("x", integerToString(x_cbuttons));
g_volume.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons));
g_display.setXmlParam("x", integerToString(x_cbuttons + w_cbuttons));
g_display.setXmlParam("w", integerToString(0 - x_cbuttons - w_cbuttons - w_sysbuttons));
g_display.setXmlParam("relatw", "1");
g_display.show();
g_volume.hide();
g_seek.hide();
g_vis.hide();
// g_links.hide();
}
else
{
g_cbuttons.setXmlParam("x", integerToString(x_cbuttons));
g_volume.hide();
g_display.hide();
g_seek.hide();
g_vis.hide();
// g_links.hide();
}
}

Binary file not shown.

View File

@ -0,0 +1,72 @@
/**
* simlple maximize script
*
* doesn't require a registry store, so ideal for standardframes
* required objects: maximize & restore as buttons
*
* @author mpdeimos
* @version 0.1
*/
#include <lib/std.mi>
Global Button restore, maximize;
Global Layout parent;
Global Int lx, ly, lw, lh;
System.onScriptLoaded ()
{
restore = getScriptGroup().findObject("restore");
maximize = getScriptGroup().findObject("maximize");
parent = getScriptGroup().getParentLayout();
lx = -1;
ly = -1;
lh = -1;
lw = -1;
}
parent.onResize (int x, int y, int w, int h)
{
double d = getScale();
if (getLeft() == getViewPortLeftfromGuiObject(parent) && getTop() == getViewPortTopfromGuiObject(parent) && getWidth() == getViewPortWidthfromGuiObject(parent)/d && getHeight() == getViewPortHeightfromGuiObject(parent)/d)
{
restore.show();
maximize.hide();
}
else
{
restore.hide();
maximize.show();
}
}
maximize.onLeftClick ()
{
lx = parent.getLeft();
ly = parent.getTop();
lw = parent.getWidth();
lh = parent.getHeight();
double d = parent.getScale();
parent.resize(getViewPortLeftfromGuiObject(parent), getViewPortTopfromGuiObject(parent), getViewPortWidthfromGuiObject(parent)/d, getViewPortHeightfromGuiObject(parent)/d);
}
restore.onLeftClick ()
{
if (lx == -1)
lx = parent.getLeft() - 75;
if (ly == -1)
ly = parent.getTop() - 75;
if (lw == -1)
lw = parent.getWidth() - 150;
if (lh == -1)
lh = parent.getHeight() - 150;
parent.resize(lx,ly,lw,lh);
}
// TODO (mpdeimos) add scale recognizing

View File

@ -0,0 +1,214 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: songinfo.m
Version: 1.0
Type: maki
Date: 20. Nov. 2006 - 22:47
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Function int getChannels (); // returning 1 for mono, 2 for stereo, more for multichannel (e.g. 6), -1 for no info available
Function string getBitrate();
Function string getFrequency();
Global layer monster;
Global timer delayload, songInfoTimer;
Global Text Bitrate, Frequency;
Global Layer l_Bitrate, l_Frequency;
Global int tempwidth;
Global boolean param;
System.onScriptLoaded()
{
group PlayerDisplay = getScriptgroup();
param = (getParam() == "big");
monster = PlayerDisplay.findObject("monster");
Bitrate = PlayerDisplay.findObject("Bitrate");
Frequency = PlayerDisplay.findObject("Frequency");
l_Bitrate = PlayerDisplay.findObject("Bitrate.label");
l_Frequency = PlayerDisplay.findObject("Frequency.label");
delayload = new Timer;
delayload.setDelay(100);
songInfoTimer = new Timer;
songInfoTimer.setDelay(1000);
Int PlayerStatus = System.getStatus();
if ( PlayerStatus != 0 )
{
delayload.start();
bitrate.setText(getBitrate());
Frequency.setText(getFrequency());
if (PlayerStatus == 1)
{
songInfoTimer.start();
}
}
}
system.onScriptUnloading ()
{
songinfotimer.stop();
delete songinfotimer;
delayload.stop();
delete delayload;
}
System.onResume()
{
delayload.start();
songInfoTimer.start();
}
System.onPlay()
{
delayload.start();
songInfoTimer.start();
}
System.onStop ()
{
monster.setXmlParam("image", "player.songinfo.na");
songInfoTimer.stop();
}
system.onPause ()
{
songInfoTimer.stop();
}
System.onTitleChange(String newtitle)
{
delayload.start();
bitrate.setText(getBitrate());
}
delayload.onTimer ()
{
delayload.stop();
int c = getChannels();
if (c == -1) monster.setXmlParam("image", "player.songinfo.na");
else if (c == 1) monster.setXmlParam("image", "player.songinfo.mono");
else if (c == 2 || c == 3) monster.setXmlParam("image", "player.songinfo.stereo");
else
{
if (tempwidth > 23) monster.setXmlParam("image", "player.songinfo.multi2");
else monster.setXmlParam("image", "player.songinfo.multi");
}
//ensure to display bitrate & frequency
bitrate.setText(getBitrate());
Frequency.setText(getFrequency());
}
Int getChannels ()
{
if (strsearch(getSongInfoText(), "tereo") != -1)
{
return 2;
}
else if (strsearch(getSongInfoText(), "ono") != -1)
{
return 1;
}
else if (strsearch(getSongInfoText(), "annels") != -1)
{
int pos = strsearch(getSongInfoText(), "annels");
return stringToInteger(strmid(getSongInfoText(), pos - 4, 1));
}
else
{
return -1;
}
}
songInfoTimer.onTimer ()
{
bitrate.setText(getBitrate());
}
string getBitrate ()
{
string sit = strlower(getSongInfoText());
if (sit != "")
{
string rtn;
int searchresult;
for (int i = 0; i < 5; i++) {
rtn = getToken(sit, " ", i);
searchResult = strsearch(rtn, "kbps");
if (searchResult>0) return StrMid(rtn, 0, searchResult);
}
return "";
}
else
{
return "";
}
}
string getFrequency ()
{
string sit = strlower(getSongInfoText());
if (sit != "")
{
string rtn;
int searchresult;
for (int i = 0; i < 5; i++) {
rtn = getToken(sit, " ", i);
searchResult = strsearch(strlower(rtn), "khz");
if (searchResult>0)
{
rtn = StrMid(rtn, 0, searchResult);
searchResult = strsearch(strlower(rtn), ".");
if (searchResult>0)
{
rtn = getToken(rtn, ".", 0);
}
return rtn;
}
}
return "";
}
else
{
return "";
}
}
Bitrate.onTextChanged (String newtxt)
{
if (param) return;
if (Bitrate.getTextWidth() == tempwidth) return;
tempwidth = getTextWidth();
if (getTextWidth() > 23)
{
monster.setXmlParam("x", "-39");
Frequency.setXmlParam("x", "-75");
l_Bitrate.setXmlParam("x", "-91");
l_Frequency.setXmlParam("x", "-58");
Bitrate.setXmlParam("w", "26");
if (getChannels() > 3) monster.setXmlParam("image", "player.songinfo.multi2");
}
else
{
monster.setXmlParam("x", "-45");
Frequency.setXmlParam("x", "-80");
l_Bitrate.setXmlParam("x", "-96");
l_Frequency.setXmlParam("x", "-63");
Bitrate.setXmlParam("w", "20");
if (getChannels() > 3) monster.setXmlParam("image", "player.songinfo.multi");
}
}

Binary file not shown.

View File

@ -0,0 +1,190 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: songticker.m
Version: 1.0
Type: maki
Date: 18. Nov. 2006 - 16:08
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_songticker.m
Function setTextW();
Function updateTickerScrolling();
Global Timer SongTickerTimer;
Global GuiObject SongTicker;
Global Text SongTime, InfoDisplay;
Global int SongTicker_x, SongTicker_w, total_w;
Global int SongTime_x, SongTime_w, offset_x;
Global Boolean isShade, byPassTimer;
System.onScriptLoaded ()
{
initAttribs_Songticker();
group sg = getScriptGroup();
if (sg.getParentLayout().getID() == "shade") isShade = TRUE;
SongTicker = sg.findObject("songticker");
InfoDisplay = sg.findObject("InfoDisplay");
SongTickerTimer = new Timer;
SongTickerTimer.setDelay(666);
SongTime = sg.findObject("SongTime");
SongTicker_x = SongTicker.getGuiX();
SongTicker_w = SongTicker.getGuiW();
total_w = SongTicker_x + SongTicker_w;
SongTime_x = SongTime.getGuiX();
SongTime_w = SongTime.getTextWidth();
offset_x = stringToInteger(getParam());
setTextW();
updateTickerScrolling();
}
System.onScriptUnloading ()
{
SongTickerTimer.stop();
delete SongTickerTimer;
}
SongTicker.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (strlower(action) == "showinfo")
{
InfoDisplay.cancelTarget();
Songticker.cancelTarget();
SongTickerTimer.stop();
SongTickerTimer.start();
InfoDisplay.setText(param);
InfoDisplay.setAlpha(255);
SongTicker.setAlpha(0);
}
else if (strlower(action) == "cancelinfo")
{
SongTickerTimer.onTimer ();
}
else if (strlower(action) == "setguix")
{
byPassTimer = TRUE;
SongTicker_X = x;
SongTicker_W = total_w - SongTicker_X;
SongTicker.setXmlParam("x", integerToString(SongTicker_X));
InfoDisplay.setXmlParam("x", integerToString(SongTicker_X));
SongTicker.setXmlParam("w", integerToString(SongTicker_W));
InfoDisplay.setXmlParam("w", integerToString(SongTicker_W));
}
else if (strlower(action) == "restoreguix")
{
byPassTimer = FALSE;
setTextW ();
}
}
SongTickerTimer.onTimer ()
{
SongTickerTimer.stop();
InfoDisplay.cancelTarget();
InfoDisplay.setTargetA(0);
InfoDisplay.setTargetSpeed(0.3);
InfoDisplay.gotoTarget();
}
InfoDisplay.onTargetReached ()
{
if (InfoDisplay.getAlpha() == 0)
{
setTextW ();
Songticker.cancelTarget();
Songticker.setTargetA(255);
Songticker.setTargetX(Songticker.getGuiX());
Songticker.setTargetW(Songticker.getGuiW());
Songticker.setTargetSpeed(0.3);
Songticker.gotoTarget();
}
}
/* Changing TickerScrolling via Config Attrib */
ScrollingAttribute.onDataChanged ()
{
setTextW ();
updateTickerScrolling();
}
updateTickerScrolling ()
{
if (Songticker == NULL)
{
return;
}
if (songticker_scrolling_disabled_attrib.getData() == "1") SongTicker.setXMLParam("ticker", "off");
if (songticker_style_modern_attrib.getData() == "1") SongTicker.setXMLParam("ticker", "bounce");
if (songticker_style_old_attrib.getData() == "1") SongTicker.setXMLParam("ticker", "scroll");
}
/* set Songticker Position */
setTextW ()
{
if (byPassTimer) return;
if (Songticker == NULL || InfoDisplay == NULL)
{
return;
}
SongTicker_X = SongTime_X + SongTime_w + offset_x;
SongTicker_W = total_w - SongTicker_X;
/*if (!isShade)
{
if (SongTime_w > 89)
{
SongTime.setXmlParam("x", "0");
SongTicker_X = SongTime_X + SongTime_w + offset_x - 11;
SongTicker_W = total_w - SongTicker_X + 11;
}
else
{
SongTime.setXmlParam("x", "10");
}
}*/
// debugString(system.getScriptGroup().getParentLayout().getID() + " -- x: " + integerToString(SongTicker_X) + " -- w: " + integerToString(SongTicker_W), 9);
Songticker.setXmlParam("x", integerToString(SongTicker_X));
Songticker.setXmlParam("w", integerToString(SongTicker_W));
InfoDisplay.setXmlParam("x", integerToString(SongTicker_X));
InfoDisplay.setXmlParam("w", integerToString(SongTicker_W));
}
SongTime.onTextChanged (String newtxt)
{
int temp_w = SongTime.getTextWidth();
if (SongTime_w == temp_w) return;
SongTime_w = temp_w;
setTextW ();
}
songticker.onTargetReached ()
{
setTextW ();
}

Binary file not shown.

View File

@ -0,0 +1,68 @@
#include <lib/std.mi>
Global Group frameGroup, content;//, titlebar;
Global String x, y, w, h, rx, ry, rw, rh;
//Global Layer mouselayer;
Global Button Sysmenu;
Function setNewGroup(String groupid);
System.onScriptLoaded() {
frameGroup = getScriptGroup();
String param = getParam();
x = getToken(param, ",", 0);
y = getToken(param, ",", 1);
w = getToken(param, ",", 2);
h = getToken(param, ",", 3);
rx = getToken(param, ",", 4);
ry = getToken(param, ",", 5);
rw = getToken(param, ",", 6);
rh = getToken(param, ",", 7);
sysmenu = frameGroup.findObject("sysmenu");
}
System.onSetXuiParam(String param, String value) {
if (param == "content") {
setNewGroup(value);
//titlebar = frameGroup.findObject("wasabi.titlebar");
//mouselayer = titlebar.findObject("mousetrap");
}
/*if (param == "padtitleright" || param == "padtitleleft") {
if (titlebar != NULL) titlebar.setXmlParam(param, value);
}
if (param == "shade") {
if (mouselayer != NULL) mouselayer.setXmlParam("dblclickaction", "switch;"+value);
else messagebox("Cannot set shade parameter for StandardFrame object, no mousetrap found", "Skin Error", 0, "");
}*/
}
// backward compatibility for prerelease notify trick
frameGroup.onNotify(String cmd, String param, int a, int b) {
String _command = getToken(cmd, ",", 0);
String _param = getToken(cmd, ",", 1);
if (_command == "content" || _command == "padtitleright" || _command == "padtitleleft" || _command == "shade") {
onSetXuiParam(_command, _param);
}
}
setNewGroup(String groupid) {
content = newGroup(groupid);
if (content == NULL) {
messagebox("group \"" + groupid + "\" not found", "ButtonGroup", 0, "");
return;
}
content.setXmlParam("x", x);
content.setXmlParam("y", y);
content.setXmlParam("w", w);
content.setXmlParam("h", h);
content.setXmlParam("relatx", rx);
content.setXmlParam("relaty", ry);
content.setXmlParam("relatw", rw);
content.setXmlParam("relath", rh);
content.init(frameGroup);
}
Sysmenu.onLeftClick() {
LayoutStatus _status = frameGroup.findObject("sysmenu.status");
_status.callme("{system}");
}

View File

@ -0,0 +1,410 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: suicore.m
Version: 4.4
Type: maki
Date: 02. Sep. 2007 - 17:35
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on drawer.m
from Winamp Modern, but extended to
4 components that can be closed!
Like in drawer.m I warn everybody not
to modify this script, cause it can be
harmed very fast! And you don't want
a buggy winamp skin, want you?
Since script version 3.1
(onesie build #022)
the script is devided into subscripts
for better debugging.
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/config.mi>
#include <lib/winampconfig.mi>
#include attribs/init_windowpage.m
#include attribs/init_Autoresize.m
#include attribs/init_vis.m
#include attribs/init_appearance.m
// #define DEBUG
#define FILE_NAME "suicore.m"
#include <lib/com/debug.m>
#define ML_GUID "{6B0EDF80-C9A5-11D3-9F26-00C04F39FFC6}"
#define VIS_GUID "{0000000A-000C-0010-FF7B-01014263450C}"
#define VIDEO_GUID "{F0816D7B-FFFC-4343-80F2-E8199AA15CC3}"
#define PL_GUID "{45F3F7C1-A6F3-4EE6-A15E-125E92FC3F8D}"
Function switchToMl();
Function switchToPl();
Function switchToVideo();
Function switchToVis();
//--Function switchToBrw();
//--Function switchToExp();
//--Function switchToCfg();
Function switchToNoComp();
Function switchFromNoComp();
Function hideMl();
Function showMl();
Function hidePl();
Function showPl();
Function hideVis();
Function showVis();
Function showVideo();
Function hideVideo();
//--Function hideExp();
//--Function showExp();
//--Function hideBrw();
//--Function showBrw();
//--Function hideCfg();
//--Function showCfg();
Function onShowMl();
Function onHideMl();
Function onShowPl();
Function onHidePl();
Function onShowVis();
Function onHideVis();
Function onShowVideo();
Function onHideVideo();
//--Function onShowExp();
//--Function onHideExp();
//--Function onShowBrw();
//--Function onHideBrw();
//--Function onShowCfg();
//--Function onHideCfg();
Function onShowSUI();
Function onHideSUI();
Function onBeforeHideSUI();
Function dc_showMl();
Function dc_hideMl();
Function dc_showPl();
Function dc_hidePl();
Function dc_showVis();
Function dc_showVideo();
Function dc_hideVis();
Function dc_hideVideo();
//--Function dc_showExp();
//--Function dc_hideExp();
//--Function dc_showBrw();
//--Function dc_hideBrw();
//--Function dc_showCfg();
//--Function dc_hideCfg();
Function dc_showSUI();
Function dc_closeSUI();
Global GuiObject sui_window;
Global Group sui_components;
Global Group sui_vis, sui_video, sui_ml, sui_pl /*--, sui_brw, sui_exp, sui_cfg--*/;
Global WindowHolder sui_vis_wdh;
Global Button switch_ml, switch_pl, switch_video, switch_vis /*--, switch_exp, switch_brw, switch_cfg--*/;
Global Button hide_sui, show_sui;
Global Boolean bypasscancel;
Global Boolean showing_vis, hiding_vis, showing_video, hiding_video, showing_ml, hiding_ml, showing_pl, hiding_pl;
/*--Global Boolean showing_exp, hiding_exp, showing_brw, hiding_brw, showing_cfg, hiding_cfg;--*/
Global Int play_auto_fs_video;
Global Boolean callback_showing_vis, callback_hiding_vis, callback_showing_video, callback_hiding_video, callback_showing_ml, callback_hiding_ml, callback_showing_pl, callback_hiding_pl;
/*--Global Boolean callback_showing_exp, callback_hiding_exp, callback_showing_brw, callback_hiding_brw, callback_showing_cfg, callback_hiding_cfg;--*/
Global Boolean callback_closing_sui, callback_showing_sui;
Global Layout normal;
Global Container player;
Global Boolean Mychange;
Global Boolean startup;
Global layer normal_resizer, normal_resizer2, normal_resizer3, normal_resizer4, normal_TBresizer, normal_TBresizer2, normal_TBresizer3;
Global string h;
Global Timer callbackTimer, tempDisable;
Global button pe_move_top;
//Global Button b_maximize, b_minimize, b_shade;
// init special handles for video
#include suicore/video_handles.m
// script loading/unloading goes here
#include suicore/load_handles.m
// open / hiding components not caused by button clicks
#include suicore/external_handles.m
// showing and hiding the components
#include suicore/show_hide.m
/** Button Clicks */
switch_video.onLeftClick ()
{
debugString("switch_video.Clicked()", D_WTF);
switchToVideo();
}
switch_vis.onLeftClick ()
{
debugString("switch_vis.Clicked()", D_WTF);
vis_inbig_attrib.setData("1");
switchToVis();
}
switch_ml.onLeftClick ()
{
debugString("switch_ml.Clicked()", D_WTF);
switchToMl();
}
switch_pl.onLeftClick ()
{
debugString("switch_pl.Clicked()", D_WTF);
switchToPl();
}
/*--
switch_brw.onLeftClick ()
{
debugString("switch_brw.Clicked()", D_WTF);
switchToBrw();
}
--*/
/*--
switch_exp.onLeftClick ()
{
debugString("switch_exp.Clicked()", D_WTF);
switchToExp();
}
--*/
/*--switch_cfg.onLeftClick ()
{
debugString("switch_cfg.Clicked()", D_WTF);
switchToCfg();
}--*/
show_sui.onLeftClick ()
{
debugString("show_sui.Clicked()", D_WTF);
switchFromNoComp();
}
hide_sui.onLeftClick ()
{
debugString("hide_sui.Clicked()", D_WTF);
switchToNoComp();
}
/** Calls after comp is shown */
onShowMl()
{
switch_ml.setActivated(1);
switch_pl.setActivated(0);
switch_vis.setActivated(0);
switch_video.setActivated(0);
//--switch_brw.setActivated(0);
//--switch_exp.setActivated(0);
switch_ml.setXmlParam("ghost", "1");
switch_pl.setXmlParam("ghost", "0");
switch_video.setXmlParam("ghost", "0");
switch_vis.setXmlParam("ghost", "0");
//--switch_brw.setXmlParam("ghost", "0");
//--switch_Cfg.setActivated(0);
}
onHideMl() {
//switch_ml.setXmlParam("ghost", "0");
}
onShowPl()
{
switch_ml.setActivated(0);
switch_pl.setActivated(1);
switch_vis.setActivated(0);
switch_video.setActivated(0);
//--switch_brw.setActivated(0);
//--switch_exp.setActivated(0);
switch_ml.setXmlParam("ghost", "0");
switch_pl.setXmlParam("ghost", "1");
switch_video.setXmlParam("ghost", "0");
switch_vis.setXmlParam("ghost", "0");
//--switch_brw.setXmlParam("ghost", "0");
//--switch_Cfg.setActivated(0);
}
onHidePl() {
//switch_ml.setXmlParam("ghost", "0");
}
onShowVis()
{
switch_ml.setActivated(0);
switch_pl.setActivated(0);
switch_vis.setActivated(1);
switch_video.setActivated(0);
//--switch_brw.setActivated(0);
//--switch_exp.setActivated(0);
switch_vis.setXmlParam("ghost", "1");
switch_video.setXmlParam("ghost", "0");
switch_ml.setXmlParam("ghost", "0");
switch_pl.setXmlParam("ghost", "0");
//--switch_brw.setXmlParam("ghost", "0");
//hideNamedWindow(ML_GUID);
//--switch_Cfg.setActivated(0);
}
onHideVis() {
//switch_vis.setXmlParam("ghost", "0");
}
onShowVideo()
{
switch_ml.setActivated(0);
switch_pl.setActivated(0);
switch_vis.setActivated(0);
switch_video.setActivated(1);
//--switch_brw.setActivated(0);
//--switch_exp.setActivated(0);
switch_video.setXmlParam("ghost", "1");
switch_vis.setXmlParam("ghost", "0");
switch_ml.setXmlParam("ghost", "0");
switch_pl.setXmlParam("ghost", "0");
//--switch_brw.setXmlParam("ghost", "0");
//hideNamedWindow(ML_GUID);
//--switch_Cfg.setActivated(0);
}
onHideVideo() {
//switch_video.setXmlParam("ghost", "0");
}
/*--
onShowBrw()
{
switch_ml.setActivated(0);
switch_pl.setActivated(0);
switch_vis.setActivated(0);
switch_video.setActivated(0);
switch_brw.setActivated(1);
switch_exp.setActivated(0);
switch_brw.setXmlParam("ghost", "1");
switch_vis.setXmlParam("ghost", "0");
switch_ml.setXmlParam("ghost", "0");
switch_pl.setXmlParam("ghost", "0");
switch_video.setXmlParam("ghost", "0");
hideNamedWindow(ML_GUID);
switch_Cfg.setActivated(0);
}
onHideBrw() {
switch_brw.setXmlParam("ghost", "0");
}
--*/
/*--
onShowExp()
{
switch_ml.setActivated(0);
switch_vis.setActivated(0);
switch_video.setActivated(0);
switch_brw.setActivated(0);
//--switch_exp.setActivated(1);
//--switch_exp.setXmlParam("ghost", "1");
//hideNamedWindow(ML_GUID);
//--switch_Cfg.setActivated(0);
}
onHideExp() {
switch_exp.setXmlParam("ghost", "0");
}
--*/
/*--onShowCfg()
{
switch_ml.setActivated(0);
switch_vis.setActivated(0);
switch_video.setActivated(0);
switch_brw.setActivated(0);
switch_exp.setActivated(0);
//--switch_Cfg.setActivated(1);
}
onHideCfg() {}--*/
onShowSUI ()
{
/*string x = b_shade.getXmlParam("x");
b_shade.setXmlParam("x", b_minimize.getXmlParam("x"));
b_minimize.setXmlParam("x", b_maximize.getXmlParam("x"));
b_maximize.setXmlParam("x", x);
b_maximize.show();*/
sui_window.sendAction("callback", "onshowsui", 0,0,0,0);
}
onHideSUI ()
{
//hideNamedWindow(ML_GUID);
/*string x = b_minimize.getXmlParam("x");
debugInt(b_shade.getGuiX());
b_minimize.setXmlParam("x", b_shade.getXmlParam("x"));
b_shade.setXmlParam("x", b_maximize.getXmlParam("x"));
b_maximize.setXmlParam("x", x);
b_maximize.hide();*/
// sui_window.sendAction("callback", "onhidesui", 0,0,0,0);
}
onBeforeHideSUI ()
{
//hideNamedWindow(ML_GUID);
/*string x = b_minimize.getXmlParam("x");
debugInt(b_shade.getGuiX());
b_minimize.setXmlParam("x", b_shade.getXmlParam("x"));
b_shade.setXmlParam("x", b_maximize.getXmlParam("x"));
b_maximize.setXmlParam("x", x);
b_maximize.hide();*/
sui_window.sendAction("callback", "onbeforehidesui", 0,0,0,0);
}
pe_move_top.onLeftClick ()
{
normal.sendAction("load_comp", "pledit", 0,0,0,0);
}
#ifdef DEBUG
/** Debug Stuff */
sui_ml.onSetVisible (Boolean onoff)
{
debugString(DEBUG_PREFIX "sui_ml.setVisible(" +integerToString(onoff)+ ");", D_WTF);
}
sui_vis.onSetVisible (Boolean onoff)
{
debugString(DEBUG_PREFIX "sui_vis.setVisible(" +integerToString(onoff)+ ");", D_WTF);
}
sui_video.onSetVisible (Boolean onoff)
{
debugString(DEBUG_PREFIX "sui_video.setVisible(" +integerToString(onoff)+ ");", D_WTF);
}
/*--
sui_brw.onSetVisible (Boolean onoff)
{
debugString(DEBUG_PREFIX "sui_brw.setVisible(" +integerToString(onoff)+ ");", D_WTF);
}
--*/
/*--
sui_exp.onSetVisible (Boolean onoff)
{
debugString(DEBUG_PREFIX "sui_exp.setVisible(" +integerToString(onoff)+ ");", D_WTF);
}--*/
/*--sui_cfg.onSetVisible (Boolean onoff)
{
debugString(DEBUG_PREFIX "sui_cfg.setVisible(" +integerToString(onoff)+ ");", D_WTF);
}--*/
#endif

Binary file not shown.

View File

@ -0,0 +1,767 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: external_handles.m
Type: maki
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
//----------------------------------------------------------------------------------------------------------------
// The main component switching as triggered by user menus, keyboard shortcuts, etc
//----------------------------------------------------------------------------------------------------------------
System.onGetCancelComponent(String guid, boolean goingvisible) {
debugString(DEBUG_PREFIX "System.onGetCancelComponent ( "+ guid + " , " + integerToString(goingvisible) + " ) {", D_WTF);
debugString(DEBUG_PREFIX " [Last Content: " + getPrivateString(getSkinName(), "Component", "Media Library") + " ]", D_WTF);
Boolean isShade = (player.getCurLayout() != normal);
// isVideo() hasn't been set yet in System.onPlay and System.onTitleChange, so we check it here instead.
if (play_auto_fs_video && !isVideo()) play_auto_fs_video = 0;
// Do Playlist Stuff First (is unlinked from SUI)
if (guid == PL_GUID)
{
if (goingvisible && isShade && (getPrivateString(getSkinName(), "Pledit_pos", "top") == "top" || pl_tab_attrib.getData() == "0"))
{
debugString(DEBUG_PREFIX " --> opening pl --- return from shade!", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
switchToNoComp();
player.switchToLayout("normal");
normal.sendAction("load_comp", "pledit", 0,0,0,0);
return TRUE;
}
}
// Now we detect if suicore is already performing an action - if so we will return.
if (bypasscancel)
{
debugString(DEBUG_PREFIX " --> bypasscancel", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == ML_GUID && !goingvisible && hiding_ml)
{
debugString(DEBUG_PREFIX " --> hiding_ml", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIDEO_GUID && !goingvisible && hiding_video)
{
debugString(DEBUG_PREFIX " --> hiding_video", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && !goingvisible && hiding_vis)
{
debugString(DEBUG_PREFIX " --> hiding_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == PL_GUID && !goingvisible && hiding_pl)
{
debugString(DEBUG_PREFIX " --> hiding_pl", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == ML_GUID && goingvisible && showing_ml)
{
debugString(DEBUG_PREFIX " --> showing_ml", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIDEO_GUID && goingvisible && showing_video)
{
debugString(DEBUG_PREFIX " --> showing_video", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && goingvisible && showing_vis)
{
debugString(DEBUG_PREFIX " --> showing_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == PL_GUID && goingvisible && showing_pl)
{
debugString(DEBUG_PREFIX " --> showing_pl", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
// Let's get our current Content
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
// If a window wants to hide but we are still in collapsed mode - return
if (!goingvisible && window_content == "Hidden")
{
debugString(DEBUG_PREFIX " --> SUI isn't visible", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
// All comps that want to be shown
if (goingvisible) {
if (guid == VIDEO_GUID && (window_content != "Video" || isShade)) {
debugString(DEBUG_PREFIX " --> external showing_video --- start Timer", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
if (isShade)
{
sui_video.hide();
player.switchToLayout("normal");
}
//setPrivateString(getSkinName(), "Component", "Video");
//--hideExp();
//--hideBrw();
hideVis();
hideMl();
hidePL();
//--hideCfg();
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Video");
dc_showSUI ();
return TRUE;
}
dc_showVideo();
return TRUE;
} else if (guid == VIS_GUID && (window_content != "Vis" || isShade)) {
if (vis_inbig_attrib.getData() == "0")
{
debugString(DEBUG_PREFIX " --> vis shouldn't be shown in big sui!", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
debugString(DEBUG_PREFIX " --> external showing_vis --- start Timer", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
if (isShade)
{
sui_vis.hide();
player.switchToLayout("normal");
}
//setPrivateString(getSkinName(), "Component", "Vis");
disablePSOVC();
hideVideo();
hideMl();
//--hideExp();
//--hideBrw();
hidePL();
//--hideCfg();
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Vis");
dc_showSUI ();
return TRUE;
}
sui_vis_wdh.setXmlParam("autoopen", "0");
showVis();
sui_vis_wdh.setXmlParam("autoopen", "1");
return FALSE;
} else if (guid == ML_GUID && (window_content != "Media Library" || isShade)) {
debugString(DEBUG_PREFIX " --> external showing_ml --- start Timer", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
if (isShade)
{
sui_ml.hide();
player.switchToLayout("normal");
}
//setPrivateString(getSkinName(), "Component", "Media Library");
disablePSOVC();
hideVideo();
hideVis();
hidePL();
//--hideExp();
//--hideBrw();
//--hideCfg();
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Media Library");
dc_showSUI ();
return TRUE;
}
dc_showMl();
return TRUE;
} else if (guid == PL_GUID && (window_content != "Pledit" || isShade) && pl_tab_attrib.getData() == "1") {
if (getPrivateString(getSkinName(), "Pledit_pos", "top") != "sui")
{
debugString(DEBUG_PREFIX " suicore won't handle this!", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
debugString(DEBUG_PREFIX " --> external showing_pl --- start Timer", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
if (isShade)
{
sui_pl.hide();
player.switchToLayout("normal");
}
//setPrivateString(getSkinName(), "Component", "Media Library");
disablePSOVC();
hideVideo();
hideVis();
//--hideExp();
//--hideBrw();
hideML();
//--hideCfg();
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Pledit");
dc_showSUI ();
return TRUE;
}
dc_showPl();
return TRUE;
}
}
// All comps that want to be hidden
if (!goingvisible) {
if (guid == VIDEO_GUID && window_content == "Video") {
debugString(DEBUG_PREFIX " --> external hiding_video", D_WTF);
if (getStatus() != 0 && isVideo() && cfg_Video.getBool("autoopen") && cfg_Video.getBool("autoclose"))
{
debugString(DEBUG_PREFIX " --> video is playing", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return true;
}
else
{
disablePSOVC();
hideVideo();
hideVis();
//--hideExp();
//--hideBrw();
//--hideCfg();
dc_showMl(); // normal Component
debugString(DEBUG_PREFIX " --> no video is playing", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return false;
}
}
if (guid == PL_GUID && window_content == "Pledit" && pl_tab_attrib.getData() == "1") {
debugString(DEBUG_PREFIX " --> external hiding_pl", D_WTF);
if (getStatus() != STATUS_STOPPED && system.isVideo())
{
debugString(DEBUG_PREFIX " --> video is playing", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
disablePSOVC();
hideML();
hideVis();
//--hideExp();
//--hideBrw();
hidePL();
//--hideCfg();
dc_showVideo(); // normal Component
return false;
}
else
{
disablePSOVC();
hideVideo();
hideVis();
//--hideExp();
//--hideBrw();
hidePL();
//--hideCfg();
dc_showMl(); // normal Component
debugString(DEBUG_PREFIX " --> no video is playing", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return false;
}
}
if (guid == VIS_GUID && window_content == "Vis") {
if (vis_inbig_attrib.getData() == "0")
{
debugString(DEBUG_PREFIX " --> vis shouldn't be closed in big sui!", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (getStatus() != STATUS_STOPPED && system.isVideo())
{
debugString(DEBUG_PREFIX " --> external hiding_vis --- open Video", D_WTF);
hideMl();
hideVis();
hidePL();
//--hideExp();
//--hideBrw();
//--hideCfg();
dc_showVideo();
}
else
{
debugString(DEBUG_PREFIX " --> external hiding_video --- hide Video", D_WTF);
hideVideo();
hideVis();
//--hideExp();
//--hideBrw();
hidePL();
//--hideCfg();
dc_showMl(); // normal Component
}
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == ML_GUID && window_content == "Media Library") {
if ((getStatus() == STATUS_PLAYING || getStatus() == STATUS_PAUSED) && isVideo())
{
debugString(DEBUG_PREFIX " --> external hiding_ml --- open Video", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
hideMl();
hideVis();
hidePL();
//--hideExp();
//--hideBrw();
//--hideCfg();
dc_showVideo();
return FALSE;
}
else
{
debugString(DEBUG_PREFIX " --> external hiding_ml --- switch to vis", D_WTF);
debugString(DEBUG_PREFIX " return flase;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
hideMl();
hideVis();
//--hideBrw();
hidePL();
//--hideCfg();
hideVideo();
//--hideExp();
dc_closeSUI();
return false;
}
}
}
debugString(DEBUG_PREFIX " --> Went thru", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
Player.onSwitchToLayout (Layout _layout)
{
if (_layout.getId() != "normal")
{
mychange = 1;
//--sui_explorer_attrib.setData("0");
//--sui_browser_attrib.setData("0");
//--sui_config_attrib.setData("0");
mychange = 0;
}
}
//----------------------------------------------------------------------------------------------------------------
// Windows that aren't registered with winamp will be handled here, the visibility state is linked to cfgattribs
//----------------------------------------------------------------------------------------------------------------
/*--sui_browser_attrib.onDataChanged ()
{
if (mychange) return;
mychange = 1;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
if (getData() == "1")
{
if (player.getCurLayout() != normal)
{
player.switchToLayout("normal");
hideMl();
hideVis();
//--hideCfg();
hideVideo();
//--hideExp();
dc_showBrw();
return;
}
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Browser");
switchFromNoComp ();
return;
}
switchToBrw();
}
else
{
if ((getStatus() == STATUS_PLAYING || getStatus() == STATUS_PAUSED) && isVideo())
{
hideBrw();
dc_showVideo();
}
else
{
hideBrw();
dc_showml();
}
}
mychange = 0;
}
--*/
/*--sui_config_attrib.onDataChanged ()
{
if (mychange) return;
mychange = 1;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
if (getData() == "1")
{
if (player.getCurLayout() != "normal")
{
player.switchToLayout("normal");
hideMl();
hideVis();
hideBrw();
hideCfg();
hideVideo();
hideExp();
dc_showCfg();
return;
}
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Config");
switchFromNoComp ();
return;
}
switchToCfg();
}
else
{
if ((getStatus() == STATUS_PLAYING || getStatus() == STATUS_PAUSED) && isVideo())
{
hideCfg();
dc_showVideo();
}
else
{
hideCfg();
dc_showml();
}
}
mychange = 0;
}
sui_explorer_attrib.onDataChanged ()
{
if (mychange) return;
mychange = 1;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
if (getData() == "1")
{
if (player.getCurLayout() != normal)
{
player.switchToLayout("normal");
hideMl();
hideVis();
hideBrw();
//--hideCfg();
hideVideo();
dc_showExp();
return;
}
if (window_content == "Hidden" )
{
setPrivateString(getSkinName(), "Hidden Component", "Explorer");
switchFromNoComp ();
return;
}
switchToExp();
}
else
{
if ((getStatus() == STATUS_PLAYING || getStatus() == STATUS_PAUSED) && isVideo())
{
hideExp();
dc_showVideo();
}
else
{
hideExp();
dc_showml();
}
}
mychange = 0;
}
--*/
//----------------------------------------------------------------------------------------------------------------
// If a link is clicked within winamp this function *should* be called by wasabi core.
// returning 1 prevents winamp to open the url in an external browser
//----------------------------------------------------------------------------------------------------------------
System.onOpenUrl(string url)
{
// If winamp is in shade mode
if (player.getCurLayout() != normal)
{
string comp = getPrivateString(getSkinName(), "Component", "Media Library"); // Get the current sui component
// Can also happen, winamp is in shade - and normal wnd is collapsed
if (comp == "Hidden")
{
player.switchToLayout("normal");
setPrivateString(getSkinName(), "Hidden Component", "Browser");
setPrivateString(getSkinName(), "UrlXgive", url);
switchFromNoComp();
return 0;
}
// The other case - sade & normal is not collapsed
setPrivateString(getSkinName(), "UrlXgive", url);
player.switchToLayout("normal");
hideMl();
hideVis();
//--hideCfg();
hideVideo();
//--hideExp();
//--dc_showBrw();
return 0;
}
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
// just deliver the url since the browser is already visible
if (window_content == "Browser")
/*
{
browser brw = sui_brw.findObject("webbrowser");
if (brw != NULL)
{
brw.sendAction ("openurl", url, 0, 0, 0, 0);
}
}
// Some other component is visible - so we store the url and show the browser
else
{
setPrivateString(getSkinName(), "UrlXgive", url);
debugString("System.onOpenUrl( "+url+" ); --> opening Browser", D_WTF);
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Browser");
switchFromNoComp ();
return 0;
}
switchToBrw();
}
*/
return 0;
}
//----------------------------------------------------------------------------------------------------------------
// the sui window can recieve messages from other scripts (mainly: fileinfo.maki) - we handle this here
//----------------------------------------------------------------------------------------------------------------
/*sui_window.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
// Perform a search in the browser
if (strlower(action) == "browser_search")
{
browser brw = sui_brw.findObject("webbrowser");
//if (player.getCurLayout() != normal) // unlikely to happen!
{
//setPrivateString(getSkinName(), "UrlXgive", url);
player.switchToLayout("normal");
hideMl();
hideVis();
//--hideCfg();
hideVideo();
//--hideExp();
dc_showBrw();
brw.sendAction ("search", param, 0, 0, 0, 0);
return 0;
}
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
if (window_content == "Browser")
{
if (brw != NULL)
{
brw.sendAction ("search", param, 0, 0, 0, 0);
}
}
else
{
//setPrivateString(getSkinName(), "UrlXgive", url);
debugString("System.onOpenUrl( "+url+" ); --> opening Browser", D_WTF);
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Browser");
switchFromNoComp ();
brw.sendAction ("search", param, 0, 0, 0, 0);
return 0;
}
switchToBrw();
brw.sendAction ("search", param, 0, 0, 0, 0);
}
return 0;
}
// Just navigate to a site
else if (strlower(action) == "browser_navigate")
{
browser brw = sui_brw.findObject("webbrowser");
if (player.getCurLayout() != normal)
{
//setPrivateString(getSkinName(), "UrlXgive", url);
player.switchToLayout("normal");
hideMl();
hideVis();
//--hideCfg();
hideVideo();
//--hideExp();
//--dc_showBrw();
brw.sendAction ("openurl", param, 0, 0, 0, 0);
return 0;
}
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
if (window_content == "Browser")
{
if (brw != NULL)
{
brw.sendAction ("openurl", param, 0, 0, 0, 0);
}
}
else
{
//setPrivateString(getSkinName(), "UrlXgive", url);
debugString("System.onOpenUrl( "+url+" ); --> opening Browser", D_WTF);
if (window_content == "Hidden")
{
setPrivateString(getSkinName(), "Hidden Component", "Browser");
brw.sendAction ("openurl", param, 0, 0, 0, 0);
switchFromNoComp ();
return 0;
}
switchToBrw();
brw.sendAction ("openurl", param, 0, 0, 0, 0);
}
return 0;
}
else if (strlower(action) == "opentab")
{
if (strlower(param) == "ml")
{
switchToMl();
}
}
else if (action == "hide_comp" && param == "pe")
{
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Pledit")
{
switchToMl();
}
}
}*/
//----------------------------------------------------------------------------------------------------------------
// Switching Vis Plugin between MCV and SUI
//----------------------------------------------------------------------------------------------------------------
vis_inbig_attrib.onDataChanged ()
{
if (mychange) return;
String window_content2 = getPrivateString(getSkinName(), "Component", "Cover");
String window_content = getPrivateString(getSkinName(), "Component2", "Media Library");
int xg = getPrivateInt(getSkinName(), "ComponentXgive", 0);
if (getData() == "1" && (ic_vis.getData() == "1" || ic_vis_fileinfo.getData() == "1" || xg))
{
if (xg) setPrivateInt(getSkinName(), "ComponentXgive", 0);
switchToVis();
}
else if (getData() == "0" && sui_Vis.isVisible())
{
setPrivateInt(getSkinName(), "ComponentXgive", 1);
hideVis();
switchToMl();
}
}
//----------------------------------------------------------------------------------------------------------------
// this one has only debug aims :)
//----------------------------------------------------------------------------------------------------------------
#ifdef DEBUG
System.onLookForComponent(String guid)
{
debugString(DEBUG_PREFIX "System.onLookForComponent ( "+ guid + " )", D_WTF);
}
#endif

View File

@ -0,0 +1,221 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: load_handles.m
Type: maki
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
Function loadSUI (string content);
Function collectComponents();
Global timer tmr_collect;
System.onScriptLoaded ()
{
startup = 1;
initAttribs_windowpage();
initAttribs_vis();
initAttribs_Autoresize();
initAttribs_Appearance();
initVideo();
debugString(DEBUG_PREFIX "-------------------------", D_WTF);
debugString(DEBUG_PREFIX "System.onScriptLoded() {", D_WTF);
/*debugString(integerToString(isNamedWindowVisible(ML_GUID)),9);
showWindow(ML_GUID, "", 0);
debugString(integerToString(isNamedWindowVisible(ML_GUID)),9);*/
player = getContainer("main");
normal = player.getLayout("normal");
sui_window = normal.findObject("sui.content");
sui_components = sui_window.findObject("sui.components");
h = getToken(getParam(),",",0);
sui_vis = sui_components.findObject("wdh.vis");
sui_vis_wdh = sui_components.findObject("wdh.vis.object");
sui_video = sui_components.findObject("wdh.video");
sui_ml = sui_components.findObject("wdh.ml");
sui_pl = sui_components.findObject("wdh.pl");
//--sui_brw = sui_components.findObject("wdh.browser");
//--sui_exp = sui_components.findObject("wdh.explorer");
//--sui_cfg = sui_components.findObject("wdh.config");
switch_video = sui_window.findObject("switch.video");
switch_vis = sui_window.findObject("switch.vis");
switch_ml = sui_window.findObject("switch.ml");
switch_pl = sui_window.findObject("switch.pl");
//--switch_exp = sui_window.findObject("switch.explorer");
//--switch_brw = sui_window.findObject("switch.browser");
//--switch_cfg = sui_window.findObject("switch.config");
hide_sui = normal.getObject("sui.hide");
show_sui = normal.getObject("sui.show");
pe_move_top = sui_pl.findObject("pe.move.top");
/*
b_maximize = normal.findObject("player.button.maximize");
b_minimize = normal.findObject("player.button.minimize");
b_shade = normal.findObject("player.button.shade");
*/
normal_resizer = normal.getObject("player.resizer.bottomright.dummy");
normal_resizer2 = normal.getObject("player.resizer.bottomleft");
normal_resizer3 = normal.getObject("player.resizer.bottom");
normal_resizer4 = normal.getObject("player.resizer.bottom2");
normal_TBresizer = normal.findObject("titlebar.resizer.topright");
normal_TBresizer2 = normal.findObject("titlebar.resizer.topleft");
normal_TBresizer3 = normal.findObject("titlebar.resizer.top");
callbackTimer = new Timer;
callbackTimer.setDelay(1);
tempDisable = new Timer;
tempDisable.setDelay(100);
tmr_collect = new timer;
tmr_collect.setDelay(2000);
//tmr_collect.start();
//collectComponents();
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
debugString(DEBUG_PREFIX "window_content = " + window_content, D_WTF);
loadSUI(window_content);
debugString(DEBUG_PREFIX "}", D_WTF);
startup = 0;
}
System.onScriptUnloading ()
{
debugString(DEBUG_PREFIX "System.onScriptUnloading() {", D_NWTF);
delete callbackTimer;
delete PSOVCTimer;
delete tempDisable;
delete tmr_collect;
debugString(DEBUG_PREFIX " delete Timers;", D_NWTF);
debugString(DEBUG_PREFIX "}", D_NWTF);
}
loadSUI (string content)
{
if (content == "Vis")
{
debugString(DEBUG_PREFIX "if(Vis) performed", D_WTF);
Mychange = 1;
vis_inbig_attrib.setData("1");
Mychange = 0;
switchToVis();
}
else if (content == "Video")
{
debugString(DEBUG_PREFIX "if(Video) performed", D_WTF);
switchToVideo();
}
else if (content == "Media Library")
{
debugString(DEBUG_PREFIX "if(ML) performed", D_WTF);
switchToMl();
}
else if (content == "Pledit")
{
debugString(DEBUG_PREFIX "if(PL) performed", D_WTF);
switchToPl();
}/*--
else if (content == "Browser")
{
debugString(DEBUG_PREFIX "if(Browser) performed", D_WTF);
switchToBrw();
}--*/
/*--
else if (content == "Explorer")
{
debugString(DEBUG_PREFIX "if(Explorer) performed", D_WTF);
switchToExp();
}--*/
/*--else if (content == "Config")
{
debugString(DEBUG_PREFIX "if(Config) performed", D_WTF);
switchToCfg();
}--*/
else if (content == "Hidden")
{
debugString(DEBUG_PREFIX "if(Hidden) performed", D_WTF);
switchToNoComp();
}
else
{
debugString(DEBUG_PREFIX "[!] oops no component to perform", D_WTF);
}
}
/*
collectComponents()
{
for ( int i = 0; i < getNumRegisteredWindows(); i++ )
{
debug((getRegisteredWindowName(i)));
}
}
*/
/*
collectComponents ()
{
int i = 0;
string s;
while (s = enumEmbedGUID(i) != "")
{
debug (s);
i++;
}
if (i == 0 && !tmr_collect.isRunning())
{
tmr_collect.start();
//}
}*/
/*
tmr_collect.onTimer ()
{
tmr_collect.stop();
debug(getRegisteredWindowName(0));
collectComponents();
}
*/
/*
player.onAddContent(GuiObject wnd, String id, String guid)
{
debug(wnd.getName());
debug(id);
// debug(guid);
}*/
/*
sui_ml.onsetVisible(int v)
{
windowholder w = findObject("wdh");
debug(w.getGUID());
GuiObject o = w.getContent();
debug(o.getId());
debug(o.getName());
}*/
/*
System.onCreateLayout (Layout _layout)
{
debug(_layout.getId());
}*/

View File

@ -0,0 +1,870 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: show_hide.m
Type: maki
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
switchToMl()
{
debugString(DEBUG_PREFIX "switchToMl() {", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
hideVis();
hideVideo();
hidePL();
//--hideExp();
//--hideBrw();
//--hideCfg();
//prohibit a closing bug
if (!startup) showMl();
else
{
dc_showMl();
onshowMl();
}
debugString(DEBUG_PREFIX "}", D_WTF);
hide_sui.show();
show_sui.hide();
}
switchToPl()
{
debugString(DEBUG_PREFIX "switchToPl() {", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
hideVis();
hideVideo();
hideML();
//--hideExp();
//--hideBrw();
//--hideCfg();
//prohibit a closing bug
if (!startup) showPl();
else
{
dc_showPl();
onshowPl();
}
debugString(DEBUG_PREFIX "}", D_WTF);
hide_sui.show();
show_sui.hide();
}
switchToVideo()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideMl();
hidePL();
hideVis();
//--hideExp();
//--hideBrw();
//--hideCfg();
showVideo();
hide_sui.show();
show_sui.hide();
}
switchToVis()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
hideMl();
hidePL();
hideVideo();
//--hideExp();
//--hideBrw();
//--hideCfg();
showVis();
hide_sui.show();
show_sui.hide();
}
/*--switchToBrw()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
hideVis();
hidePL();
hideVideo();
//--hideExp();
hideMl();
//--hideCfg();
//--showBrw();
hide_sui.show();
show_sui.hide();
}
switchToExp()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
hideVis();
hideVideo();
hideMl();
//--hideBrw();
//--hideCfg();
showExp();
hide_sui.show();
show_sui.hide();
}
--*/
/*--switchToCfg()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
hideVis();
hideVideo();
hideMl();
hideBrw();
hideExp();
showCfg();
hide_sui.show();
show_sui.hide();
}--*/
switchToNoComp ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
disablePSOVC();
onBeforeHideSUI();
hideVis();
hideVideo();
hideMl();
hidePL();
//--hideBrw();
//--hideExp();
//--hideCfg();
string comp = getPrivateString(getSkinName(), "Component", "Media Library");
if (comp != "Hidden")
{
normal.sendAction("sui", "tonocomp", 0,0,0,0);
setPrivateString(getSkinName(), "Hidden Component", comp);
setPrivateString(getSkinName(), "Component", "Hidden");
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0)) setPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
}
else normal.sendAction("sui", "tonocomp", 1,0,0,0);
normal_resizer.setXmlParam("resize", "right");
normal_resizer2.setXmlParam("resize", "left");
normal_resizer3.setXmlParam("resize", "");
normal_resizer4.setXmlParam("resize", "");
normal_TBresizer.setXmlParam("resize", "right");
normal_TBresizer2.setXmlParam("resize", "left");
normal_TBresizer3.hide();
normal.setXmlParam("minimum_h" , h);
int sy = normal.getGuiY() + normal.getGuiH() - stringtointeger(h);
normal.setXmlParam("h" , h);
if (collapse_bottom_attrib.getdata() == "1") normal.setXmlParam("y" , integerToString(sy));
hide_sui.hide();
show_sui.show();
onHideSUI();
}
switchFromNoComp ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
string comp = getPrivateString(getSkinName(), "Hidden Component", "Media Library");
setPrivateString(getSkinName(), "Component", comp);
int sh = getPrivateInt(getSkinName(), "nomax_h", 600);
if (sh < 492) sh = 492;
normal.sendAction("sui", "fromnocomp", 0,0,0,0);
normal_resizer.setXmlParam("resize", "bottomright");
normal_resizer2.setXmlParam("resize", "bottomleft");
normal_resizer3.setXmlParam("resize", "bottom");
normal_resizer4.setXmlParam("resize", "bottom");
normal_TBresizer.setXmlParam("resize", "topright");
normal_TBresizer2.setXmlParam("resize", "topleft");
normal_TBresizer3.show();
normal.setXmlParam("minimum_h" , "492");
double d_scale = normal.getScale();
normal.beforeRedock();
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0)) normal.resize(getViewPortLeft(),getViewPortTop(),getViewPortWidth()/d_scale, getViewPortHeight()/d_scale);
else
{
if (collapse_bottom_attrib.getdata() == "1")
{
int sy = normal.getGuiY() + normal.getGuiH() - sh;
if (sy < 0) sy = 0;
normal.setXmlParam("y" , integerToString(sy));
}
normal.setXmlParam("h" , integerToString(sh));
}
normal.redock();
loadSUI (comp);
onShowSUI();
}
tempDisable.onTimer()
{
tempDisable.stop();
}
showMl()
{
debugString(DEBUG_PREFIX "showMl() {", D_NWTF);
showing_ml = 1;
setPrivateString(getSkinName(), "Component", "Media Library");
GuiObject o = sui_ml;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) ml object not provided (show)", D_NWTF);
}
#endif
onShowMl();
showing_ml = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
hideMl()
{
debugString(DEBUG_PREFIX "hideMl() {", D_NWTF);
callback_showing_ml = 0;
hiding_ml = 1;
GuiObject o = sui_ml;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) ml object not provided (hide)", D_NWTF);
}
#endif
onHideMl();
hiding_ml = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
showPl()
{
debugString(DEBUG_PREFIX "showPl() {", D_NWTF);
showing_pl = 1;
setPrivateString(getSkinName(), "Component", "Pledit");
setPrivateString(getSkinName(), "Pledit_pos", "sui");
normal.sendAction("hide_comp", "pledit", 0,0,0,0);
GuiObject o = sui_pl;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) pl object not provided (show)", D_NWTF);
}
#endif
onShowPl();
showing_pl = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
hidePl()
{
debugString(DEBUG_PREFIX "hidePl() {", D_NWTF);
callback_showing_pl = 0;
hiding_pl = 1;
GuiObject o = sui_pl;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) pl object not provided (hide)", D_NWTF);
}
#endif
onHidePl();
hiding_pl = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
showVis()
{
debugString(DEBUG_PREFIX "vis_inbig_attrib = " + vis_inbig_attrib.getData(), D_NWTF);
if (vis_inbig_attrib.getData() == "1")
{
debugString(DEBUG_PREFIX "showVis() {", D_NWTF);
showing_vis = 1;
setPrivateString(getSkinName(), "Component", "Vis");
GuiObject o = sui_vis;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) vis object not provided (show)", D_NWTF);
}
#endif
onShowVis();
showing_vis = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
}
hideVis()
{
debugString(DEBUG_PREFIX "vis_inbig_attrib = " + vis_inbig_attrib.getData(), D_NWTF);
debugString(DEBUG_PREFIX "hideVis() {", D_NWTF);
callback_showing_vis = 0;
hiding_vis = 1;
GuiObject o = sui_vis;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) vis object not provided (hide)", D_NWTF);
}
#endif
onHideVis();
hiding_vis = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
showVideo()
{
debugString(DEBUG_PREFIX "showVideo() {", D_NWTF);
showing_video = 1;
setPrivateString(getSkinName(), "Component", "Video");
GuiObject o = sui_video;
if (o != NULL)
{
bypasscancel = 1;
if (o) {
// hack to fix bug for auto fullscreen on play
if (play_auto_fs_video) setVideoFullscreen(false);
o.show();
// hack to fix bug for auto fullscreen on play
if (play_auto_fs_video) setVideoFullscreen(true);
}
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) video object not provided (show)", D_NWTF);
}
#endif
onShowVideo();
play_auto_fs_video = 0;
showing_video = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
hideVideo()
{
debugString(DEBUG_PREFIX "hideVideo() {", D_NWTF);
//callback_showing_video = 0;
hiding_video = 1;
GuiObject o = sui_video;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) video object not provided (hide)", D_NWTF);
}
#endif
onHideVideo();
hiding_video = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
/*--showBrw()
{
debugString(DEBUG_PREFIX "showBrw() {", D_NWTF);
showing_brw = 1;
setPrivateString(getSkinName(), "Component", "Browser");
GuiObject o = sui_brw;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) brw object not provided (show)", D_NWTF);
}
#endif
onShowBrw();
mychange = 1;
sui_browser_attrib.setData("1");
mychange = 0;
showing_brw = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
hideBrw()
{
debugString(DEBUG_PREFIX "hideBrw() {", D_NWTF);
callback_showing_brw = 0;
hiding_brw = 1;
GuiObject o = sui_brw;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) brw object not provided (hide)", D_NWTF);
}
#endif
onHideBrw();
hiding_brw = 0;
mychange = 1;
sui_browser_attrib.setData("0");
mychange = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}--*/
/*--
showExp()
{
debugString(DEBUG_PREFIX "showExp() {", D_NWTF);
showing_exp = 1;
setPrivateString(getSkinName(), "Component", "Explorer");
GuiObject o = sui_exp;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) exp object not provided (show)", D_NWTF);
}
#endif
onShowExp();
showing_exp = 0;
mychange = 1;
sui_explorer_attrib.setData("1");
mychange = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
hideExp()
{
debugString(DEBUG_PREFIX "hideExp() {", D_NWTF);
callback_showing_exp = 0;
hiding_exp = 1;
GuiObject o = sui_exp;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) exp object not provided (hide)", D_NWTF);
}
#endif
onHideExp();
hiding_exp = 0;
mychange = 1;
sui_explorer_attrib.setData("0");
mychange = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}--*/
/*--
showCfg()
{
debugString(DEBUG_PREFIX "showCfg() {", D_NWTF);
showing_Cfg = 1;
setPrivateString(getSkinName(), "Component", "Config");
GuiObject o = sui_Cfg;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) Cfg object not provided (show)", D_NWTF);
}
#endif
onShowCfg();
showing_Cfg = 0;
mychange = 1;
sui_Config_attrib.setData("1");
mychange = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
hideCfg()
{
debugString(DEBUG_PREFIX "hideCfg() {", D_NWTF);
callback_showing_cfg = 0;
hiding_Cfg = 1;
GuiObject o = sui_Cfg;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_NWTF);
}
#ifdef DEBUG
else
{
debugString(DEBUG_PREFIX " --> (!) Cfg object not provided (hide)", D_NWTF);
}
#endif
onHideCfg();
hiding_Cfg = 0;
mychange = 1;
sui_config_attrib.setData("0");
mychange = 0;
debugString(DEBUG_PREFIX "}", D_NWTF);
}
--*/
callbackTimer.onTimer()
{
callbackTimer.stop();
int _callback_showing_vis = callback_showing_vis;
int _callback_hiding_vis = callback_hiding_vis;
int _callback_showing_video = callback_showing_video;
int _callback_hiding_video = callback_hiding_video;
int _callback_showing_ml = callback_showing_ml;
int _callback_hiding_ml = callback_hiding_ml;
int _callback_showing_pl = callback_showing_pl;
int _callback_hiding_pl = callback_hiding_pl;
//--int _callback_showing_exp = callback_showing_exp;
//--int _callback_hiding_exp = callback_hiding_exp;
//--int _callback_showing_brw = callback_showing_brw;
//--int _callback_hiding_brw = callback_hiding_brw;
//--int _callback_showing_cfg = callback_showing_cfg;
//--int _callback_hiding_cfg = callback_hiding_cfg;
int _callback_showing_sui = callback_showing_sui;
int _callback_closing_sui = callback_closing_sui;
callback_showing_vis = 0;
callback_hiding_vis = 0;
callback_showing_video = 0;
callback_hiding_video = 0;
callback_showing_ml = 0;
callback_hiding_ml = 0;
callback_showing_pl = 0;
callback_hiding_pl = 0;
//--callback_showing_exp = 0;
//--callback_hiding_exp = 0;
//--callback_showing_brw = 0;
//--callback_hiding_brw = 0;
//--callback_showing_cfg = 0;
//--callback_hiding_cfg = 0;
callback_showing_sui = 0;
callback_closing_sui = 0;
if (_callback_showing_ml == 1)
{
showMl();
}
if (_callback_hiding_ml == 1)
{
hideMl();
}
if (_callback_showing_pl == 1)
{
showPl();
}
if (_callback_hiding_pl == 1)
{
hidePl();
}
if (_callback_showing_video == 1)
{
showVideo();
}
if (_callback_showing_vis == 1)
{
showVis();
}
if (_callback_hiding_vis == 1)
{
hideVis();
}
if (_callback_hiding_video == 1)
{
hideVideo();
}/*--
if (_callback_showing_exp == 1)
{
showExp();
}
if (_callback_hiding_exp == 1)
{
hideExp();
}
if (_callback_showing_brw == 1)
{
showBrw();
}
if (_callback_hiding_brw == 1)
{
hideBrw();
}--*/
/*--if (_callback_showing_cfg == 1)
{
showCfg();
}
if (_callback_hiding_cfg == 1)
{
hideCfg();
}--*/
if (_callback_showing_SUI == 1)
{
switchFromNoComp();
}
if (_callback_closing_SUI == 1)
{
switchToNoComp();
}
}
dc_showMl()
{
callback_showing_ml = 1;
callback_hiding_ml = 0;
callbackTimer.start();
}
dc_hideMl()
{
callback_showing_ml = 0;
callback_hiding_ml = 1;
callbackTimer.start();
}
dc_showPl()
{
callback_showing_pl = 1;
callback_hiding_pl = 0;
callbackTimer.start();
}
dc_hidePl()
{
callback_showing_pl = 0;
callback_hiding_pl = 1;
callbackTimer.start();
}
dc_showVideo()
{
callback_showing_video = 1;
callback_hiding_video = 0;
callbackTimer.start();
}
dc_showVis()
{
callback_showing_vis = 1;
callback_hiding_vis = 0;
callbackTimer.start();
}
dc_hideVideo()
{
callback_showing_video = 0;
callback_hiding_video = 1;
callbackTimer.start();
}
dc_hideVis()
{
callback_showing_vis = 0;
callback_hiding_vis = 1;
callbackTimer.start();
}
/*--
dc_showBrw()
{
callback_showing_brw = 1;
callback_hiding_brw = 0;
callbackTimer.start();
}
dc_hideBrw()
{
callback_showing_brw = 0;
callback_hiding_brw = 1;
callbackTimer.start();
}--*/
/*--
dc_showExp()
{
callback_showing_exp = 1;
callback_hiding_exp = 0;
callbackTimer.start();
}
dc_hideExp()
{
callback_showing_exp = 0;
callback_hiding_exp = 1;
callbackTimer.start();
}
--*/
/*--dc_showCfg()
{
callback_showing_cfg = 1;
callback_hiding_cfg = 0;
callbackTimer.start();
}
dc_hideCfg()
{
callback_showing_cfg = 0;
callback_hiding_cfg = 1;
callbackTimer.start();
}--*/
dc_showSUI()
{
callback_showing_sui = 1;
callback_closing_sui = 0;
callbackTimer.start();
}
dc_closeSUI()
{
callback_showing_sui = 0;
callback_closing_sui = 1;
callbackTimer.start();
}

View File

@ -0,0 +1,146 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: video_handles.m
Version: 2.0
Type: maki
Date: 28. Okt. 2006 - 16:30
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#define SKINTWEAKS_CFGPAGE "{0542AFA4-48D9-4c9f-8900-5739D52C114F}"
#define VIDEO_CONFIG_GROUP "{2135E318-6919-4bcf-99D2-62BE3FCA8FA6}"
Function initVideo();
Function disablePSOVC();
Function enablePSOVC();
Global Timer PSOVCTimer;
Global string psovc_save;
Global WinampConfigGroup cfg_Video;
Global Boolean lastWasVideo;
initVideo ()
{
play_auto_fs_video = 0;
PSOVCTimer = new Timer;
PSOVCTimer.setDelay(1000);
cfg_Video = WinampConfig.getGroup(VIDEO_CONFIG_GROUP);
}
/** Prevent video playback to stop after the wnd is hidden */
disablePSOVC()
{
debugString("[suicore.m] " + "--> disabling stop on video close",0 );
ConfigItem item = Config.getItem(SKINTWEAKS_CFGPAGE);
if (item)
{
ConfigAttribute attr = item.getAttribute("Prevent video playback Stop on video window Close");
if (attr) psovc_save = attr.getData();
if (attr) attr.setData("1");
}
PSOVCTimer.start();
debugString("[suicore.m] " + "--> PSOVCTimer.started();",0 );
}
enablePSOVC()
{
debugString("[suicore.m] " + "--> enabling stop on video close",0 );
PSOVCTimer.stop();
ConfigItem item = Config.getItem(SKINTWEAKS_CFGPAGE);
if (item)
{
ConfigAttribute attr = item.getAttribute("Prevent video playback Stop on video window Close");
if (attr) attr.setData(psovc_save);
}
debugString("[suicore.m] " + "--> PSOVCTimer.stopped();",0 );
}
PSOVCTimer.onTimer()
{
enablePSOVC();
}
System.onPlay()
{
// needed to handle video auto fullscreen on play
boolean auto_fs = cfg_Video.getBool("auto_fs");
if (auto_fs) play_auto_fs_video = 1;
else play_auto_fs_video = 0;
// removed for debugging aims
// if (isVideo() && cfg_Video.getBool("autoopen") && !sui_video.isVisible()) dc_showVideo();
}
System.onPause()
{
play_auto_fs_video = 0;
}
System.onResume()
{
play_auto_fs_video = 0;
// removed for debugging aims
// if (isVideo() && cfg_Video.getBool("autoopen") && !sui_video.isVisible()) dc_showVideo();
}
System.onStop()
{
play_auto_fs_video = 0;
}
System.onTitleChange(String newtitle)
{
// needed to handle video auto fullscreen on play
boolean auto_fs = cfg_Video.getBool("auto_fs");
if (auto_fs) play_auto_fs_video = 1;
else play_auto_fs_video = 0;
/* removed for debugging aims
if (startup)
{
lastWasVideo = isVideo();
return;
}
if (isVideo() && cfg_Video.getBool("autoopen") && !sui_video.isVisible() && getStatus() != 0) dc_showVideo();
else if (!isVideo() && cfg_Video.getBool("autoclose") && sui_video.isVisible() && lastWasVideo) showML();
lastWasVideo = isVideo();
*/
}
//S/ystem.onTitleChange (String newtitle)
//{
/*if (startup)
{
lastWasVideo = isVideo();
return;
}*/
/*if (!startup && isVideo() && cfg_Video.getBool("autoopen") && !sui_video.isVisible() && getStatus() != 0)
{
callbackTimer.stop();
tempDisable.stop();
switchToVideo();
debug("");
}*/
//else if (!isVideo() && cfg_Video.getBool("autoclose") && sui_video.isVisible() && lastWasVideo) showML();
//lastWasVideo = isVideo();
//}

View File

@ -0,0 +1,55 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: syncbutton.m
Version: 1.0
Type: maki
Date: 25. Jun. 2007 - 14:04
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global GuiObject mainButton, activeOverlay;
Global Boolean mouseDown;
Global Int activeOverlay_Y;
System.onScriptLoaded ()
{
mainButton = getScriptGroup().findObject(getToken(getParam(), ";", 0));
activeOverlay = getScriptGroup().findObject(getToken(getParam(), ";", 1));
activeOverlay_Y = activeOverlay.getGuiY();
mainButton.onsetvisible(mainButton.isvIsible());
}
mainButton.onLeftButtonDown (int x, int y)
{
mouseDown = 1;
activeOverlay.setXmlParam("y", integerToString(activeOverlay_Y+1));
}
mainButton.onLeftButtonUp (int x, int y)
{
mouseDown = 0;
activeOverlay.setXmlParam("y", integerToString(activeOverlay_Y));
}
mainButton.onleaveArea ()
{
activeOverlay.setXmlParam("y", integerToString(activeOverlay_Y));
}
mainButton.onEnterArea ()
{
if (mouseDown) activeOverlay.setXmlParam("y", integerToString(activeOverlay_Y+1));
}
mainButton.onSetVisible (Boolean onoff)
{
if (onoff) activeOverlay.show();
else activeOverlay.hide();
}

Binary file not shown.

View File

@ -0,0 +1,87 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: tabbutton.m
Version: 1.0
Type: maki
Date: 28. Sep. 2007 - 13:12
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global GuiObject normalGrid, hoverGrid, activeGrid, footerGrid;
Global Button mousetrap;
Global Text normalText, hoverText, activeText;
Global Boolean mouseDown;
System.onScriptLoaded ()
{
group sg = getScriptGroup();
normalGrid = sg.getObject("bento.tabbutton.normal");
hoverGrid = sg.getObject("bento.tabbutton.hover");
activeGrid = sg.getObject("bento.tabbutton.active");
normalText = sg.getObject("bento.tabbutton.normal.text");
hoverText = sg.getObject("bento.tabbutton.hover.text");
activeText = sg.getObject("bento.tabbutton.active.text");
footerGrid = sg.getObject("bento.tabbutton.footer");
mousetrap = sg.getObject("bento.tabbutton.mousetrap");
}
System.onSetXuiParam (String stringParam, String value)
{
if ( strlower(stringParam) == "tabtext" )
{
normalText.setText(value);
hoverText.setText(value);
activeText.setText(value);
}
}
mousetrap.onLeftButtonDown (int x, int y)
{
mouseDown = 1;
normalGrid.show();
hoverGrid.hide();
normalText.show();
hoverText.hide();
}
mousetrap.onLeftButtonUp (int x, int y)
{
mouseDown = 0;
if (!getActivated() && isMouseOverRect()) { normalGrid.hide(); hoverGrid.show(); normalText.hide(); hoverText.show(); }
}
mousetrap.onleaveArea ()
{
normalGrid.show();
hoverGrid.hide();
normalText.show();
hoverText.hide();
}
mousetrap.onEnterArea ()
{
normalGrid.hide(); hoverGrid.show(); normalText.hide(); hoverText.show();
}
mousetrap.onActivate (int activated)
{
if (activated)
{
normalGrid.hide(); hoverGrid.hide(); normalText.hide(); hoverText.hide();
activeGrid.show(); footerGrid.show(); activeText.show();
}
else
{
normalGrid.show(); hoverGrid.hide(); normalText.show(); hoverText.hide();
activeGrid.hide(); footerGrid.hide(); activeText.hide();
}
}

Binary file not shown.

View File

@ -0,0 +1,122 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: tabcontrol.m
Version: 1.0
Type: maki
Date: 30. Okt. 2007 - 17:40
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Function updateTabPos();
Function setAutoWidth(guiobject tab);
Class Text WatchText;
Global Boolean HAVE_ML = TRUE;
Global GuiObject tabMl, tabVideo, tabVis, tabPl;
Global WatchText txtMl, txtVideo, txtVis, txtPL;
Global int startX, curX;
Global Button btnMl, btnPl;
System.onScriptLoaded ()
{
initAttribs_Appearance();
HAVE_ML = stringToInteger(getParam());
group sg = getScriptGroup();
tabML = sg.findObject("switch.ml");
btnMl = sg.findObject("switch.ml");
txtMl = tabMl.findObject("bento.tabbutton.normal.text");
tabPL = sg.findObject("switch.pl");
btnPl = sg.findObject("switch.pl");
txtPl = tabPl.findObject("bento.tabbutton.normal.text");
tabVis = sg.findObject("switch.vis");
txtVis = tabMl.findObject("bento.tabbutton.normal.text");
tabVideo = sg.findObject("switch.video");
txtVideo = tabMl.findObject("bento.tabbutton.normal.text");
startX = tabMl.getGuiX();
updateTabPos();
}
updateTabPos ()
{
curX = startX;
if (!HAVE_ML)
{
tabMl.hide();
}
else
{
curX += setAutoWidth(tabMl) + 1;
}
if (pl_tab_attrib.getData() == "1")
{
tabPL.setXmlParam("x", integerToString(curX));
curX += setAutoWidth(tabPL) + 1;
tabPL.show();
}
else
{
tabPL.hide();
}
if (System.hasVideoSupport())
{
tabVideo.setXmlParam("x", integerToString(curX));
curX += setAutoWidth(tabVideo) + 1;
}
else
{
tabVideo.hide();
}
// commented out because System.isSafeMode() is not recognized by mc.exe
// if (!System.isSafeMode())
// {
tabVis.setXmlParam("x", integerToString(curX));
curX += setAutoWidth(tabVis) + 1;
// }
// else
// {
// tabVis.hide();
// }
}
int setAutoWidth (guiObject tab)
{
text source = tab.findObject("bento.tabbutton.normal.text");
int x = stringToInteger(source.getXmlparam("x"));
int w = source.getAutoWidth();
tab.setXmlParam("w", integerToString(2*x+w));
return 2*x + w;
}
pl_tab_attrib.onDataChanged ()
{
if (pl_tab_attrib.getData() == "0")
{
setPrivateString(getSkinName(), "Pledit_pos", "top");
if (btnPl.getActivated())
{
btnMl.leftClick();
btnMl.getParentLayout().sendAction("load_comp", "pledit", 0,0,0,0);
}
}
updateTabPos();
}

Binary file not shown.

View File

@ -0,0 +1,89 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: timecontrol.m
Version: 1.0
Type: maki
Date: 29. Jun. 2007 - 00:13
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/config.mi>
#include <lib/com/AutoRepeatButton.m>
Function updateAttrib (int val);
Global ConfigAttribute timeAttrib;
Global text Display;
Global AutoRepeatButton Increase, Decrease;
Global float multiplier;
Global int maxvalue, step;
Global string suffix;
Global boolean myChange;
System.onScriptLoaded ()
{
AutoRepeat_Load();
string param = getParam();
string objects = getToken(param, "|", 0);
group scriptGroup = getScriptGroup();
Display = scriptGroup.findObject(getToken(objects, ";", 0));
Decrease = scriptGroup.findObject(getToken(objects, ";", 1));
Increase = scriptGroup.findObject(getToken(objects, ";", 2));
objects = getToken(param, "|", 1);
timeAttrib = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
step = stringToInteger(getToken(param, "|", 2));
maxvalue = stringToInteger(getToken(param, "|", 3));
multiplier = stringToFloat(getToken(param, "|", 4));
suffix = getToken(param, "|", 5);
AutoRepeat_SetInitalDelay(250);
AutoRepeat_SetRepeatDelay(125);
updateAttrib (0);
}
System.onScriptUnloading ()
{
AutoRepeat_Unload();
}
Increase.onLeftClick ()
{
if (!AutoRepeat_ClickType) return;
updateAttrib (step);
}
Decrease.onLeftClick ()
{
if (!AutoRepeat_ClickType) return;
updateAttrib (-step);
}
timeAttrib.onDataChanged ()
{
if (myChange) return;
updateAttrib (0);
}
updateAttrib (int val)
{
float i = stringToInteger(timeAttrib.getData());
i += val;
if (i < 0 || i > maxvalue) return;
myChange = 1;
string s = integerToString(i);
if (timeAttrib) timeAttrib.setData(s);
i *= multiplier;
s = floatToString(i,1);
Display.setText(s + suffix);
myChange = 0;
}

Binary file not shown.

View File

@ -0,0 +1,196 @@
/********************************************************\
** Filename: videoresize.m **
** Version: 1.0 **
** Date: 23. Jan. 2008 - 11:23 **
**********************************************************
** Type: winamp.wasabi/maki **
** Project: Bento **
**********************************************************
** Author: Martin Poehlmann aka Deimos **
** E-Mail: martin@skinconsortium.com **
** Internet: http://www.skinconsortium.com **
** http://home.cs.tum.edu/~poehlman **
\********************************************************/
#include <lib/std.mi>
#include attribs/init_Autoresize.m
Function adjust(int x, int y);
Function fade(GuiObject o, int a);
Class GuiObject Mousetrap;
Global Mousetrap resizer;
Global Mousetrap wdh, outer, bg;
Global Group sg;
Global Int sx, sy, ox, oy, dx, dy;
Global Boolean move;
Global Timer refresh;
System.onScriptLoaded ()
{
initAttribs_Autoresize();
sg = getScriptGroup();
wdh = sg.getObject("wdh");
resizer = sg.getObject("wdh.drag");
outer = sg.getObject("wdh.outer");
bg = sg.getObject("bg");
refresh = new Timer;
refresh.setDelay(133);
video_inframe_attrib.onDataChanged ();
}
System.onScriptUnloading ()
{
refresh.stop();
delete refresh;
}
resizer.onLeftButtonDown (int x, int y)
{
move = true;
sx = x;
sy = y;
ox = wdh.getGuiX();
oy = wdh.getGuiY();
refresh.start();
}
resizer.onLeftButtonUp (int x, int y)
{
move = false;
refresh.stop();
}
resizer.onMouseMove (int x, int y)
{
if (!move) return;
dx = sx - x;
dy = sy - y;
}
// handle the resizing with a timer in order to prevent jittering
refresh.onTimer ()
{
adjust(dx, dy);
}
adjust (int x, int y)
{
int nx = ox + x;
int ny = oy + y;
// Ensure we don't get out of the bounds
if (nx < 5)
{
nx = 5;
}
if (ny < 5)
{
ny = 5;
}
// Minimum h/w: aligned with Nullsoft Video Symbol
if (sg.getHeight() - 2*ny < 64)
{
ny = (64 - sg.getHeight())/(-2);
}
if (sg.getWidth() - 2*nx < 100)
{
nx = (100 - sg.getWidth())/(-2);
}
outer.setXmlParam("x", integerToString(nx-1));
outer.setXmlParam("w", integerToString(-2*(nx-1)));
outer.setXmlParam("y", integerToString(ny-1));
outer.setXmlParam("h", integerToString(-2*(ny-1)));
wdh.setXmlParam("x", integerToString(nx));
wdh.setXmlParam("w", integerToString(-(2*nx)));
wdh.setXmlParam("y", integerToString(ny));
wdh.setXmlParam("h", integerToString(-(2*ny)));
resizer.setXmlParam("x", integerToString(-nx));
resizer.setXmlParam("y", integerToString(-ny));
}
video_inframe_attrib.onDataChanged ()
{
if (getData() == "1")
{
outer.show();
resizer.show();
outer.setXmlParam("x", integerToString(4));
outer.setXmlParam("w", integerToString(-8));
outer.setXmlParam("y", integerToString(4));
outer.setXmlParam("h", integerToString(-8));
wdh.setXmlParam("x", integerToString(5));
wdh.setXmlParam("w", integerToString(-10));
wdh.setXmlParam("y", integerToString(5));
wdh.setXmlParam("h", integerToString(-10));
resizer.setXmlParam("x", integerToString(-5));
resizer.setXmlParam("y", integerToString(-5));
}
else
{
outer.hide();
resizer.hide();
wdh.setXmlParam("x", integerToString(0));
wdh.setXmlParam("w", integerToString(0));
wdh.setXmlParam("y", integerToString(0));
wdh.setXmlParam("h", integerToString(0));
}
}
/*
Mousetrap.onEnterArea ()
{
if (outer.getAlpha() == 255) return;
if (video_inframe_attrib.getData() == "1")
{
fade(outer, 255);
fade(resizer, 255);
}
}
Mousetrap.onLeaveArea ()
{
if (move) return;
for ( int i = 0; i < sg.getNumObjects(); i++ )
{
if (sg.enumObject(i).isMouseOver(getMousePosX(), getMousePosY())) return;
}
if (video_inframe_attrib.getData() == "1")
{
fade(outer, 0);
fade(resizer, 0);
}
}
fade (GuiObject o, int a)
{
o.cancelTarget();
o.setTargetX(o.getGuiX());
o.setTargetY(o.getGuiY());
o.setTargetH(o.getGuiH());
o.setTargetW(o.getGuiW());
o.setTargetA(a);
o.setTargetSpeed(0.3);
o.gotoTarget();
}*/

Binary file not shown.

View File

@ -0,0 +1,148 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: visbuttons.m
Version: 1.0
Type: maki
Date: 16. Aug. 2007 - 23:54
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Function updateObjectPosition(int w);
Global Group scriptGroup;
Global Button cfg, prv, nxt, rnd, rnda;
Global Boolean isBig;
System.onScriptLoaded ()
{
initAttribs_Appearance();
scriptGroup = getScriptGroup();
cfg = scriptGroup.findObject("vis.cfg");
prv = scriptGroup.findObject("vis.prv");
nxt = scriptGroup.findObject("vis.nxt");
rnd = scriptGroup.findObject("vis.rnd");
rnda = scriptGroup.findObject("vis.rnd.active");
isBig = (prv.getGuiX() == 31);
}
scriptGroup.onResize (int x, int y, int w, int h)
{
updateObjectPosition(w);
}
/*
artist_info_buttons_attrib.onDataChanged ()
{
updateObjectPosition(scriptGroup.getWidth());
}
updateObjectPosition (int w)
{
if (isBig)
{
if (artist_info_buttons_attrib.getData() != "1")
{
w += 62;
}
if (w >= 248)
{
cfg.show();
prv.show();
rnd.show();
rnda.show();
nxt.show();
}
else if (w >= 217)
{
cfg.show();
prv.show();
rnd.show();
rnda.show();
nxt.hide();
}
else if (w >= 186)
{
cfg.show();
prv.show();
rnd.hide();
rnda.hide();
nxt.hide();
}
else if (w >= 155)
{
cfg.show();
prv.hide();
rnd.hide();
rnda.hide();
nxt.hide();
}
else
{
cfg.hide();
prv.hide();
rnd.hide();
rnda.hide();
nxt.hide();
}
return;
}
if (artist_info_buttons_attrib.getData() != "1")
{
w += 46;
}
if (w >= 192)
{
cfg.show();
prv.show();
rnd.show();
rnda.show();
nxt.show();
}
else if (w >= 168)
{
cfg.show();
prv.show();
rnd.show();
rnda.show();
nxt.hide();
}
else if (w >= 144)
{
cfg.show();
prv.show();
rnd.hide();
rnda.hide();
nxt.hide();
}
else if (w >= 120)
{
cfg.show();
prv.hide();
rnd.hide();
rnda.hide();
nxt.hide();
}
else
{
cfg.hide();
prv.hide();
rnd.hide();
rnda.hide();
nxt.hide();
}
}*/

Binary file not shown.

View File

@ -0,0 +1,356 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: visualizer.m
Version: 1.4
Type: maki
Date: 07. Okt. 2007 - 19:56
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script handles also the timer reflection
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Function refreshVisSettings();
Function setVis (int mode);
Function ProcessMenuResult (int a);
Global Group scriptGroup;
Global Vis visualizer, visualizer_m;
Global Text tmr;
Global PopUpMenu visMenu;
Global PopUpMenu specmenu;
Global PopUpMenu oscmenu;
Global PopUpMenu pksmenu;
Global PopUpMenu anamenu;
Global PopUpMenu stylemenu;
Global Int currentMode, a_falloffspeed, p_falloffspeed, a_coloring;
Global Boolean show_peaks, isShade;
Global layer trigger;
Global Layout thislayout;
Global Container main;
System.onScriptLoaded()
{
initAttribs_Appearance(); // init appearance attribs
scriptGroup = getScriptGroup();
thislayout = scriptGroup.getParentLayout();
main = thislayout.getContainer();
// this script runs in shade and normal layout, we store this bool to prevent some actions to recieve the shade vis.
isShade = (scriptGroup.getParentlayout().getID() == "shade");
visualizer = scriptGroup.findObject("main.vis");
trigger = scriptGroup.findObject("main.vis.trigger");
if (!isShade)
{
visualizer_m = scriptGroup.findObject("main.vis.mirror");
vis_reflection_attrib.onDataChanged();
tmr = scriptGroup.findObject("SongTime");
timer_reflection_attrib.onDataChanged();
}
visualizer.setXmlParam("peaks", integerToString(show_peaks));
visualizer.setXmlParam("peakfalloff", integerToString(p_falloffspeed));
visualizer.setXmlParam("falloff", integerToString(a_falloffspeed));
refreshVisSettings ();
}
refreshVisSettings ()
{
currentMode = getPrivateInt(getSkinName(), "Visualizer Mode", 1);
show_peaks = getPrivateInt(getSkinName(), "Visualizer show Peaks", 1);
a_falloffspeed = getPrivateInt(getSkinName(), "Visualizer analyzer falloff", 3);
p_falloffspeed = getPrivateInt(getSkinName(), "Visualizer peaks falloff", 2);
a_coloring = getPrivateInt(getSkinName(), "Visualizer analyzer coloring", 0);
visualizer.setXmlParam("peaks", integerToString(show_peaks));
visualizer.setXmlParam("peakfalloff", integerToString(p_falloffspeed));
visualizer.setXmlParam("falloff", integerToString(a_falloffspeed));
if (a_coloring == 0)
{
visualizer.setXmlParam("coloring", "Normal");
if (!isShade) visualizer_m.setXmlParam("coloring", "Normal");
}
else if (a_coloring == 1)
{
visualizer.setXmlParam("coloring", "Normal");
if (!isShade) visualizer_m.setXmlParam("coloring", "Normal");
}
else if (a_coloring == 2)
{
visualizer.setXmlParam("coloring", "Fire");
if (!isShade) visualizer_m.setXmlParam("coloring", "Fire");
}
else if (a_coloring == 3)
{
visualizer.setXmlParam("coloring", "Line");
if (!isShade) visualizer_m.setXmlParam("coloring", "Line");
}
if (!isShade)
{
visualizer_m.setXmlParam("peaks", integerToString(show_peaks));
visualizer_m.setXmlParam("peakfalloff", integerToString(p_falloffspeed));
visualizer_m.setXmlParam("falloff", integerToString(a_falloffspeed));
}
setVis (currentMode);
}
trigger.onLeftButtonDown (int x, int y)
{
if (isKeyDown(VK_ALT) && isKeyDown(VK_SHIFT) && isKeyDown(VK_CONTROL))
{
if (visualizer.getXmlParam("fliph") == "1")
{
visualizer.setXmlParam("fliph", "0");
visualizer_m.setXmlParam("fliph", "0");
}
else
{
visualizer.setXmlParam("fliph", "1");
visualizer_m.setXmlParam("fliph", "1");
}
return;
}
currentMode++;
if (currentMode == 6)
{
currentMode = 0;
}
setVis (currentMode);
complete;
}
trigger.onRightButtonUp (int x, int y)
{
visMenu = new PopUpMenu;
specmenu = new PopUpMenu;
oscmenu = new PopUpMenu;
pksmenu = new PopUpMenu;
anamenu = new PopUpMenu;
stylemenu = new PopUpMenu;
visMenu.addCommand("Presets:", 999, 0, 1);
visMenu.addCommand("No Visualization", 100, currentMode == 0, 0);
specmenu.addCommand("Thick Bands", 1, currentMode == 1, 0);
specmenu.addCommand("Thin Bands", 2, currentMode == 2, 0);
visMenu.addSubMenu(specmenu, "Spectrum Analyzer");
oscmenu.addCommand("Solid", 3, currentMode == 3, 0);
oscmenu.addCommand("Dots", 4, currentMode == 4, 0);
oscmenu.addCommand("Lines", 5, currentMode == 5, 0);
visMenu.addSubMenu(oscmenu, "Oscilloscope");
visMenu.addSeparator();
visMenu.addCommand("Options:", 102, 0, 1);
visMenu.addCommand("Show Peaks", 101, show_peaks == 1, 0);
pksmenu.addCommand("Slower", 200, p_falloffspeed == 0, 0);
pksmenu.addCommand("Slow", 201, p_falloffspeed == 1, 0);
pksmenu.addCommand("Moderate", 202, p_falloffspeed == 2, 0);
pksmenu.addCommand("Fast", 203, p_falloffspeed == 3, 0);
pksmenu.addCommand("Faster", 204, p_falloffspeed == 4, 0);
visMenu.addSubMenu(pksmenu, "Peak Falloff Speed");
anamenu.addCommand("Slower", 300, a_falloffspeed == 0, 0);
anamenu.addCommand("Slow", 301, a_falloffspeed == 1, 0);
anamenu.addCommand("Moderate", 302, a_falloffspeed == 2, 0);
anamenu.addCommand("Fast", 303, a_falloffspeed == 3, 0);
anamenu.addCommand("Faster", 304, a_falloffspeed == 4, 0);
visMenu.addSubMenu(anamenu, "Analyzer Falloff Speed");
stylemenu.addCommand("Normal", 400, a_coloring == 0, 0);
stylemenu.addCommand("Fire", 402, a_coloring == 2, 0);
stylemenu.addCommand("Line", 403, a_coloring == 3, 0);
visMenu.addSubMenu(stylemenu, "Analyzer Coloring");
ProcessMenuResult (visMenu.popAtMouse());
delete visMenu;
delete specmenu;
delete oscmenu;
delete pksmenu;
delete anamenu;
delete stylemenu;
complete;
}
ProcessMenuResult (int a)
{
if (a < 1) return;
if (a > 0 && a <= 6 || a == 100)
{
if (a == 100) a = 0;
setVis(a);
}
else if (a == 101)
{
show_peaks = (show_peaks - 1) * (-1);
visualizer.setXmlParam("peaks", integerToString(show_peaks));
if (!isShade) visualizer_m.setXmlParam("peaks", integerToString(show_peaks));
setPrivateInt(getSkinName(), "Visualizer show Peaks", show_peaks);
}
else if (a >= 200 && a <= 204)
{
p_falloffspeed = a - 200;
visualizer.setXmlParam("peakfalloff", integerToString(p_falloffspeed));
if (!isShade) visualizer_m.setXmlParam("peakfalloff", integerToString(p_falloffspeed));
setPrivateInt(getSkinName(), "Visualizer peaks falloff", p_falloffspeed);
}
else if (a >= 300 && a <= 304)
{
a_falloffspeed = a - 300;
visualizer.setXmlParam("falloff", integerToString(a_falloffspeed));
if (!isShade) visualizer_m.setXmlParam("falloff", integerToString(a_falloffspeed));
setPrivateInt(getSkinName(), "Visualizer analyzer falloff", a_falloffspeed);
}
else if (a >= 400 && a <= 403)
{
a_coloring = a - 400;
if (a_coloring == 0)
{
visualizer.setXmlParam("coloring", "Normal");
if (!isShade) visualizer_m.setXmlParam("coloring", "Normal");
}
else if (a_coloring == 1)
{
visualizer.setXmlParam("coloring", "Normal");
if (!isShade) visualizer_m.setXmlParam("coloring", "Normal");
}
else if (a_coloring == 2)
{
visualizer.setXmlParam("coloring", "Fire");
if (!isShade) visualizer_m.setXmlParam("coloring", "Fire");
}
else if (a_coloring == 3)
{
visualizer.setXmlParam("coloring", "Line");
if (!isShade) visualizer_m.setXmlParam("coloring", "Line");
}
setPrivateInt(getSkinName(), "Visualizer analyzer coloring", a_coloring);
}
}
setVis (int mode)
{
setPrivateInt(getSkinName(), "Visualizer Mode", mode);
if (mode == 0)
{
visualizer.setMode(0);
if (!isShade) visualizer_m.setMode(0);
}
else if (mode == 1)
{
visualizer.setXmlParam("bandwidth", "wide");
visualizer.setMode(1);
if (!isShade) visualizer_m.setXmlParam("bandwidth", "wide");
if (!isShade) visualizer_m.setMode(1);
}
else if (mode == 2)
{
visualizer.setXmlParam("bandwidth", "thin");
visualizer.setMode(1);
if (!isShade) visualizer_m.setXmlParam("bandwidth", "thin");
if (!isShade) visualizer_m.setMode(1);
}
else if (mode == 3)
{
visualizer.setXmlParam("oscstyle", "solid");
visualizer.setMode(2);
if (!isShade) visualizer_m.setXmlParam("oscstyle", "solid");
if (!isShade) visualizer_m.setMode(2);
}
else if (mode == 4)
{
visualizer.setXmlParam("oscstyle", "dots");
visualizer.setMode(2);
if (!isShade) visualizer_m.setXmlParam("oscstyle", "dots");
if (!isShade) visualizer_m.setMode(2);
}
else if (mode == 5)
{
visualizer.setXmlParam("oscstyle", "lines");
visualizer.setMode(2);
if (!isShade) visualizer_m.setXmlParam("oscstyle", "lines");
if (!isShade) visualizer_m.setMode(2);
}
currentMode = mode;
}
// Set Vis reflection on/off
vis_reflection_attrib.onDataChanged ()
{
if (isShade)
{
// shade visualizer doesn't have a reflection
return;
}
if (getdata() == "1")
{
visualizer_m.show();
}
else
{
visualizer_m.hide();
}
}
// Set Timer reflection on/off
timer_reflection_attrib.onDataChanged ()
{
if (isShade)
{
// shade visualizer doesn't have a reflection
return;
}
if (getdata() == "1")
{
tmr.setXmlParam("font", "player.bitmapfont.nums");
}
else
{
tmr.setXmlParam("font", "player.bitmapfont.nums.noreflect");
}
}
// Sync Normal and Shade Layout
main.onBeforeSwitchToLayout(Layout oldlayout, Layout newlayout)
{
if (newlayout != thislayout)
{
return;
}
refreshVisSettings();
}

Binary file not shown.