Table of Contents

include/AK/Wwise/PlatformID.h

Go to the documentation of this file.
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 /// Unique identifiers for platforms in the Wwise authoring application.
00030 
00031 #ifndef AK_WWISE_PLATFORMID_H
00032 #define AK_WWISE_PLATFORMID_H
00033 
00034 #if defined( _MSC_VER )
00035     #define AK_ID_DECLARE extern const _declspec( selectany )
00036 #else
00037     #define AK_ID_DECLARE const
00038 #endif
00039 
00040 struct BasePlatformID
00041 {
00042     BasePlatformID():guid( GUID_NULL ){}
00043 
00044     // The Create function is a functionnal replacement for the BasePlatformID() constructor taking a GUID in parameters.
00045     // This is to avoid situations where someone would pass a GUID instead of a BasePlatformID in a function call while migrating, which would
00046     // compile but would lead the user into serious errors.
00047     static BasePlatformID Create( const GUID& in_BasePlatformID  )
00048     {
00049         BasePlatformID ret;
00050         ret.guid = in_BasePlatformID;
00051         return ret;
00052     }
00053 
00054     static BasePlatformID Empty()
00055     {
00056         return BasePlatformID::Create(GUID_NULL);
00057     }
00058 
00059     bool IsNull() const
00060     {
00061         return (guid == GUID_NULL) ? true : false;
00062     }
00063 
00064     bool operator == ( const BasePlatformID& in_rOther ) const
00065     {
00066         return (in_rOther.guid == guid)? true : false;
00067     }
00068     bool operator != ( const BasePlatformID& in_rOther ) const
00069     {
00070         return (in_rOther.guid != guid)? true : false;
00071     }
00072     GUID guid;
00073 
00074     struct GUIDLessNative
00075     {
00076         bool operator()( const BasePlatformID& in_rLeft, const BasePlatformID& in_rRight ) const
00077         {
00078             return ( ::memcmp( &in_rLeft, &in_rRight, sizeof BasePlatformID ) < 0 );
00079         }
00080     };
00081 };
00082 
00083 namespace PlatformID
00084 {
00085     // {6E0CB257-C6C8-4c5c-8366-2740DFC441EB}
00086     AK_ID_DECLARE GUID Windows_unsafeguid = { 0x6E0CB257, 0xC6C8, 0x4c5c, { 0x83, 0x66, 0x27, 0x40, 0xDF, 0xC4, 0x41, 0xEB } };
00087     AK_ID_DECLARE BasePlatformID Windows = BasePlatformID::Create( Windows_unsafeguid );
00088 
00089     // {E0C09284-6F61-43dc-9C9D-D8047E47AB3B}
00090     AK_ID_DECLARE GUID Xbox360_unsafeguid = { 0xE0C09284, 0x6F61, 0x43dc, { 0x9C, 0x9D, 0xD8, 0x04, 0x7E, 0x47, 0xAB, 0x3B } };
00091     AK_ID_DECLARE BasePlatformID Xbox360 = BasePlatformID::Create( Xbox360_unsafeguid );
00092 
00093     // {D85DACB3-8FDB-4aba-8C8A-1F46AFB35366}
00094     AK_ID_DECLARE GUID PS3_unsafeguid = { 0xD85DACB3, 0x8FDB, 0x4aba, { 0x8C, 0x8A, 0x1F, 0x46, 0xAF, 0xB3, 0x53, 0x66 } };
00095     AK_ID_DECLARE BasePlatformID PS3 = BasePlatformID::Create( PS3_unsafeguid );
00096 
00097     // {9C6217D5-DD11-4795-87C1-6CE02853C540}
00098     AK_ID_DECLARE GUID Mac_unsafeguid = { 0x9c6217d5, 0xdd11, 0x4795, { 0x87, 0xc1, 0x6c, 0xe0, 0x28, 0x53, 0xc5, 0x40 } };
00099     AK_ID_DECLARE BasePlatformID Mac = BasePlatformID::Create( Mac_unsafeguid );
00100 
00101     // {2DB55050-4B70-4243-A22C-434D776A0753}
00102     AK_ID_DECLARE GUID VitaSW_unsafeguid = { 0x2db55050, 0x4b70, 0x4243, { 0xa2, 0x2c, 0x43, 0x4d, 0x77, 0x6a, 0x7, 0x53 } };
00103     AK_ID_DECLARE BasePlatformID VitaSW = BasePlatformID::Create( VitaSW_unsafeguid );
00104     
00105     // {091EBCFF-5E04-4260-B025-566206272EA6}
00106     AK_ID_DECLARE GUID VitaHW_unsafeguid = { 0x91ebcff, 0x5e04, 0x4260, { 0xb0, 0x25, 0x56, 0x62, 0x6, 0x27, 0x2e, 0xa6 } };
00107     AK_ID_DECLARE BasePlatformID VitaHW = BasePlatformID::Create( VitaHW_unsafeguid );
00108     
00109     // {3AF9B9B6-6EF1-47E9-B5FE-E30C9E602C77}
00110     AK_ID_DECLARE GUID PS4_unsafeguid = { 0x3af9b9b6, 0x6ef1, 0x47e9, { 0xb5, 0xfe, 0xe3, 0xc, 0x9e, 0x60, 0x2c, 0x77 } };
00111     AK_ID_DECLARE BasePlatformID PS4 = BasePlatformID::Create( PS4_unsafeguid );
00112 
00113     // {ECE03DB4-F948-462d-B2BB-A9173012B1F8}
00114     AK_ID_DECLARE GUID iOS_unsafeguid = { 0xece03db4, 0xf948, 0x462d, { 0xb2, 0xbb, 0xa9, 0x17, 0x30, 0x12, 0xb1, 0xf8 } };
00115     AK_ID_DECLARE BasePlatformID iOS = BasePlatformID::Create( iOS_unsafeguid );
00116 
00117     // {7CB75869-58AD-4458-948A-1935CCB4AC66}
00118     AK_ID_DECLARE GUID WiiUSW_unsafeguid = { 0x7cb75869, 0x58ad, 0x4458, { 0x94, 0x8a, 0x19, 0x35, 0xcc, 0xb4, 0xac, 0x66 } };
00119     AK_ID_DECLARE BasePlatformID WiiUSW = BasePlatformID::Create( WiiUSW_unsafeguid );
00120 
00121     // {FF757AE1-FCE5-420d-9E8A-32139D436F74}
00122     AK_ID_DECLARE GUID WiiUHW_unsafeguid = { 0xff757ae1, 0xfce5, 0x420d, { 0x9e, 0x8a, 0x32, 0x13, 0x9d, 0x43, 0x6f, 0x74 } };
00123     AK_ID_DECLARE BasePlatformID WiiUHW = BasePlatformID::Create( WiiUHW_unsafeguid );
00124 
00125     // {a2d401de-b8b6-4feb-8142-137c34d507CA}
00126     AK_ID_DECLARE GUID Android_unsafeguid = { 0xa2d401de, 0xb8b6, 0x4feb, { 0x81, 0x42, 0x13, 0x7c, 0x34, 0xd5, 0x07, 0xCA } };
00127     AK_ID_DECLARE BasePlatformID Android = BasePlatformID::Create( Android_unsafeguid );
00128 
00129     // {B131584B-9961-4bb5-9C58-A3E9ABFFBBF6}
00130     AK_ID_DECLARE GUID XboxOne_unsafeguid = { 0xb131584b, 0x9961, 0x4bb5, { 0x9c, 0x58, 0xa3, 0xe9, 0xab, 0xff, 0xbb, 0xf6 } };
00131     AK_ID_DECLARE BasePlatformID XboxOne = BasePlatformID::Create( XboxOne_unsafeguid );
00132 
00133     // {BD0BDF13-3125-454f-8BFD-319537169F81}
00134     AK_ID_DECLARE GUID Linux_unsafeguid = { 0xbd0bdf13, 0x3125, 0x454f, { 0x8b, 0xfd, 0x31, 0x95, 0x37, 0x16, 0x9f, 0x81 } };
00135     AK_ID_DECLARE BasePlatformID Linux = BasePlatformID::Create( Linux_unsafeguid );
00136 
00137     // {EBDCC377-12EE-4FFE-A545-8588F83CAC94}
00138     AK_ID_DECLARE GUID Stadia_unsafeguid = { 0xebdcc377, 0x12ee, 0x4ffe, { 0xa5, 0x45, 0x85, 0x88, 0xf8, 0x3c, 0xac, 0x94 } };
00139     AK_ID_DECLARE BasePlatformID Stadia = BasePlatformID::Create(Stadia_unsafeguid);
00140 
00141     // {874F26D2-416D-4698-BFB6-3427CAFCFF9C}
00142     AK_ID_DECLARE GUID NintendoNX_unsafeguid = { 0x874f26d2, 0x416d, 0x4698, { 0xbf, 0xb6, 0x34, 0x27, 0xca, 0xfc, 0xff, 0x9c } };
00143     AK_ID_DECLARE BasePlatformID NintendoNX = BasePlatformID::Create(NintendoNX_unsafeguid);
00144 
00145     // {2EBB8232-E286-4962-A676-D15590AB9647}
00146     AK_ID_DECLARE GUID Lumin_unsafeguid = { 0x2ebb8232, 0xe286, 0x4962, { 0xa6, 0x76, 0xd1, 0x55, 0x90, 0xab, 0x96, 0x47 } };
00147     AK_ID_DECLARE BasePlatformID Lumin = BasePlatformID::Create(Lumin_unsafeguid);
00148 
00149     // {639AD233-23F2-4c0f-9127-79F44C15E1DA}
00150     AK_ID_DECLARE GUID Emscripten_unsafeguid = { 0x639ad233, 0x23f2, 0x4c0f, { 0x91, 0x27, 0x79, 0xf4, 0x4c, 0x15, 0xe1, 0xdA } };
00151     AK_ID_DECLARE BasePlatformID Emscripten = BasePlatformID::Create(Emscripten_unsafeguid);
00152 
00153     /// Returns true if the given platform has Big Endian byte ordering. 
00154     inline bool IsPlatformBigEndian( const BasePlatformID & in_guidPlatform )
00155     {
00156         return in_guidPlatform == PlatformID::WiiUSW
00157             || in_guidPlatform == PlatformID::WiiUHW
00158             || in_guidPlatform == PlatformID::PS3 
00159             || in_guidPlatform == PlatformID::Xbox360;
00160     }
00161 }
00162 
00163 #endif // AK_WWISE_PLATFORMID_H