Old 8th October 2006, 16:36   #1
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Wasabi Engine Changelog

Hey,
here is a list of all changes to the wasabi engine since winamp 5.2.

Please don't reply in this thread. It's purpose is only to show you the recent changes in winamp's wasabi engine and will be filled when new changes are made.

!!!
PUT REPLYS/QUESTIONS IN THIS SEPARATE THREAD:
http://forums.winamp.com/showthread....hreadid=257120
!!!


Winamp 5.2

* Fixed: [gen_ff] regions on components don't work
You can now put a region over a component:
example:
PHP Code:
<component id="avs" region="region.avs" ... /> 
-> create a avs wnd which is round for example.

* Improved: [gen_ff] new vis modes available to skinners
A cool addition, the <vis> object has now the same options as the winamp classic vis!
example:
PHP Code:
  <vis 
      id
="vis" 
      
x="24" y="43"
      
w="72" h="16"
      
bandwidth="thin"      (or "wide")
      
falloff="4"           (0-4)
      
peakfalloff="4"       (0-4)
      
fps="60"              (any number you want)
      
coloring="normal"     (also, ="fire", ="line")
      
peaks="0"             (0=off1=on)
      
oscstyle="solid"      (also, ="dots", ="lines")
      /> 

Winamp 5.21

including XML files with *.xml won't work anymore


Winamp 5.22

Changes to the wac loader had been made - You need to upgrade to ColorEditor 2.0.3 if you wanna use it!

Checkboxes with radiogroups and ONE linked ConfigAttribute won't show it's state

new xml object <images>
<images> is something like an animated layer, but shows frames according to a source!

example:
PHP Code:
    <images id="volumewa2" source="volume" 
    
x="0" y="0"
    
w="68" h="13"
      
images="main.volpan.volume" imagesspacing="15" 
      
tooltip="Volume"
    
/> 
params:
source = volume, pan, seek (perhaps there will come more)
images = your image (all frames in one image like animated layer)
imagesspacing = height of one single frame

that's all

instead of using images with source="seek" i would use the <ProgressGrid> object or an real animated layer.

-No special maki functions till now


Winamp 5.23

The green placeholder for wrong defined images in layers is back! - Take note that in all your old skins with wrong imageIDs this green Image not found icon will be shown!
According to this if you load a nonexisting image in a map and wanna get its h/w it will return 64 instead of 0!


* Fixed: [gen_ff] Map.getHeight() maki script function returning width instead
self explaining...
...it's possible to get the dimension of a image with Map.getHeight()/Map.getWidth()

* Fixed: [gen_ff] Wasabi XML font-related fixes from Martin Poehlmann
Wasabi:Text, CheckBoxes, etc. have the right fontsize (14) again.


Winamp 5.3

* Fixed: [gen_ff] gradient drawing glitch and crash
Gradients are now drawn correctly on resize and won't crash!

* Fixed: [gen_ff] layerfx not being redrawn on colortheme change
self explaining...

* Improved: [gen_ff] better sample rate display
example:
PHP Code:
    <text display="SONGINFO"/> 
and System.getSongInfoText()
will display 44.1kHz instead of 44kHz

note: Not working if you use
PHP Code:
    <text display="SONGSAMPLERATE"/> 
<Wasabi:VSlider> object
...is working again without screwed thumbs

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 25th October 2006, 15:20   #2
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.31

The wacloader in gen_ff.dll had been altered to load the recompiled console.wac (Wasabi Debug Console - Can be downloaded from Winamp - Plugins, or the development thread in the modern skin forum), therefore you must switch to a new ColorEditor (v2.1.0) because the old won't work anymore. Moreover the new ColorEditor has got a few new functions; downloadable from Winamp - Plugins, or the development thread in the modern skin forum!

* New: You can load files from the internet

PHP Code:
    <layer image="http://www.yourdomain.com/pic.jpg"/> 
or
PHP Code:
    <element file="http://www.yourdomain.com/pic.jpg"/> 
