aboutsummaryrefslogtreecommitdiffstats
path: root/src/gfile
diff options
context:
space:
mode:
authorAndrew Hannam <Andrew Hannam>2016-05-27 10:29:49 +1000
committerAndrew Hannam <Andrew Hannam>2016-05-27 10:29:49 +1000
commitf8dac95e93127685ca2d1031ddcda28250fe0bd0 (patch)
tree6c0130d1b69d5fc69b4aa2eaa5d1824043d385b7 /src/gfile
parent08c639ecf6e1726748ccc9c34b84c68e778ce0ac (diff)
downloaduGFX-f8dac95e93127685ca2d1031ddcda28250fe0bd0.tar.gz
uGFX-f8dac95e93127685ca2d1031ddcda28250fe0bd0.tar.bz2
uGFX-f8dac95e93127685ca2d1031ddcda28250fe0bd0.zip
Add support for GFILE_PETITFS_EXTERNAL_LIB and GFILE_FATFS_EXTERNAL_LIB
Diffstat (limited to 'src/gfile')
-rw-r--r--src/gfile/gfile_fatfs_diskio_chibios.c4
-rw-r--r--src/gfile/gfile_fatfs_wrapper.c4
-rw-r--r--src/gfile/gfile_options.h25
-rw-r--r--src/gfile/gfile_petitfs_diskio_chibios.c4
-rw-r--r--src/gfile/gfile_petitfs_wrapper.c4
5 files changed, 33 insertions, 8 deletions
diff --git a/src/gfile/gfile_fatfs_diskio_chibios.c b/src/gfile/gfile_fatfs_diskio_chibios.c
index a2e5fbaf..f9a19264 100644
--- a/src/gfile/gfile_fatfs_diskio_chibios.c
+++ b/src/gfile/gfile_fatfs_diskio_chibios.c
@@ -7,7 +7,7 @@
#include "../../gfx.h"
-#if GFX_USE_GFILE && GFILE_NEED_FATFS && GFX_USE_OS_CHIBIOS
+#if GFX_USE_GFILE && GFILE_NEED_FATFS && GFX_USE_OS_CHIBIOS && !GFILE_FATFS_EXTERNAL_LIB
#include "gfile_fatfs_wrapper.h"
@@ -249,6 +249,6 @@ DWORD get_fattime(void) {
#endif
}
-#endif // GFX_USE_GFILE && GFILE_NEED_FATFS && GFX_USE_OS_CHIBIOS
+#endif // GFX_USE_GFILE && GFILE_NEED_FATFS && GFX_USE_OS_CHIBIOS && !GFILE_FATFS_EXTERNAL_LIB
diff --git a/src/gfile/gfile_fatfs_wrapper.c b/src/gfile/gfile_fatfs_wrapper.c
index 01f5d26b..ede644d6 100644
--- a/src/gfile/gfile_fatfs_wrapper.c
+++ b/src/gfile/gfile_fatfs_wrapper.c
@@ -7,7 +7,7 @@
#include "../../gfx.h"
-#if GFX_USE_GFILE && GFILE_NEED_FATFS
+#if GFX_USE_GFILE && GFILE_NEED_FATFS && !GFILE_FATFS_EXTERNAL_LIB
#include "gfile_fatfs_wrapper.h"
@@ -80,4 +80,4 @@
}
#endif /* _USE_LFN == 3 */
-#endif // GFX_USE_GFILE && GFILE_NEED_FATFS
+#endif // GFX_USE_GFILE && GFILE_NEED_FATFS && !GFILE_FATFS_EXTERNAL_LIB
diff --git a/src/gfile/gfile_options.h b/src/gfile/gfile_options.h
index 06781f38..ab23a1cb 100644
--- a/src/gfile/gfile_options.h
+++ b/src/gfile/gfile_options.h
@@ -201,6 +201,31 @@
#ifndef GFILE_MAX_GFILES
#define GFILE_MAX_GFILES 3
#endif
+ /**
+ * @brief TUse an external FATFS library instead of the uGFX inbuilt one
+ * @note This is applicable when GFILE_NEED_FATFS is specified. It allows
+ * the programmer to use their own FATFS implementation provided the
+ * api matches the fatfs-0.10b API.
+ * @note The users ffconf.h file still needs to be reachable when compiling uGFX.
+ * @note If ffconf.h contains _FS_REENTRANT as true then the user provided simpleton
+ * routines must be compatible with uGFX threading.
+ * @note If ffconf.h contains _USE_LFN == 3 then the user provided simpleton routines must
+ * be compatible with uGFX memory management.
+ */
+ #ifndef GFILE_FATFS_EXTERNAL_LIB
+ #define GFILE_FATFS_EXTERNAL_LIB FALSE
+ #endif
+ /**
+ * @brief TUse an external PETITFS library instead of the uGFX inbuilt one
+ * @note This is applicable when GFILE_NEED_PETITFS is specified. It allows
+ * the programmer to use their own FATFS implementation provided the
+ * api matches the petitfs-0.03 API.
+ * @note The users pffconf.h file still needs to be reachable when compiling uGFX.
+ */
+ #ifndef GFILE_PETITFS_EXTERNAL_LIB
+ #define GFILE_PETITFS_EXTERNAL_LIB FALSE
+ #endif
+
/** @} */
#endif /* _GFILE_OPTIONS_H */
diff --git a/src/gfile/gfile_petitfs_diskio_chibios.c b/src/gfile/gfile_petitfs_diskio_chibios.c
index 7708ac20..d313e695 100644
--- a/src/gfile/gfile_petitfs_diskio_chibios.c
+++ b/src/gfile/gfile_petitfs_diskio_chibios.c
@@ -7,7 +7,7 @@
#include "../../gfx.h"
-#if GFX_USE_GFILE && GFILE_NEED_PETITFS && GFX_USE_OS_CHIBIOS
+#if GFX_USE_GFILE && GFILE_NEED_PETITFS && GFX_USE_OS_CHIBIOS && !GFILE_PETITFS_EXTERNAL_LIB
#include "gfile_petitfs_wrapper.h"
@@ -77,6 +77,6 @@ DRESULT disk_readp (
return RES_OK;
}
-#endif // GFX_USE_GFILE && GFILE_NEED_PETITFS && GFX_USE_OS_CHIBIOS
+#endif // GFX_USE_GFILE && GFILE_NEED_PETITFS && GFX_USE_OS_CHIBIOS && !GFILE_PETITFS_EXTERNAL_LIB
diff --git a/src/gfile/gfile_petitfs_wrapper.c b/src/gfile/gfile_petitfs_wrapper.c
index 2536a180..ea39d9f2 100644
--- a/src/gfile/gfile_petitfs_wrapper.c
+++ b/src/gfile/gfile_petitfs_wrapper.c
@@ -7,11 +7,11 @@
#include "../../gfx.h"
-#if GFX_USE_GFILE && GFILE_NEED_PETITFS
+#if GFX_USE_GFILE && GFILE_NEED_PETITFS && !GFILE_PETITFS_EXTERNAL_LIB
#include "gfile_petitfs_wrapper.h"
// Include the source we want
#include "../../3rdparty/petitfs-0.03/src/pff.c"
-#endif // GFX_USE_GFILE && GFILE_NEED_PETITFS
+#endif // GFX_USE_GFILE && GFILE_NEED_PETITFS && !GFILE_PETITFS_EXTERNAL_LIB