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

Binary file not shown.

View File

@ -0,0 +1,138 @@
<elements>
<bitmap id="about.bg" file="about/about_bg.png"/>
<bitmap id="about.fg" file="about/about_fg.png"/>
<bitmap id="about.winampbolt" file="about/about_bolt.png"/>
<bitmap id="about.starani" file="about/about_star.png"/>
<bitmap id="about.eye" file="about/eye.png"/>
<color id="font.about.color1" value="255,225,155" gammagroup=""/>
<color id="font.about.color2" value="255,255,255" gammagroup=""/>
</elements>
<groupdef id="skin.about.group" w="0" h="0" relatw="1" relath="1" rectrgn="1">
<rect fitparent="1" color="110,119,134" filled="1" />
<layer
x="0" y="0"
w="0" relatw="1"
h="321"
image="about.bg"
/>
<layer
x="0" y="0"
w="371"
h="321"
image="about.fg"
/>
<layer
id="about.bolt"
x="153" y="149"
w="56"
h="56"
image="about.winampbolt"
/>
<layer
id="about.eye1"
x="186" y="78"
w="3"
h="4"
image="about.eye"
/>
<layer
id="about.eye2"
x="197" y="79"
w="3"
h="4"
image="about.eye"
/>
<AnimatedLayer
x="-75" y="-70"
w="68" h="70"
id="about.star1"
image="about.starani"
autoplay="0"
autoreplay="0"
/>
<AnimatedLayer
x="-75" y="-70"
w="68" h="70"
id="about.star2"
image="about.starani"
autoplay="0"
autoreplay="0"
/>
<AnimatedLayer
x="-75" y="-70"
w="68" h="70"
id="about.star3"
image="about.starani"
autoplay="0"
autoreplay="0"
/>
<AnimatedLayer
x="-75" y="-70"
w="68" h="70"
id="about.star4"
image="about.starani"
autoplay="0"
autoreplay="0"
/>
<text
id="about.text1b"
color="font.about.color1"
x="10" y="13"
w="351"
h="20"
valign="top"
align="center"
fontsize="13"
font="Arial"
bold="1"
default=""
/>
<text
id="about.text2b"
color="font.about.color1"
x="10" y="13"
w="351"
h="20"
valign="top"
align="center"
fontsize="13"
font="Arial"
bold="1"
default=""
/>
<text
id="about.text1"
color="font.about.color2"
x="10" y="27"
w="351"
h="30"
valign="top"
align="center"
fontsize="17"
font="Arial"
default=""
/>
<text
id="about.text2"
color="font.about.color2"
x="10" y="27"
w="351"
h="30"
valign="top"
align="center"
fontsize="17"
font="Arial"
default=""
/>
<guiobject fitparent="1" />
<script file="about/about.maki"/>
</groupdef>

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 895 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,113 @@
#include <lib/std.mi>
#include "attribs.m"
Global AlbumArtLayer waaa;
Global Layout aalayout;
System.onScriptLoaded()
{
initAttribs();
Container albumart = System.getContainer("winamp.albumart");
aalayout = albumart.getLayout("normal");
waaa = getScriptGroup().findObject(getParam());
}
system.onScriptUnloading ()
{
if (!aalayout) return;
setPrivateInt("Winamp Modern", "Album Art XPos", aalayout.getLeft());
setPrivateInt("Winamp Modern", "Album Art YPos", aalayout.getTop());
}
aalayout.onStartup ()
{
resize(getPrivateInt("Winamp Modern", "Album Art XPos", 0), getPrivateInt("Winamp Modern", "Album Art YPos", 0), getWidth(), getHeight());
}
aalayout.onSetVisible (Boolean onoff)
{
if (!onoff)
{
albumart_visible_attrib.setData("0");
}
else
{
albumart_visible_attrib.setData("1");
}
}
albumart_visible_attrib.onDataChanged ()
{
if (getData() == "1")
{
aalayout.show();
}
else
{
aalayout.hide();
}
}
System.onKeyDown(String key)
{
if (key == "alt+a")
{
if (albumart_visible_attrib.getData() == "0")
albumart_visible_attrib.setData("1");
else
albumart_visible_attrib.setData("0");
complete;
}
}
waaa.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)
{
waaa.refresh();
}
else if (result == 2)
{
if(path != "")
{
System.navigateUrl(path);
}
else
{
String url = getPlayItemMetaDataString("streamurl");
if(url != "")
{
System.navigateUrl(url);
}
}
}
}
waaa.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);
}
}
}

