foobar2000 SDK  2015-01-14
Data Structures
Here are the data structures with brief descriptions:
[detail level 123]
 Nbitreader_helper
 NCF
 NClipboardHelper
 NconsoleNamespace with functions for sending text to console. All functions are fully multi-thread safe, though they must not be called during dll initialization or deinitialization (e.g. static object constructors or destructors) when service system is not available
 Ncreate_directory_helper
 Ncue_creator
 Ncue_parser
 Ndialog_helper
 Nfile_info_impl_utils
 Nfile_info_record_helper
 Nfile_list_helper
 Nfile_win32_helpers
 Nfoobar2000_ioContains various I/O related structures and interfaces
 NIDataObjectUtils
 NInPlaceEdit
 Nmenu_helpers
 Nmp3_utils
 Npfc
 NProcessUtils
 NThreadUtils
 Nwinapi_substitute
 C_callInMainThreadSvc_t
 C_cfg_dropdown_history_base
 C_config_object_fixed_impl_switch
 C_config_object_fixed_impl_switch< p_size, false >
 C_config_object_fixed_impl_switch< p_size, true >
 C_critical_section_base
 C_IsTypeByte
 C_meta_table_enum_wrapper
 C_meta_table_enum_wrapper_RG
 C_service_by_guid_data_container
 C_stream_reader_formatter_translator
 C_stream_writer_formatter_translator
 Cabort_callback
 Cadvconfig_branchCreates a new branch in Advanced Preferences.
Implementation: see advconfig_branch_impl / advconfig_branch_factory
 Cadvconfig_branch_factoryService factory helper around standard advconfig_branch implementation. Use this class to register your own Advanced Preferences branches.
Usage: static advconfig_branch_factory mybranch(name, branchID, parentBranchID, priority);
 Cadvconfig_branch_implStandard implementation of advconfig_branch.
Usage: no need to use this class directly - use advconfig_branch_factory instead
 Cadvconfig_checkbox_factory_tService factory helper around standard advconfig_entry_checkbox implementation. Use this class to register your own Advanced Preferences checkbox/radiocheckbox entries.
Usage: static advconfig_entry_checkbox<isRadioBox> mybox(name, itemID, parentID, priority, initialstate);
 Cadvconfig_entryEntrypoint class for adding items to Advanced Preferences page.
Implementations must derive from one of subclasses: advconfig_branch, advconfig_entry_checkbox, advconfig_entry_string.
Implementations are typically registered using static service_factory_single_t<myclass>, or using provided helper classes in case of standard implementations declared in this header
 Cadvconfig_entry_checkboxCreates a checkbox/radiocheckbox entry in Advanced Preferences.
The difference between checkboxes and radiocheckboxes is different icon (obviously) and that checking a radiocheckbox unchecks all other radiocheckboxes in the same branch.
Implementation: see advconfig_entry_checkbox_impl / advconfig_checkbox_factory_t
 Cadvconfig_entry_checkbox_implStandard implementation of advconfig_entry_checkbox.
p_is_radio parameter controls whether we're implementing a checkbox or a radiocheckbox (see advconfig_entry_checkbox description for more details)
 Cadvconfig_entry_checkbox_v2
 Cadvconfig_entry_enumNot currently used, reserved for future use
 Cadvconfig_entry_integer_implSpecial advconfig_entry_string implementation - implements integer entries. Use advconfig_integer_factory to register your own integer entries in Advanced Preferences instead of using this class directly
 Cadvconfig_entry_stringCreates a string/integer editbox entry in Advanced Preferences.
Implementation: see advconfig_entry_string_impl / advconfig_string_factory
 Cadvconfig_entry_string_implStandard advconfig_entry_string implementation. Use advconfig_string_factory to register your own string entries in Advanced Preferences instead of using this class directly
 Cadvconfig_entry_string_impl_MTSpecial version if advconfig_entry_string_impl that allows the value to be retrieved from worker threads
 Cadvconfig_entry_string_v2
 Cadvconfig_integer_factoryService factory helper around integer-specialized advconfig_entry_string implementation. Use this class to register your own integer entries in Advanced Preferences.
Usage: static advconfig_integer_factory myint(name, itemID, parentID, priority, initialValue, minValue, maxValue);
 Cadvconfig_string_factoryService factory helper around standard advconfig_entry_string implementation. Use this class to register your own string entries in Advanced Preferences.
Usage: static advconfig_string_factory mystring(name, itemID, branchID, priority, initialValue);
 Cadvconfig_string_factory_MTSpecial version if advconfig_string_factory that allows the value to be retrieved from worker threads
 Calbum_art_dataCommon class for handling picture data.
Type of contained picture data is unknown and to be determined according to memory block contents by code parsing/rendering the picture. Commonly encountered types are: BMP, PNG, JPEG and GIF.
Implementation: use album_art_data_impl
 Calbum_art_data_implImplements album_art_data
 Calbum_art_editorEntrypoint class for accessing album art editing functionality. Register your own implementation to allow album art editing on your media file format
 Calbum_art_editor_impl_stdtagsHelper implementation of album_art_editor - edits album art from arbitrary file formats that comply with APEv2 tagging specification
 Calbum_art_editor_instanceClass encapsulating access to album art stored in a media file. Use album_art_editor class to obtain album_art_editor_instance referring to specified media file
 Calbum_art_editor_instance_v2
 Calbum_art_extractorEntrypoint class for accessing album art extraction functionality. Register your own implementation to allow album art extraction from your media file format.
If you want to extract album art from a media file, it's recommended that you use album_art_manager API instead of calling album_art_extractor directly
 Calbum_art_extractor_impl_stdtagsHelper implementation of album_art_extractor - reads album art from arbitrary file formats that comply with APEv2 tagging specification
 Calbum_art_extractor_instanceClass encapsulating access to album art stored in a media file. Use album_art_extractor class obtain album_art_extractor_instance referring to specified media file
 Calbum_art_extractor_instance_filerefHelper - a more advanced implementation of album_art_extractor_instance
 Calbum_art_extractor_instance_simpleHelper - simple implementation of album_art_extractor_instance
 Calbum_art_extractor_instance_v2Album_art_extractor_instance extension; lets the frontend query referenced file paths (eg. when using external album art)
 Calbum_art_fallback
 Calbum_art_manager_config
 Calbum_art_manager_v2
 Calbum_art_manager_v3
 Calbum_art_path_listAlbum art path list - see album_art_extractor_instance_v2
 Calbum_art_path_list_dummyAlbum_art_path_list implementation helper
 Calbum_art_path_list_implAlbum_art_path_list implementation helper
 Capp_close_blocker(DEPRECATED) This service is used to signal whether something is currently preventing main window from being closed and app from being shut down
 Capp_close_blocking_taskAn interface encapsulating a task preventing the foobar2000 application from being closed. Instances of this class need to be registered using app_close_blocking_task_manager methods.
