Modern Skin: Skin Scripting

From Winamp Developer Wiki
Jump to: navigation, search

Creating a Modern Skin --> Intro --> Winamp 2 to Winamp 3+ --> Simple Skin Tutorial --> XML Intro --> Simple Skin Tutorial (Continued) --> Container --> Group --> Relative Positioning --> Complex Skin --> Non-Rect Player --> Layer Composition --> Alpha Channels --> Animatedlayer --> Snap Points --> Drawers --> Skin Scripting --> Drawer Scripting --> Animating a Skin --> Maki Overview --> Glossary


Here are some quick notes on Winamp's modern skins scripting engine (called MAKI) to get you started:

  • MAKI stands for Make A Killer Interface.
  • MAKI is a scripting engine for creating custom behavior from a Wasabi skin and set of components.
  • MAKI scripts are precompiled into cross-platform bytecode. This means that the set of skin XML, elements and compiled scripts are completely cross-platform.
  • Scripts can attach to any event of any object in the UI. Scripts can be loaded and unloaded in any order.

For more about MAKI, please read the MAKI Overview.


MAKI Script Organization

Before we go over MAKI code, I'd like to go over the overall flow of a MAKI script. Please refer to the picture below. It shows what a typical MAKI script should look like.

  • Part 1: Script Comments
  • Part 2: #include Section
  • Part 3: Variable Declaration
  • Part 4: system.onUnloading() Section
  • Part 5: system.onScriptLoaded() Section
  • Part 6: Your own functions


File:MAKI Script Organization.png