Foobar2000:Development:Overview: Difference between revisions

From Hydrogenaudio Knowledgebase
No edit summary
No edit summary
Line 9: Line 9:
Each component has a single exported DLL function, <code>foobar2000_get_interface()</code>, called on startup to initialize and discover entrypoint services your component. This function is generated automatically by the foobar2000_component_client module. Do not implement it yourself.
Each component has a single exported DLL function, <code>foobar2000_get_interface()</code>, called on startup to initialize and discover entrypoint services your component. This function is generated automatically by the foobar2000_component_client module. Do not implement it yourself.


foobar2000 components are made using [https://www.foobar2000.org/SDK foobar2000 SDK] and [https://visualstudio.microsoft.com Microsoft Visual Studio]. See also: [[Foobar2000:Development:Visual_Studio_Compatibility|Visual Studio Compatibility]].
foobar2000 components are made using [https://www.foobar2000.org/SDK foobar2000 SDK] and [https://visualstudio.microsoft.com Microsoft Visual Studio].
 
See also: [[Foobar2000:Development:Visual_Studio_Compatibility|Visual Studio Compatibility]], [[Foobar2000:Development:SDK Contents|SDK Contents]].


== Packaging a component ==
== Packaging a component ==
Line 29: Line 31:
* [[Foobar2000:Development:Exceptions|Exceptions]]
* [[Foobar2000:Development:Exceptions|Exceptions]]
* [[Foobar2000:Development:Global Callbacks|Global Callbacks: tracking foobar2000 lifetime events]]
* [[Foobar2000:Development:Global Callbacks|Global Callbacks: tracking foobar2000 lifetime events]]
* [[Foobar2000:Development:SDK Contents|SDK Contents]]
* [[Foobar2000:Development:Services|Services]]
* [[Foobar2000:Development:Services|Services]]
* [[Foobar2000:Development:Storing Configuration|Storing Configuration]]
* [[Foobar2000:Development:Storing Configuration|Storing Configuration]]
* [[Foobar2000:Development:Threads|Threads]]
* [[Foobar2000:Development:Threads|Threads]]
* [[Foobar2000:Development:Visual_Studio_Compatibility|Visual Studio Compatibility]]
* [[Foobar2000:Development:Visual_Studio_Compatibility|Visual Studio Compatibility]]

Revision as of 13:46, 22 June 2022

What is a component

A foobar2000 component is a Windows Dynamic Link Library (DLL) extending the functionality of the foobar2000 application.

A foobar2000 component implements one or more entrypoint services and interacts with services provided by foobar2000 core or other components.

Each component has a single exported DLL function, foobar2000_get_interface(), called on startup to initialize and discover entrypoint services your component. This function is generated automatically by the foobar2000_component_client module. Do not implement it yourself.

foobar2000 components are made using foobar2000 SDK and Microsoft Visual Studio.

See also: Visual Studio Compatibility, SDK Contents.

Packaging a component

Components are delivered to the user in form of fb2k-component file.

This is simply a renamed zip of your DLL.

If your component requires additional files, include them in the zip; foobar2000 will extract them to the folder containing your DLL upon installation.

Getting a component listed on foobar2000.org/components

Register a forum account and contact Peter with info about your component.

Further reading