View File

@ -0,0 +1,319 @@
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef __ATTRIBS_M
#define __ATTRIBS_M
#include <lib/config.mi>
// -----------------------------------------------------------------------------------------------------------------
// 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}"
// 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}"
// custom options submenu item page, you can add more, just use guidgen and Config.newItem()
#define CUSTOM_PAGE "{26E26319-AECA-4433-B8F1-F4A5BF2A9ED5}"
// drawer config page
#define CUSTOM_PAGE_DRAWER "{C338B30F-2A04-4b10-871F-4E9D52D62806}"
// menubars config page
#define CUSTOM_PAGE_MENUBARS "{12ED320E-6813-45ac-9F8E-78EE5B2B5F6D}"
// main windowshade config page
#define CUSTOM_PAGE_WINDOWSHADE "{58F07E21-AE96-4899-B7BC-3640B40029FB}"
// vis button config page
#define CUSTOM_PAGE_VISCMD "{D70E3ABF-D2FF-4b82-9A70-4B5DF1A5D942}"
// notifier config page
#define CUSTOM_PAGE_NOTIFIER "{1AB968B3-8687-4a35-BA70-FCF6D92FB57F}"
// songticker config page
#define CUSTOM_PAGE_SONGTICKER "{7061FDE0-0E12-11D8-BB41-0050DA442EF3}"
// non exposed attribs page
#define CUSTOM_PAGE_NONEXPOSED "{E9C2D926-53CA-400f-9A4D-85E31755A4CF}"
// -----------------------------------------------------------------------------------------------------------------
Function initAttribs();
// -----------------------------------------------------------------------------------------------------------------
Global ConfigAttribute scrolldrawerattrib;
Global ConfigAttribute scrollconfigdrawerattrib;
Global ConfigAttribute vis_detach_attrib;
Global ConfigAttribute video_detach_attrib;
Global ConfigAttribute drawer_directiontop_attrib;
Global ConfigAttribute drawer_directionbottom_attrib;
Global ConfigAttribute drawer_directionbypass_attrib;
Global ConfigAttribute eq_visible_attrib, albumart_visible_attrib;
Global ConfigAttribute menubar_main_attrib;
Global ConfigAttribute menubar_pe_attrib;
Global ConfigAttribute menubar_ml_attrib;
Global ConfigAttribute windowshade_linkall_attrib;
Global ConfigAttribute windowshade_linkposition_attrib;
Global ConfigAttribute windowshade_linknone_attrib;
Global ConfigAttribute beatvisualization_attrib;
Global ConfigAttribute viscmd_config_attrib;
Global ConfigAttribute viscmd_menu_attrib;
Global ConfigAttribute notifier_minimized_attrib;
Global ConfigAttribute notifier_windowshade_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_disablefullscreen_attrib;
//Global ConfigAttribute notifier_opennowplaying_attrib;
Global ConfigAttribute notifier_artworkinnotification_attrib;
Class ConfigAttribute songticker_scrolling_attrib;
Global songticker_scrolling_attrib songticker_scrolling_modern_attrib;
Global songticker_scrolling_attrib songticker_scrolling_classic_attrib;
Global songticker_scrolling_attrib songticker_scrolling_disabled_attrib;
// -----------------------------------------------------------------------------------------------------------------
initAttribs() {
// create the custom cfgpage for this session (if it does exist, it just returns it)
ConfigItem custom_page = Config.newItem("Winamp Modern", CUSTOM_PAGE);
ConfigItem custom_page_drawer = Config.newItem("Drawers", CUSTOM_PAGE_DRAWER);
ConfigItem custom_page_menubars = Config.newItem("Menus", CUSTOM_PAGE_MENUBARS);
ConfigItem custom_page_windowshade = Config.newItem("Main Windowshade Mode", CUSTOM_PAGE_WINDOWSHADE);
ConfigItem custom_page_viscmd = Config.newItem("Vis Buttons", CUSTOM_PAGE_VISCMD);
ConfigItem custom_page_notifier = Config.newItem("Notifications", CUSTOM_PAGE_NOTIFIER);
ConfigItem custom_page_songticker = Config.newItem("Songticker", CUSTOM_PAGE_SONGTICKER);
ConfigItem custom_page_nonexposed = Config.newItem("Hidden", CUSTOM_PAGE_NONEXPOSED);
// load up the cfgpage in which we'll insert our custom page
ConfigItem custom_options_page = Config.getItem(CUSTOM_OPTIONSMENU_ITEMS);
ConfigItem custom_windows_page = Config.getItem(CUSTOM_WINDOWSMENU_ITEMS);
// this creates a submenu for this attribute
ConfigAttribute submenuattrib = custom_options_page.newAttribute("Winamp Modern", "");
submenuattrib.setData(CUSTOM_PAGE); // discard any default value and point at our custom cfgpage
ConfigAttribute drawersubmenu = custom_page.newAttribute("Drawers", "");
drawersubmenu.setData(CUSTOM_PAGE_DRAWER);
ConfigAttribute menubarssubmenu = custom_page.newAttribute("Menus", "");
menubarssubmenu.setData(CUSTOM_PAGE_MENUBARS);
ConfigAttribute windowshadesubmenu = custom_page.newAttribute("Main Windowshade Mode", "");
windowshadesubmenu.setData(CUSTOM_PAGE_WINDOWSHADE);
ConfigAttribute viscmdsubmenu = custom_page.newAttribute("Vis Shortcut Button", "");
viscmdsubmenu.setData(CUSTOM_PAGE_VISCMD);
ConfigAttribute notifiersubmenu = custom_page.newAttribute("Notifications", "");
notifiersubmenu.setData(CUSTOM_PAGE_NOTIFIER);
ConfigAttribute songtickersubmenu = custom_page.newAttribute("Songticker", "");
songtickersubmenu.setData(CUSTOM_PAGE_SONGTICKER);
scrolldrawerattrib = custom_page_drawer.newAttribute("Animate Video/Vis Drawer (disabled if opacity < 100%)", "0");
scrollconfigdrawerattrib = custom_page_drawer.newAttribute("Animate Config Drawer", "0");
ConfigAttribute sep = custom_page_drawer.newAttribute("sep1", ""); sep.setData("-");
drawer_directiontop_attrib = custom_page_drawer.newAttribute("Open Video/Vis from the top", "0");
drawer_directionbottom_attrib = custom_page_drawer.newAttribute("Open Video/Vis from the bottom", "1");
drawer_directionbypass_attrib = custom_page_drawer.newAttribute("Bypass setting to keep in screen", "1");
if (drawer_directiontop_attrib.getData() == "1") drawer_directiontop_attrib.onDataChanged(); else drawer_directionbottom_attrib.onDataChanged();
menubar_main_attrib = custom_page_menubars.newAttribute("Show Menus in Main Window", "1");
menubar_pe_attrib = custom_page_menubars.newAttribute("Show Menus in Playlist Editor", "1");
menubar_ml_attrib = custom_page_menubars.newAttribute("Show Menus in Media Library", "1");
// create an attribute for each of our options, if the attribute already exists, it is returned
sep = custom_page.newAttribute("sep1", ""); sep.setData("-");
vis_detach_attrib = custom_page.newAttribute("Detach Vis Window", "0");
video_detach_attrib = custom_page.newAttribute("Detach Video Window", "0");
eq_visible_attrib = custom_windows_page.newAttribute("Equalizer\tAlt+G", "0");
albumart_visible_attrib = custom_windows_page.newAttribute("Album Art\tAlt+A", "1");
sep = custom_page.newAttribute("sep2", ""); sep.setData("-");
beatvisualization_attrib = custom_page.newAttribute("Enable Beat Visualization", "1");
windowshade_linkall_attrib = custom_page_windowshade.newAttribute("Link Position and Width", "1");
windowshade_linkposition_attrib = custom_page_windowshade.newAttribute("Link Position, Unlink Width", "0");
windowshade_linknone_attrib = custom_page_windowshade.newAttribute("Unlink Position and Width", "0");
viscmd_menu_attrib = custom_page_viscmd.newAttribute("Open Context Menu", "1");
viscmd_config_attrib = custom_page_viscmd.newAttribute("Open Configuration", "0");
notifier_always_attrib = custom_page_notifier.newAttribute("Show always", "0");
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_never_attrib = custom_page_notifier.newAttribute("Never show", "1");
sep = custom_page_notifier.newAttribute("sep1", ""); sep.setData("-");
notifier_disablefullscreen_attrib = custom_page_notifier.newAttribute("Disable in fullscreen", "1");
sep = custom_page_notifier.newAttribute("sep666", ""); sep.setData("-");
//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");
songticker_scrolling_disabled_attrib = custom_page_songticker.newAttribute("Disable Songticker scrolling", "0");
if (songticker_scrolling_disabled_attrib.getData() == "0") songticker_scrolling_modern_attrib = custom_page_songticker.newAttribute("Modern Songticker scrolling", "1");
else songticker_scrolling_modern_attrib = custom_page_songticker.newAttribute("Modern Songticker scrolling", "0");
songticker_scrolling_classic_attrib = custom_page_songticker.newAttribute("Classic Songticker scrolling", "0");
}
// -----------------------------------------------------------------------------------------------------------------
#ifdef MAIN_ATTRIBS_MGR
Global Int attribs_mychange;
#define NOOFF if (getData()=="0") { setData("1"); return; }
drawer_directiontop_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
drawer_directionbottom_attrib.setData("0");
drawer_directiontop_attrib.setData("1");
attribs_mychange = 0;
}
drawer_directionbottom_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
drawer_directiontop_attrib.setData("0");
drawer_directionbottom_attrib.setData("1");
attribs_mychange = 0;
}
windowshade_linkall_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
windowshade_linkposition_attrib.setData("0");
windowshade_linknone_attrib.setData("0");
attribs_mychange = 0;
}
windowshade_linkposition_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
windowshade_linkall_attrib.setData("0");
windowshade_linknone_attrib.setData("0");
attribs_mychange = 0;
}
windowshade_linknone_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
windowshade_linkall_attrib.setData("0");
windowshade_linkposition_attrib.setData("0");
attribs_mychange = 0;
}
viscmd_menu_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
viscmd_config_attrib.setData("0");
attribs_mychange = 0;
updateVisCmd();
}
viscmd_config_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
viscmd_menu_attrib.setData("0");
attribs_mychange = 0;
updateVisCmd();
}
notifier_always_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
notifier_minimized_attrib.setData("0");
attribs_mychange = 0;
}
notifier_never_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_always_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
notifier_minimized_attrib.setData("0");
attribs_mychange = 0;
}
notifier_minimized_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
notifier_always_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;
}
songticker_scrolling_modern_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_scrolling_disabled_attrib.setData("0");
songticker_scrolling_classic_attrib.setData("0");
attribs_mychange = 0;
}
songticker_scrolling_disabled_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_scrolling_modern_attrib.setData("0");
songticker_scrolling_classic_attrib.setData("0");
attribs_mychange = 0;
}
songticker_scrolling_classic_attrib.onDataChanged() {
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_scrolling_modern_attrib.setData("0");
songticker_scrolling_disabled_attrib.setData("0");
attribs_mychange = 0;
}
#endif
#endif

