Mercurial > foo_out_sdl
comparison foosdk/sdk/foobar2000/SDK/info_lookup_handler.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #pragma once | |
| 2 //! Service used to access various external (online) track info lookup services, such as freedb, to update file tags with info retrieved from those services. | |
| 3 class NOVTABLE info_lookup_handler : public service_base { | |
| 4 public: | |
| 5 enum { | |
| 6 flag_album_lookup = 1 << 0, | |
| 7 flag_track_lookup = 1 << 1, | |
| 8 //! \since 2.2: supports lookup_noninteractive() call; before 2.2, lookup_noninteractive was assumed supported if info_lookup_handler_v2 was implemented. | |
| 9 flag_noninteractive = 1 << 2, | |
| 10 }; | |
| 11 | |
| 12 //! Retrieves human-readable name of the lookup handler to display in user interface. | |
| 13 virtual void get_name(pfc::string_base & p_out) = 0; | |
| 14 | |
| 15 //! Returns one or more of flag_track_lookup, flag_album_lookup, flag_noninteractive. | |
| 16 virtual t_uint32 get_flags() = 0; | |
| 17 | |
| 18 virtual fb2k::hicon_t get_icon(int p_width, int p_height) = 0; | |
| 19 | |
| 20 //! Performs a lookup. Creates a modeless dialog and returns immediately. | |
| 21 //! @param items Items to look up. | |
| 22 //! @param notify Callback to notify caller when the operation has completed. Call on_completion with status code 0 to signal failure/abort, or with code 1 to signal success / new infos in metadb. | |
| 23 //! @param parent Parent window for the lookup dialog. Caller will typically disable the window while lookup is in progress and enable it back when completion is signaled. | |
| 24 virtual void lookup(metadb_handle_list_cref items,completion_notify::ptr notify,fb2k::hwnd_t parent) = 0; | |
| 25 | |
| 26 FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(info_lookup_handler); | |
| 27 }; | |
| 28 | |
| 29 | |
| 30 class NOVTABLE info_lookup_handler_v2 : public info_lookup_handler { | |
| 31 FB2K_MAKE_SERVICE_INTERFACE(info_lookup_handler_v2, info_lookup_handler); | |
| 32 public: | |
| 33 virtual double merit() {return 0;} | |
| 34 virtual void lookup_noninteractive(metadb_handle_list_cref items, completion_notify::ptr notify, fb2k::hwnd_t parent) = 0; | |
| 35 }; | |
| 36 | |
| 37 //! Since 2.2 | |
| 38 class NOVTABLE info_lookup_handler_v3 : public info_lookup_handler_v2 { | |
| 39 FB2K_MAKE_SERVICE_INTERFACE(info_lookup_handler_v3, info_lookup_handler_v2); | |
| 40 public: | |
| 41 //! Some handlers depend on user settings to access multiple actual online services. \n | |
| 42 //! Use this method to retrieve individual handlers for specific services, with proper name, icon, etc. | |
| 43 //! @returns Array of info_lookup_handler objects, null if there are no subhandlers and this object should be used. | |
| 44 virtual fb2k::arrayRef subhandlers() { return nullptr; } | |
| 45 }; |
