Plugin Terminology

From Winamp Developer Wiki

(Difference between revisions)
Jump to: navigation, search
Current revision (07:51, 28 October 2011) (view source)
m (Reverted edits by StacyPark (Talk) to last version by Culix)
 
(2 intermediate revisions not shown.)
Line 1: Line 1:
-
=[http://ovarynetyv.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=
 
== winamp plugin filename conventions ==
== winamp plugin filename conventions ==
Most plugin types are identified by Winamp by the filename
Most plugin types are identified by Winamp by the filename
Line 18: Line 17:
* IPC: Inter-Plugin Communications.  The constants which define the old SendMessage API are prefixed with IPC_
* 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.
* 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.
+
* 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.
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.

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.