View File

@ -0,0 +1,139 @@
#include <lib/std.mi>
#include "attribs.m"
Function setObjects();
Global Group frameGroup,beatdisplay;
Global Layer beatOverlay,DisplayRight,DisplayRightOverlay,DisplaySongtickerBG,VisOverlay;
Global Timer refreshEQ;
Global AnimatedLayer beatbarLeft,beatbarRight;
Global int lastBeatLeft,lastBeatRight;
Global Button Toggler,Toggler2;
Global Int dobeat2;
System.onScriptLoaded() {
initAttribs();
frameGroup = getScriptGroup();
beatdisplay = frameGroup.findObject("player.normal.display.beatvisualization");
beatOverlay = frameGroup.findObject("beatdisplayoverlay");
beatbarLeft = frameGroup.findObject("beatleft");
beatbarRight = frameGroup.findObject("beatright");
Toggler = frameGroup.findObject("beatvisualization");
Toggler2 = frameGroup.findObject("beatvisualization2");
DisplayRight = frameGroup.findObject("display.right");
DisplayRightOverlay = frameGroup.findObject("display.right.overlay2");
DisplaySongtickerBG = frameGroup.findObject("display.st.right");
VisOverlay = frameGroup.findObject("visualization.overlay");
lastBeatLeft = 0;
lastBeatRight = 0;
refreshEQ = new Timer;
refreshEQ.setDelay(10);
}
System.onscriptunloading() {
delete refreshEQ;
}
setObjects() {
int group_width = frameGroup.getWidth();
if ( group_width % 2 !=0 ) {
DisplayRight.setXmlParam("image","player.display.right");
DisplayRightOverlay.setXmlParam("image","player.display.right");
DisplaySongtickerBG.setXmlParam("image","player.display.songticker.bg.right");
VisOverlay.setXmlParam("image","player.visualization.overlay");
} else {
DisplayRight.setXmlParam("image","player.display.right2");
DisplayRightOverlay.setXmlParam("image","player.display.right2");
DisplaySongtickerBG.setXmlParam("image","player.display.songticker.bg.right2");
VisOverlay.setXmlParam("image","player.visualization.overlay2");
}
if ( group_width > 480 ) {
int newXpos = (group_width-60)/2;
beatdisplay.setXmlParam("x", IntegerToString(newXpos));
beatdisplay.show();
if ( beatvisualization_attrib.getData()=="1" ) {
refreshEQ.stop();
refreshEQ.start();
} else {
refreshEQ.stop();
beatbarLeft.gotoframe(0);
beatbarRight.gotoframe(0);
}
} else {
beatdisplay.hide();
refreshEQ.stop();
}
}
frameGroup.onResize(int x, int y, int w, int h) {
setObjects();
}
refreshEQ.onTimer() {
int beatLeft= System.getLeftVuMeter();
int beatRight= System.getRightVuMeter();
int frameLeft=beatLeft/16;
int frameRight=beatRight/16;
if (frameLeft>14) frameLeft=14;
if (frameRight>14) frameRight=14;
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;
beatbarLeft.gotoframe(frameLeft);
beatbarRight.gotoframe(frameRight);
}
beatvisualization_attrib.onDataChanged() {
setObjects();
}
System.onKeyDown(String key) {
if (key == "shift+ctrl+alt") {
dobeat2 = 1;
complete;
} else dobeat2 = 0;
}
Toggler.onLeftClick() {
if ( beatvisualization_attrib.getData()=="1" ) {
beatvisualization_attrib.setData("0");
} else {
beatvisualization_attrib.setData("1");
}
}
Toggler2.onActivate(boolean on) {
if (!dobeat2) { Toggler.leftClick(); return; }
refreshEQ.stop();
if (on) {
beatbarLeft.setXMLParam("image","player.display.beat.left2");
beatbarRight.setXMLParam("image","player.display.beat.right2");
beatOverlay.hide();
} else {
beatbarLeft.setXMLParam("image","player.display.beat.left");
beatbarRight.setXMLParam("image","player.display.beat.right");
beatOverlay.show();
}
setObjects();
}

