foobar2000

Download foobar2000 Software Development Kit

Latest version:
SDK 2018-10-11

Included project files are for Visual Studio 2017.
Certain workarounds are still needed for modern Visual C++ toolchain to compile foobar2000 code correctly. Please read the included readme document for detailed information.

Old versions:
SDK 2018-09-29
SDK 2018-03-06
SDK 2018-02-05
SDK 2018-01-11
SDK 2015-08-03
SDK 2015-01-14
SDK 2014-07-02
SDK 2011-03-11 ( compatible with foobar2000 v1.2.x series )

Change log

2018-10-11

  • Published file_lock_manager API.

2018-09-29

  • PFC bug fixes
  • UI helpers (edit-with-button) bug fixes
  • Updated sample component, added I/O test
  • Added helper code to format audio peak in decibels
  • Filesystem API cleanups
  • Added fb2k::sort() - abortable multithreaded quicksort - now used for track sorting operations
  • Added preferences_state::needs_rescan_library (understood by v1.4.1 and up)
  • Documentation updates
  • Helpers: Updated read-ahead-cache reader wrapper
  • Bumped highest allowed audio_chunk sample rate to deal with DSD

2018-03-06

  • Added filesystem_v2, filesystem_transacted, user_interface_v2, ui_element_common_methods_v3 APIs introduced in 1.4 beta 7.
  • Added framework to create UI Elements hosting other UI Elements - see ATLHelpers / ui_element_helpers.h.

2018-02-05

  • Added input_stream_manipulator, replaygain_alter_stream and replaygain_scanner_entry_v2 for new ReplayGain scanner in 1.4 beta 4.
  • Added ui_element_subclass_dsp
  • Bug fixes to helpers, CEditWithButtons in particular. Reusing in your own projects is welcome.
  • A less restrictive license - common sense cannot be enforced.

2018-01-11

  • Visual Studio 2017 project files included and working out-of-the-box.
  • foobar2000 v1.4 beta features included. You can now declare decoders that correctly appear in the list.
  • The SDK is backwards-compatible with foobar2000 v1.3, you can enable v1.4 features without breaking v1.3 compatibility.
  • PFC namespacing cleaned up, some code may need fixing to correctly reference PFC classes that were in the global namespace before.
  • Various internal tweaks to allow smaller component DLLs.
  • foo_sample updated, added metadb_index_client+metadb_display_field_provider+track_property_provider demo (rating.cpp).

2015-08-03

  • Now Visual Studio 2015 compatible. Fixed FOOGUIDDECL (__declspec(selectany)) abuse which was originally added to deal with MSVC6 bug.
  • PFC updates from foobar2000 mobile. PFC now compatible with WinRT, works in Windows Store / Windows Phone / Windows Universal apps.
  • Added C++11 lamba helpers for use with main_thread_callback and completion_notify.
  • Out-of-the-box working foo_sample.sln

2015-01-14

  • Big update, lots of helper classes and structure changes from foobar2000 mobile codebase.
  • New callInMainThreadHelper class for simplified main_thread_callback use. See main_thread_callback.h
  • PFC library is now public domain (unlicense).
  • PFC library works on all major platforms - OSX, iOS, Linux.
  • PFC library now provides OS basic abstraction for common objects such as threads.

2014-07-02

  • Corrected CPowerRequest.h not compiling in VS 2010.

2014-06-30

  • New metadb API methods introduced in foobar2000 v1.3 - see SDK readme file for details.
  • Published audio output component specification, along with foobar2000 v1.2 extensions for volume control.
  • foobar2000 v1.3 or newer required to run components made with this SDK.

2011-03-11

  • Included decode_postprocessor API - for transparent HDCD and DTS decoding.
  • Included project files for Visual Studio 10.
  • foobar2000 v1.1 or newer required to run components made with this SDK.

2010-10-02

  • Clarified preferences page API documentation to warn about known source of spooky crashes.
  • Updated preferences page framework in ATLHelpers to workaround the above.

2010-05-21

  • Preliminary documentation for upcoming foobar2000 1.1 features.

2010-01-19

  • Sample code updates, new UI Element sample.
  • Helper macro bug fix (thanks musicmusic).
  • New measures to make certain types of crashes easier to track.

2010-01-09

  • Updated to include foobar2000 v1.0 features - components built with this SDK require foobar2000 v1.0 or newer.
  • Completely new sample component demonstrating various functionality.
  • Included Default User Interface element specifications.
  • Improved compatibility with MSVC10.

2008-11-29

  • Fixed invalid data handling bugs in string manipulation helpers.

2008-09-22

  • Fixed a major bug in the Decoder Validator component.
  • Updated documentation of various DSP related APIs.

2008-07-20

  • Fixed a bug in context menu generation code.

2008-07-10

  • Added access to new features introduced in foobar2000 0.9.5.4: extensions to the autoplaylist APIs, new API to access Media Library Search user interface.
  • Updated documentation - including notes regarding future compatibility and planned changes the library_manager API.
  • Updated Decoder Validator component.

2008-05-27

  • Added access to new features introduced in foobar2000 0.9.5.3: extensions to search_filter and autoplaylist_client APIs, replaygain_scanner API.
  • Updated documentation.

2008-04-19

  • Added access to new features introduced in foobar2000 versions 0.9.5, 0.9.5.1 and 0.9.5.2. Version 0.9.5 or newer is now required to load components made with this SDK.
  • Structural changes in included helper libraries, some parts of them now depend on WTL.
  • Updated documentation.
  • Updated Decoder Validator component.

2007-02-04

  • Fixed pfc::sort performance problem.

2006-11-29

  • Added access to new features introduced in 0.9.4. Version 0.9.4 or newer is required to load components made with this SDK.

2006-07-30

  • Resolved incompatibility with _expand() behaviors on Windows Vista. It is recommended to recompile all components built with older versions of the SDK with an updated version to avoid incompatibility with Windows Vista.