Plugin Terminology

From Winamp Developer Wiki

(Difference between revisions)
Jump to: navigation, search
(add link to Glossary)
Current revision (07:51, 28 October 2011) (view source)
m (Reverted edits by StacyPark (Talk) to last version by Culix)
 
(3 intermediate revisions not shown.)

Current revision

winamp plugin filename conventions

Most plugin types are identified by Winamp by the filename

  • in_*.dll - input plugins
  • out_*.dll - output plugins
  • gen_*.dll - general purpose plugins
  • vis_*.dll - visualizer plugins
  • dsp_*.dll - audio effects plugins
  • ml_*.dll - media library plugins (loaded by gen_ml.dll)
  • pmp_*.dll - portable media player plugins (loaded by ml_pmp.dll... a plugin type loaded by a plugin of a plugin. hah!)
  • nsvdec_*.dll - NSV decoder plugins
  • enc_*.dll - audio encoder plugins
  • W5S (Winamp 5 System) plugins located in c:\program files\winamp\system do not have to follow any special filename convention except for the .w5s file extension
  • WAC (Winamp Component) plugins located in c:\program files\winamp\plugins\freeform\wacs do not have to follow any special filename conventions, either, except for the .wac file extension. WAC files are loaded by gen_ff.dll


code naming conventions

  • IPC: Inter-Plugin Communications. The constants which define the old SendMessage API are prefixed with IPC_
  • Wasabi: Winamp Service Architecture Binary Interface. A system to allow sharing of C++ objects between different plugins and components. Think of it as a very lightweight version of COM.
  • Agave: project codename for Winamp 5.12 (when the Wasabi service manager was merged into Winamp 5. It may or may not have involved a lot of tequila). The name "Agave" is used in the SDK to refer to Wasabi components that are unique to Winamp's media platform. For example: the Wasabi Language API could be used in other (non-Winamp) Wasabi applications, but the Agave Playlist Manager makes very little sense outside of a media application.

Wasabi interfaces are all built using the Dispatchable base class. A naming convention has been established to help developers understand the intent of the interface.

  • ifc: interface. Wasabi interfaces not associated with the service manager are prefixed with this, e.g. ifc_window
  • api: Wasabi interfaces which expose a singleton object meant to be used as a global API. e.g. api_application
  • svc: service. Wasabi interfaces which define a service are prefixed with this, e.g. svc_playlisthandler
  • obj: object. Wasabi interfaces which define an object created by the service manager are prefixed with this. e.g. obj_xml for an instance of an XML parser.


See also

Personal tools
Winamp
AOL Developer Network

Download Winamp, The #1 Free Media Player. Play your MP3, AAC, MPEG, AVI files, and more. Get free MP3 songs, videos, skins and plug-ins. Sync your iPod or Creative Zen, and get mobile music with Winamp Remote.

Copyright © 1999 - 2013 Nullsoft. All Rights Reserved.