Plugin Terminology

From Winamp Developer Wiki

(Difference between revisions)
Jump to: navigation, search
m (Protected "Plugin Terminology" [edit=autoconfirmed:move=autoconfirmed])
Current revision (07:51, 28 October 2011) (view source)
m (Reverted edits by StacyPark (Talk) to last version by Culix)
 
(5 intermediate revisions not shown.)
Line 24: Line 24:
* svc: service.  Wasabi interfaces which define a service are prefixed with this, e.g. svc_playlisthandler
* 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.
* 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==
 +
* [[Glossary]]
 +
 +
[[Category:Articles]]

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.