View File

@ -0,0 +1,2 @@
for %%a in (*.m) do "H:\Program Files\Nullsoft\sandbox\wasabi\mc.exe" %%a
pause

View File

@ -0,0 +1,280 @@
#include <lib/std.mi>
#include "attribs.m"
function setTabs(int tabstate);
function setTabContent(int contentstate);
function OpenDrawer(int animate);
function CloseDrawer(int animate);
function updateAttribs();
function ShowDrawer();
function adjustSnapPoints(int DrawerOpen);
Global Group frameGroup,PlayerMain,VideoVisGroup;
Global Group tabs,tEQon,tEQoff,tOPTIONSon,tOPTIONSoff,tCOLORTHEMESon,tCOLORTHEMESoff;
Global Group ContentEQ,ContentOPTIONS,ContentCOLORTHEMES;
Global Layer mouseLayerEQ,mouseLayerOPTIONS,mouseLayerCOLORTHEMES;
Global Button btnClose,btnOpen;
Global Group Drawer,DrawerShadow,DrawerContent;
Global GuiObject ColorThemes;
Global Layout main;
Global Int mychange;
Global Boolean loaded=0;
Global Timer deferred_opendrawer;
System.onScriptLoaded() {
initAttribs();
frameGroup = getScriptGroup();
main = frameGroup.getParentLayout();
tabs=frameGroup.findObject("config.tabs");
tEQon=frameGroup.findObject("config.tab.eq.on");
tEQoff=frameGroup.findObject("config.tab.eq.off");
tOPTIONSon=frameGroup.findObject("config.tab.options.on");
tOPTIONSoff=frameGroup.findObject("config.tab.options.off");
tCOLORTHEMESon=frameGroup.findObject("config.tab.colorthemes.on");
tCOLORTHEMESoff=frameGroup.findObject("config.tab.colorthemes.off");
ColorThemes=frameGroup.findObject("colorthemes");
PlayerMain=frameGroup.findObject("player.main");
VideoVisGroup = frameGroup.findObject("AVSGroup");
ContentEQ=frameGroup.findObject("player.normal.drawer.eq");
ContentOPTIONS=frameGroup.findObject("player.normal.drawer.options");
ContentCOLORTHEMES=frameGroup.findObject("player.normal.drawer.colorthemes");
mouseLayerEQ=frameGroup.findObject("mousetrapTabEQ");
mouseLayerOPTIONS=frameGroup.findObject("mousetrapTabOPTIONS");
mouseLayerCOLORTHEMES=frameGroup.findObject("mousetrapTabCOLORTHEMES");
btnClose = frameGroup.findObject("drawer.button.close");
btnOpen = frameGroup.findObject("drawer.button.open");
drawer = frameGroup.findObject("player.normal.drawer");
DrawerShadow = frameGroup.findObject("player.normal.drawer.shadow");
DrawerContent = frameGroup.findObject("player.normal.drawer.content");
int tabEQwidth=tEQon.getWidth();
int tabOPTIONSwidth=tOPTIONSon.getWidth();
int tOPTIONSx=tabEQwidth-3;
int tCOLORTHEMESx=tabEQwidth+tabOPTIONSwidth-6;
tOPTIONSon.setXmlParam("x",integertostring(tOPTIONSx));
tOPTIONSoff.setXmlParam("x",integertostring(tOPTIONSx));
tCOLORTHEMESoff.setXmlParam("x",integertostring(tCOLORTHEMESx));
tCOLORTHEMESon.setXmlParam("x",integertostring(tCOLORTHEMESx));
mychange = 1;
setTabs(getPrivateInt("winamp5", "ConfigTab", 1));
mychange = 0;
if (getPrivateInt("winamp5", "DrawerOpen", 0)) {
OpenDrawer(0);
adjustSnapPoints(1);
} else {
adjustSnapPoints(0);
}
loaded=1;
deferred_opendrawer = new Timer;
deferred_opendrawer.setDelay(250);
}
System.onScriptUnloading() {
delete deferred_opendrawer;
}
setTabs(int tabstate) {
tEQon.hide();
tOPTIONSon.hide();
tCOLORTHEMESon.hide();
if (tabstate==1) {
tEQon.show();
}
if (tabstate==2) {
tOPTIONSon.show();
}
if (tabstate==3) {
tCOLORTHEMESon.show();
}
setTabContent(tabstate);
setPrivateInt("winamp5", "ConfigTab", tabstate);
updateAttribs();
}
setTabContent(int contentstate) {
if (contentstate==1) {
ContentEQ.show();
ContentOPTIONS.hide();
ContentCOLORTHEMES.hide();
}
if (contentstate==2) {
ContentEQ.hide();
ContentOPTIONS.show();
ContentCOLORTHEMES.hide();
}
if (contentstate==3) {
ContentEQ.hide();
ContentOPTIONS.hide();
ContentCOLORTHEMES.show();
}
}
mouseLayerEQ.onLeftButtonDown(int x, int y) {
setTabs(1);
}
mouseLayerOPTIONS.onLeftButtonDown(int x, int y) {
setTabs(2);
}
mouseLayerCOLORTHEMES.onLeftButtonDown(int x, int y) {
setTabs(3);
}
OpenDrawer(int animate) {
btnOpen.hide();
btnClose.show();
main.beforeRedock();
if (animate && scrollconfigdrawerattrib.getData() == "1") {
lockUI();
drawer.setTargetX(drawer.getGuiX());
drawer.setTargetY(-147);
drawer.setTargetW(drawer.getGuiW());
drawer.setTargetH(drawer.getGuiH());
drawer.setTargetSpeed(1);
drawer.gotoTarget();
} else {
drawer.setXMLParam("y","-147");
setPrivateInt("winamp5", "DrawerOpen", 1);
ColorThemes.show();
adjustSnapPoints(1);
updateAttribs();
main.Redock();
}
DrawerShadow.show();
// main.setXmlParam("minimum_h", "397");
}
closeDrawer(int animate) {
main.beforeRedock();
// main.setXmlParam("minimum_h", "280");
ColorThemes.hide();
btnClose.hide();
btnOpen.show();
if (animate && scrollconfigdrawerattrib.getData() == "1") {
lockUI();
drawer.setTargetX(drawer.getGuiX());
drawer.setTargetY(-263);
drawer.setTargetW(drawer.getGuiW());
drawer.setTargetH(drawer.getGuiH());
drawer.setTargetSpeed(1);
drawer.gotoTarget();
} else {
drawer.setXMLParam("y","-263");
DrawerShadow.hide();
setPrivateInt("winamp5", "DrawerOpen", 0);
adjustSnapPoints(0);
updateAttribs();
main.redock();
}
}
btnClose.onLeftClick() {
closeDrawer(1);
}
btnOpen.onLeftClick() {
openDrawer(1);
}
drawer.onTargetReached() {
if (btnClose.isVisible()) {
setPrivateInt("winamp5", "DrawerOpen", 1);
ColorThemes.show();
adjustSnapPoints(1);
} else {
DrawerShadow.hide();
setPrivateInt("winamp5", "DrawerOpen", 0);
adjustSnapPoints(0);
}
updateAttribs();
main.redock();
unlockUI();
}
ShowDrawer() {
drawer.setXmlParam("y", "-147");
ColorThemes.show();
btnOpen.hide();
btnClose.show();
DrawerShadow.show();
adjustSnapPoints(1);
}
adjustSnapPoints(int DrawerOpen) {
int menuHeight=0;
if (menubar_main_attrib.getData() == "0") menuHeight=17;
if (DrawerOpen) {
main.snapAdjust(0,0,0,0+menuHeight);
} else {
main.snapAdjust(0,0,0,116+menuHeight);
}
}
menubar_main_attrib.onDataChanged() {
int menuHeight=0;
if (getData() == "0") menuHeight=17;
main.beforeRedock();
int DrawerOpen=getPrivateInt("winamp5", "DrawerOpen", 0);
if (DrawerOpen) {
main.snapAdjust(0,0,0,0+menuHeight);
} else {
main.snapAdjust(0,0,0,116+menuHeight);
}
main.Redock();
}
main.onResize(int x, int y, int w, int h) {
int newXpos=w/2-163;
DrawerContent.setXmlParam("x",integertostring(newXpos));
}
eq_visible_attrib.onDataChanged() {
if (mychange) return;
mychange = 1;
if (getData() == "1") {
main.getContainer().switchToLayout("normal"); // instead of main.show(), or linkwidth wont work
deferred_opendrawer.start();
} if (getData() == "0") {
closeDrawer(1);
}
mychange = 0;
}
deferred_opendrawer.onTimer() {
stop();
setTabs(1);
if (btnOpen.isVisible()) openDrawer(1);
}
updateAttribs() {
if (mychange) return;
mychange = 1;
if (tabstate == 1 && !btnOpen.isVisible()) eq_visible_attrib.setData("1"); else eq_visible_attrib.setData("0");
mychange = 0;
}
System.onKeyDown(String key) {
if (key == "alt+g") {
if (eq_visible_attrib.getData() == "0")
eq_visible_attrib.setData("1");
else
eq_visible_attrib.setData("0");
complete;
}
}

