Version

menu_open
Wwise SDK 2023.1.9
ISourceControl.h
Go to the documentation of this file.
1 /*******************************************************************************
2 The content of this file includes portions of the AUDIOKINETIC Wwise Technology
3 released in source code form as part of the SDK installer package.
4 
5 Commercial License Usage
6 
7 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology
8 may use this file in accordance with the end user license agreement provided
9 with the software or, alternatively, in accordance with the terms contained in a
10 written agreement between you and Audiokinetic Inc.
11 
12 Apache License Usage
13 
14 Alternatively, this file may be used under the Apache License, Version 2.0 (the
15 "Apache License"); you may not use this file except in compliance with the
16 Apache License. You may obtain a copy of the Apache License at
17 http://www.apache.org/licenses/LICENSE-2.0.
18 
19 Unless required by applicable law or agreed to in writing, software distributed
20 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
21 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for
22 the specific language governing permissions and limitations under the License.
23 
24  Copyright (c) 2024 Audiokinetic Inc.
25 *******************************************************************************/
26 
27 /// \file
28 /// Wwise source control plug-in interface, used to implement the source control plug-in.
29 
30 #ifndef _AK_WWISE_ISOURCECONTROL_H
31 #define _AK_WWISE_ISOURCECONTROL_H
32 
33 // Include the header file that defines the BSTR type.
34 #ifdef AK_WIN
35 #include <wtypes.h>
36 #endif
37 
38 #include "ISourceControlUtilities.h"
39 #include "SourceControlContainers.h"
40 
41 // Audiokinetic namespace
42 namespace AK
43 {
44  // Audiokinetic Wwise namespace
45  namespace Wwise
46  {
47  /// This class contains static constants that can be useful to the plug-in.
49  {
50  public:
51  /// Maximum length that a work unit name can be
52  static const unsigned int s_uiMaxWorkUnitName = 128;
53  /// Invalid operation ID (MUST NOT BE USED as an operation ID in OperationListItem)
54  static const DWORD s_dwInvalidOperationID = (DWORD)-1;
55  };
56 
57  /// Wwise source control plug-in interface. This is the interface that the plug-in must implement. It contains
58  /// all the necessary functions to perform source control operations and manage the Wwise source control UI.
59  /// \akwarning
60  /// The functions in this interface are not thread-safe, unless stated otherwise.
61  /// \endakwarning
62  /// \sa
63  /// - \ref source_control_dll_creation_object_information
65  {
66  public:
67 
68  /// \name Enumeration types
69  //@{
70 
71  /// Operation result. Some interface functions need to return the result of the operation. This is used
72  /// by Wwise to manage various errors.
74  {
75  OperationResult_Succeed = 0, ///< The operation succeeded
76  OperationResult_Failed, ///< The operation failed
77  OperationResult_TimedOut, ///< The operation timed out
78  OperationResult_Cancelled, ///< The operation was cancelled
79  OperationResult_NotImplemented ///< The operation is not implemented
80  };
81 
82  /// Menu type. The operation list may vary depending on the location where a menu containing operations
83  /// needs to be displayed.
85  {
86  OperationMenuType_WorkUnits = 0,///< The menu is displayed in the File Manager's 'Work Units' tab
87  OperationMenuType_Sources, ///< The menu is displayed in the File Manager's 'Sources' tab
88  OperationMenuType_Generated, ///< The menu is displayed in the File Manager's 'Generated' tab
89  OperationMenuType_Explorer ///< The menu is displayed in the Project Explorer
90  };
91 
92  /// Pre/PostCreateOrModify Operation flags. These flags represent the operation(s) performed on files.
94  {
95  CreateOrModifyOperation_Create = 1 << 0, ///< Files will be created during the operation
96  CreateOrModifyOperation_Modify = 1 << 1, ///< Files will be modified during the operation
97  };
98 
99  /// The operation's effect on the file(s) involved.
101  {
102  OperationEffect_LocalContentModification = 1 << 0, ///< The operation will modify the local content of the file
103  OperationEffect_ServerContentModification = 1 << 1, ///< The operation will modify the remote content (on the server) of the file
104  };
105 
106  //@}
107 
108  /// The base interface for operations that return information to Wwise
110  {
111  public:
112  /// Returns OperationResult_Succeed or OperationResult_Failed
114 
115  /// Implementations should call "delete this;".
116  virtual void Destroy() = 0;
117  };
118 
119  /// The result returned by DoOperation for a Move, Rename or Delete operation.
120  /// An instance of this class is allocated by the plugin and freed by Wwise.
121  /// The operation ID must be identified by :
122  /// PluginInfo::m_dwMoveCommandID, PluginInfo::m_dwMoveNoUICommandID,
123  /// PluginInfo::m_dwRenameCommandID or PluginInfo::m_dwRenameNoUICommandID
124  /// PluginInfo::m_dwDeleteCommandID or PluginInfo::m_dwDeleteNoUICommandID
126  {
127  public:
128  /// Return the move source and destination for the file at index in_uiIndex
129  virtual void GetMovedFile(
130  unsigned int in_uiIndex, ///< in: The index of the moved file. Must be >= 0 and < GetFileCount()
131  LPWSTR out_szFrom, ///< out: String buffer to receive the source path
132  LPWSTR out_szTo, ///< out: String buffer to receive the destination path
133  unsigned int in_uiArraySize ///< in: Size of the buffers (out_szFrom and out_szTo)
134  ) = 0;
135 
136  /// Return the successful file at index in_uiIndex
137  virtual void GetFile(
138  unsigned int in_uiIndex, ///< in: The index of the file. Must be >= 0 and < GetFileCount()
139  LPWSTR out_szPath, ///< out: String buffer to receive the source path
140  unsigned int in_uiArraySize ///< in: Size of the buffers (out_szFrom and out_szTo)
141  ) = 0;
142 
143  /// Returns how many files were moved during the operation
144  virtual unsigned int GetFileCount() = 0;
145  };
146 
147  /// 'Filename to Status' map item. This is the type used in the AK::Wwise::ISourceControl::FilenameToStatusMap
148  /// SourceControlContainers::IAkMap template parameter structure.
150  {
151  BSTR m_bstrStatus; ///< Text displayed in the File Manager's 'Status' column
152  BSTR m_bstrOwner; ///< Text displayed in the File Manager's 'Owners' column
153  };
154 
155  /// Operation list item. This is the type used in the AK::Wwise::ISourceControl::OperationList SourceControlContainers::IAkList template class.
157  {
158  DWORD m_dwOperationID; ///< The operation ID
159  bool m_bEnabled; ///< True: the operation is enabled in the menu, False: the operation is disabled (grayed out) in the menu
160  };
161 
162  /// FilenameToIconMap item. This is the type used to display the file status icon and tool tip text
163  /// in the Project Explorer.
165  {
166  HICON m_hIcon; ///< A handle to an icon that will be displayed in the Project Explorer
167  BSTR m_bstrToolTip; ///< The tool tip text that will be displayed when the user mouses over the icon
168  };
169 
170  /// \name List types
171  //@{
172 
173  /// String List. When Wwise needs to pass a file name list, it gives this container to the plug-in.
174  /// \sa
175  /// - AK::Wwise::SourceControlContainers::IAkList
177 
178  /// Boolean List. When Wwise needs to pass a boolean list, it gives this container to the plug-in.
179  /// \sa
180  /// - AK::Wwise::SourceControlContainers::IAkList
182 
183  /// Plug-in ID list. When Wwise needs to have the list of plug-ins that a DLL contains, it requests
184  /// the list of plug-in IDs using a function exported by the DLL.
186 
187  /// When Wwise needs to have the list of operations that are available in a certain context, it requests
188  /// the list of operations using this list type. The contexts are determined by the AK::Wwise::ISourceControl::OperationMenuType
189  /// enumeration type.
190  /// \sa
191  /// - AK::Wwise::ISourceControl::OperationListItem
192  /// - AK::Wwise::SourceControlContainers::IAkList
194 
195  //@}
196 
197  /// \name Map types
198  //@{
199 
200  /// The AK:Wwise::ISourceControl interface offers a way to display custom icons in the Project Explorer. This map
201  /// type must be filled in by the plug-in when Wwise gives it a file name list. CStringW objects are used as keys, and are associated
202  /// to FilenameToIconMapItem objects. The HICON m_hIcon member will be NULL when there is no icon associated with the file.
203  /// \sa
204  /// - AK::Wwise::SourceControlContainers::IAkMap
206 
207  /// When the File Manager needs to fill in the 'Status' and 'Owners' columns of work units or source lists,
208  /// the plug-in needs to fill in this map with the corresponding text. File names are used as keys, and are associated
209  /// to the text to be displayed in the 'Status' and 'Owners' columns.
210  /// \sa
211  /// - AK::Wwise::ISourceControl::FilenameToStatusMapItem
212  /// - AK::Wwise::SourceControlContainers::IAkMap
214 
215  //@}
216 
218 
219  /// Plug-in information structure. This structure gives a simple overview of the plug-in's capabilities.
220  class PluginInfo
221  {
222  public:
223  BSTR m_bstrName; ///< The name of the plug-in displayed in the Project Settings plug-in list
224  unsigned int m_uiVersion; ///< The current version of the plug-in
225 
226  bool m_bShowConfigDlgAvailable; ///< Used to enable/disable the 'Config...' button in the Project Settings
227  DWORD m_dwUpdateCommandID; ///< Indicates the command ID for the Update command, s_dwInvalidOperationID (-1) if not supported
228  DWORD m_dwCommitCommandID; ///< Indicates the command ID for the Commit/Submit/Checkin command, s_dwInvalidOperationID (-1) if not supported
229  DWORD m_dwRenameCommandID; ///< Indicates the command ID for the Rename command, s_dwInvalidOperationID (-1) if not supported
230  DWORD m_dwMoveCommandID; ///< Indicates the command ID for the Move command, s_dwInvalidOperationID (-1) if not supported
231  DWORD m_dwAddCommandID; ///< Indicates the command ID for the Add command, s_dwInvalidOperationID (-1) if not supported
232  DWORD m_dwDeleteCommandID; ///< Indicates the command ID for the Delete command, s_dwInvalidOperationID (-1) if not supported
233  DWORD m_dwRevertCommandID; ///< Indicates the command ID for the Revert command, s_dwInvalidOperationID (-1) if not supported
234  DWORD m_dwDiffCommandID; ///< Indicates the command ID for the Diff command, s_dwInvalidOperationID (-1) if not supported
235  DWORD m_dwCheckOutCommandID; ///< Indicates the command ID for the CheckOut command, s_dwInvalidOperationID (-1) if not supported
236  DWORD m_dwRenameNoUICommandID; ///< Indicates the command ID for the Rename command, showing no User Interface, s_dwInvalidOperationID (-1) if not supported
237  DWORD m_dwMoveNoUICommandID; ///< Indicates the command ID for the Move command, showing no User Interface, s_dwInvalidOperationID (-1) if not supported
238  DWORD m_dwAddNoUICommandID; ///< Indicates the command ID for the Add command, showing no User Interface, s_dwInvalidOperationID (-1) if not supported
239  DWORD m_dwDeleteNoUICommandID; ///< Indicates the command ID for the Delete command, showing no User Interface, s_dwInvalidOperationID (-1) if not supported
240  DWORD m_dwRevertNoUICommandID; ///< Indicates the command ID for the Revert command, showing no User Interface, s_dwInvalidOperationID (-1) if not supported
241  DWORD m_dwCheckOutNoUICommandID;///< Indicates the command ID for the CheckOut command, showing no User Interface, s_dwInvalidOperationID (-1) if not supported
242  bool m_bStatusIconAvailable; ///< Indicates that the plug-in supports Project Explorer custom icons
243  };
244 
245  /// This function is called when the plug-in is initialized after its creation.
246  virtual void Init(
247  AK::Wwise::ISourceControlUtilities* in_pUtilities, ///< A pointer to the utilities class. The interface is not
248  ///< destroyed while an instance of the plug-in exists.
249  bool in_bAutoAccept ///< Used when running in command line mode, where user should not be prompted to confirm source control transactions.
250  ) = 0;
251 
252  /// This function is called when the plug-in is terminated before its destruction.
253  virtual void Term() = 0;
254 
255  /// This function destroys the plug-in. The implementation is generally '{ delete this; }'.
256  virtual void Destroy() = 0;
257 
258  /// This method connects the source control plugin
259  virtual OperationResult Connect(const IConnectParameterMap & parameterMap) = 0;
260 
261  /// This method disconnects the source control plugin
262  virtual OperationResult Disconnect() = 0;
263 
264  /// This function is called when the user clicks the 'Config...' button in the Project Settings.
265  /// \return True if the user accepts the configuration, False otherwise
266  /// \sa
267  /// - AK::Wwise::ISourceControl::PluginInfo::m_bShowConfigDlgAvailable
268  virtual bool ShowConfigDlg() = 0;
269 
270  /// Gets the operation list to be displayed in a menu.
271  /// \return The result of the operation
273  OperationMenuType in_menuType, ///< The type of menu where the operation list will be displayed
274  const StringList& in_rFilenameList, ///< The file name list for which Wwise needs to get the operation list
275  OperationList& out_rOperationList ///< The returned operation list available in this context
276  ) = 0;
277 
278  /// Gets the operation name to display in user interface
279  // \return A mask of all the applicable OperationEffect enum values
280  virtual LPCWSTR GetOperationName(
281  DWORD in_dwOperationID ///< The ID of the operation, as specified in OperationListItem
282  ) = 0;
283 
284  /// Gets the operation effect on the file(s) involved in the operation.
285  // \return A mask of all the applicable OperationEffect enum values
286  virtual DWORD GetOperationEffect(
287  DWORD in_dwOperationID ///< The ID of the operation, as specified in OperationListItem
288  ) = 0;
289 
290  /// Gets the text to be displayed in the 'Status' and 'Owners' columns of the File Manager.
291  /// \return The result of the operation
293  const StringList& in_rFilenameList, ///< A list of the file names for which Wwise needs to get the status
294  FilenameToStatusMap& out_rFileStatusMap,///< The returned 'Filename To Status' map
295  DWORD in_dwTimeoutMs = INFINITE ///< The maximum timeout in millisecond for the request to be cancelled, pass INFINITE for no timeout
296  ) = 0;
297 
298  /// In a similar way to AK::Wwise::ISourceControl::GetFileStatus(), this function gets the icons to be displayed in the
299  /// Project Explorer.
300  /// \return The result of the operation
302  const StringList& in_rFilenameList, ///< A list of the file names for which Wwise needs to get the icons
303  FilenameToIconMap& out_rFileIconsMap, ///< The returned 'Filename To Icons' map
304  DWORD in_dwTimeoutMs = INFINITE ///< The maximum timeout in millisecond for the request to be cancelled, pass INFINITE for no timeout
305  ) = 0;
306 
307  /// Combines GetFileStatus() and GetFileStatusIcons() to get the source control file icons and the text to be displayed in the 'Status' and 'Owners'
308  /// columns of the File Manager.
309  /// \return The result of the operation
311  const StringList& in_rFilenameList, ///< A list of the file names for which Wwise needs to get the icons
312  FilenameToStatusMap& out_rFileStatusMap,///< The returned 'Filename To Status' map
313  FilenameToIconMap& out_rFileIconsMap, ///< The returned 'Filename To Icons' map
314  DWORD in_dwTimeoutMs = INFINITE ///< The maximum timeout in millisecond for the request to be cancelled, pass INFINITE for no timeout
315  ) = 0;
316 
317  /// Gets the files that should be displayed in the File Manager file list, but that are not on the local disk.
318  /// Deleted files that need to be submitted to the server are an example of implementation.
319  /// \return The result of the operation
321  const StringList& in_rDirectoryList, ///< A list of directories in which Wwise needs to get missing files
322  StringList& out_rFilenameList ///< The returned missing files
323  ) = 0;
324 
325  /// Performs an operation on files. This function is called when the user clicks on a source control operation in a menu.
326  /// The returned IOperationResult must be allocated on the heap and freed by the caller using IOperationResult::Destroy.
327  /// For Rename and Move operations in No-User-Interface mode, in_pTargetFilenameList contains the list of target names are known in advance.
328  [[nodiscard]] virtual IOperationResult* DoOperation(
329  DWORD in_dwOperationID, ///< The ID of the operation that the user selected from the menu
330  const StringList& in_rFilenameList, ///< A list of the names of the files that the user selected in the File Manager or in the Project Explorer.
331  const StringList* in_pTargetFilenameList = NULL ///< Optional: A list of the names of the destination files. Pass NULL when not specified.
332  ) = 0;
333 
334  /// This method is called when the user adds files to the project (Work Units or Sources), saves the project,
335  /// or triggers any call to a Wwise operation that could alter source control files. It is called before Wwise performs
336  /// the operation and is always followed by a call to PostCreateOrModify.
337  /// \return The result of the operation
339  const StringList& in_rFilenameList, ///< A list of the names of the files that are to be added (some files may already exist)
340  CreateOrModifyOperation in_eOperation, ///< The operation(s) that will be performed on these files
341  bool& out_rContinue ///< A returned flag that indicates if Wwise is continuing the current operation
342  ) = 0;
343 
344  /// This method is called when the user adds files to the project (Work Units or Sources), saves the project,
345  /// or triggers any call to a Wwise operation that could alter source control files. It is called after Wwise performs
346  /// the operation and is always preceded by a call to PreCreateOrModify.
347  /// \return The result of the operation
349  const StringList& in_rFilenameList, ///< A list of the names of the files that are to be added (Some files may already exist)
350  CreateOrModifyOperation in_eOperation, ///< The operation(s) that will be performed on these files
351  bool& out_rContinue ///< A returned flag that indicates if Wwise is continuing the current operation
352  ) = 0;
353 
354  /// This methods returns the list files that can be committed
355  /// \return The result of the operation
357  DWORD in_dwOperationID, ///< The operation to verify on each file
358  const StringList& in_rFilenameList, ///< The files to query
359  StringList& out_rFilenameList, ///< Out: The files that can have the operation done
360  FilenameToStatusMap& out_rFileStatusMap ///< Out: The file status of all files
361  ) = 0;
362 
363  /// This methods returns whether the specified operation can be applied to each file.
364  /// \return The result of the operation
366  DWORD in_dwOperationID, ///< The operation to verify on each file
367  const StringList& in_rFilenameList, ///< The files to query
368  BooleanList& out_rFileStatusList ///< Out: For each file in in_rFilenameList, whether in_dwOperationID can be applied.
369  ) = 0;
370 
371  /// This methods returns a boolean for each file, indicating whether the file is under source control.
372  /// \return The result of the operation
374  const StringList& in_rFilenameList, ///< The files to query
375  BooleanList& out_rFileStatusList ///< Out: List of source control file status.
376  ) = 0;
377 
378  //@}
379 
380  /// \name Exported functions prototypes
381  //@{
382 
383  /// Gets the plug-in ID list contained by the DLL file.
384  typedef void (__stdcall* GetSourceControlIDListFuncPtr)(
385  PluginIDList& out_rPluginIDList ///< The List of plug-in IDs
386  );
387 
388  /// Gets the AK::Wwise::ISourceControl::PluginInfo class associated with a given plug-in ID.
389  typedef void (__stdcall* GetSourceControlPluginInfoFuncPtr)(
390  const GUID& in_rguidPluginID, ///< The ID of the plug-in
391  PluginInfo& out_rPluginInfo ///< The returned plug-in info
392  );
393 
394  /// Gets an instance of a plug-in.
395  /// \return A pointer to an AK::Wwise::ISourceControl instance
397  const GUID& in_guidPluginID ///< The requested plug-in ID
398  );
399  };
400  }
401 }
402 
403 #endif // _AK_WWISE_ISOURCECONTROL_H
virtual AK::Wwise::ISourceControl::OperationResult GetFileStatusIcons(const StringList &in_rFilenameList, FilenameToIconMap &out_rFileIconsMap, DWORD in_dwTimeoutMs=INFINITE)=0
BSTR m_bstrStatus
Text displayed in the File Manager's 'Status' column.
@ OperationMenuType_Explorer
The menu is displayed in the Project Explorer.
@ OperationEffect_LocalContentModification
The operation will modify the local content of the file.
Audiokinetic namespace.
virtual AK::Wwise::ISourceControl::OperationResult GetMissingFilesInDirectories(const StringList &in_rDirectoryList, StringList &out_rFilenameList)=0
DWORD m_dwRenameCommandID
Indicates the command ID for the Rename command, s_dwInvalidOperationID (-1) if not supported.
SourceControlContainers::IAkList< LPCWSTR, LPCWSTR > StringList
HICON m_hIcon
A handle to an icon that will be displayed in the Project Explorer.
DWORD m_dwAddCommandID
Indicates the command ID for the Add command, s_dwInvalidOperationID (-1) if not supported.
@ OperationMenuType_Sources
The menu is displayed in the File Manager's 'Sources' tab.
BSTR m_bstrToolTip
The tool tip text that will be displayed when the user mouses over the icon.
virtual DWORD GetOperationEffect(DWORD in_dwOperationID)=0
Gets the operation effect on the file(s) involved in the operation.
virtual void Init(AK::Wwise::ISourceControlUtilities *in_pUtilities, bool in_bAutoAccept)=0
This function is called when the plug-in is initialized after its creation.
BSTR m_bstrOwner
Text displayed in the File Manager's 'Owners' column.
@ OperationResult_TimedOut
The operation timed out.
SourceControlContainers::IAkList< bool > BooleanList
SourceControlContainers::IAkMap< LPCWSTR, LPCWSTR, FilenameToStatusMapItem, const FilenameToStatusMapItem & > FilenameToStatusMap
bool m_bShowConfigDlgAvailable
Used to enable/disable the 'Config...' button in the Project Settings.
DWORD m_dwDeleteNoUICommandID
Indicates the command ID for the Delete command, showing no User Interface, s_dwInvalidOperationID (-...
@ OperationMenuType_WorkUnits
The menu is displayed in the File Manager's 'Work Units' tab.
virtual void Destroy()=0
This function destroys the plug-in. The implementation is generally '{ delete this; }'.
DWORD m_dwDiffCommandID
Indicates the command ID for the Diff command, s_dwInvalidOperationID (-1) if not supported.
@ OperationResult_Succeed
The operation succeeded.
@ OperationResult_NotImplemented
The operation is not implemented.
virtual AK::Wwise::ISourceControl::OperationResult GetFileStatus(const StringList &in_rFilenameList, FilenameToStatusMap &out_rFileStatusMap, DWORD in_dwTimeoutMs=INFINITE)=0
Wwise source control containers interface that is used to pass data containers (list and map) in para...
#define NULL
Definition: AkTypes.h:46
This class contains static constants that can be useful to the plug-in.
virtual IOperationResult * DoOperation(DWORD in_dwOperationID, const StringList &in_rFilenameList, const StringList *in_pTargetFilenameList=NULL)=0
@ OperationMenuType_Generated
The menu is displayed in the File Manager's 'Generated' tab.
virtual AK::Wwise::ISourceControl::OperationResult PreCreateOrModify(const StringList &in_rFilenameList, CreateOrModifyOperation in_eOperation, bool &out_rContinue)=0
DWORD m_dwRenameNoUICommandID
Indicates the command ID for the Rename command, showing no User Interface, s_dwInvalidOperationID (-...
virtual LPCWSTR GetOperationName(DWORD in_dwOperationID)=0
Gets the operation name to display in user interface.
virtual void Destroy()=0
Implementations should call "delete this;".
virtual void GetMovedFile(unsigned int in_uiIndex, LPWSTR out_szFrom, LPWSTR out_szTo, unsigned int in_uiArraySize)=0
Return the move source and destination for the file at index in_uiIndex.
DWORD m_dwCommitCommandID
Indicates the command ID for the Commit/Submit/Checkin command, s_dwInvalidOperationID (-1) if not su...
virtual OperationResult Disconnect()=0
This method disconnects the source control plugin.
DWORD m_dwAddNoUICommandID
Indicates the command ID for the Add command, showing no User Interface, s_dwInvalidOperationID (-1) ...
Operation list item. This is the type used in the AK::Wwise::ISourceControl::OperationList SourceCont...
DWORD m_dwUpdateCommandID
Indicates the command ID for the Update command, s_dwInvalidOperationID (-1) if not supported.
OperationEffect
The operation's effect on the file(s) involved.
DWORD m_dwCheckOutCommandID
Indicates the command ID for the CheckOut command, s_dwInvalidOperationID (-1) if not supported.
virtual AK::Wwise::ISourceControl::OperationResult GetFileStatusAndIcons(const StringList &in_rFilenameList, FilenameToStatusMap &out_rFileStatusMap, FilenameToIconMap &out_rFileIconsMap, DWORD in_dwTimeoutMs=INFINITE)=0
ISourceControl *(__stdcall * GetSourceControlInstanceFuncPtr)(const GUID &in_guidPluginID)
DWORD m_dwCheckOutNoUICommandID
Indicates the command ID for the CheckOut command, showing no User Interface, s_dwInvalidOperationID ...
DWORD m_dwMoveNoUICommandID
Indicates the command ID for the Move command, showing no User Interface, s_dwInvalidOperationID (-1)...
@ CreateOrModifyOperation_Create
Files will be created during the operation.
virtual unsigned int GetFileCount()=0
Returns how many files were moved during the operation.
@ OperationResult_Failed
The operation failed.
virtual OperationResult Connect(const IConnectParameterMap &parameterMap)=0
This method connects the source control plugin.
DWORD m_dwMoveCommandID
Indicates the command ID for the Move command, s_dwInvalidOperationID (-1) if not supported.
SourceControlContainers::IAkList< GUID > PluginIDList
DWORD m_dwDeleteCommandID
Indicates the command ID for the Delete command, s_dwInvalidOperationID (-1) if not supported.
virtual AK::Wwise::ISourceControl::OperationResult CheckFilesForOperation(DWORD in_dwOperationID, const StringList &in_rFilenameList, BooleanList &out_rFileStatusList)=0
BSTR m_bstrName
The name of the plug-in displayed in the Project Settings plug-in list.
virtual OperationResult GetOperationResult()=0
Returns OperationResult_Succeed or OperationResult_Failed.
SourceControlContainers::IAkMap< LPCWSTR, LPCWSTR, FilenameToIconMapItem, const FilenameToIconMapItem & > FilenameToIconMap
@ OperationResult_Cancelled
The operation was cancelled.
bool m_bEnabled
True: the operation is enabled in the menu, False: the operation is disabled (grayed out) in the menu...
unsigned int m_uiVersion
The current version of the plug-in.
virtual AK::Wwise::ISourceControl::OperationResult GetFilesForOperation(DWORD in_dwOperationID, const StringList &in_rFilenameList, StringList &out_rFilenameList, FilenameToStatusMap &out_rFileStatusMap)=0
@ CreateOrModifyOperation_Modify
Files will be modified during the operation.
CreateOrModifyOperation
Pre/PostCreateOrModify Operation flags. These flags represent the operation(s) performed on files.
DWORD m_dwRevertNoUICommandID
Indicates the command ID for the Revert command, showing no User Interface, s_dwInvalidOperationID (-...
static const DWORD s_dwInvalidOperationID
Invalid operation ID (MUST NOT BE USED as an operation ID in OperationListItem)
virtual AK::Wwise::ISourceControl::OperationResult PostCreateOrModify(const StringList &in_rFilenameList, CreateOrModifyOperation in_eOperation, bool &out_rContinue)=0
Plug-in information structure. This structure gives a simple overview of the plug-in's capabilities.
@ OperationEffect_ServerContentModification
The operation will modify the remote content (on the server) of the file.
SourceControlContainers::IAkList< OperationListItem > OperationList
virtual AK::Wwise::ISourceControl::OperationResult GetOperationList(OperationMenuType in_menuType, const StringList &in_rFilenameList, OperationList &out_rOperationList)=0
virtual AK::Wwise::ISourceControl::OperationResult FilesUnderSourceControl(const StringList &in_rFilenameList, BooleanList &out_rFileStatusList)=0
bool m_bStatusIconAvailable
Indicates that the plug-in supports Project Explorer custom icons.
SourceControlContainers::IAkMap< LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR > IConnectParameterMap
The base interface for operations that return information to Wwise.
static const unsigned int s_uiMaxWorkUnitName
Maximum length that a work unit name can be.
virtual void Term()=0
This function is called when the plug-in is terminated before its destruction.
virtual void GetFile(unsigned int in_uiIndex, LPWSTR out_szPath, unsigned int in_uiArraySize)=0
Return the successful file at index in_uiIndex.
void(__stdcall * GetSourceControlPluginInfoFuncPtr)(const GUID &in_rguidPluginID, PluginInfo &out_rPluginInfo)
Gets the AK::Wwise::ISourceControl::PluginInfo class associated with a given plug-in ID.
void(__stdcall * GetSourceControlIDListFuncPtr)(PluginIDList &out_rPluginIDList)
Gets the plug-in ID list contained by the DLL file.
virtual bool ShowConfigDlg()=0
DWORD m_dwRevertCommandID
Indicates the command ID for the Revert command, s_dwInvalidOperationID (-1) if not supported.

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise