diff options
Diffstat (limited to 'vpx_ports/vpxtypes.h')
-rw-r--r-- | vpx_ports/vpxtypes.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/vpx_ports/vpxtypes.h b/vpx_ports/vpxtypes.h new file mode 100644 index 000000000..86525b7e1 --- /dev/null +++ b/vpx_ports/vpxtypes.h @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2010 The VP8 project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license and patent + * grant that can be found in the LICENSE file in the root of the source + * tree. All contributing project authors may be found in the AUTHORS + * file in the root of the source tree. + */ + + +#ifndef __VPXTYPES_H__ +#define __VPXTYPES_H__ + +#ifdef HAVE_CONFIG_H +#include HAVE_CONFIG_H +#endif + +//#include <sys/types.h> +#ifdef _MSC_VER +# include <basetsd.h> +typedef SSIZE_T ssize_t; +#endif + +#if defined(HAVE_STDINT_H) && HAVE_STDINT_H +/* C99 types are preferred to vpx integer types */ +# include <stdint.h> +#endif + +/*!\defgroup basetypes Base Types + @{*/ +#if !defined(HAVE_STDINT_H) && !defined(INT_T_DEFINED) +# ifdef STRICTTYPES +typedef signed char int8_t; +typedef signed short int16_t; +typedef signed int int32_t; +# else +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +# endif +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#endif + +typedef int8_t vpxs8; +typedef uint8_t vpxu8; +typedef int16_t vpxs16; +typedef uint16_t vpxu16; +typedef int32_t vpxs32; +typedef uint32_t vpxu32; +typedef int32_t vpxbool; + +enum {vpxfalse, vpxtrue}; + +/*!\def OTC + \brief a macro suitable for declaring a constant #vpxtc*/ +/*!\def VPXTC + \brief printf format string suitable for printing an #vpxtc*/ +#ifdef UNICODE +# ifdef NO_WCHAR +# error "no non-wchar support added yet" +# else +# include <wchar.h> +typedef wchar_t vpxtc; +# define OTC(str) L ## str +# define VPXTC "ls" +# endif /*NO_WCHAR*/ +#else +typedef char vpxtc; +# define OTC(str) (vpxtc*)str +# define VPXTC "s" +#endif /*UNICODE*/ +/*@} end - base types*/ + +/*!\addtogroup basetypes + @{*/ +/*!\def VPX64 + \brief printf format string suitable for printing an #vpxs64*/ +#if defined(HAVE_STDINT_H) +# define VPX64 PRId64 +typedef int64_t vpxs64; +#elif defined(HASLONGLONG) +# undef PRId64 +# define PRId64 "lld" +# define VPX64 PRId64 +typedef long long vpxs64; +#elif defined(WIN32) || defined(_WIN32_WCE) +# undef PRId64 +# define PRId64 "I64d" +# define VPX64 PRId64 +typedef __int64 vpxs64; +typedef unsigned __int64 vpxu64; +#elif defined(__uClinux__) && defined(CHIP_DM642) +# include <lddk.h> +# undef PRId64 +# define PRId64 "lld" +# define VPX64 PRId64 +typedef long vpxs64; +#elif defined(__SYMBIAN32__) +# undef PRId64 +# define PRId64 "u" +# define VPX64 PRId64 +typedef unsigned int vpxs64; +#else +# error "64 bit integer type undefined for this platform!" +#endif +#if !defined(HAVE_STDINT_H) && !defined(INT_T_DEFINED) +typedef vpxs64 int64_t; +typedef vpxu64 uint64_t; +#endif +/*!@} end - base types*/ + +/*!\ingroup basetypes + \brief Common return type*/ +typedef enum +{ + VPX_NOT_FOUND = -404, + VPX_BUFFER_EMPTY = -202, + VPX_BUFFER_FULL = -201, + + VPX_CONNREFUSED = -102, + VPX_TIMEDOUT = -101, + VPX_WOULDBLOCK = -100, + + VPX_NET_ERROR = -9, + VPX_INVALID_VERSION = -8, + VPX_INPROGRESS = -7, + VPX_NOT_SUPP = -6, + VPX_NO_MEM = -3, + VPX_INVALID_PARAMS = -2, + VPX_ERROR = -1, + VPX_OK = 0, + VPX_DONE = 1 +} vpxsc; + +#if defined(WIN32) || defined(_WIN32_WCE) +# define DLLIMPORT __declspec(dllimport) +# define DLLEXPORT __declspec(dllexport) +# define DLLLOCAL +#elif defined(LINUX) +# define DLLIMPORT +/*visibility attribute support is available in 3.4 and later. + see: http://gcc.gnu.org/wiki/Visibility for more info*/ +# if defined(__GNUC__) && ((__GNUC__<<16|(__GNUC_MINOR__&0xff)) >= (3<<16|4)) +# define GCC_HASCLASSVISIBILITY +# endif /*defined(__GNUC__) && __GNUC_PREREQ(3,4)*/ +# ifdef GCC_HASCLASSVISIBILITY +# define DLLEXPORT __attribute__ ((visibility("default"))) +# define DLLLOCAL __attribute__ ((visibility("hidden"))) +# else +# define DLLEXPORT +# define DLLLOCAL +# endif /*GCC_HASCLASSVISIBILITY*/ +#endif /*platform ifdefs*/ + +#endif /*__VPXTYPES_H__*/ + +#undef VPXAPI +/*!\def VPXAPI + \brief library calling convention/storage class attributes. + + Specifies whether the function is imported through a dll + or is from a static library.*/ +#ifdef VPXDLL +# ifdef VPXDLLEXPORT +# define VPXAPI DLLEXPORT +# else +# define VPXAPI DLLIMPORT +# endif /*VPXDLLEXPORT*/ +#else +# define VPXAPI +#endif /*VPXDLL*/ |