View File

@ -0,0 +1,97 @@
#include <lib/std.mi>
// ------------------------------------------------------------------------------------
Global GuiObject target;
Global ComponentBucket buck;
// ------------------------------------------------------------------------------------
Function turnAllOffExcept(GuiObject except);
Function turnOn(GuiObject obj);
Function turnOff(GuiObject obj);
// ------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------
// init
// ------------------------------------------------------------------------------------
System.onScriptLoaded() {
target = getScriptGroup().findObject("skin.config.target");
buck = getScriptGroup().findObject("my.bucket");
// turn off all
GuiObject o = NULL;
turnAllOffExcept(o);
}
// ------------------------------------------------------------------------------------
// save scroller position
// ------------------------------------------------------------------------------------
System.onScriptUnloading() {
if (buck) {
setPrivateInt("configmenu", "last_scroll", buck.getScroll());
}
}
// ------------------------------------------------------------------------------------
// turn on last open
// ------------------------------------------------------------------------------------
buck.onStartup() {
setScroll(getPrivateInt("configmenu", "last_scroll", 0));
Group g = buck.enumChildren(getPrivateInt("configmenu", "last_page", 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);
target.setXmlParam("groupid", grp);
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
}
}
// ------------------------------------------------------------------------------------
// 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("configmenu", "last_page", 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,55 @@
#include <lib/std.mi>
Global Group frameGroup;
Global Slider slidercb;
Global Text fadertext;
Global Button CFIncrease, CFDecrease;
Global ToggleButton Crossfade;
Global Layer DisplayOverlay;
System.onScriptLoaded() {
frameGroup = getScriptGroup();
slidercb = frameGroup.findObject("sCrossfade");
fadertext = frameGroup.findObject("CFDisplay");
CFIncrease = frameGroup.findObject("CrossfadeIncrease");
CFDecrease = frameGroup.findObject("CrossfadeDecrease");
Crossfade = frameGroup.findObject("Crossfade");
DisplayOverlay = frameGroup.findObject("crossfade.display.overlay");
slidercb.onSetPosition(slidercb.getPosition());
Crossfade.onToggle(Crossfade.getActivated());
}
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");
DisplayOverlay.show();
}
else
{
fadertext.setAlpha(255);
CFIncrease.setAlpha(255);
CFDecrease.setAlpha(255);
CFIncrease.setXmlParam("ghost" , "0");
CFDecrease.setXmlParam("ghost" , "0");
DisplayOverlay.hide();
}
}

View File

@ -0,0 +1,120 @@
#include <lib/std.mi>
#include "attribs.m"
Global Group frameGroup;
Global Togglebutton ShuffleBtn,RepeatBtn,ShuffleBtn2,RepeatBtn2;
Global Timer SongTickerTimer;
Global Text InfoTicker;
Global GuiObject SongTicker;
Global Slider Balance;
Global Layout normal;
function setSongtickerScrolling();
System.onScriptLoaded() {
initAttribs();
frameGroup = getScriptGroup();
SongTicker = frameGroup.findObject("songticker");
InfoTicker = frameGroup.findObject("infoticker");
normal = frameGroup.getParentLayout();
SongTickerTimer = new Timer;
SongTickerTimer.setDelay(1000);
RepeatBtn = frameGroup.findObject("Repeat");
ShuffleBtn = frameGroup.findObject("Shuffle");
RepeatBtn2 = frameGroup.findObject("RepeatDisplay");
ShuffleBtn2 = frameGroup.findObject("ShuffleDisplay");
Balance = frameGroup.findObject("Balance");
setSongtickerScrolling();
}
normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (strlower(action) == "showinfo")
{
SongTicker.hide();
SongTickerTimer.start();
InfoTicker.setText(param);
InfoTicker.show();
}
else if (strlower(action) == "cancelinfo")
{
SongTickerTimer.onTimer ();
}
}
SongTickerTimer.onTimer() {
SongTicker.show();
InfoTicker.hide();
SongTickerTimer.stop();
}
System.onScriptUnloading() {
delete SongTickerTimer;
}
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");
SongTickerTimer.start();
SongTicker.hide();
InfoTicker.show();
InfoTicker.setText(t);
}
RepeatBtn.onToggle(boolean on) {
SongTickerTimer.start();
int v = getCurCfgVal();
SongTicker.hide();
InfoTicker.show();
if (v == 0) InfoTicker.setText("Repeat: OFF");
else if (v > 0) InfoTicker.setText("Repeat: ALL");
else if (v < 0) InfoTicker.setText("Repeat: TRACK");
}
ShuffleBtn.onToggle(boolean on) {
SongTickerTimer.start();
SongTicker.hide();
InfoTicker.show();
if (on) InfoTicker.setText("Playlist Shuffling: ON"); else InfoTicker.setText("Playlist Shuffling: OFF");
}
RepeatBtn2.onToggle(boolean on) {
SongTickerTimer.start();
int v = getCurCfgVal();
SongTicker.hide();
InfoTicker.show();
if (v == 0) InfoTicker.setText("Repeat: OFF");
else if (v > 0) InfoTicker.setText("Repeat: ALL");
else if (v < 0) InfoTicker.setText("Repeat: TRACK");
}
ShuffleBtn2.onToggle(boolean on) {
SongTickerTimer.start();
SongTicker.hide();
InfoTicker.show();
if (on) InfoTicker.setText("Playlist Shuffling: ON"); else InfoTicker.setText("Playlist Shuffling: OFF");
}
songticker_scrolling_attrib.onDataChanged() {
setSongtickerScrolling();
}
setSongtickerScrolling() {
if (songticker_scrolling_modern_attrib.getData()=="1") {
SongTicker.setXMLParam("ticker","bounce");
}
else if (songticker_scrolling_classic_attrib.getData()=="1") {
SongTicker.setXMLParam("ticker","scroll");
}
else {
SongTicker.setXMLParam("ticker","off");
}
}

Some files were not shown because too many files have changed in this diff Show More