aboutsummaryrefslogtreecommitdiffstats
path: root/include/gmisc
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2014-02-19 00:36:52 +1000
committerinmarket <andrewh@inmarket.com.au>2014-02-19 00:36:52 +1000
commit37966ff16d923bbca53c9464815cb49cbd7fc3be (patch)
treed92db57067ffadd50cadf3ccf70efba3ac16e114 /include/gmisc
parent1e131851d6732e22f055c893face6b473a26f111 (diff)
downloaduGFX-37966ff16d923bbca53c9464815cb49cbd7fc3be.tar.gz
uGFX-37966ff16d923bbca53c9464815cb49cbd7fc3be.tar.bz2
uGFX-37966ff16d923bbca53c9464815cb49cbd7fc3be.zip
Integrate the include files with each module. Simplifies structure of code.
Diffstat (limited to 'include/gmisc')
-rw-r--r--include/gmisc/gmisc.h212
-rw-r--r--include/gmisc/options.h78
2 files changed, 0 insertions, 290 deletions
diff --git a/include/gmisc/gmisc.h b/include/gmisc/gmisc.h
deleted file mode 100644
index ff3d0c76..00000000
--- a/include/gmisc/gmisc.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * This file is subject to the terms of the GFX License. If a copy of
- * the license was not distributed with this file, you can obtain one at:
- *
- * http://ugfx.org/license.html
- */
-
-/**
- * @file include/gmisc/gmisc.h
- * @brief GMISC - Miscellaneous Routines header file.
- *
- * @addtogroup GMISC
- *
- * @brief Module which contains different features such as array conversions
- *
- * @{
- */
-
-#ifndef _GMISC_H
-#define _GMISC_H
-
-#include "gfx.h"
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-/**
- * @brief Sample data formats
- * @note These are defined regardless of whether you use the GMISC module
- * or not as they are used in lots of places.
- */
-typedef enum ArrayDataFormat_e {
- ARRAY_DATA_4BITUNSIGNED = 4, ARRAY_DATA_4BITSIGNED = 5,
- ARRAY_DATA_8BITUNSIGNED = 8, ARRAY_DATA_8BITSIGNED = 9,
- ARRAY_DATA_10BITUNSIGNED = 10, ARRAY_DATA_10BITSIGNED = 11,
- ARRAY_DATA_12BITUNSIGNED = 12, ARRAY_DATA_12BITSIGNED = 13,
- ARRAY_DATA_14BITUNSIGNED = 14, ARRAY_DATA_14BITSIGNED = 15,
- ARRAY_DATA_16BITUNSIGNED = 16, ARRAY_DATA_16BITSIGNED = 17,
- } ArrayDataFormat;
-
-/**
- * @brief The type for a fixed point type.
- * @details The top 16 bits are the integer component, the bottom 16 bits are the real component.
- */
-typedef int32_t fixed;
-
-/**
- * @brief Macros to convert to and from a fixed point.
- * @{
- */
-#define FIXED(x) ((fixed)(x)<<16) /* @< integer to fixed */
-#define NONFIXED(x) ((x)>>16) /* @< fixed to integer */
-#define FIXED0_5 32768 /* @< 0.5 as a fixed (used for rounding) */
-#define FP2FIXED(x) ((fixed)((x)*65536.0)) /* @< floating point to fixed */
-#define FIXED2FP(x) ((double)(x)/65536.0) /* @< fixed to floating point */
-/* @} */
-
-/**
- * @brief The famous number pi
- */
-#define PI 3.1415926535897932384626433832795028841971693993751
-
-/**
- * @brief pi as a fixed point
- */
-#define FIXED_PI FP2FIXED(PI)
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if GFX_USE_GMISC || defined(__DOXYGEN__)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if GMISC_NEED_ARRAYOPS || defined(__DOXYGEN__)
- /**
- * @brief Convert from one array format to another array format.
- *
- * @param[in] srcfmt The format of the source array
- * @param[in] src The source array
- * @param[in] dstfmt The format of the destination array
- * @param[in] dst The dstination array
- * @param[in] cnt The number of array elements to convert
- *
- * @note Assumes the destination buffer is large enough for the resultant data.
- * @note This routine is optimised to perform as fast as possible.
- * @note No type checking is performed on the source format. It is assumed to
- * have only valid values eg. ARRAY_DATA_4BITSIGNED will have values
- * 0000 -> 0111 for positive numbers and 1111 -> 1000 for negative numbers
- * Bits 5 -> 8 in the storage byte are treated in an undefined manner.
- * @note If srcfmt or dstfmt is an unknown format, this routine does nothing
- * with no warning that something is wrong
- *
- * @api
- */
- void gmiscArrayConvert(ArrayDataFormat srcfmt, void *src, ArrayDataFormat dstfmt, void *dst, size_t cnt);
-
- #if 0
- void gmiscArrayTranslate(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int trans);
-
- void gmiscArrayMultiply(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int mult);
-
- void gmiscArrayDivide(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int mdiv);
-
- void gmiscArrayMultDiv(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int mult, int div);
-
- void gmiscArrayAdd(ArrayDataFormat fmt, void *src1, void *src2, void *dst, size_t cnt);
-
- void gmiscArrayAddNoOverflow(ArrayDataFormat fmt, void *src1, void *src2, void *dst, size_t cnt);
- #endif
-#endif
-
-#if GMISC_NEED_FASTTRIG || defined(__DOXYGEN__)
- extern const double sintabledouble[];
-
- /**
- * @brief Fast Table Based Trig functions
- * @return A double in the range -1.0 .. 0.0 .. 1.0
- *
- * @param[in] degrees The angle in degrees (not radians)
- *
- * @note These functions use degrees rather than radians to describe the angle.
- *
- * @api
- * @{
- */
- double fsin(int degrees);
- double fcos(int degrees);
- /** @}
- *
- * @brief Fast Table Based Trig functions
- * @return A double in the range -1.0 .. 0.0 .. 1.0
- *
- * @param[in] degrees The angle in degrees 0 .. 359
- *
- * @note These functions use degrees rather than radians to describe the angle.
- * @note These functions are super fast but require the parameter to be in range.
- * Use the lowercase functions if the parameter may not be in range or if a
- * required trig function is not supported in this form.
- *
- * @api
- * @{
- */
- #define FSIN(degrees) sintabledouble[degrees];
- /** @} */
-#endif
-
-#if GMISC_NEED_FIXEDTRIG || defined(__DOXYGEN__)
- extern const fixed sintablefixed[];
-
- /**
- * @brief Fast Table Based Trig functions
- * @return A fixed point in the range -1.0 .. 0.0 .. 1.0
- *
- * @param[in] degrees The angle in degrees (not radians)
- *
- * @note These functions use degrees rather than radians to describe the angle.
- *
- * @api
- * @{
- */
- fixed ffsin(int degrees);
- fixed ffcos(int degrees);
- /** @}
- *
- * @brief Fast Table Based Trig functions
- * @return A fixed point in the range -1.0 .. 0.0 .. 1.0
- *
- * @param[in] degrees The angle in degrees 0 .. 359
- *
- * @note These functions use degrees rather than radians to describe the angle.
- * @note These functions are super fast but require the parameter to be in range.
- * Use the lowercase functions if the parameter may not be in range or if a
- * required trig function is not supported in this form.
- *
- * @api
- * @{
- */
- #define FFSIN(degrees) sintablefixed[degrees];
- /** @} */
-#endif
-
-#if GMISC_NEED_INVSQRT
- /**
- * @brief Fast inverse square root function (x^-1/2)
- * @return The approximate inverse square root
- *
- * @param[in] n The number to find the inverse square root of
- *
- * @note This function generates an approximate result. Higher accuracy (at the expense
- * of speed) can be obtained by modifying the source code (the necessary line
- * is already there - just commented out).
- * @note This function relies on the internal machine format of a float and a long.
- * If your machine architecture is very unusual this function may not work.
- *
- * @api
- */
- float invsqrt(float n);
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_MISC */
-
-#endif /* _GMISC_H */
-/** @} */
-
diff --git a/include/gmisc/options.h b/include/gmisc/options.h
deleted file mode 100644
index 06f689ec..00000000
--- a/include/gmisc/options.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * This file is subject to the terms of the GFX License. If a copy of
- * the license was not distributed with this file, you can obtain one at:
- *
- * http://ugfx.org/license.html
- */
-
-/**
- * @file include/gmisc/options.h
- * @brief GMISC - Miscellaneous Routines options header file.
- *
- * @addtogroup GMISC
- * @{
- */
-
-#ifndef _GMISC_OPTIONS_H
-#define _GMISC_OPTIONS_H
-
-/**
- * @name GMISC Functionality to be included
- * @{
- */
- /**
- * @brief Include array operation functions
- * @details Defaults to FALSE
- */
- #ifndef GMISC_NEED_ARRAYOPS
- #define GMISC_NEED_ARRAYOPS FALSE
- #endif
- /**
- * @brief Include fast fixed point trig functions (sin, cos)
- * @details Defaults to FALSE
- */
- #ifndef GMISC_NEED_FIXEDTRIG
- #define GMISC_NEED_FIXEDTRIG FALSE
- #endif
- /**
- * @brief Include fast inverse square root (x^-1/2)
- * @details Defaults to FALSE
- */
- #ifndef GMISC_NEED_INVSQRT
- #define GMISC_NEED_INVSQRT FALSE
- #endif
-/**
- * @}
- *
- * @name GMISC Optional Parameters
- * @{
- */
- /**
- * @brief Modifies the @p invsqrt() function to assume a different integer to floating point endianness.
- * @note Normally the floating point format and the integer format have
- * the same endianness. Unfortunately there are some strange
- * processors that don't eg. some very early ARM devices.
- * For those where the endianness doesn't match you can fix it by
- * defining GMISC_INVSQRT_MIXED_ENDIAN.
- * @note This still assumes the processor is using an ieee floating point format.
- *
- * If you have a software floating point that uses a non-standard
- * floating point format (or very strange hardware) then define
- * GMISC_INVSQRT_REAL_SLOW and it will do it the hard way.
- */
- #ifndef GMISC_INVSQRT_MIXED_ENDIAN
- #define GMISC_INVSQRT_MIXED_ENDIAN FALSE
- #endif
- /**
- * @brief Modifies the @p invsqrt() function to do things the long slow way.
- * @note This causes the @p invsqrt() function to work regardless of the
- * processor floating point format.
- * @note This makes the @p invsqrt() function very slow.
- */
- #ifndef GMISC_INVSQRT_REAL_SLOW
- #define GMISC_INVSQRT_REAL_SLOW FALSE
- #endif
-/** @} */
-
-#endif /* _GMISC_OPTIONS_H */
-/** @} */