Will load files from the internet.
note: This may cause a much slower skinloading with old dial-up connections!

* Fixed: [gen_ff] System.playFile not working on URLs
System.playFile(string url) can load now:
+file://... files
+http://... files
+linein:// -> direct connection to the lineIn plugin (you can create a record or aux button in your skin)
+various other urls/streams

* Fixed: Thinger icons for old wa3 skins (filereader.w5s missing)
Broken in Winamp5.3, now working again!

* New: GUID for Station Info Window
Here it is: {25CE50EF-3EE2-4356-A638-6E495C44BFB8}

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 16th February 2007, 09:52   #3
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.33

* Fixed: system.getPublicString(string param, string defvalue)
Broken since - i don't know - but works now again

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 4th December 2007, 21:50   #4
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.5

We're using a new skin version from now on: 1.3
Defining it as 1.3 causes also that wasabi.scrollbar.[] images are used for ml scrollbars.


* New Object <PlaylistDirectory />
This Object holds all Playlists stored in the ML.
You can also bring this view up using the old Winamp 3 Playlist Side car
PHP Code:
<Wasabi:TabSheet id="pls.sidecar" windowtype="plsc" type="2" fitparent="1"/> 
* New Object <AlbumArt />
This is the new build in Album Art view.
PHP Code:
<AlbumArt notFoundImage="someImg"/> 
* Altering Media Library Album Art Image
PHP Code:
<bitmap id="winamp.cover.notfound" file="notfound.png"/> 
* New Object <SongTicker />
This is a new Songticker, which uses less resources on scrolling.
It uses most of the params <text/> uses. The param ticker is now different:
ticker="off" --> no scrolling
ticker="bounce" --> modern scrolling
ticker="scroll" --> good ol' wa2 ticker
to change the ticker style on the fly, load this object as a GuiObject in your script and use setXmlParam()!

* New params for <Wasabi:Frame> object
PHP Code:
    <Wasabi:Frame maxwidth="-100" minwidth="100"/> 
Wasabi:Frame now supports maxwidth="" and minwidth="" to change the range over which the divider operates

* New param for <Container> object
PHP Code:
    <Container primarycomponent="guid:player"/> 
Defining the primarycomponent will help to get the keyboardfocus back from playlist, medialibrary to default player ones in sui skins.

* New params for <button> object
PHP Code:
    <button action="ML_SendTo" /> 
show send-to menu (uses currently playing track as the sent item when clicked)

* New param for <text> object
PHP Code:
    <button antialias="0"/> 
was already included in wa3, now it is back!

* New functions in std.mi
PHP Code:
    extern Boolean System.onOpenURL(string url); 
