Version
menu_open
link
Wwise SDK 2023.1.4
PlatformID.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 /// Unique identifiers for platforms in the Wwise authoring application.
29 
30 #ifndef AK_WWISE_PLATFORMID_H
31 #define AK_WWISE_PLATFORMID_H
32 
33 #if defined( _MSC_VER )
34  #define AK_ID_DECLARE extern const _declspec( selectany )
35 #else
36  #define AK_ID_DECLARE extern const __attribute__( ( weak ) )
37 #endif
38 
40 {
41  BasePlatformID():guid( GUID_NULL ){}
42 
43  // The Create function is a functionnal replacement for the BasePlatformID() constructor taking a GUID in parameters.
44  // This is to avoid situations where someone would pass a GUID instead of a BasePlatformID in a function call while migrating, which would
45  // compile but would lead the user into serious errors.
46  static BasePlatformID Create( const GUID& in_BasePlatformID )
47  {
48  BasePlatformID ret;
49  ret.guid = in_BasePlatformID;
50  return ret;
51  }
52 
54  {
55  return BasePlatformID::Create(GUID_NULL);
56  }
57 
58  bool IsNull() const
59  {
60  return (guid == GUID_NULL) ? true : false;
61  }
62 
63  bool operator == ( const BasePlatformID& in_rOther ) const
64  {
65  return (in_rOther.guid == guid)? true : false;
66  }
67  bool operator != ( const BasePlatformID& in_rOther ) const
68  {
69  return (in_rOther.guid != guid)? true : false;
70  }
72 
74  {
75  bool operator()( const BasePlatformID& in_rLeft, const BasePlatformID& in_rRight ) const
76  {
77  return ( ::memcmp( &in_rLeft, &in_rRight, sizeof(BasePlatformID) ) < 0 );
78  }
79  };
80 };
81 
82 namespace PlatformID
83 {
84  // {6E0CB257-C6C8-4c5c-8366-2740DFC441EB}
85  AK_ID_DECLARE GUID Windows_unsafeguid = { 0x6E0CB257, 0xC6C8, 0x4c5c, { 0x83, 0x66, 0x27, 0x40, 0xDF, 0xC4, 0x41, 0xEB } };
87 
88  // {9C6217D5-DD11-4795-87C1-6CE02853C540}
89  AK_ID_DECLARE GUID Mac_unsafeguid = { 0x9c6217d5, 0xdd11, 0x4795, { 0x87, 0xc1, 0x6c, 0xe0, 0x28, 0x53, 0xc5, 0x40 } };
91 
92  // {3AF9B9B6-6EF1-47E9-B5FE-E30C9E602C77}
93  AK_ID_DECLARE GUID PS4_unsafeguid = { 0x3af9b9b6, 0x6ef1, 0x47e9, { 0xb5, 0xfe, 0xe3, 0xc, 0x9e, 0x60, 0x2c, 0x77 } };
95 
96  // {662A5E67-9D35-48DA-B6A8-B77C7F1D84E0}
97  AK_ID_DECLARE GUID PS5_unsafeguid = { 0x662a5e67, 0x9d35, 0x48da, { 0xb6, 0xa8, 0xb7, 0x7c, 0x7f, 0x1d, 0x84, 0xe0 } };
99 
100  // {ECE03DB4-F948-462d-B2BB-A9173012B1F8}
101  AK_ID_DECLARE GUID iOS_unsafeguid = { 0xece03db4, 0xf948, 0x462d, { 0xb2, 0xbb, 0xa9, 0x17, 0x30, 0x12, 0xb1, 0xf8 } };
103 
104  // {a2d401de-b8b6-4feb-8142-137c34d507CA}
105  AK_ID_DECLARE GUID Android_unsafeguid = { 0xa2d401de, 0xb8b6, 0x4feb, { 0x81, 0x42, 0x13, 0x7c, 0x34, 0xd5, 0x07, 0xCA } };
107 
108  // {B131584B-9961-4bb5-9C58-A3E9ABFFBBF6}
109  AK_ID_DECLARE GUID XboxOne_unsafeguid = { 0xb131584b, 0x9961, 0x4bb5, { 0x9c, 0x58, 0xa3, 0xe9, 0xab, 0xff, 0xbb, 0xf6 } };
111 
112  // {BD0BDF13-3125-454f-8BFD-319537169F81}
113  AK_ID_DECLARE GUID Linux_unsafeguid = { 0xbd0bdf13, 0x3125, 0x454f, { 0x8b, 0xfd, 0x31, 0x95, 0x37, 0x16, 0x9f, 0x81 } };
115 
116  // {874F26D2-416D-4698-BFB6-3427CAFCFF9C}
117  AK_ID_DECLARE GUID NintendoNX_unsafeguid = { 0x874f26d2, 0x416d, 0x4698, { 0xbf, 0xb6, 0x34, 0x27, 0xca, 0xfc, 0xff, 0x9c } };
119 
120  // {639AD233-23F2-4c0f-9127-79F44C15E1DA}
121  AK_ID_DECLARE GUID Web_unsafeguid = { 0x639ad233, 0x23f2, 0x4c0f, { 0x91, 0x27, 0x79, 0xf4, 0x4c, 0x15, 0xe1, 0xdA } };
123 
124  //{26352fc0-7716-4f97-8daf-3665ec2bb501}
125  AK_ID_DECLARE GUID XboxSeriesX_unsafeguid = { 0x26352fc0, 0x7716, 0x4f97, { 0x8d, 0xaf, 0x36, 0x65, 0xec, 0x2b, 0xb5, 0x01 } };
127 
128  /// Returns true if the given platform has Big Endian byte ordering.
129  inline bool IsPlatformBigEndian( const BasePlatformID & )
130  {
131  return false; // No currently supported platforms are Big Endian.
132  }
133 
134  //This helper is used for platforms that are most probably on a ARM CPU (Android being possible on x86).
135  //This is currently used to switch between Vorbis encoding algorithms, for optimisation purposes.
136  inline bool PlatformMaybeARM(const BasePlatformID & in_guidPlatform)
137  {
138  return in_guidPlatform == PlatformID::NintendoNX
139  || in_guidPlatform == PlatformID::Android
140  || in_guidPlatform == PlatformID::iOS;
141  }
142 }
143 
144 #endif // AK_WWISE_PLATFORMID_H
AK_ID_DECLARE BasePlatformID XboxSeriesX
Definition: PlatformID.h:126
AK_ID_DECLARE BasePlatformID Linux
Definition: PlatformID.h:114
AK_ID_DECLARE BasePlatformID PS4
Definition: PlatformID.h:94
AK_ID_DECLARE GUID iOS_unsafeguid
Definition: PlatformID.h:101
AK_ID_DECLARE GUID Mac_unsafeguid
Definition: PlatformID.h:89
static BasePlatformID Empty()
Definition: PlatformID.h:53
bool operator!=(const BasePlatformID &in_rOther) const
Definition: PlatformID.h:67
AK_ID_DECLARE BasePlatformID Mac
Definition: PlatformID.h:90
AK_ID_DECLARE GUID Android_unsafeguid
Definition: PlatformID.h:105
AK_ID_DECLARE BasePlatformID XboxOne
Definition: PlatformID.h:110
AK_ID_DECLARE GUID Web_unsafeguid
Definition: PlatformID.h:121
AK_ID_DECLARE BasePlatformID Web
Definition: PlatformID.h:122
AK_ID_DECLARE BasePlatformID PS5
Definition: PlatformID.h:98
AK_ID_DECLARE BasePlatformID NintendoNX
Definition: PlatformID.h:118
bool operator==(const BasePlatformID &in_rOther) const
Definition: PlatformID.h:63
AK_ID_DECLARE GUID NintendoNX_unsafeguid
Definition: PlatformID.h:117
AK_ID_DECLARE BasePlatformID Windows
Definition: PlatformID.h:86
AK_ID_DECLARE GUID Linux_unsafeguid
Definition: PlatformID.h:113
AK_ID_DECLARE GUID PS4_unsafeguid
Definition: PlatformID.h:93
AK_ID_DECLARE BasePlatformID Android
Definition: PlatformID.h:106
static BasePlatformID Create(const GUID &in_BasePlatformID)
Definition: PlatformID.h:46
AK_ID_DECLARE GUID XboxSeriesX_unsafeguid
Definition: PlatformID.h:125
bool IsNull() const
Definition: PlatformID.h:58
AK_ID_DECLARE GUID Windows_unsafeguid
Definition: PlatformID.h:85
bool PlatformMaybeARM(const BasePlatformID &in_guidPlatform)
Definition: PlatformID.h:136
AK_ID_DECLARE BasePlatformID iOS
Definition: PlatformID.h:102
#define AK_ID_DECLARE
Definition: PlatformID.h:36
AK_ID_DECLARE GUID PS5_unsafeguid
Definition: PlatformID.h:97
AK_ID_DECLARE GUID XboxOne_unsafeguid
Definition: PlatformID.h:109
bool operator()(const BasePlatformID &in_rLeft, const BasePlatformID &in_rRight) const
Definition: PlatformID.h:75
bool IsPlatformBigEndian(const BasePlatformID &)
Returns true if the given platform has Big Endian byte ordering.
Definition: PlatformID.h:129

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