Difference between revisions of "Plugin Terminology"

From Winamp Developer Wiki
Jump to: navigation, search
m (Reverted edits by Iseficibuw (Talk) to last version by Culix)
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.

Revision as of 04:28, 30 November 2010

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