Implementation: it's recommended that you derive from app_close_blocking_task_impl class instead of deriving from app_close_blocking_task directly, it manages registration/unregistration behind-the-scenes
 Capp_close_blocking_task_implHelper; implements standard functionality required by app_close_blocking_task implementations - registers/unregisters the task on construction/destruction
 Capp_close_blocking_task_impl_dynamic
 Capp_close_blocking_task_managerEntrypoint class for registering app_close_blocking_task instances. Introduced in 0.9.5.1.
Usage: static_api_ptr_t<app_close_blocking_task_manager>(). May fail if user runs pre-0.9.5.1. It's recommended that you use app_close_blocking_task_impl class instead of calling app_close_blocking_task_manager directly
 Caudio_chunkInterface to container of a chunk of audio data. See audio_chunk_impl for an implementation
 Caudio_chunk_impl_tImplementation of audio_chunk. Takes pfc allocator template as template parameter
 Caudio_chunk_memref_implImplements const methods of audio_chunk only, referring to an external buffer. For temporary use only (does not maintain own storage), e.g.: somefunc( audio_chunk_temp_impl(mybuffer,....) );
 Caudio_chunk_partial_ref
 Caudio_postprocessorThis class handles conversion of audio data (audio_chunk) to various linear PCM types, with optional dithering
 Cautoplaylist_clientMain class controlling autoplaylist behaviors. Implemented by autoplaylist client in scenarios where simple query/sort strings are not enough (core provides a standard implementation for simple queries)
 Cautoplaylist_client_factoryClass needed to re-instantiate autoplaylist_client after a restart. Not directly needed to set up an autoplaylist_client, but without it, your autoplaylist will be lost after a restart
 Cautoplaylist_client_v2
 Cautoplaylist_managerPrimary class for managing autoplaylists. Implemented by core, do not reimplement; instantiate using static_api_ptr_t<autoplaylist_manager>
 Cautoplaylist_manager_v2
 Cbaseclass
 Cbit_array_andCombines two arrays using the AND logical operator.
Valid index range is an intersection of valid index ranges of the parameter arrays
 Cbit_array_bittableGeneric variable bit_array implementation.
Needs to be initialized with requested array size before use
 Cbit_array_false
 Cbit_array_notNegation of another array.
Valid index range is the same as valid index range of the parameter array
 Cbit_array_one
 Cbit_array_orCombines two arrays using the OR logical operator.
Valid index range is an intersection of valid index ranges of the parameter arrays
 Cbit_array_order_changedBit array that takes a permutation and signals indexes reordered by the permutation.
Valid index range same as length of the permutation
 Cbit_array_range
 Cbit_array_table_t
 Cbit_array_true
 Cbit_array_val
 Cbit_array_var_table_t
 Cbit_array_wrapper_permutation
 Cbit_array_xorCombines two arrays using the XOR logical operator.
Valid index range is an intersection of valid index ranges of the parameter arrays
 Cc_insync
 CCAddDummyMessageMap
 Ccalculate_peak_process
 CcallInMainThread
 CcallInMainThreadHelperHelper class to call methods of your class (host class) in main thread with convenience.
