Difference between revisions of "Modern Skin: Intro"

From Winamp Developer Wiki
Jump to: navigation, search
m (Unprotected "Modern Skin: Intro")
m (Protected "Modern Skin: Intro": All pages locked during Beta except for Article & FAQ page. [edit=sysop:move=sysop])
(No difference)

Revision as of 20:28, 23 September 2008

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


Making Modern Skins

Modern skins are skins that adhere to the Winamp 3+ skin model. Modern (aka freeform) skins offer authors a tremendous amount of flexibility by allowing authors to change the player's shape, size, layout, and function. Learn how to create a modern skin for Winamp! We'll show you the pipeline from beginning to end. To get started, use the links to the left to navigate, or download the PDF at the bottom of this page.


Why Winamp 3/Winamp5?

Skins only consist of static bitmap replacement. The app cannot be deployed with radically different interfaces or behaviors.

Plugins cannot publish interfaces to each other, thereby limiting their ability to leverage one another.


File:Winamp3.png

Winamp 2.x was not built with portability in mind.

Features of Winamp 3+

Skin engine:

  • XML-based format
  • freeform
  • scripting
  • emulation of Winamp 2.x skins
  • on-the-fly bilinear filtered scaling of any winamp piece
  • animations, realtime transformations
  • alpha transparency
  • color correction of any skin


Component architecture:

  • allows any kind of plugin you can think of
  • components become part of the system and extend it
  • components can interoperate without even knowing who they are talking to
  • component windows and interfaces are skinnable
  • components are built with the same C++ library as the main product for consistency and to enable developers to quickly create powerful addons
  • using a dispatchable interface to make interaction of multiple plugin versions easier


New audio playback system:

  • corssfading
  • "dsp" plugins can be stacked
  • gapless output (even for cd playback)


Playlist:

  • XML-based format
  • ability to queue up files in playlist out of order (hold down alt)
  • Media library


Database:

  • caching
  • queries
  • multiple indexes and views on tables