foobar2000

Download foobar2000 Software Development Kit

Latest version:
SDK 2022-11-16

Included project files are for Visual Studio 2019.
Visual Studio 2022 is supported, just retarget projects to latest toolchain.
Read more about Visual Studio compatibility...

Documentation

View foobar2000 SDK documentation online

Change log

2022-11-16

  • Revised and bugfixed foobar2000 v2.0 development kit.
  • New beta 13 additions published.
  • Read release notes for more info.

2022-10-20

  • All foobar2000 v2.0 capabilities exposed.
  • Dark mode bug fixes.
  • CListControl layout regression fixes.
  • libPPUI cleanup, removed CContainedWindow misuse that caused random shutdown crashes.
  • Can now use dark mode shims provided by foobar2000 instead of linking them statically, for smaller components - see fb2k::coreDarkMode.
  • Read release notes for more info.

2022-08-10

  • Limited support for foobar2000 v2.0 features while maintaining compatibility with v1.5/v1.6 series.
  • Support for building x64 and ARM64 components for upcoming 64-bit foobar2000.
  • Dark mode support.
  • Read release notes for more info.

2022-01-04

  • Latest PFC: cleaned up and simplified string classes, smaller generated code, support for range based for loops in all list/array classes.
  • Added new syntax for enumerating foobar2000 services: for( auto ptr : someclass::enumerate() ) { ... }
  • Fixed long-time bug in playlist_loader.cpp preventing some large folders from being added to playlist correctly.
  • Fixed wrong icon mapping in popup_message_v3::messageBox() helper.
  • All input classes are now expected to implement remove_tags().
  • Updated libPPUI CListControl with latest fixes.
  • No more IDI_SCROLL resource for libPPUI middle click scroll feature.

2021-02-23

  • Fixed various issues revealed by compiling with Clang.

2021-02-15

  • Fixed missing #ifdef checks in popup_message.cpp, causing failure to compile targetting foobar2000 v1.4 series.
  • Removed leftover empty ATLHelpers folder.

2021-01-29

  • Added foobar2000 v1.6-series resampler & output API extensions.
  • Added packet_decoder partial-support mode.
  • Added foobar2000 v1.6-series library manager extensions for asynchronous autocomplete.
  • Added interface to access foobar2000 v1.6-series picture viewer window.
  • Fixed an obscure bug in PFC bit_array_flatIndexList.
  • Fixed mishandling of Ctrl+Backspace in libPPUI edit box hooks.
  • Improved performance of CTreeMultiSel in libPPUI.

2020-07-28

  • foobar2000 v1.6 features included, see readme doc.
  • Now configured to build for Windows 7 and newer with SSE2 by default.
  • Minor libPPUI updates, added combo boxes in CListControl.

2019-12-27

  • More fixes for /fpermissive-.
  • Preview of fb2k v1.6 output API extensions.

2019-11-29

  • foobar2000 v1.5 stable
  • Fixed rare race condition in read-ahead helper code.
  • Fixed rare CListControl crash.
  • Added helper methods to copy creation/modification time between files.

2019-09-18

  • Visual Studio 2019 compatibility improvements.

2019-09-04

  • libPPUI work-in-progress and binary size optimizations; new extensible system of CListControl cells.
  • Added playback stream capture sample.
  • Latest foobar2000 v1.5 beta API additions: input_playback_shim, input_info_filter.
  • Corrected outdated info in readme doc.
  • Default target is now foobar2000 1.4 and newer (API 79).

2019-07-26

  • libPPUI fixes.
  • Added dynamic main menu item example.

2019-07-09

  • Introducing libPPUI, replacing old helpers/ATLHelpers tools.
  • libPPUI contains all helper code that is not foobar2000-specific; it can be utilized in foobar2000 components as well as separate unrelated programs. It comes with an unrestrictive license.
  • Published CListControl source code (now part of libPPUI), which is the basis of the Default User Interface playlist view.
  • Published new programming interfaces introduced with foobar2000 v1.5.
  • Everything should compile with /fpermissive-.
  • Due to structural changes (code moved from helpers to libPPUI), existing source code may need editing (different #includes) to compile.

2019-06-30

  • Fixed WTL v10 compatibility.

2019-06-17

  • Published async_task_manager & fb2k::splitTask() API for v1.4.5 and newer.
  • New modules in sample component.
  • Removed unnecessary OverrideCrtAbort() on component init if compiling for DLL VC runtime.

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.

Old versions archive

SDK 2022-10-20
SDK 2022-08-10
SDK 2021-02-23
SDK 2021-02-15
SDK 2021-01-29
SDK 2020-07-28
SDK 2019-12-27
SDK 2019-11-29
SDK 2019-09-18
SDK 2019-09-04
SDK 2019-07-26
SDK 2019-07-09
SDK 2019-06-30
SDK 2019-06-17
SDK 2018-10-11
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 )