Deals with the otherwise ugly scenario of your class becoming invalid while a method is queued.
Have this as a member of your class, then use m_mthelper.add( this, somearg ) ; to defer a call to this->inMainThread(somearg).
If your class becomes invalid before inMainThread is executed, the pending callback is discarded.
You can optionally call shutdown() to invalidate all pending callbacks early (in a destructor of your class - without waiting for callInMainThreadHelper destructor to do the job.
In order to let callInMainThreadHelper access your private methods, declare friend class callInMainThread
 CCAltFontCtrl
 CCBackBuffer
 CCBackBufferScope
 CCBrushHandle
 CCButton
 CCCheckBox
 CCClipboardOpenScope
 CCContainedWindowSimpleT
 CCDC
 CCDCBrush
 CCDCPen
 CCDialogImpl
 CCDialogResizeHelper
 CCDialogResizeHelperTracking
 CCDialogWithTooltip
 CCDLL
 CCEditNoEnterEscSteal
 CCEditNoEscSteal
 CCEmbeddedDialog
 Ccfg_dropdown_history
 Ccfg_dropdown_history_mt
 Ccfg_dsp_chain_config
 Ccfg_guidlist
 Ccfg_int_tGeneric integer config variable class. Template parameter can be used to specify integer type to use.
Note that cfg_var class and its derivatives may be only instantiated statically (as static objects or members of other static objects), NEVER dynamically (operator new, local variables, members of objects instantiated as such)
 Ccfg_obj
 Ccfg_objList
 Ccfg_objListEx
 Ccfg_objListImporter
 Ccfg_objMap
 Ccfg_stringString config variable. Stored in the stream with int32 header containing size in bytes, followed by non-null-terminated UTF-8 data.
Note that cfg_var class and its derivatives may be only instantiated statically (as static objects or members of other static objects), NEVER dynamically (operator new, local variables, members of objects instantiated as such)
 Ccfg_string_mt
 Ccfg_struct_tStruct config variable template. Warning: not endian safe, should be used only for nonportable code.
Note that cfg_var class and its derivatives may be only instantiated statically (as static objects or members of other static objects), NEVER dynamically (operator new, local variables, members of objects instantiated as such)
 Ccfg_varBase class for configuration variable classes; provides self-registration mechaisms and methods to set/retrieve configuration data; those methods are automatically called for all registered instances by backend when configuration file is being read or written.
Note that cfg_var class and its derivatives may be only instantiated statically (as static objects or members of other static objects), NEVER dynamically (operator new, local variables, members of objects instantiated as such)
 Ccfg_var_readerReader part of cfg_var object. In most cases, you should use cfg_var instead of using cfg_var_reader directly
 Ccfg_var_writerWriter part of cfg_var object. In most cases, you should use cfg_var instead of using cfg_var_writer directly
 Ccfg_window_placement
 Ccfg_window_size
 CcfgDialogPosition
 CcfgDialogPositionData
 CcfgDialogPositionTracker
 CcfgDialogSizeTracker
 CcfgWindowSize
 CcfgWindowSizeTracker
 CCFlashWindow
 CCFontScaled
 CCGlobalLockScope
 CCGlobalLockScopeT
 Cchapter_listInterface for object storing list of chapters
 Cchapter_list_impl_tImplements chapter_list
 CchapterizerThis service implements chapter list editing operations for various file formats, e.g. for MP4 chapters or CD images with embedded cuesheets. Used by converter "encode single file with chapters" feature
 CCImageList
 CCImageListContainer
 Cclass_t
 CCloseHandleScope
 CCMenuDescriptionHybrid
 CCMenuDescriptionMap
 CCMenuSelectionReceiver
 CCMenuSelectionReceiver_UiElement
 CCMessageMapDummy
 CCModelessDialogEntry
 CCMutex
 CCMutexScope
 CCMyDSPPopup
 CCMyElemWindow
 CCMyPreferences
 CCoInitializeScope
 Ccommandline_handler
 Ccommandline_handler_factory_t
 Ccommandline_handler_metadb_handle
 Ccomparator_service_guid
 Ccomparator_stricmp_utf8
 Ccompletion_notifyGeneric service for receiving notifications about async operation completion. Used by various other services
 Ccompletion_notify_dummyImplementation helper
 Ccompletion_notify_implHelper implementation. IMPLEMENTATION WARNING: If process being completed creates a window taking caller's window as parent, you must not destroy the parent window inside on_task_completion(). If you need to do so, use PostMessage() or main_thread_callback to delay the deletion
 Ccompletion_notify_orphanableImplementation helper
 Ccompletion_notify_receiverHelper base class for classes that manage nonblocking tasks and get notified back thru completion_notify interface
 Ccomponent_installation_validator
 Ccomponent_installation_validator_filenameSimple implementation of component_installation_validator that makes sure that our component DLL has not been renamed around by idiot users
 CcomponentversionEntrypoint interface for declaring component's version information. Instead of implementing this directly, use DECLARE_COMPONENT_VERSION()
 Ccomponentversion_impl_copyImplementation helper. You typically want to use DECLARE_COMPONENT_VERSION() instead
 Ccomponentversion_impl_copy_factory
 Ccomponentversion_impl_simpleImplementation helper. You typically want to use DECLARE_COMPONENT_VERSION() instead
 Ccomponentversion_impl_simple_factory
 Cconfig_io_callbackImplementing this interface lets you maintain your own configuration files rather than depending on the cfg_var system.
Note that you must not make assumptions about what happens first: config_io_callback::on_read(), initialization of cfg_var values or config_io_callback::on_read() in other components. Order of these things is undefined and will change with each run.
Use service_factory_single_t<myclass> to register your implementations. Do not call other people's implementations, core is responsible for doing that when appropriate
 Cconfig_io_callback_v2
 Cconfig_object
 Cconfig_object_bool_factory_t
 Cconfig_object_fixed_const_impl_t
 Cconfig_object_fixed_factory_t
 Cconfig_object_fixed_impl_t
 Cconfig_object_impl
 Cconfig_object_int_factory_t
 Cconfig_object_notify
 Cconfig_object_notify_impl_simple
 Cconfig_object_notify_manager
 Cconfig_object_string_factory
 Cconsole_receiverInterface receiving console output. Do not call directly; use console namespace functions instead
 Ccontextmenu_group
 Ccontextmenu_group_factory
 Ccontextmenu_group_impl
 Ccontextmenu_group_manager
 Ccontextmenu_group_popup
 Ccontextmenu_group_popup_factory
 Ccontextmenu_group_popup_impl
 Ccontextmenu_groups
 Ccontextmenu_item
 Ccontextmenu_item_factory_tHelper
 Ccontextmenu_item_node
 Ccontextmenu_item_node_leaf
 Ccontextmenu_item_node_popup
 Ccontextmenu_item_node_root
 Ccontextmenu_item_node_root_leaf
 Ccontextmenu_item_node_root_popup
 Ccontextmenu_item_node_separator
 Ccontextmenu_item_simpleContextmenu_item implementation helper for implementing non-dynamically-generated context menu items; derive from this instead of from contextmenu_item directly if your menu items are static
 Ccontextmenu_item_v2
 Ccontextmenu_manager
 Ccontextmenu_node
 Ccore_version_info
 Ccore_version_info_v2New (0.9.4.2)
 CCoTaskMemObject
 CCPenHandle
 CCPlaybackStateDemo
 CCPopupTooltipMessage
 CCPowerRequest
 CCPowerRequestAPI
 CCpuList
 Ccritical_section
 Ccritical_section_static
 CCSeparator
 CCSimpleThreadIMPORTANT: all classes derived from CSimpleThread must call AbortThread()/WaitTillThreadDone() in their destructors, to avoid object destruction during a virtual function call!
 CCSRWlock
 CCSRWorCS
 CCStaticMainInstruction
 CCStaticSeparator
 CCStaticThemed
 CCTextControl
 CCThemeT
 CCTypableWindowScope
 Ccuesheet_format_index_time
 CCVerySimpleThreadIMPORTANT: all classes derived from CVerySimpleThread must call WaitTillThreadDone() in their destructor, to avoid object destruction during a virtual function call!
 CCWavWriter
 CCWindowAutoLifetime
 CCWindowClassUnregisterScope
 CCWindowFixSEH
 CCWindowImpl
 CCWindowRegisteredT
 CDCClipRgnScope
 CDCStateScope
 Cdead_item_filter
 Cdecode_postprocessorHelper class for managing decode_postprocessor_instance objects. See also: input_postprocessed
 Cdecode_postprocessor_entry
 Cdecode_postprocessor_instance
 Cdialog_resize_helper
 Cdropped_files_dataClass used for async processing of IDataObject. Content of IDataObject can be dumped into dropped_files_data without any time-consuming operations - won't block calling app when used inside drag&drop handler - and actual time-consuming processing (listing directories and reading infos) can be done later.
 Cdropped_files_data_implImplementation of dropped_files_data
 CdspInstance of a DSP.
Implementation: Derive from dsp_impl_base instead of deriving from dsp directly.
Instantiation: Use dsp_entry static helper methods to instantiate DSPs, or dsp_chain_config / dsp_manager to deal with entire DSP chains
 Cdsp_chain_config
 Cdsp_chain_config_impl
 Cdsp_chunk_listInterface to a DSP chunk list. A DSP chunk list object is passed to the DSP chain each time, since DSPs are allowed to remove processed chunks or insert new ones
 Cdsp_chunk_list_impl
 Cdsp_config_callbackCallback class for getting notified about core playback DSP settings getting altered.
Register your implementations with static service_factory_single_t<myclass> g_myclass_factory;
 Cdsp_config_managerCore API for accessing core playback DSP settings as well as spawning DSP configuration dialogs.
Use static_api_ptr_t<dsp_config_manager>() to instantiate
 Cdsp_entry
 Cdsp_entry_impl_nopreset_t
 Cdsp_entry_impl_t
 Cdsp_entry_v2
 Cdsp_entry_v2_impl_t
 Cdsp_factory_nopreset_t
 Cdsp_factory_t
 Cdsp_impl_base_tHelper class for implementing dsps. You should derive from dsp_impl_base instead of from dsp directly.
The dsp_impl_base_t template allows you to use a custom interface class as a base class for your implementation, in case you provide extended functionality.
Use dsp_factory_t<> template to register your dsp implementation. The implementation - as required by dsp_factory_t<> template - must also provide following methods:
A constructor taking const dsp_preset&, initializing the DSP with specified preset data.
static void g_get_name(pfc::string_base &); - retrieving human-readable name of the DSP to display.
static bool g_get_default_preset(dsp_preset &); - retrieving default preset for this DSP. Return value is reserved for future use and should always be true.
static GUID g_get_guid(); - retrieving GUID of your DSP implementation, to be used to identify it when storing DSP chain configuration.
static bool g_have_config_popup(); - retrieving whether your DSP implementation supplies a popup dialog for configuring it.
static void g_show_config_popup(const dsp_preset & p_data,HWND p_parent, dsp_preset_edit_callback & p_callback); - displaying your DSP's settings dialog; called only when g_have_config_popup() returns true; call p_callback.on_preset_changed() whenever user has made adjustments to the preset data.
 Cdsp_managerHelper class for running audio data through a DSP chain
 Cdsp_preset
 Cdsp_preset_builderHelper
 Cdsp_preset_edit_callback
 Cdsp_preset_impl
 Cdsp_preset_parserHelper
 Cdsp_preset_reader
 Cdsp_preset_writer
 Cdsp_sample
 Cdsp_v2Backwards-compatible extension to dsp interface, allows abortable operation. Introduced in 0.9.2
 Cduration_counterDuration counter class - accumulates duration using sample values, without any kind of rounding error accumulation
 Cdynamic_bitrate_helper
 CEnableWindowScope
 Cevent_logger
 Cevent_logger_fallback
 Cexception_com
 Cexception_win32
 Cfile
 Cfile_chain
 Cfile_chain_readonly
 Cfile_infoMain interface class for information about some playable object
 Cfile_info_const_implSpecial implementation of file_info that implements only const and copy methods. The difference between this and regular file_info_impl is amount of resources used and speed of the copy operation
 Cfile_info_filterImplementing this class gives you direct control over which part of file_info gets altered during a tag update uperation. To be used with metadb_io_v2::update_info_async()
 Cfile_info_filter_implHelper implementation of file_info_filter_impl
 Cfile_info_implImplements file_info
 Cfile_move_helper
 Cfile_operation_callbackInterface to notify component system about files being deleted or moved. Operates in app's main thread only
 Cfile_operation_callback_dynamicNew in 0.9.5
 Cfile_operation_callback_dynamic_impl_baseNew in 0.9.5
 Cfile_operation_callback_dynamic_managerNew in 0.9.5
 Cfile_path_canonical
 Cfile_path_display
 Cfile_readonly
 Cfile_win32_wrapper_overlapped_t
 Cfile_win32_wrapper_t
 CfileRestorePositionScope
 Cfoobar2000_api
 Cfoobar2000_client
 Cfoobar2000_component_globals
 Cformat_hresult
 Cformat_rg_gain
 Cformat_rg_peak
 Cformat_win32_error
 Cfpu_control
 Cfpu_control_default
 Cfpu_control_flushdenormal
 Cfpu_control_roundnearest
 CfullFileBuffer
 Cgenrand_servicePRNG service. Implemented by the core, do not reimplement. Use g_create() helper function to instantiate
 CGUID
 Chasher_md5
 Chasher_md5_result
 Chasher_md5_state
 Chttp_client
 Chttp_replyImplemented by file object returned by http_request::run methods. Allows you to retrieve various additional information returned by the server.
Warning: reply status may change when seeking on the file object since seek operations often require a new HTTP request to be fired
 Chttp_request
 Chttp_request_post
 Cicon_remappingNew in 0.9.5; allows your file format to use another icon than <extension>.ico when registering the file type with Windows shell.
Implementation: use icon_remapping_impl, or simply: static service_factory_single_t<icon_remapping_impl> myicon("ext","iconname.ico");
 Cicon_remapping_implStandard implementation of icon_remapping
 Cicon_remapping_wildcard_impl
 CIDataObject
 Cidle_handler
 Cidle_handler_impl_base
 CImplementBumpableElem
 CImplementCOMRefCounterSimple implementation of a COM reference counter. The initial reference count is zero, so it can be used with pfc::com_ptr_t<> with plain operator=/constructor rather than attach()
 CImplementModelessTracking
 Cinfo_lookup_handlerService used to access various external (online) track info lookup services, such as freedb, to update file tags with info retrieved from those services
 Cinfo_lookup_handler_v2
 Cinit_stage_callback
 CinitquitBasic callback startup/shutdown callback, on_init is called after the main window has been created, on_quit is called before the main window is destroyed.
To register: static initquit_factory_t<myclass> myclass_factory;
Note that you should be careful with calling other components during on_init/on_quit or
initializing services that are possibly used by other components by on_init/on_quit -
initialization order of components is undefined. If some other service that you publish is not properly functional before you receive an on_init() call,
someone else might call this service before >your< on_init is invoked
 Cinitquit_factory_t
 Cinput_cuesheet_factory_tWrapper template for generating embedded cuesheet enabled inputs. t_input_impl is a singletrack input implementation (see input_singletrack_impl for method declarations). To declare an embedded cuesheet enabled input, change your input declaration from input_singletrack_factory_t<myinput> to input_cuesheet_factory_t<myinput>
 Cinput_decoderClass providing interface for retrieval of PCM audio data from files.
Instantiating: see input_entry.
Implementing: see input_impl
 Cinput_decoder_v2
 Cinput_decoder_v3
 Cinput_entry
 Cinput_entry_impl_tHelper; standard input_entry implementation. Do not instantiate this directly, use input_factory_t or one of other input_*_factory_t helpers instead
 Cinput_factory_ex_tExtended version of input_factory_t, with non-default flags and supported interfaces. See: input_factory_t, input_entry::get_flags()
 Cinput_factory_tStardard input factory. For reference of functions that must be supported by registered class, see input_impl.
Usage: static input_factory_t<myinputclass> g_myinputclass_factory;
Note that input classes can't be registered through service_factory_t template directly
 Cinput_file_typeEntrypoint interface for registering media file types that can be opened through "open file" dialogs or associated with foobar2000 application in Windows shell.
Instead of implementing this directly, use DECLARE_FILE_TYPE() / DECLARE_FILE_TYPE_EX() macros
 Cinput_file_type_factoryImplementation helper. Usage: static input_file_type_factory mytype("blah type","*.bla;*.meh",true);
 Cinput_file_type_implImplementation helper
 Cinput_file_type_v2Extended interface for registering media file types that can be associated with foobar2000 application in Windows shell.
Instead of implementing this directly, use DECLARE_FILE_TYPE() / DECLARE_FILE_TYPE_EX() macros
 Cinput_file_type_v2_impl
 Cinput_helper
 Cinput_helper_cue
 Cinput_implThis is a class that just declares prototypes of functions that each input needs to implement. See input_decoder / input_info_reader / input_info_writer interfaces for full descriptions of member functions. Since input implementation class is instantiated using a template, you don't need to derive from input_impl as virtual functions are not used on implementation class level. Use input_factory_t template to register input class based on input_impl
 Cinput_impl_interface_wrapper_tUsed internally by standard input_entry implementation; do not use directly. Translates input_decoder / input_info_reader / input_info_writer calls to input_impl calls
 Cinput_info_read_helper
 Cinput_info_readerClass providing interface for retrieval of information (metadata, duration, replaygain, other tech infos) from files. Also see: file_info.
Instantiating: see input_entry.
Implementing: see input_impl
 Cinput_info_writerClass providing interface for writing metadata and replaygain info to files. Also see: file_info.
Instantiating: see input_entry.
Implementing: see input_impl
 Cinput_info_writer_v2
 Cinput_postprocessedGeneric template to add decode_postprocessor support to your input class. Works with both single-track and multi-track inputs
 Cinput_protocol_typeService for registering protocol types that can be associated with foobar2000
 Cinput_raw
 Cinput_singletrack_factory_ex_tExtended version of input_singletrack_factory_t, with non-default flags and supported interfaces. See: input_singletrack_factory_t, input_entry::get_flags()
 Cinput_singletrack_factory_tNon-multitrack-enabled input factory (helper) - hides multitrack management functions from input implementation; use this for inputs that handle file types where each physical file can contain only one user-visible playable track. For reference of functions that must be supported by registered class, see input_singletrack_impl.
Usage: static input_singletrack_factory_t<myinputclass> g_myinputclass_factory;
Note that input classes can't be registered through service_factory_t template directly.template<class T>
 Cinput_singletrack_implThis is a class that just declares prototypes of functions that each non-multitrack-enabled input needs to implement. See input_decoder / input_info_reader / input_info_writer interfaces for full descriptions of member functions. Since input implementation class is instantiated using a template, you don't need to derive from input_singletrack_impl as virtual functions are not used on implementation class level. Use input_singletrack_factory_t template to register input class based on input_singletrack_impl
 Cinput_wrapper_singletrack_tHelper used by input_singletrack_factory_t, do not use directly. Translates input_impl calls to input_singletrack_impl calls
 Ckeyboard_shortcut_manager
 Ckeyboard_shortcut_manager_v2New in 0.9.5
 CLastErrorRevertScope
 Clibrary_callbackCallback service receiving notifications about Media Library content changes. Methods called only from main thread.
Use library_callback_factory_t template to register
 Clibrary_callback_dynamic
 Clibrary_callback_dynamic_impl_base
 Clibrary_callback_factory_t
 Clibrary_file_move_manager
 Clibrary_file_move_notify
 Clibrary_file_move_notify_
 Clibrary_file_move_scope
 Clibrary_manager
 Clibrary_manager_v2
 Clibrary_manager_v3
 Clibrary_meta_autocomplete
 Clibrary_search_ui
 Clibrary_viewerImplement this service to appear on "library viewers" list in Media Library preferences page.
Use library_viewer_factory_t to register
 Clibrary_viewer_factory_t
 Clink_resolverInterface for resolving different sorts of link files. Utilized by mechanisms that convert filesystem path into list of playable locations. For security reasons, link may only point to playable object path, not to a playlist or another link
 Cmain_thread_callbackCallback object class for main_thread_callback_manager service
 Cmain_thread_callback_manager
 Cmainmenu_commands
 Cmainmenu_commands_factory_t
 Cmainmenu_commands_sample
 Cmainmenu_commands_v2
 Cmainmenu_group
 Cmainmenu_group_factory
 Cmainmenu_group_impl
 Cmainmenu_group_popup
 Cmainmenu_group_popup_factory
 Cmainmenu_group_popup_impl
 Cmainmenu_groups
 Cmainmenu_manager
 Cmainmenu_node
 Cmainmenu_node_command
 Cmainmenu_node_group
 Cmainmenu_node_separator
 Cmake_playable_location
 Cmem_block_containerGeneric interface for a memory block; used by various other interfaces to return memory blocks while allowing caller to allocate
 Cmem_block_container_aligned_impl
 Cmem_block_container_aligned_incremental_impl
 Cmem_block_container_impl_tMem_block_container implementation
 Cmem_block_container_ref_impl
 Cmem_block_container_temp_impl
 Cmem_block_manager
 Cmenu_item_resolverNew in 0.9.5.1. Static methods safe to use in prior versions as it will use slow fallback mode when the service isn't present.
Functionality provided by menu_item_resolver methods isn't much different from just walking all registered contextmenu_item / mainmenu_commands implementations to find the command we want, but it uses a hint map to locate the service we're looking for without walking all of them which may be significantly faster in certain scenarios
 Cmessage_filter
 Cmessage_filter_impl_accel
 Cmessage_filter_impl_base
 Cmessage_filter_remap_f1
 Cmessage_loop
 Cmessage_loop_v2
 Cmeta_table_builderPurpose: building a file_info metadata table from loose input without search-for-existing-entry bottleneck
 CmetadbEntrypoint service for metadb_handle related operations.
Implemented only by core, do not reimplement.
Use static_api_ptr_t template to access it, e.g. static_api_ptr_t<metadb>()->handle_create(myhandle,mylocation);
 Cmetadb_display_field_provider
 Cmetadb_handleA metadb_handle object represents interface to reference-counted file_info cache entry for the specified location.
To obtain a metadb_handle to specific location, use metadb::handle_create(). To obtain a list of metadb_handle objects corresponding to specific path (directory, playlist, multitrack file, etc), use relevant playlist_incoming_item_filter methods (recommended), or call playlist_loader methods directly.
A metadb_handle is also the most efficient way of passing playable object locations around because it provides fast access to both location and infos, and is reference counted so duplicating it is as fast as possible.
To retrieve a path of a file from a metadb_handle, use metadb_handle::get_path() function. Note that metadb_handle is NOT just file path, some formats support multiple subsongs per physical file, which are signaled using subsong indexes
 Cmetadb_handle_list_t
 Cmetadb_hint_listAdvanced interface for passing infos read from files to metadb backend. Use metadb_io_v2::create_hint_list() to instantiate
 Cmetadb_hint_list_v2
 Cmetadb_hint_list_v3
 Cmetadb_index_client
 Cmetadb_index_manager
 Cmetadb_info_container
 Cmetadb_ioAPI for tag read/write operations. Legal to call from main thread only, except for hint_multi_async() / hint_async() / hint_reader().
Implemented only by core, do not reimplement.
Use static_api_ptr_t template to access metadb_io methods.
WARNING: Methods that perform file access (tag reads/writes) run a modal message loop. They SHOULD NOT be called from global callbacks and such
 Cmetadb_io_callbackCallback service receiving notifications about metadb contents changes
 Cmetadb_io_callback_dynamicDynamically-registered version of metadb_io_callback. See metadb_io_callback for documentation, register instances using metadb_io_v3::register_callback(). It's recommended that you use the metadb_io_callback_dynamic_impl_base helper class to manage registration/unregistration
 Cmetadb_io_callback_dynamic_impl_baseMetadb_io_callback_dynamic implementation helper
 Cmetadb_io_edit_callback
 Cmetadb_io_hintlist
 Cmetadb_io_v2New in 0.9.3. Extends metadb_io functionality with nonblocking versions of tag read/write functions, and some other utility features
 Cmetadb_io_v3New (0.9.5)
 Cmodal_dialog_scopeThe purpose of modal_dialog_scope is to help to avoid the modal dialog recursion problem. Current toplevel modal dialog handle is stored globally, so when creation of a new modal dialog is blocked, it can be activated to indicate the reason for the task being blocked
 Cmodeless_dialog_managerService for plugging your nonmodal dialog windows into main app loop to receive IsDialogMessage()-translated messages.
Note that all methods are valid from main app thread only.
Usage: static_api_ptr_t<modeless_dialog_manager> or modeless_dialog_manager::g_add / modeless_dialog_manager::g_remove
 Cmp3header
 CmutexScope
 Cmyinitquit
 Cmyitem
 CNoRedrawScope
 CNoRedrawScopeEx
 COffsetWindowOrgScope
 Cole_interaction
 Cole_interaction_v2
 COleInitializeScope
 CopenAudioData_tOpenAudioData return value, see openAudioData()
 Corder_helper
 Coutput
 Coutput_device_enum_callback
 Coutput_entry
 Coutput_entry_impl_tHelper; implements output_entry for specific output class implementation. output_entry methods are forwarded to static methods of your output class. Use output_factory_t<myoutputclass> instead of using this class directly
 Coutput_entry_v2
 Coutput_factory_tUse this to register your output implementation
 Coutput_impl
 Coutput_manager
 Coutput_v2
 CoutputCoreConfig_t
 Cpacket_decoderProvides interface to decode various audio data types to PCM. Use packet_decoder_factory_t template to register
 Cpacket_decoder_entry
 Cpacket_decoder_entry_impl_t
 Cpacket_decoder_factory_t
 Cpacket_decoder_streamparse
 Cplay_callback
 Cplay_callback_impl_baseImplementation helper
 Cplay_callback_managerStandard API (always present); manages registrations of dynamic play_callbacks. Usage: use static_api_ptr_t<play_callback_manager>. Do not reimplement
 Cplay_callback_staticStatic (autoregistered) version of play_callback. Use play_callback_static_factory_t to register
 Cplay_callback_static_factory_t
 Cplayable_location
 Cplayable_location_impl
 Cplayback_controlProvides control for various playback-related operations. All methods provided by this interface work from main app thread only. Calling from another thread will do nothing or trigger an exception. If you need to trigger one of playback_control methods from another thread, see main_thread_callback. Do not call playback_control methods from inside any kind of global callback (e.g. playlist callback), otherwise race conditions may occur. Use static_api_ptr_t to instantiate. See static_api_ptr_t documentation for more info
 Cplayback_control_v2
 Cplayback_control_v3
 Cplayback_event_notifyHelper providing a simplified interface for receiving playback events, in case your code does not care about the kind of playback event that has occurred; useful typically for GUI/rendering code that just refreshes some control whenever a playback state change occurs
 Cplayback_queue_callback
 Cplayback_statistics_collectorGets notified about tracks being played. Notification occurs when at least 60s of the track has been played, or the track has reached its end after at least 1/3 of it has been played through. Use playback_statistics_collector_factory_t to register
 Cplayback_statistics_collector_factory_t
 Cplayback_stream_capture
 Cplayback_stream_capture_callback
 Cplayback_volume_notify
 Cplaylist_callback
 Cplaylist_callback_impl_basePlaylist_callback implementation helper - registers itself on creation / unregisters on destruction. Must not be instantiated statically!
 Cplaylist_callback_single
 Cplaylist_callback_single_impl_basePlaylist_callback_single implementation helper - registers itself on creation / unregisters on destruction. Must not be instantiated statically!
 Cplaylist_callback_single_static
 Cplaylist_callback_static
 Cplaylist_dataobject_desc
 Cplaylist_dataobject_desc_impl
 Cplaylist_dataobject_desc_v2
 Cplaylist_incoming_item_filter
 Cplaylist_incoming_item_filter_v2
 Cplaylist_incoming_item_filter_v3
 Cplaylist_loaderService handling playlist file operations. There are multiple implementations handling different playlist formats; you can add new implementations to allow new custom playlist file formats to be read or written.
Also provides static helper functions for turning a filesystem path into a list of playable item locations.
Note that you should typically call playlist_incoming_item_filter methods instead of calling playlist_loader methods directly to get a list of playable items from a specified path; this way you get a core-implemented threading and abortable dialog displaying progress.
To register your own implementation, use playlist_loader_factory_t template.
To call existing implementations, use static helper methods of playlist_loader class
 Cplaylist_loader_callbackCallback interface receiving item locations from playlist loader.
Typically, you call one of standard services such as playlist_incoming_item_filter instead of implementing this interface and calling playlist_loader methods directly
 Cplaylist_loader_callback_v2
 Cplaylist_loader_factory_t
 Cplaylist_lockThis interface allows filtering of playlist modification operations.
Implemented by components "locking" playlists; use playlist_manager::playlist_lock_install() etc to takeover specific playlist with your instance of playlist_lock
 Cplaylist_lock_change_notify
 Cplaylist_managerThis service provides methods for all sorts of playlist interaction.
All playlist_manager methods are valid only from main app thread.
Usage: static_api_ptr_t<playlist_manager>
 Cplaylist_manager_v2Extension of the playlist_manager service that manages playlist properties. Playlist properties come in two flavors: persistent and runtime. Persistent properties are blocks of binary that that will be preserved when the application is exited and restarted. Runtime properties are service pointers that will be lost when the application exits
 Cplaylist_manager_v3
 Cplaylist_manager_v4
 Cplaylist_position_reference_tracker
 Cpopup_messageThis interface allows you to show generic nonmodal noninteractive dialog with a text message. This should be used instead of MessageBox where possible.
Usage: use popup_message::g_show / popup_message::g_show_ex static helpers, or static_api_ptr_t<popup_message>.
Note that all strings are UTF-8
 Cpopup_message_v2
 Cpreferences_branchCreates a preferences branch - an empty page that only serves as a parent for other pages and is hidden when no child pages exist. Instead of implementing this, simply use preferences_branch_factory class to declare a preferences branch with specified parameters
 Cpreferences_branch_factoryInstantiating this class declares a preferences branch with specified parameters.
Usage: static preferences_branch_factory g_mybranch(mybranchguid,parentbranchguid,"name of my preferences branch goes here");
 Cpreferences_branch_impl
 Cpreferences_branch_v2
 Cpreferences_pageImplementing this service will generate a page in preferences dialog. Use preferences_page_factory_t template to register.
In 1.0 and newer you should always derive from preferences_page_v3 rather than from preferences_page directly
 Cpreferences_page_callback
 Cpreferences_page_factory_t
 Cpreferences_page_impl
 Cpreferences_page_instance
 Cpreferences_page_instance_impl
 Cpreferences_page_myimpl
 Cpreferences_page_v2
 Cpreferences_page_v3
 Cpreferences_state
 Cprocess_locations_notifyFor use with playlist_incoming_item_filter_v2::process_locations_async()
 Cprogress_meterEntrypoint interface for instantiating progress_meter_instance objects
 Cprogress_meter_instanceInterface for setting current operation progress state to be visible on Windows 7 taskbar. Use static_api_ptr_t<progress_meter>()->acquire() to instantiate
 Creader_bigmem
 Creader_bigmem_mirror
 Creader_limited
 Creader_membuffer_base
 Creader_membuffer_mirror
 Creader_membuffer_simple
 Cregisterclass_scope_delayed
 Creplaygain_infoStructure containing ReplayGain scan results from some playable object, also providing various helper methods to manipulate those results
 Creplaygain_managerCore service providing methods to retrieve/alter playback ReplayGain settings, as well as use ReplayGain configuration dialog
 Creplaygain_resultContainer of ReplayGain scan results from one or more tracks
 Creplaygain_scannerInstance of a ReplayGain scanner.
Use static_api_ptr_t<replaygain_scanner_entry>()->instantiate() to create a replaygain_scanner object; see replaygain_scanner_entry for more info.
Typical use: call process_chunk() with each chunk read from your track, call finalize() to obtain results for this track and reset replaygain_scanner's state for scanning another track; to obtain album gain/peak values, merge results (replaygain_result::merge) from all tracks.
 Creplaygain_scanner_entryEntrypoint class for instantiating replaygain_scanner objects. Use static_api_ptr_t<replaygain_scanner_entry>()->instantiate() to create replaygain_scanner instances.
This service is OPTIONAL; it's available from foobar2000 0.9.5.3 up but only if the ReplayGain Scanner component is installed.
It is recommended that you use replaygain_scanner like this: try { myInstance = static_api_ptr_t<replaygain_scanner_entry>()->instantiate(); } catch(exception_service_not_found) { /* too old foobar2000 version or no foo_rgscan installed - complain/fail/etc */ }
 Cresampler_entry
 Cresampler_entry_impl_t
 Cresampler_factory_t
 CRIFF_chunk_desc
 Csearch_filterInstance of a search filter object. New in 0.9.5.
This object contains a preprocessed search query; used to perform filtering similar to Media Library Search or Album List's "filter" box.
Use search_filter_manager API to instantiate search_filter objects
 Csearch_filter_managerEntrypoint class to instantiate search_filter objects. New in 0.9.5
 Csearch_filter_manager_v2New in 0.9.5.3
 Csearch_filter_v2New in 0.9.5.3. You can obtain a search_filter_v2 pointer by using service_query() on a search_filter pointer, or from search_filter_manager_v2::create_ex()
 Csearch_filter_v3New in 0.9.5.4. You can obtain a search_filter_v2 pointer by using service_query() on a search_filter/search_filter_v2 pointer
 Cseekabilizer
 Cseekabilizer_backbuffer
 CSelectObjectScope
 Cservice_baseBase class for all service classes.
Provides interfaces for reference counter and querying for different interfaces supported by the object.
 Cservice_by_guid_data
 Cservice_class_helper_t
 Cservice_enum_t
 Cservice_factory_base
 Cservice_factory_base_t
 Cservice_factory_single_ref_t
 Cservice_factory_single_t
 Cservice_factory_single_transparent_t
 Cservice_factory_t
 Cservice_factory_traits
 Cservice_impl_explicitshutdown_tAlternate version of service_impl_t<> - calls this->service_shutdown() instead of delete this.
For special cases where selfdestruct on zero refcount is undesired
 Cservice_impl_single_tTemplate implementing dummy version of reference-counting features of service_base. Intended for static/local/member instantiation: "static service_impl_single_t<someclass> myvar(params);". Because reference counting features are disabled (dummy reference counter), code instantiating it is responsible for deleting it as well as ensuring that no references are active when the object gets deleted.
Note that some constructor parameters such as NULL will need explicit typecasts to ensure correctly guessed types for constructor function template (null string needs to be (const char*)NULL rather than just NULL, etc)
 Cservice_impl_tTemplate implementing reference-counting features of service_base. Intended for dynamic instantiation: "new service_impl_t<someclass>(param1,param2);"; should not be instantiated otherwise (no local/static/member objects) because it does a "delete this;" when reference count reaches zero.
Note that some constructor parameters such as NULL will need explicit typecasts to ensure correctly guessed types for constructor function template (null string needs to be (const char*)NULL rather than just NULL, etc)
 Cservice_instance_array_tHelper; simulates array with instance of each available implementation of given service class
 Cservice_list_t
 Cservice_nnptr_tAutopointer class to be used with all services. Manages reference counter calls behind-the-scenes.
This assumes that the pointers are valid all the time (can't point to null). Mainly intended to be used for scenarios where null pointers are not valid and relevant code should crash ASAP if somebody passes invalid pointers around.
You want to use service_ptr_t<> rather than service_nnptr_t<> most of the time
 Cservice_obscure_refcountingSpecial hack to ensure errors when someone tries to ->service_add_ref()/->service_release() on a service_ptr_t
 Cservice_ptr_base_t
 Cservice_ptr_tAutopointer class to be used with all services. Manages reference counter calls behind-the-scenes
 CSetTextColorScope
 Csse_control
 Csse_control_flushdenormal
 Cstandard_commands
 Cstandard_config_objects
 Cstatic_api_ptr_tHelper template used to easily access core services.
Usage: static_api_ptr_t<myclass> api; api->dosomething(); Can be used at any point of code, WITH EXCEPTION of static objects that are initialized during the DLL loading process before the service system is initialized; such as static static_api_ptr_t objects or having static_api_ptr_t instances as members of statically created objects. Throws exception_service_not_found if service could not be reached (which can be ignored for core APIs that are always present unless there is some kind of bug in the code)
 Cstream_formatter_hasher_md5
 Cstream_reader
 Cstream_reader_buffered
 Cstream_reader_chunk
 Cstream_reader_dummy
 Cstream_reader_formatter
 Cstream_reader_formatter_simple
 Cstream_reader_formatter_simple_ref
 Cstream_reader_limited_ref
 Cstream_reader_memblock_ref
 Cstream_writer
 Cstream_writer_buffer_append_ref_t
 Cstream_writer_buffer_simple
 Cstream_writer_buffered
 Cstream_writer_chunk
 Cstream_writer_chunk_dwordheader
 Cstream_writer_formatter
 Cstream_writer_formatter_simple
 Cstream_writer_hasher_md5
 Cstring_filter_noncasesensitive
 Cstring_format_title
 Cstring_formatter_tf
 Cstring_lower
 Cstring_upper
 Cstring_utf8_from_window
 Csystem_time_callback
 Csystem_time_callback_impl
 Csystem_time_keeper
 CT
 Ct_base
 Ct_baseclass
 Ct_core_version_data
 Ct_cuesheet_index_list
 Ct_font_description
 Ct_modal_dialog_entry
 Ct_pcmspecStructure describing PCM audio data format, with basic helper functions
 Ct_playback_queue_item
 Ct_replaygain_configStructure storing ReplayGain configuration: album/track source data modes, gain/peak processing modes and preamp values
 Ct_samplespec
 Ctag_processor_album_art_utilsHelper API for extracting album art from APEv2 tags - introduced in 0.9.5
 Ctag_processor_id3v2For internal use - call tag_processor namespace methods instead
 Ctag_processor_trailingFor internal use - call tag_processor namespace methods instead
 Ctag_write_callbackCallback interface for write-tags-to-temp-file-and-swap scheme, used for ID3v2 tag updates and such where entire file needs to be rewritten. As a speed optimization, file content can be copied to a temporary file in the same directory as the file being updated, and then source file can be swapped for the newly created file with updated tags. This also gives better security against data loss on crash compared to rewriting the file in place and using memory or generic temporary file APIs to store content being rewritten
 Ctag_write_callback_dummy
 CTBase
 CTCtrl
 CTDialog
 Cthreaded_processThe threaded_process API allows you to easily put timeconsuming tasks in worker threads, with progress dialog giving nice feedback to the user.
Thanks to this API you can perform such tasks with no user interface related programming at all
 Cthreaded_process_callbackCallback class for the threaded_process API. You must implement this to create your own threaded_process client
 Cthreaded_process_callback_redirHelper - forward threaded_process_callback calls to a service object that for whatever reason cannot publish threaded_process_callback API by itself
 Cthreaded_process_statusCallback class passed to your threaded_process client code; allows you to give various visual feedback to the user
 CTImpl
 Ctitleformat_common_methods
 Ctitleformat_compilerStandard service for instantiating titleformat_object. Implemented by the core; do not reimplement. To instantiate, use static_api_ptr_t<titleformat_compiler>
 Ctitleformat_hook
 Ctitleformat_hook_function_params
 Ctitleformat_hook_impl_file_info
 Ctitleformat_hook_impl_list
 Ctitleformat_hook_impl_splitter
 Ctitleformat_objectRepresents precompiled executable title-formatting script. Use titleformat_compiler to instantiate; do not reimplement
 Ctitleformat_object_wrapper
 Ctitleformat_text_filter
 Ctitleformat_text_filter_impl_filename_chars
 Ctitleformat_text_filter_impl_reserved_chars
 Ctitleformat_text_filter_nontext_chars
 Ctitleformat_text_out
 Ctitleformat_text_out_impl_filter_chars
 Ctitleformat_text_out_impl_string
 CTList
 CTMap
 CTObj
 Ctrack_property_callbackCallback interface for track_property_provider::enumerate_properties()
 Ctrack_property_callback_v2
 Ctrack_property_callback_v2_proxy
 Ctrack_property_providerService for adding custom entries in "Properties" tab of the properties dialog
 Ctrack_property_provider_factory_t
 Ctrack_property_provider_v2
 Ctrack_property_provider_v3
 Ctrack_property_provider_v3_info_source
 Ctrack_property_provider_v3_info_source_impl
 CTypeFind
 CuCallStackTracker
 CuDebugLog
 CuFindFile
 CuGetOpenFileNameMultiResult
 CuGetOpenFileNameMultiResult_impl
 Cui_controlSerivce providing various UI-related commands. Implemented by core; do not reimplement. Instantiation: use static_api_ptr_t<ui_control>
 Cui_drop_item_callbackService called from the UI when some object is dropped into the UI. Usable for modifying drag&drop behaviors such as adding custom handlers for object types other than supported media files.
Implement where needed; use ui_drop_item_callback_factory_t<> template to register, e.g. static ui_drop_item_callback_factory_t<myclass> g_myclass_factory
 Cui_drop_item_callback_factory_t
 Cui_edit_context
 Cui_edit_context_manager
 Cui_edit_context_playlist
 Cui_elementEntrypoint interface for each UI element implementation
 Cui_element_children_enumeratorInterface to enumerate and possibly alter children of a container element. Obtained from ui_element::enumerate_children()
 Cui_element_common_methodsFor use with static_api_ptr_t<>
 Cui_element_common_methods_v2For use with static_api_ptr_t<>
 Cui_element_configConfiguration of a UI element
 Cui_element_config_builderHelper
 Cui_element_config_parserHelper
 Cui_element_impl
 Cui_element_impl_visualisation
 Cui_element_impl_withpopup
 Cui_element_instanceInstance of a UI element
 Cui_element_instance_callbackCallback class passed by a UI element host to a UI element instance, allowing each UI element instance to communicate with its host.
Each ui_element_instance_callback implementation must also implement ui_element_instance_callback_v2
 Cui_element_instance_callback_implUi_element_instance_callback implementation helper
 Cui_element_instance_callback_receiverUi_element_instance_callback implementation helper
 Cui_element_instance_callback_v2
 Cui_element_instance_callback_v3
 Cui_element_min_max_info
 Cui_element_myimpl
 Cui_element_notify_get_element_labels_callback
 Cui_element_popup_host
 Cui_element_popup_host_callback
 Cui_element_popup_host_v2
 Cui_element_typable_window_manager
 Cui_element_v2Extended interface for a UI element implementation
 Cui_selection_callback
 Cui_selection_callback_impl_baseUi_selection_callback implementation helper with autoregistration - do not instantiate statically
 Cui_selection_callback_impl_base_ex
 Cui_selection_holderWrite interface and reference counter for the shared selection. The ui_selection_manager stores the selected items as a list. The ui_selection_holder service allows components to modify this list. It also serves as a reference count: the ui_selection_manager clears the stored selection when no component holds a reference to a ui_selection_holder
 Cui_selection_manager
 Cui_selection_manager_v2
 Cui_status_text_overrideInterface class allowing you to override UI statusbar text. There may be multiple callers trying to override statusbar text; backend decides which one succeeds so you will not always get what you want. Statusbar text override is automatically cancelled when the object is released.
Use ui_control::override_status_text_create() to instantiate. Implemented by core. Do not reimplement
 CunpackerService providing "unpacker" functionality - processes "packed" file (such as a zip file containing a single media file inside) to allow its contents to be accessed transparently.
To access existing unpacker implementations, use unpacker::g_open helper function.
To register your own implementation, use unpacker_factory_t template
 Cunpacker_factory_t
 CuResource
 Cuser_interfaceEntrypoint service for user interface modules. Implement when registering an UI module. Do not call existing implementations; only core enumerates / dispatches calls. To control UI behaviors from other components, use ui_control API.
Use user_interface_factory_t<> to register, e.g static user_interface_factory_t<myclass> g_myclass_factory;
 Cuser_interface_factory
 CuStringPrintf
 Cvisualisation_managerEntrypoint service for visualisation processing; use this to create visualisation_stream objects that can be used to retrieve properties of currently played audio.
Implemented by core; do not reimplement.
Use static_api_ptr_t to access it, e.g. static_api_ptr_t<visualisation_manager>()->create_stream(mystream,0);
 Cvisualisation_streamThis class provides abstraction for retrieving visualisation data. Instances of visualisation_stream being created/released serve as an indication for visualisation backend to process currently played audio data or shut down when there are no visualisation clients active.
Use visualisation_manager::create_stream to instantiate
 Cvisualisation_stream_v2New in 0.9.5
 Cvisualisation_stream_v3New in 0.9.5.2
 Cvolume_callback
 Cvolume_control
 CwavWriterSetup_t
 Cwin32_accelerator
 Cwin32_event
 Cwin32_font
 Cwin32_icon
 Cwin32_menu
 Cwindow_service_impl_tSpecial service_impl_t replacement for service classes that also implement ATL/WTL windows
 CwinLocalFileScope