00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00009 00010 #ifndef _AK_WWISE_ISOURCECONTROL_H 00011 #define _AK_WWISE_ISOURCECONTROL_H 00012 00013 // Include the header file that defines the BSTR type. 00014 #include <wtypes.h> 00015 00016 #include "ISourceControlUtilities.h" 00017 #include "SourceControlContainers.h" 00018 00019 // Audiokinetic namespace 00020 namespace AK 00021 { 00022 // Audiokinetic Wwise namespace 00023 namespace Wwise 00024 { 00026 class SourceControlConstant 00027 { 00028 public: 00030 static const unsigned int s_uiMaxWorkUnitName = 128; 00032 static const DWORD s_dwInvalidOperationID = (DWORD)-1; 00033 }; 00034 00040 class ISourceControl 00041 { 00042 public: 00043 00045 00046 00049 enum OperationResult 00050 { 00051 OperationResult_Succeed = 0, 00052 OperationResult_Failed, 00053 OperationResult_TimedOut, 00054 OperationResult_NotImplemented 00055 }; 00056 00059 enum OperationMenuType 00060 { 00061 OperationMenuType_WorkUnits = 0, 00062 OperationMenuType_Sources, 00063 OperationMenuType_Explorer 00064 }; 00065 00067 enum CreateOrModifyOperation 00068 { 00069 CreateOrModifyOperation_Create = 1 << 0, 00070 CreateOrModifyOperation_Modify = 1 << 1, 00071 }; 00072 00074 enum OperationEffect 00075 { 00076 OperationEffect_LocalContentModification = 1 << 0, 00077 OperationEffect_ServerContentModification = 1 << 1, 00078 }; 00079 00081 00083 class IOperationResult 00084 { 00085 public: 00087 virtual OperationResult GetOperationResult() = 0; 00088 00090 virtual void Destroy() = 0; 00091 }; 00092 00099 class IFileOperationResult : public IOperationResult 00100 { 00101 public: 00103 virtual void GetMovedFile( 00104 unsigned int in_uiIndex, 00105 LPWSTR out_szFrom, 00106 LPWSTR out_szTo, 00107 unsigned int in_uiArraySize 00108 ) = 0; 00109 00111 virtual void GetFile( 00112 unsigned int in_uiIndex, 00113 LPWSTR out_szPath, 00114 unsigned int in_uiArraySize 00115 ) = 0; 00116 00118 virtual unsigned int GetFileCount() = 0; 00119 }; 00120 00123 struct FilenameToStatusMapItem 00124 { 00125 BSTR m_bstrStatus; 00126 BSTR m_bstrOwner; 00127 }; 00128 00130 struct OperationListItem 00131 { 00132 DWORD m_dwOperationID; 00133 bool m_bEnabled; 00134 }; 00135 00138 struct FilenameToIconMapItem 00139 { 00140 HICON m_hIcon; 00141 BSTR m_bstrToolTip; 00142 }; 00143 00145 00146 00150 typedef SourceControlContainers::IAkList<LPCWSTR, LPCWSTR> StringList; 00151 00154 typedef SourceControlContainers::IAkList<GUID> PluginIDList; 00155 00162 typedef SourceControlContainers::IAkList<OperationListItem> OperationList; 00163 00165 00167 00168 00174 typedef SourceControlContainers::IAkMap<LPCWSTR, LPCWSTR, FilenameToIconMapItem, const FilenameToIconMapItem&> FilenameToIconMap; 00175 00182 typedef SourceControlContainers::IAkMap<LPCWSTR, LPCWSTR, FilenameToStatusMapItem, const FilenameToStatusMapItem&> FilenameToStatusMap; 00183 00185 00187 class PluginInfo 00188 { 00189 public: 00190 BSTR m_bstrName; 00191 unsigned int m_uiVersion; 00192 00193 bool m_bShowConfigDlgAvailable; 00194 DWORD m_dwUpdateCommandID; 00195 DWORD m_dwCommitCommandID; 00196 DWORD m_dwRenameCommandID; 00197 DWORD m_dwMoveCommandID; 00198 DWORD m_dwAddCommandID; 00199 DWORD m_dwDeleteCommandID; 00200 DWORD m_dwRevertCommandID; 00201 DWORD m_dwDiffCommandID; 00202 DWORD m_dwCheckOutCommandID; 00203 DWORD m_dwRenameNoUICommandID; 00204 DWORD m_dwMoveNoUICommandID; 00205 DWORD m_dwDeleteNoUICommandID; 00206 bool m_bStatusIconAvailable; 00207 }; 00208 00210 virtual void Init( 00211 AK::Wwise::ISourceControlUtilities* in_pUtilities, 00212 00213 bool in_bAutoAccept 00214 ) = 0; 00215 00217 virtual void Term() = 0; 00218 00220 virtual void Destroy() = 0; 00221 00226 virtual bool ShowConfigDlg() = 0; 00227 00230 virtual AK::Wwise::ISourceControl::OperationResult GetOperationList( 00231 OperationMenuType in_menuType, 00232 const StringList& in_rFilenameList, 00233 OperationList& out_rOperationList 00234 ) = 0; 00235 00237 // \return A mask of all the applicable OperationEffect enum values 00238 virtual LPCWSTR GetOperationName( 00239 DWORD in_dwOperationID 00240 ) = 0; 00241 00243 // \return A mask of all the applicable OperationEffect enum values 00244 virtual DWORD GetOperationEffect( 00245 DWORD in_dwOperationID 00246 ) = 0; 00247 00250 virtual AK::Wwise::ISourceControl::OperationResult GetFileStatus( 00251 const StringList& in_rFilenameList, 00252 FilenameToStatusMap& out_rFileStatusMap, 00253 DWORD in_dwTimeoutMs = INFINITE 00254 ) = 0; 00255 00259 virtual AK::Wwise::ISourceControl::OperationResult GetFileStatusIcons( 00260 const StringList& in_rFilenameList, 00261 FilenameToIconMap& out_rFileIconsMap, 00262 DWORD in_dwTimeoutMs = INFINITE 00263 ) = 0; 00264 00268 virtual AK::Wwise::ISourceControl::OperationResult GetMissingFilesInDirectories( 00269 const StringList& in_rDirectoryList, 00270 StringList& out_rFilenameList 00271 ) = 0; 00272 00276 virtual IOperationResult* DoOperation( 00277 DWORD in_dwOperationID, 00278 const StringList& in_rFilenameList, 00279 const StringList* in_pTargetFilenameList = NULL 00280 ) = 0; 00281 00286 virtual AK::Wwise::ISourceControl::OperationResult PreCreateOrModify( 00287 const StringList& in_rFilenameList, 00288 CreateOrModifyOperation in_eOperation, 00289 bool& out_rContinue 00290 ) = 0; 00291 00296 virtual AK::Wwise::ISourceControl::OperationResult PostCreateOrModify( 00297 const StringList& in_rFilenameList, 00298 CreateOrModifyOperation in_eOperation, 00299 bool& out_rContinue 00300 ) = 0; 00301 00304 virtual AK::Wwise::ISourceControl::OperationResult GetFilesForOperation( 00305 DWORD in_dwOperationID, 00306 const StringList& in_rFilenameList, 00307 StringList& out_rFilenameList, 00308 FilenameToStatusMap& out_rFileStatusMap 00309 ) = 0; 00310 00312 00314 00315 00317 typedef void (__stdcall* GetSourceControlIDListFuncPtr)( 00318 PluginIDList& out_rPluginIDList 00319 ); 00320 00322 typedef void (__stdcall* GetSourceControlPluginInfoFuncPtr)( 00323 const GUID& in_rguidPluginID, 00324 PluginInfo& out_rPluginInfo 00325 ); 00326 00329 typedef ISourceControl* (__stdcall* GetSourceControlInstanceFuncPtr)( 00330 const GUID& in_guidPluginID 00331 ); 00332 }; 00333 } 00334 } 00335 00336 #endif // _AK_WWISE_ISOURCECONTROL_H
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요