annotate foosdk/sdk/foobar2000/SDK/library_manager.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "callback_merit.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 class library_callback_dynamic; class library_callback_v2_dynamic;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 /*!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 This service implements methods allowing you to interact with the Media Library.\n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 All methods are valid from main thread only, unless noted otherwise.\n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 Usage: Use library_manager::get() to instantiate.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 class NOVTABLE library_manager : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 FB2K_MAKE_SERVICE_COREAPI(library_manager);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 //! Interface for use with library_manager::enum_items().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 class NOVTABLE enum_callback {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 //! Return true to continue enumeration, false to abort.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 virtual bool on_item(const metadb_handle_ptr & p_item) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 //! Returns whether the specified item is in the Media Library or not.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 //! MAIN THREAD ONLY until foobar2000 v2.0; valid to call from anywhere since v2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 virtual bool is_item_in_library(const metadb_handle_ptr & p_item) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 //! Returns whether current user settings allow the specified item to be added to the Media Library or not.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 //! MAIN THREAD ONLY until foobar2000 v2.0; valid to call from anywhere since v2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 virtual bool is_item_addable(const metadb_handle_ptr & p_item) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 //! Returns whether current user settings allow the specified item path to be added to the Media Library or not.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 //! MAIN THREAD ONLY until foobar2000 v2.0; valid to call from anywhere since v2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 virtual bool is_path_addable(const char * p_path) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 //! Retrieves path of the specified item relative to the Media Library folder it is in. Returns true on success, false when the item is not in the Media Library.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 //! SPECIAL WARNING: to allow multi-CPU optimizations to parse relative track paths, this API works in threads other than the main app thread. Main thread MUST be blocked while working in such scenarios, it's NOT safe to call from worker threads while the Media Library content/configuration might be getting altered.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 //! foobar2000 v2.0 and newer: legal to call from any thread with no restrictions.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 virtual bool get_relative_path(const metadb_handle_ptr & p_item,pfc::string_base & p_out) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 //! Calls callback method for every item in the Media Library. Note that order of items in Media Library is undefined.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 virtual void enum_items(enum_callback & p_callback) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 protected:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 FB2K_DEPRECATED virtual void add_items(const pfc::list_base_const_t<metadb_handle_ptr> & p_data) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 FB2K_DEPRECATED virtual void remove_items(const pfc::list_base_const_t<metadb_handle_ptr> & p_data) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 FB2K_DEPRECATED virtual void add_items_async(const pfc::list_base_const_t<metadb_handle_ptr> & p_data) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 FB2K_DEPRECATED virtual void on_files_deleted_sorted(const pfc::list_base_const_t<const char *> & p_data) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 //! Retrieves the entire Media Library content.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 virtual void get_all_items(pfc::list_base_t<metadb_handle_ptr> & p_out) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 //! Returns whether Media Library functionality is enabled or not (to be exact: whether there's at least one Media Library folder present in settings), for e.g. notifying the user to change settings when trying to use a Media Library viewer without having configured the Media Library first.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 virtual bool is_library_enabled() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 //! Pops up the Media Library preferences page.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 virtual void show_preferences() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 //! OBSOLETE, do not call.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 virtual void rescan() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 protected:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 FB2K_DEPRECATED virtual void check_dead_entries(const pfc::list_base_t<metadb_handle_ptr> & p_list) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 //! \since 0.9.3
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 class NOVTABLE library_manager_v2 : public library_manager {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 FB2K_MAKE_SERVICE_COREAPI_EXTENSION(library_manager_v2,library_manager);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 protected:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 FB2K_DEPRECATED virtual bool is_rescan_running() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 FB2K_DEPRECATED virtual void rescan_async(fb2k::hwnd_t p_parent,completion_notify_ptr p_notify) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 //! OBSOLETE, do not call, does nothing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 FB2K_DEPRECATED virtual void check_dead_entries_async(const pfc::list_base_const_t<metadb_handle_ptr> & p_list,fb2k::hwnd_t p_parent,completion_notify_ptr p_notify) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 //! \since 0.9.5
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 class NOVTABLE library_manager_v3 : public library_manager_v2 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 //! Retrieves directory path and subdirectory/filename formatting scheme for newly encoded/copied/moved tracks.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 //! @returns True on success, false when the feature has not been configured.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 virtual bool get_new_file_pattern_tracks(pfc::string_base & p_directory,pfc::string_base & p_format) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 //! Retrieves directory path and subdirectory/filename formatting scheme for newly encoded/copied/moved full album images.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 //! @returns True on success, false when the feature has not been configured.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 virtual bool get_new_file_pattern_images(pfc::string_base & p_directory,pfc::string_base & p_format) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 virtual void register_callback(library_callback_dynamic * p_callback) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95 virtual void unregister_callback(library_callback_dynamic * p_callback) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 FB2K_MAKE_SERVICE_COREAPI_EXTENSION(library_manager_v3,library_manager_v2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 //! \since 2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 class NOVTABLE library_manager_v4 : public library_manager_v3 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 virtual void register_callback_v2(library_callback_v2_dynamic*) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 virtual void unregister_callback_v2(library_callback_v2_dynamic*) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 virtual bool is_initialized() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 FB2K_MAKE_SERVICE_COREAPI_EXTENSION(library_manager_v4, library_manager_v3);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 //! \since 2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 class NOVTABLE library_manager_v5 : public library_manager_v4 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 FB2K_MAKE_SERVICE_COREAPI_EXTENSION(library_manager_v5, library_manager_v4);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 //! foobar2000 v2.0 late addition: let callbacks know if the current notification comes from actual changed tags or a display hook operation. Returns 1 or 0 for true or false.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 static const GUID status_current_callback_from_hook;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 //! Extensible status query method. Returns 0 for unrecognized commands.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 virtual size_t library_status(const GUID& arg, size_t arg1, void* arg2, size_t arg2bytes) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 bool is_current_callback_from_hook() { return library_status(status_current_callback_from_hook, 0, nullptr, 0) != 0; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 //! \since 2.0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 class NOVTABLE library_manager_v6 : public library_manager_v5 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 FB2K_MAKE_SERVICE_COREAPI_EXTENSION(library_manager_v6, library_manager_v5);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 virtual void set_callback_merit(library_callback_v2_dynamic*, fb2k::callback_merit_t) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 //! Implement this service to appear on "library viewers" list in Media Library preferences page.\n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 //! Use library_viewer_factory_t to register.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 class NOVTABLE library_viewer : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 //! Retrieves GUID of your preferences page (pfc::guid_null if you don't have one).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 virtual GUID get_preferences_page() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 //! Queries whether "activate" action is supported (relevant button will be disabled if it's not).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 virtual bool have_activate() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 //! Activates your Media Library viewer component (e.g. shows its window).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 virtual void activate() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140 //! Retrieves GUID of your library_viewer implementation, for internal identification. Note that this not the same as preferences page GUID.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 virtual GUID get_guid() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 //! Retrieves name of your Media Library viewer, a null-terminated UTF-8 encoded string.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 virtual const char * get_name() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(library_viewer);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 template<typename T>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 class library_viewer_factory_t : public service_factory_single_t<T> {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152 //! \since 0.9.5.4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 //! Allows you to spawn a popup Media Library Search window with any query string that you specify. \n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 //! Usage: library_search_ui::get()->show("querygoeshere");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 class NOVTABLE library_search_ui : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 virtual void show(const char * query) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 FB2K_MAKE_SERVICE_COREAPI(library_search_ui)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 //! \since 0.9.6
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 class NOVTABLE library_file_move_scope : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 FB2K_MAKE_SERVICE_INTERFACE(library_file_move_scope, service_base)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 //! \since 0.9.6
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 class NOVTABLE library_file_move_manager : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 FB2K_MAKE_SERVICE_COREAPI(library_file_move_manager)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 virtual library_file_move_scope::ptr acquire_scope() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 virtual bool is_move_in_progress() = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 //! \since 0.9.6
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 class NOVTABLE library_file_move_notify_ {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 virtual void on_state_change(bool isMoving) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 //! \since 0.9.6
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 class NOVTABLE library_file_move_notify : public service_base, public library_file_move_notify_ {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(library_file_move_notify)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 #ifdef _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 //! \since 0.9.6.1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192 class NOVTABLE library_meta_autocomplete : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193 FB2K_MAKE_SERVICE_COREAPI(library_meta_autocomplete)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 virtual bool get_value_list(const char * metaName, pfc::com_ptr_t<IUnknown> & out) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
197
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
198 //! \since 1.6.1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
199 //! Caching & asynchronous version. \n
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
200 //! Keep a reference to your library_meta_autocomplete_v2 object in your dialog class to cache the looked up values & speed up the operation.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
201 class NOVTABLE library_meta_autocomplete_v2 : public service_base {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
202 FB2K_MAKE_SERVICE_COREAPI(library_meta_autocomplete_v2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
203 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
204 virtual bool get_value_list_async(const char* metaName, pfc::com_ptr_t<IUnknown>& out) = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
205 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
206
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
207 #endif // _WIN32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
208