called everytime winamp wants to open a website in an extern browser, return 1 to cancel opening (usefull to show pages in skin's browser)
PHP Code:
    extern Int System.getCurrentTrackRating(); 
PHP Code:
    extern System.onCurrentTrackRated(int rating); 
PHP Code:
    extern System.setCurrentTrackRating(int rating); 
hehe, now we have the track rating via maki
We also have a new script object Frame which refers to Wasabi:Frame in XML.
PHP Code:
    extern Int Frame.getPosition(); 
PHP Code:
    extern Frame.setPosition(Int position); 
PHP Code:
    extern browser.scrape(); 
PHP Code:
    extern browser.onMediaLink(string url); 
PHP Code:
    extern System.enqueueFile(String playitem); 
PHP Code:
    extern System.clearPlaylist(); 
PHP Code:
    extern Boolean Layer.isInvalid(); 
PHP Code:
    extern Int System.getMonitorWidth(); 
PHP Code:
    extern Int System.getMonitorWidthFromPoint(int xint y); 
PHP Code:
    extern Int System.getMonitorHeight(); 
PHP Code:
    extern Int System.getMonitorHeightFromPoint(int xint y); 
* New library winampconfig.mi
With this library we have access to almost all winamp config settings. See attached package.

* New supported file formats
Now it is also possible to load .bmp and .gif files via the skinning engine. Of course support for .png and .jpg is still included!

* Fixed: Transparent docked toolbars for skins using alpha-blending

* Fixed: "Can't unload script while in script" error when switching skins

* Fixed: Some tooltip bugs

... I am sure there is something i forgot

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 4th December 2007, 21:51   #5
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.51

New skin version from now on: 1.31

* Reanimated old pldir.mi lib from Winamp3
See pldir.mi bundled with WaSDP (which can be downloaded from the forums) for all the new functions.

* std.mi updates
PHP Code:
extern String Browser.getDocumentTitle();
extern String System.getWinampVersion();
extern Int System.getBuildNumber();
extern int System.getFileSize(String fullfilename);
extern System.onEqFreqChanged(int isiso); 
* Added total time column for </PlaylistDirecory> object

* <Winamp:Browser/> is now a separate XUI object
But you need to add some things to your skin in order to use it, see plugins/freeform/xml/wasabi/xml/xui/browser/browser.xml for details

* new action & param for buttons, etc:
PHP Code:
    action="WA5:Prefs" param="42" 
42 represents the number of the prefs page (in this case playback prefs) - perhaps there will be a more complete list in wa_ipc.cpp

* better handling of dblclickaction and rclickaction
I have added support for the new param "dblclickparam" to layer and text object, "rclickparam" is supported only for textobject.
If there are any more objects using dblclickaction/rclickaction lemme know, but i thought these ones were all.
the normal "param" parameter is not recognized by dbl/rclickaction, tbh they were never recognized by gen_ff
so you can call
PHP Code:
    <layer dblclickaction="WA5:Prefs" dblclickparam="42"/> 
* better guru documentation
guru.log is now saved in the same directory as winamp.ini (for vista: c:\users\%username%\appdata\roaming\winamp)
And the output saves now the failing script as well:
PHP Code:
Mon Nov 12 15:28:03 2007 (Bento/xml/xui/browser/browser.maki) - Ignoring call #001C.00570848.39 Null object called 
* OS cursor support
you can define os cursors via cursor="IDC_*" as param for button, layer, ...
IDC_ARROW, IDC_SIZENS, IDC_SIZEWE, IDC_SIZENWSE, IDC_SIZENESW, IDC_SIZEALL, IDC_IBEAM, IDC_WAIT, IDC_CROSS, IDC_UPARROW, IDC_NO, IDC_HAND, IDC_APPSTARTING, IDC_HELP
moreover, <layer/> object should now also respect the cursor= param

* Accelerator Definitions (5.51 Final)
You can define Accelerators now within the skin the same way as within language packs. Listen to them via system.onAccelerator(...).
PHP Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<WinampAbstractionLayer version="1.31">
    <skininfo>
        <version>1.0 #117</version>
        <name>Big Bento</name>
        <author>Martin Poehlmann</author>
        <comment>Graphics by Taber Buhl - Wasabi Development by Ben Allison and Martin Poehlmann</comment>
        <email>martin@skinconsortium.com</email>
        <screenshot>screenshot.png</screenshot>
        <homepage>[url]http://www.skinconsortium.com/[/url]</homepage>
    </skininfo>

    <accelerators section="main">
        <accelerator bind="Alt+F" action="MENUHOTKEY_FILE" />
        <accelerator bind="Alt+P" action="MENUHOTKEY_PLAY" />
        <accelerator bind="Alt+O" action="MENUHOTKEY_OPTIONS" />
        <accelerator bind="Alt+I" action="MENUHOTKEY_VIEW" />
        <accelerator bind="Alt+H" action="MENUHOTKEY_HELP" />
    </accelerators>
* reading ARGB from Bitmaps
PHP Code:
extern Int Map.getARGBValue(int xint yint channel); 
If your bitmap has no alpha channel the rgb values are 100% correct. If the bitmap has an alpha channel the alpha value is reported right but RGB must be estimated a lil bit.

Check also for the updates in pldir.mi

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 17th January 2008, 21:27   #6
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.52

New skin version from now on: 1.32

* Fixed <Menu/> object is not instanciable in make
It was time to fix this! Moreover, there is a bunch of functions now available in maki (for the newest std.mi goto WaSDP Thread)
PHP Code:
extern Menu.setMenuGroup(String groupId);
extern String Menu.getMenuGroup();
extern Menu.setMenu(String menuId);
extern String Menu.getMenu();
extern Menu.spawnMenu(int monitor);
extern Menu.cancelMenu();
extern Menu.setNormalId(String id);
extern Menu.setDownId(String id);
extern Menu.setHoverId(String id);
extern Menu.onOpenMenu();
extern Menu.onCloseMenu();
extern Menu.nextMenu();
extern Menu.previousMenu(); 
* <Winamp:Browser/>
adding the param home="mypage.com" will load mypage.com on startup if the user hasn't configured ones own default home

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 27th March 2008, 16:43   #7
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.53

New skin version from now on: 1.33
Here are the updated libs: http://shup.com/Shup/32286/Lib.zip
I'll compile a new WaSDP as soon i've time.


* New Library: fileio.mi
Some basic functions for Files and a XML Parser

* New Library: application.mi
Wrapperobject around api_application

* std.mi updates:
PHP Code:
extern String System.getMetaDataString(String filenameString metadataname);
extern String System.getDownloadPath();
extern System.setDownloadPath(String new_path);
extern String System.selectFolder(String wnd_titleString wnd_infoString default_path);

extern String Container.getName();
extern String Container.getGuid();
//This one is fixed as well:
extern String WindowHolder.getGuid();

extern Browser.onDocumentReady(String url);
extern Browser.onNavigateError(String urlint code);
extern Browser.setCancelIEErrorPage(boolean cancel); 
* PlDir.mi updtaes
PHP Code:
/**
 Hookable.
 You need to instanciate a PlEdit object first. so basically it goes like this:

 Global PlEdit PeListener;

 System.onScriptLoaded ()
 {
    PeListener = new PlEdit;
 }

 PeListener.onPleditModified ()
 {
    // Do some crazy stuff
 }
*/
extern        PlEdit.onPleditModified    (); 
* New <AlbumArt/> Params
-align
-valign
-source

* Enhanced <Wasabi:Frame/>
new params:
-minheight, maxheight (as alias for minwidth, maxwidth)
-whereas you can add 'null' as value for maxheight/maxwidth to remove any resizing restriction
Fixed: child can be resized 'out of the frame'


* Altered XML Stringreplacements
@DEFAULTSKINPATH@ is no longer supported since it has pointed to Skins/default which isn't included in Winamp5 anymore.

* Fixed: loading of *.xml files

* Improved: gen_ml AlbumArt views
The ML uses now three different albumart nor found images - depending on the preview size:
PHP Code:
<bitmap id="winamp.cover.notfound" file="xml/winamp/cover/notfound.png" gammagroup="DisplayText"/>
<
bitmap id="winamp.cover.notfound.60" file="xml/winamp/cover/notfound60.png" gammagroup="DisplayText"/>
<
bitmap id="winamp.cover.notfound.90" file="xml/winamp/cover/notfound90.png" gammagroup="DisplayText"/> 
And I'm sorry i had not time to focus on any of the reports from Plague - but will keep this in mind!

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 9th July 2008, 21:10   #8
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.54

New skin version from now on: 1.34

* New: Stringtable Support
You can define Strings now in XML like this:
code:

<StringTable id="nullsoft.browser">
<StringEntry id="0" string="Hide"/>
</StringTable>


and insert it in textobjects like this
code:

<text translate="2" text="@nullsoft.browser#0"/>


This is also working for tooltips etc. See Plugins/freeform/.../browser/ for a working implementation

* New <AlbumArt/> Params
-stretch: always use the skin-defined dimensions if 1

* New <List/> Params
These params apply also for derived list classes, like colorthemes list and downloads list
-background: use a userdefined background image
-tile: use background tiling (default: on)
-nocolheader: hide the column header

* New <Text/> Params
-translate: set to 0 in order to turn off translation, 1 to turn keep translation as it is (wa3 based locale files) or 2 for Stringtable usage.

* New: Icon Support for GuiList
PHP Code:
extern GuiList.setItemIcon(Int posString bitmapId);
extern String GuiList.getItemIcon(Int pos);
extern GuiList.setShowIcons(int showThem);
extern Int GuiList.getShowIcons();
extern Int GuiList.setIconWidth(int width);
extern Int GuiList.setIconHeight(int width);
extern GuiList.getIconWidth();
extern GuiList.getIconHeight();
extern Int GuiList.onIconLeftClick(int itemnumint xint y); // Return 1 to prevent other actions to be called (eg onLeftClick()) 
* New: AlbumArtLayer is a new script object, so you can create albumart layers on the fly within maki

* New: std.mi functions
PHP Code:
System.urlDecode(String url);
WindowHolder.getComponentName();
AlbumArtLayer.refresh();
extern System.downloadMedia(String urlString destinationPathboolean wantAddToMLboolean notifyDownloadsList); // Replacement for downloadUrl()

// The next two are just working on layouts atm (but proove me wrong)
GuiObject.onMouseWheelUp(int clicked int lines);
GuiObject.onMouseWheelDown(int clicked int lines);

/**
 translate

 Takes a passed string and attempts to find a matching translation
 of the skin as specified in wasabi.xml (if this is present).

 @ret          The translated string or the passed string if no translation present.
 @param str    The string to be compared for translation.

e.g. int wasabi.xml we have <translation from="Volume:" to="Volume: Happy" />
     so on calling translate("Volume:") would give us "Volume: Happy"
*/
extern String System.translate(String str);

/**
 getString
 Returns a String from wasabi StringTable

 @ret        The translated string or "" if no translation present.
 @param table    The StringTable identifier, eg "nullsoft.bento"
 @param id    The id of the String (starting with 0)
*/
extern String System.getString(String tableint id);

/**
 getLanguageId
 Returns the Language Identifier (en-us or de-de).

 @ret        Language Identifier.
*/
extern String System.getLanguageId(); // Requires 5.54 
* Fixed: std.mi functions
PHP Code:
GuiObject.bringToBack();
Menu.disableCommand(int entryint disabled); 
* Fixed: <text/> Time
Previously adding TIMEREMAINING or TIMEELAPSED as display contant for text objects kept the text still in sync w/ timers of this layout. This has been improved! Defining any of those two params will let start the timer in the defined mode and the current mode gets saved separate from other time objects (You need to specify an unique ID).
Moreover the timehour mode is now fixed to show "-" if in remaining mode.

* Added: antialias param to dropdownlist/combobox/historyeditbox

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Old 26th February 2009, 19:40   #9
martin.deimos
Android/UI Development
 
martin.deimos's Avatar
 
Join Date: Sep 2004
Location: Bavaria
Posts: 1,242
Send a message via ICQ to martin.deimos Send a message via AIM to martin.deimos Send a message via Yahoo to martin.deimos
Winamp 5.55

New skin version from now on: 1.36

* New: Colormanager Library - Set, alter and change colorthemes with maki
See new WaSDP for more info.

* New: Layout params
-move: can be set to "0" to disable user moving
-resizable: can be set to "0" to disable user resizing
-scalable: can be set to "0" to disable user scaling
(experimental)

Improved: slider thumbs can now be stretched so they have the same h/w like barmiddle/-left/-right via stretchThumb="1"

* Fixed: Gradient Object not updated w/ Colorthemes Changing

* Fixed: SONGTITLE shown on startup for SONGINFO textlines

WebSite: www.skinconsortium.com - Community for Userinterface Design & Coding
Skins: Click Here
martin.deimos is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Skinning and Design > Modern Skins

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump