source file of the GNU LilyPond music typesetter
- (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2005--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "freetype.hh"
#define CHUNKSIZE 65534
static void
-print_body (void *out, String name)
+print_body (void *out, string name)
{
- FILE *fd = fopen (name.to_str0 (), "rb");
+ FILE *fd = fopen (name.c_str (), "rb");
static char xdigits[] = "0123456789ABCDEF";
}
static void
-create_type42_font (void *out, String name)
+create_type42_font (void *out, string name)
{
FT_Face face = open_ft_face (name);
print_header (out, face);
print_body (out, name);
print_trailer (out, face);
+
+ FT_Done_Face (face);
}
+
+LY_DEFINE (ly_ttf_ps_name, "ly:ttf-ps-name",
+ 1, 0, 0, (SCM ttf_file_name),
+ "Extract the PostScript name from a TrueType font.")
+{
+ SCM_ASSERT_TYPE (scm_is_string (ttf_file_name), ttf_file_name,
+ SCM_ARG1, __FUNCTION__, "string");
+ string file_name = ly_scm2string (ttf_file_name);
+ if (be_verbose_global)
+ progress_indication ("[" + file_name);
+
+ FT_Face face = open_ft_face (file_name);
+ char const *ps_name_str0 = FT_Get_Postscript_Name (face);
+ SCM ps_name = scm_makfrom0str (ps_name_str0 ? ps_name_str0 : "");
+
+ FT_Done_Face (face);
+
+ if (be_verbose_global)
+ progress_indication ("]");
+
+ return ps_name;
+}
+
+
+
LY_DEFINE (ly_ttf_to_pfa, "ly:ttf->pfa",
1, 0, 0, (SCM ttf_file_name),
"Convert the contents of a TTF file to Type42 PFA, returning it as "
SCM_ASSERT_TYPE (scm_is_string (ttf_file_name), ttf_file_name,
SCM_ARG1, __FUNCTION__, "string");
- String file_name = ly_scm2string (ttf_file_name);
+ string file_name = ly_scm2string (ttf_file_name);
if (be_verbose_global)
progress_indication ("[" + file_name);