AAX SDK  2.4.1
Avid Audio Extensions Development Kit
AAX_Push2ByteStructAlignment.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2014-2015, 2018 by Avid Technology, Inc.
5  * All rights reserved.
6  *
7  * CONFIDENTIAL: This document contains confidential information. Do not
8  * read or examine this document unless you are an Avid Technology employee
9  * or have signed a non-disclosure agreement with Avid Technology which protects
10  * the confidentiality of this document. DO NOT DISCLOSE ANY INFORMATION
11  * CONTAINED IN THIS DOCUMENT TO ANY THIRD-PARTY WITHOUT THE PRIOR WRITTEN CONSENT
12  * OF Avid Technology, INC.
13  *
14  */
15 
65 /*================================================================================================*/
66 
67 #ifdef _TMS320C6X
68 #error "TI structure packing changes not supported"
69 #elif defined (_MSC_VER)
70 #pragma warning( disable : 4103 ) // used #pragma pack to change alignment
71 #pragma pack(push, 2)
72 #elif defined (__GNUC__)
73 // Uncomment this warning suppression if you really want to apply packing to a virtual data
74 // structure, but note that there is no guarantee of cross-platform compatibility for such
75 // a structure. For more information, see the AAX_ALIGN_FILE_ALG macro documentation
76 // #ifdef __clang__
77 // #pragma clang diagnostic push
78 // #pragma clang diagnostic ignored "-Wno-incompatible-ms-struct"
79 // #endif
80 #pragma ms_struct on
81 // #ifdef __clang__
82 // #pragma clang diagnostic pop
83 // #endif
84 #pragma pack(push, 2)
85 #elif defined (__MWERKS__)
86 #pragma options align=mac68k
87 #else
88 #error "You need to supply a pragma here to set structure alignment to 2 bytes"
89 #endif
90 
91 // Nesting of struct alignment headers is not allowed
92 #ifdef __AAX_CUSTOM_STRUCT_ALIGN_IS_SET__
93 #error "Nested AAX struct alignment directives"
94 #else
95 #define __AAX_CUSTOM_STRUCT_ALIGN_IS_SET__
96 #endif