summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/FixMath.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/FixMath.h')
-rw-r--r--common/quicktime_win32/FixMath.h551
1 files changed, 551 insertions, 0 deletions
diff --git a/common/quicktime_win32/FixMath.h b/common/quicktime_win32/FixMath.h
new file mode 100644
index 0000000..4022c0f
--- /dev/null
+++ b/common/quicktime_win32/FixMath.h
@@ -0,0 +1,551 @@
+/*
+ File: FixMath.h
+
+ Contains: Fixed Math Interfaces.
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1985-2001 by Apple Computer, Inc., all rights reserved
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __FIXMATH__
+#define __FIXMATH__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+
+#define fixed1 ((Fixed) 0x00010000L)
+#define fract1 ((Fract) 0x40000000L)
+#define positiveInfinity ((long) 0x7FFFFFFFL)
+#define negativeInfinity ((long) 0x80000000L)
+/*
+ FixRatio, FixMul, and FixRound were previously in ToolUtils.h
+*/
+/*
+ * FixRatio()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+FixRatio(
+ short numer,
+ short denom) ONEWORDINLINE(0xA869);
+
+
+/*
+ * FixMul()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+FixMul(
+ Fixed a,
+ Fixed b) ONEWORDINLINE(0xA868);
+
+
+/*
+ * FixRound()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+FixRound(Fixed x) ONEWORDINLINE(0xA86C);
+
+
+/*
+ * Fix2Frac()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+Fix2Frac(Fixed x) ONEWORDINLINE(0xA841);
+
+
+/*
+ * Fix2Long()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( long )
+Fix2Long(Fixed x) ONEWORDINLINE(0xA840);
+
+
+/*
+ * Long2Fix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+Long2Fix(long x) ONEWORDINLINE(0xA83F);
+
+
+/*
+ * Frac2Fix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+Frac2Fix(Fract x) ONEWORDINLINE(0xA842);
+
+
+/*
+ * FracMul()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+FracMul(
+ Fract x,
+ Fract y) ONEWORDINLINE(0xA84A);
+
+
+/*
+ * FixDiv()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+FixDiv(
+ Fixed x,
+ Fixed y) ONEWORDINLINE(0xA84D);
+
+
+/*
+ * FracDiv()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+FracDiv(
+ Fract x,
+ Fract y) ONEWORDINLINE(0xA84B);
+
+
+/*
+ * FracSqrt()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+FracSqrt(Fract x) ONEWORDINLINE(0xA849);
+
+
+/*
+ * FracSin()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+FracSin(Fixed x) ONEWORDINLINE(0xA848);
+
+
+/*
+ * FracCos()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+FracCos(Fixed x) ONEWORDINLINE(0xA847);
+
+
+/*
+ * FixATan2()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+FixATan2(
+ long x,
+ long y) ONEWORDINLINE(0xA818);
+
+
+/*
+ Frac2X, Fix2X, X2Fix, and X2Frac translate to and from
+ the floating point type "extended" (that's what the X is for).
+ On the original Mac this was 80-bits and the functions could be
+ accessed via A-Traps. When the 68881 co-processor was added,
+ it used 96-bit floating point types, so the A-Traps could not
+ be used. When PowerPC was added, it used 64-bit floating point
+ types, so yet another prototype was added.
+*/
+#if TARGET_CPU_68K
+#if TARGET_RT_MAC_68881
+#if CALL_NOT_IN_CARBON
+/*
+ * Frac2X()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( long double )
+Frac2X(Fract x);
+
+
+/*
+ * Fix2X()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( long double )
+Fix2X(Fixed x);
+
+
+/*
+ * X2Fix()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Fixed )
+X2Fix(long double x);
+
+
+/*
+ * X2Frac()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Fract )
+X2Frac(long double x);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#else
+#if CALL_NOT_IN_CARBON
+/*
+ * Frac2X()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( long double )
+Frac2X(Fract x) ONEWORDINLINE(0xA845);
+
+
+/*
+ * Fix2X()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( long double )
+Fix2X(Fixed x) ONEWORDINLINE(0xA843);
+
+
+/*
+ * X2Fix()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Fixed )
+X2Fix(long double x) ONEWORDINLINE(0xA844);
+
+
+/*
+ * X2Frac()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Fract )
+X2Frac(long double x) ONEWORDINLINE(0xA846);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#endif /* TARGET_RT_MAC_68881 */
+
+#else
+/*
+ * Frac2X()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( double )
+Frac2X(Fract x);
+
+
+/*
+ * Fix2X()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( double )
+Fix2X(Fixed x);
+
+
+/*
+ * X2Fix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fixed )
+X2Fix(double x);
+
+
+/*
+ * X2Frac()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Fract )
+X2Frac(double x);
+
+
+#endif /* TARGET_CPU_68K */
+
+/* QuickTime 3.0 makes these Wide routines available on other platforms*/
+#if TARGET_CPU_PPC || !TARGET_OS_MAC || TARGET_CPU_X86
+/*
+ * WideCompare()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( short )
+WideCompare(
+ const wide * target,
+ const wide * source);
+
+
+/*
+ * WideAdd()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideAdd(
+ wide * target,
+ const wide * source);
+
+
+/*
+ * WideSubtract()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideSubtract(
+ wide * target,
+ const wide * source);
+
+
+/*
+ * WideNegate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideNegate(wide * target);
+
+
+/*
+ * WideShift()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideShift(
+ wide * target,
+ long shift);
+
+
+/*
+ * WideSquareRoot()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( unsigned long )
+WideSquareRoot(const wide * source);
+
+
+/*
+ * WideMultiply()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideMultiply(
+ long multiplicand,
+ long multiplier,
+ wide * target);
+
+
+/* returns the quotient */
+/*
+ * WideDivide()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( long )
+WideDivide(
+ const wide * dividend,
+ long divisor,
+ long * remainder);
+
+
+/* quotient replaces dividend */
+/*
+ * WideWideDivide()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideWideDivide(
+ wide * dividend,
+ long divisor,
+ long * remainder);
+
+
+/*
+ * WideBitShift()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( wide * )
+WideBitShift(
+ wide * src,
+ long shift);
+
+
+#endif /* TARGET_CPU_PPC || !TARGET_OS_MAC || TARGET_CPU_X86 */
+
+
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __FIXMATH__ */
+