aboutsummaryrefslogtreecommitdiffstats
path: root/gfx.h
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 /gfx.h
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 'gfx.h')
-rw-r--r--gfx.h246
1 files changed, 246 insertions, 0 deletions
diff --git a/gfx.h b/gfx.h
new file mode 100644
index 00000000..77aba969
--- /dev/null
+++ b/gfx.h
@@ -0,0 +1,246 @@
+/*
+ * 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 gfx.h
+ * @brief GFX system header file.
+ *
+ * @addtogroup GFX
+ *
+ * @brief Main module to glue all the others together
+ *
+ * @{
+ */
+
+#ifndef _GFX_H
+#define _GFX_H
+
+/**
+ * These two definitions below are required before anything else so that we can
+ * turn module definitions off and on.
+ */
+
+/**
+ * @brief Generic 'false' boolean constant.
+ */
+#if !defined(FALSE) || defined(__DOXYGEN__)
+ #define FALSE 0
+#endif
+
+/**
+ * @brief Generic 'true' boolean constant.
+ */
+#if !defined(TRUE) || defined(__DOXYGEN__)
+ #define TRUE -1
+#endif
+
+/**
+ * @brief Mark a function as deprecated.
+ */
+#ifndef DEPRECATED
+ #if defined(__GNUC__) || defined(__MINGW32_) || defined(__CYGWIN__)
+ #define DEPRECATED(msg) __attribute__((deprecated(msg)))
+ #elif defined(_MSC_VER)
+ #define DEPRECATED(msg) __declspec(deprecated(msg))
+ #else
+ #define DEPRECATED(msg)
+ #endif
+#endif
+
+/* gfxconf.h is the user's project configuration for the GFX system. */
+#include "gfxconf.h"
+
+/**
+ * @name GFX sub-systems that can be turned on
+ * @{
+ */
+ /**
+ * @brief GFX Graphics Display Basic API
+ * @details Defaults to FALSE
+ * @note Also add the specific hardware driver to your makefile.
+ * Eg. include $(GFXLIB)/drivers/gdisp/Nokia6610/gdisp_lld.mk
+ */
+ #ifndef GFX_USE_GDISP
+ #define GFX_USE_GDISP FALSE
+ #endif
+ /**
+ * @brief GFX Graphics Windowing API
+ * @details Defaults to FALSE
+ * @details Extends the GDISP API to add the concept of graphic windows.
+ * @note Also supports high-level "window" objects such as console windows,
+ * buttons, graphing etc
+ */
+ #ifndef GFX_USE_GWIN
+ #define GFX_USE_GWIN FALSE
+ #endif
+ /**
+ * @brief GFX Event API
+ * @details Defaults to FALSE
+ * @details Defines the concept of a "Source" that can send "Events" to "Listeners".
+ */
+ #ifndef GFX_USE_GEVENT
+ #define GFX_USE_GEVENT FALSE
+ #endif
+ /**
+ * @brief GFX Timer API
+ * @details Defaults to FALSE
+ * @details Provides thread context timers - both one-shot and periodic.
+ */
+ #ifndef GFX_USE_GTIMER
+ #define GFX_USE_GTIMER FALSE
+ #endif
+ /**
+ * @brief GFX Queue API
+ * @details Defaults to FALSE
+ * @details Provides queue management.
+ */
+ #ifndef GFX_USE_GQUEUE
+ #define GFX_USE_GQUEUE FALSE
+ #endif
+ /**
+ * @brief GFX Input Device API
+ * @details Defaults to FALSE
+ * @note Also add the specific hardware drivers to your makefile.
+ * Eg.
+ * include $(GFXLIB)/drivers/ginput/toggle/Pal/ginput_lld.mk
+ * and...
+ * include $(GFXLIB)/drivers/ginput/touch/MCU/ginput_lld.mk
+ */
+ #ifndef GFX_USE_GINPUT
+ #define GFX_USE_GINPUT FALSE
+ #endif
+ /**
+ * @brief GFX Generic Periodic ADC API
+ * @details Defaults to FALSE
+ */
+ #ifndef GFX_USE_GADC
+ #define GFX_USE_GADC FALSE
+ #endif
+ /**
+ * @brief GFX Audio Input Device API
+ * @details Defaults to FALSE
+ * @note Also add the specific hardware drivers to your makefile.
+ * Eg.
+ * include $(GFXLIB)/drivers/gaudin/GADC/gaudin_lld.mk
+ */
+ #ifndef GFX_USE_GAUDIN
+ #define GFX_USE_GAUDIN FALSE
+ #endif
+ /**
+ * @brief GFX Audio Output Device API
+ * @details Defaults to FALSE
+ * @note Also add the specific hardware drivers to your makefile.
+ * Eg.
+ * include $(GFXLIB)/drivers/gaudout/PWM/gaudout_lld.mk
+ */
+ #ifndef GFX_USE_GAUDOUT
+ #define GFX_USE_GAUDOUT FALSE
+ #endif
+ /**
+ * @brief GFX Miscellaneous Routines API
+ * @details Defaults to FALSE
+ * @note Turning this on without turning on any GMISC_NEED_xxx macros will result
+ * in no extra code being compiled in. GMISC is made up from the sum of its
+ * parts.
+ */
+ #ifndef GFX_USE_GMISC
+ #define GFX_USE_GMISC FALSE
+ #endif
+ /**
+ * @brief GFX File API
+ * @details Defaults to FALSE
+ */
+ #ifndef GFX_USE_GFILE
+ #define GFX_USE_GFILE FALSE
+ #endif
+/** @} */
+
+/**
+ * Get all the options for each sub-system.
+ *
+ */
+#include "src/gos/sys_options.h"
+#include "src/gfile/sys_options.h"
+#include "src/gmisc/sys_options.h"
+#include "src/gqueue/sys_options.h"
+#include "src/gevent/sys_options.h"
+#include "src/gtimer/sys_options.h"
+#include "src/gdisp/sys_options.h"
+#include "src/gwin/sys_options.h"
+#include "src/ginput/sys_options.h"
+#include "src/gadc/sys_options.h"
+#include "src/gaudin/sys_options.h"
+#include "src/gaudout/sys_options.h"
+
+/**
+ * Interdependency safety checks on the sub-systems.
+ * These must be in dependency order.
+ *
+ */
+#ifndef GFX_DISPLAY_RULE_WARNINGS
+ #define GFX_DISPLAY_RULE_WARNINGS FALSE
+#endif
+#include "src/gwin/sys_rules.h"
+#include "src/ginput/sys_rules.h"
+#include "src/gdisp/sys_rules.h"
+#include "src/gaudout/sys_rules.h"
+#include "src/gaudin/sys_rules.h"
+#include "src/gadc/sys_rules.h"
+#include "src/gevent/sys_rules.h"
+#include "src/gtimer/sys_rules.h"
+#include "src/gqueue/sys_rules.h"
+#include "src/gmisc/sys_rules.h"
+#include "src/gfile/sys_rules.h"
+#include "src/gos/sys_rules.h"
+
+/**
+ * Include the sub-system header files
+ */
+#include "src/gos/sys_defs.h"
+#include "src/gfile/sys_defs.h"
+#include "src/gmisc/sys_defs.h"
+#include "src/gqueue/sys_defs.h"
+#include "src/gevent/sys_defs.h"
+#include "src/gtimer/sys_defs.h"
+#include "src/gdisp/sys_defs.h"
+#include "src/gwin/sys_defs.h"
+#include "src/ginput/sys_defs.h"
+#include "src/gadc/sys_defs.h"
+#include "src/gaudin/sys_defs.h"
+#include "src/gaudout/sys_defs.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /**
+ * @brief The one call to start it all
+ *
+ * @note This will initialise each sub-system that has been turned on.
+ * For example, if GFX_USE_GDISP is defined then display will be initialised
+ * and cleared to black.
+ *
+ * @api
+ */
+ void gfxInit(void);
+
+ /**
+ * @brief The one call to end it all
+ *
+ * @note This will deinitialise each sub-system that has been turned on.
+ *
+ * @api
+ */
+ void gfxDeinit(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GFX_H */
+/** @} */
+