Foobar2000:Development:Overview: Difference between revisions

From Hydrogenaudio Knowledgebase
No edit summary
No edit summary
Line 8: Line 8:


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]].


== Packaging a component ==
== Packaging a component ==
Line 30: Line 32:
* [[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]]

Revision as of 13:22, 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.

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