00001 /******************************************************************************* 00002 The content of this file includes portions of the AUDIOKINETIC Wwise Technology 00003 released in source code form as part of the SDK installer package. 00004 00005 Commercial License Usage 00006 00007 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology 00008 may use this file in accordance with the end user license agreement provided 00009 with the software or, alternatively, in accordance with the terms contained in a 00010 written agreement between you and Audiokinetic Inc. 00011 00012 Apache License Usage 00013 00014 Alternatively, this file may be used under the Apache License, Version 2.0 (the 00015 "Apache License"); you may not use this file except in compliance with the 00016 Apache License. You may obtain a copy of the Apache License at 00017 http://www.apache.org/licenses/LICENSE-2.0. 00018 00019 Unless required by applicable law or agreed to in writing, software distributed 00020 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 00021 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for 00022 the specific language governing permissions and limitations under the License. 00023 00024 Version: <VERSION> Build: <BUILDNUMBER> 00025 Copyright (c) <COPYRIGHTYEAR> Audiokinetic Inc. 00026 *******************************************************************************/ 00027 00028 /// \file 00029 /// Wwise source control containers interface that is used to pass data containers (list and map) in parameters. 00030 00031 #ifndef _AK_WWISE_SOURCECONTROLCONTAINERS_H 00032 #define _AK_WWISE_SOURCECONTROLCONTAINERS_H 00033 00034 // Audiokinetic namespace 00035 namespace AK 00036 { 00037 // Audiokinetic Wwise namespace 00038 namespace Wwise 00039 { 00040 namespace SourceControlContainers 00041 { 00042 /// Container position 00043 struct __AkPos{}; 00044 /// Pointer to a container position 00045 typedef __AkPos* AkPos; 00046 00047 // IAkList 00048 /// Template parameters: 00049 /// - Type: Class of object stored in the list. 00050 /// - Arg_Type: Type used to reference objects stored in the list. Can be a reference. By default, this is a reference to the type. 00051 /// 00052 /// \warning The functions in this interface are not thread-safe, unless stated otherwise. 00053 /// 00054 /// \aknote The class implementing this interface is a wrapper around the MFC \b CList class. Documentation can be found on MSDN. 00055 /// \endaknote 00056 template <class Type, class Arg_Type = const Type&> 00057 class IAkList 00058 { 00059 public: 00060 virtual unsigned int GetCount() const = 0; 00061 virtual unsigned int GetSize() const = 0; 00062 virtual bool IsEmpty() const = 0; 00063 00064 virtual AkPos AddHead( Arg_Type in_newElement ) = 0; 00065 virtual AkPos AddTail( Arg_Type in_newElement ) = 0; 00066 00067 virtual void RemoveHead() = 0; 00068 virtual void RemoveTail() = 0; 00069 virtual void RemoveAt( AkPos in_position ) = 0; 00070 virtual void RemoveAll() = 0; 00071 00072 virtual Type& GetHead() = 0; 00073 virtual const Type& GetHead() const = 0; 00074 virtual Type& GetTail() = 0; 00075 virtual const Type& GetTail() const = 0; 00076 virtual AkPos GetHeadPosition() const = 0; 00077 virtual AkPos GetTailPosition() const = 0; 00078 virtual Type& GetNext( AkPos& in_rPosition ) = 0; 00079 virtual const Type& GetNext( AkPos& in_rPosition ) const = 0; 00080 virtual Type& GetPrev( AkPos& in_rPosition ) = 0; 00081 virtual const Type& GetPrev( AkPos& in_rPosition ) const = 0; 00082 virtual Type& GetAt( AkPos in_position ) = 0; 00083 virtual const Type& GetAt( AkPos in_position ) const = 0; 00084 00085 virtual void SetAt( AkPos in_pos, Arg_Type in_newElement ) = 0; 00086 virtual AkPos InsertBefore( AkPos in_position, Arg_Type in_newElement ) = 0; 00087 virtual AkPos InsertAfter( AkPos in_position, Arg_Type in_newElement ) = 0; 00088 }; 00089 00090 // IAkMap 00091 /// Template parameters: 00092 /// - Key: Class of the object used as the map key. 00093 /// - Arg_Key: Data type used for Key arguments. 00094 /// - Value: Class of the object stored in the map. 00095 /// - Arg_Value: Data type used for Value arguments; usually a reference to Value. 00096 /// 00097 /// \warning The functions in this interface are not thread-safe, unless stated otherwise. 00098 /// 00099 /// \aknote The class implementing this interface is a wrapper around the MFC \b CMap class. Documentation can be found on MSDN. 00100 /// \endaknote 00101 template <class Key, class Arg_Key, class Value, class Arg_Value> 00102 class IAkMap 00103 { 00104 public: 00105 virtual unsigned int GetCount() const = 0; 00106 virtual unsigned int GetSize() const = 0; 00107 virtual bool IsEmpty() const = 0; 00108 00109 virtual bool Lookup( Arg_Key in_key, Value& in_rValue ) const = 0; 00110 00111 virtual Value& operator[]( Arg_Key in_key ) = 0; 00112 virtual void SetAt( Arg_Key in_key, Arg_Value in_newValue ) = 0; 00113 00114 virtual bool RemoveKey( Arg_Key in_key ) = 0; 00115 virtual void RemoveAll() = 0; 00116 00117 virtual AkPos GetStartPosition() const = 0; 00118 virtual void GetNextAssoc( AkPos& in_rNextPosition, Key& in_rKey, Value& in_rValue ) const = 0; 00119 }; 00120 }; 00121 } 00122 } 00123 00124 #endif // _AK_WWISE_SOURCECONTROLCONTAINERS_H
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise