3 * Copyright 2006 Free Software Foundation, Inc.
5 * This file is part of GNU Radio.
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
23 #ifndef INCLUDED_AUDIO_OSX_H
24 #define INCLUDED_AUDIO_OSX_H
29 #define CheckErrorAndThrow(err,what,throw_str) \
31 OSStatus error = static_cast<OSStatus>(err); \
33 strncpy (err_str, (char*)(&err), 4); \
34 std::cerr << what << std::endl; \
35 std::cerr << " Error# " << error << " ('" << err_str \
36 << "')" << std::endl; \
37 std::cerr << " " << __FILE__ << ":" << __LINE__ << std::endl; \
39 throw std::runtime_error (throw_str); \
42 #define CheckError(err,what) \
44 OSStatus error = static_cast<OSStatus>(err); \
46 strncpy (err_str, (char*)(&err), 4); \
47 std::cerr << what << std::endl; \
48 std::cerr << " Error# " << error << " ('" << err_str \
49 << "')" << std::endl; \
50 std::cerr << " " << __FILE__ << ":" << __LINE__ << std::endl; \
54 #ifdef WORDS_BIGENDIAN
55 #define GR_PCM_ENDIANNESS kLinearPCMFormatFlagIsBigEndian
57 #define GR_PCM_ENDIANNESS 0
60 // Check the version of MacOSX being used
62 #include <AvailabilityMacros.h>
63 #ifndef MAC_OS_X_VERSION_10_6
64 #define MAC_OS_X_VERSION_10_6 1060
66 #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
67 #define GR_USE_OLD_AUDIO_UNIT
71 #endif /* INCLUDED_AUDIO_OSX_H */