Foobar2000:Development:Overview: Difference between revisions
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.