Thanks a lot, Cameron.

That sounds quite a painful solution but I got the idea.
Too bad we can't avoid this brute force :(

Thanks again,

On 2013-09-18, at 10:51 PM, Cameron Elliott <> wrote:

I've had to deal with similar stuff with SWIG,
the only solution I've been able to apply is to make local copies of the
3rd-party include files, and put ifdefs around the offending code,
and fix the problematic code:

#ifndef SWIG
enum AudioSessionCategory
kAudioSessionCategory_AmbientSound               = 'ambi',
kAudioSessionCategory_SoloAmbientSound           = 'solo',
kAudioSessionCategory_PlayAndRecord              = 'plar'
#define HELPER(a,b,c,d) (a<<24|b<<16|c<<8|d)
enum AudioSessionCategory
kAudioSessionCategory_AmbientSound               = HELPER('a','m','b','i'),
kAudioSessionCategory_SoloAmbientSound           = ...
kAudioSessionCategory_PlayAndRecord              = ...

Then if you need to update after Apple releases new .h files, you can
do a diff between
the last generation original .h files, and your hand-modified ones,
and fix-up the newly released .h files.


Cameron Elliott
Lime Video Software  206-367-1053
Digital Video SDKs for C# - .NET for Windows - Mono for Linux