[vlc-devel] [PATCH] configure: provide --with options to override default fonts
Luca Barbato
lu_zero at gentoo.org
Mon Apr 1 21:18:01 CEST 2013
Most distributions have fonts in paths different from defaults.
---
If you like the idea I could move the whole freetype.c system specific
fallback to configure so it can be shared across all the modules using
fonts.
configure.ac | 22 +++++++++++++++
modules/text_renderer/freetype.c | 56 ++++++++++++++++++++++++--------------
modules/visualization/projectm.cpp | 10 +++++++
3 files changed, 68 insertions(+), 20 deletions(-)
diff --git a/configure.ac b/configure.ac
index df7be1c..a1d3427 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3134,6 +3134,28 @@ AC_ARG_ENABLE(fribidi,
AC_ARG_ENABLE(fontconfig,
[ --enable-fontconfig fontconfig support (default auto)])
+AC_ARG_WITH([default-font],
+ AS_HELP_STRING([--default-font=PATH],
+ [Path to the default font]),
+ [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
+ "$withval", [Default font])])
+AC_ARG_WITH([default-monospace-font],
+ AS_HELP_STRING([--default-monospace-font=PATH],
+ [Path to the default font]),
+ [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
+ "$withval", [Default monospace font])])
+
+AC_ARG_WITH([default-font-family],
+ AS_HELP_STRING([--default-font-family=NAME],
+ [Path to the default font family]),
+ [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
+ "$withval", [Default font family])])
+AC_ARG_WITH([default-monospace-font-family],
+ AS_HELP_STRING([--default-monospace-font-family=NAME],
+ [Path to the default font family]),
+ [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
+ "$withval", [Default monospace font family])])
+
if test "${enable_freetype}" != "no"; then
PKG_CHECK_MODULES(FREETYPE, freetype2, [
have_freetype=yes
diff --git a/modules/text_renderer/freetype.c b/modules/text_renderer/freetype.c
index 7565375..9f94fb0 100644
--- a/modules/text_renderer/freetype.c
+++ b/modules/text_renderer/freetype.c
@@ -47,30 +47,46 @@
/* Default fonts */
#ifdef __APPLE__
-# define DEFAULT_FONT_FILE "/Library/Fonts/Arial Unicode.ttf"
-# define DEFAULT_FAMILY "Arial Unicode MS"
-# define DEFAULT_MONOSPACE_FONT_FILE "/System/Library/Fonts/Monaco.dfont"
-# define DEFAULT_MONOSPACE_FAMILY "Monaco"
+# define SYSTEM_DEFAULT_FONT_FILE "/Library/Fonts/Arial Unicode.ttf"
+# define SYSTEM_DEFAULT_FAMILY "Arial Unicode MS"
+# define SYSTEM_DEFAULT_MONOSPACE_FONT_FILE "/System/Library/Fonts/Monaco.dfont"
+# define SYSTEM_DEFAULT_MONOSPACE_FAMILY "Monaco"
#elif defined( WIN32 )
-# define DEFAULT_FONT_FILE "arial.ttf" /* Default path font found at run-time */
-# define DEFAULT_FAMILY "Arial"
-# define DEFAULT_MONOSPACE_FONT_FILE "cour.ttf"
-# define DEFAULT_MONOSPACE_FAMILY "Courier New"
+# define SYSTEM_DEFAULT_FONT_FILE "arial.ttf" /* Default path font found at run-time */
+# define SYSTEM_DEFAULT_FAMILY "Arial"
+# define SYSTEM_DEFAULT_MONOSPACE_FONT_FILE "cour.ttf"
+# define SYSTEM_DEFAULT_MONOSPACE_FAMILY "Courier New"
#elif defined( __OS2__ )
-# define DEFAULT_FONT_FILE "/psfonts/tnrwt_k.ttf"
-# define DEFAULT_FAMILY "Times New Roman WT K"
-# define DEFAULT_MONOSPACE_FONT_FILE "/psfonts/mtsansdk.ttf"
-# define DEFAULT_MONOSPACE_FAMILY "Monotype Sans Duospace WT K"
+# define SYSTEM_DEFAULT_FONT_FILE "/psfonts/tnrwt_k.ttf"
+# define SYSTEM_DEFAULT_FAMILY "Times New Roman WT K"
+# define SYSTEM_DEFAULT_MONOSPACE_FONT_FILE "/psfonts/mtsansdk.ttf"
+# define SYSTEM_DEFAULT_MONOSPACE_FAMILY "Monotype Sans Duospace WT K"
#elif defined( __ANDROID__ )
-# define DEFAULT_FONT_FILE "/system/fonts/DroidSans-Bold.ttf"
-# define DEFAULT_FAMILY "Droid Sans Bold"
-# define DEFAULT_MONOSPACE_FONT_FILE "/system/fonts/DroidSansMono.ttf"
-# define DEFAULT_MONOSPACE_FAMILY "Droid Sans Mono"
+# define SYSTEM_DEFAULT_FONT_FILE "/system/fonts/DroidSans-Bold.ttf"
+# define SYSTEM_DEFAULT_FAMILY "Droid Sans Bold"
+# define SYSTEM_DEFAULT_MONOSPACE_FONT_FILE "/system/fonts/DroidSansMono.ttf"
+# define SYSTEM_DEFAULT_MONOSPACE_FAMILY "Droid Sans Mono"
#else
-# define DEFAULT_FONT_FILE "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf"
-# define DEFAULT_FAMILY "Serif Bold"
-# define DEFAULT_MONOSPACE_FONT_FILE "/usr/share/fonts/truetype/freefont/FreeMono.ttf"
-# define DEFAULT_MONOSPACE_FAMILY "Monospace"
+# define SYSTEM_DEFAULT_FONT_FILE "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf"
+# define SYSTEM_DEFAULT_FAMILY "Serif Bold"
+# define SYSTEM_DEFAULT_MONOSPACE_FONT_FILE "/usr/share/fonts/truetype/freefont/FreeMono.ttf"
+# define SYSTEM_DEFAULT_MONOSPACE_FAMILY "Monospace"
+#endif
+
+#ifndef DEFAULT_FONT_FILE
+#define DEFAULT_FONT_FILE SYSTEM_DEFAULT_FONT_FILE
+#endif
+
+#ifndef DEFAULT_FAMILY
+#define DEFAULT_FAMILY SYSTEM_DEFAULT_FAMILY
+#endif
+
+#ifndef DEFAULT_MONOSPACE_FONT_FILE
+#define DEFAULT_MONOSPACE_FONT_FILE SYSTEM_DEFAULT_MONOSPACE_FONT_FILE
+#endif
+
+#ifndef DEFAULT_MONOSPACE_FAMILY
+#define DEFAULT_MONOSPACE_FAMILY SYSTEM_DEFAULT_MONOSPACE_FAMILY
#endif
/* Freetype */
diff --git a/modules/visualization/projectm.cpp b/modules/visualization/projectm.cpp
index ff7e7d5..812be12 100644
--- a/modules/visualization/projectm.cpp
+++ b/modules/visualization/projectm.cpp
@@ -84,6 +84,16 @@ static void Close ( vlc_object_t * );
# define PRESET_PATH "/usr/share/projectM/presets"
#endif
+#ifdef DEFAULT_FONT_FILE
+#undef FONT_PATH
+#define FONT_PATH DEFAULT_FONT_FILE
+#endif
+
+#ifdef DEFAULT_MONOSPACE_FONT_FILE
+#undef FONT_PATH_MENU
+#define FONT_PATH_MENU DEFAULT_MONOSPACE_FONT_FILE
+#endif
+
vlc_module_begin ()
set_shortname( N_("projectM"))
set_description( N_("libprojectM effect") )
--
1.8.1.5
More information about the vlc-devel
mailing list