]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/pangofc-afm-decoder.cc
(overdone_heads): typos.
[lilypond.git] / lily / pangofc-afm-decoder.cc
index 92545bde619870264c1c4a8f3d0de2ecd3ff5d8b..0695000af5d7cca1ac3e5fc0187df4d916d0925a 100644 (file)
@@ -23,7 +23,7 @@
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */
 
-#include "config.h"
+#include "config.hh"
 #if HAVE_PANGO_FC_FONT_MAP_ADD_DECODER_FIND_FUNC
 
 /* Need to access to PangoFcFont.full_pattern.  */
 #define dprintf(args...)
 #endif
 
+#ifndef PANGO_FC_AFM_DECODER_TEST
+#define PUA_OFFSET 0xe00
+#else
+#define PUA_OFFSET 0
+#endif
+
 struct _PangoFcAfmDecoderPrivate
 {
   GString encoding[256];
-  //GString file_name;
   char const *file_name;
   PangoFcFont *fc_font;
 };
@@ -56,45 +61,16 @@ static void pango_fc_afm_decoder_init (PangoFcAfmDecoder *fontmap);
 static void pango_fc_afm_decoder_class_init (PangoFcAfmDecoderClass *clss);
 static void pango_fc_afm_decoder_finalize (GObject *object);
 
-static FcCharSet *pango_fc_afm_get_charset (PangoFcFont *fcfont);
-static PangoGlyph pango_fc_afm_get_glyph (PangoFcFont *fcfont, guint32 wc);
-static void pango_fc_afm_decoder_set_file_name (PangoFcAfmDecoder *self, char const *file_name);
+static FcCharSet *pango_fc_afm_get_charset (PangoFcDecoder *decoder,
+                                           PangoFcFont *fcfont);
+static PangoGlyph pango_fc_afm_get_glyph (PangoFcDecoder *decoder,
+                                         PangoFcFont *fcfont, guint32 wc);
+static void pango_fc_afm_decoder_set_file_name (PangoFcAfmDecoder *self,
+                                               char const *file_name);
 
 static PangoFcDecoderClass *parent_class;
 
-#if 0
-/* ugly warning */
 G_DEFINE_TYPE (PangoFcAfmDecoder, pango_fc_afm_decoder, PANGO_TYPE_FC_DECODER);
-#else
-GType
-pango_fc_afm_decoder_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      static const GTypeInfo object_info =
-      {
-        sizeof (PangoFcAfmDecoderClass),
-        (GBaseInitFunc) 0,
-        (GBaseFinalizeFunc) 0,
-        (GClassInitFunc) pango_fc_afm_decoder_class_init,
-        0,           /* class_finalize */
-        0,           /* class_data */
-        sizeof (PangoFcAfmDecoder),
-        0,              /* n_preallocs */
-        (GInstanceInitFunc) pango_fc_afm_decoder_init,
-       0, /* value table */
-      };
-      
-      object_type = g_type_register_static (PANGO_TYPE_FC_DECODER,
-                                            "PangoFcAfmDecoder",
-                                            &object_info, (GTypeFlags)0);
-    }
-  
-  return object_type;
-}
-#endif
 
 static void 
 pango_fc_afm_decoder_init (PangoFcAfmDecoder *fcafmdecoder)
@@ -104,9 +80,6 @@ pango_fc_afm_decoder_init (PangoFcAfmDecoder *fcafmdecoder)
     = G_TYPE_INSTANCE_GET_PRIVATE (fcafmdecoder,
                                   PANGO_TYPE_FC_AFM_DECODER,
                                   PangoFcAfmDecoderPrivate);
-  /*
-    init members
-   */
 }
 
 static void
@@ -124,31 +97,22 @@ pango_fc_afm_decoder_class_init (PangoFcAfmDecoderClass *clss)
 static void
 pango_fc_afm_decoder_finalize (GObject *object)
 {
-#if 0  
-  PangoFcAfmDecoder *fcafmdecoder = PANGO_FC_AFM_DECODER (object);
-  PangoFcAfmDecoderPrivate *priv = fcafmdecoder->priv;
-#endif
-
-  /*
-    destroy members
-   */
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
 static FcCharSet *
-pango_fc_afm_get_charset (PangoFcFont *fcfont)
+pango_fc_afm_get_charset (PangoFcDecoder *decoder, PangoFcFont *fcfont)
 {
-  //dprintf ("get charset: %s\n", fcfont->font_pattern);
+  (void) decoder;
   dprintf ("get charset: \n");
 #if 0  
   FcCharSet *charset = 0;
   FcPatternGetCharSet (fcfont->font_pattern, FC_CHARSET, 0, &charset);
 #else
   /* Return plain, undecoded charset.
-     TODO:
-       - actually read AFM?
-       - caching?
-       - PUA mapping ? */
+     FIXME:
+       - actually read AFM
+       - caching  */
   (void) fcfont;
   int i;
   FcChar32 chr = 0;
@@ -161,8 +125,10 @@ pango_fc_afm_get_charset (PangoFcFont *fcfont)
 }
 
 static PangoGlyph
-pango_fc_afm_get_glyph (PangoFcFont *fcfont, guint32 wc)
+pango_fc_afm_get_glyph (PangoFcDecoder *decoder, PangoFcFont *fcfont,
+                       guint32 wc)
 {
+  (void) decoder;
 #if 0
   XftFont *xft_font;
   xft_font = XftFontOpenPattern (GDK_DISPLAY (),
@@ -170,13 +136,12 @@ pango_fc_afm_get_glyph (PangoFcFont *fcfont, guint32 wc)
   PangoGlyph g = XftCharIndex (0, xft_font, wc);
   dprintf ("get glyph! 0x%x --> 0x%x\n", wc, (unsigned)g);
 #else
-  /* TODO:
-       - PUA mapping?
-       
-     Shortcut PUA mapping/AFM reading: The Feta charsets are encoded
-     without any gaps, starting at 0x21.  *grin*  */
   (void) fcfont;
-  return wc - 0x21;
+  /* FIXME
+     Use direct privat usage area (PUA) mapping as shortcut for
+     actual AFM reading.  The Feta charsets are encoded without any
+     gaps, and mappend onto PUA.  */
+  return wc - PUA_OFFSET;
 #endif  
 }
 
@@ -234,7 +199,7 @@ pango_fc_afm_add_decoder (char const *family_name)
 #include <pango/pangox.h>
 #include <pango/pangoxft.h>
 
-#include "pangofc-afm-decoder.h"
+#include "pangofc-afm-decoder.hh"
 
 #define CANVAS_WIDTH 600
 #define CANVAS_HEIGHT 300
@@ -292,17 +257,19 @@ main (int argc, char **argv)
 
   /* Register GNU LilyPond FETA AFM decoders.  */
   pango_fc_afm_add_decoder ("lilypond-feta");
-  pango_fc_afm_add_decoder ("lilypond-braces");
-  pango_fc_afm_add_decoder ("lilypond-dyn");
+  pango_fc_afm_add_decoder ("lilypond-feta-braces-f");
+  pango_fc_afm_add_decoder ("lilypond-din");
   pango_fc_afm_add_decoder ("lilypond-parmesan");
 
   int text_item = gnome_canvas_text_get_type ();
   GnomeCanvasGroup *root = gnome_canvas_root (canvas);
-  char const *g_clef_utf8 = "\302\220";
+  char const *g_clef_utf8 = "p";
 
   gnome_canvas_text (45.0, 122.5, "LilyPond-feta-nummer 16", "3");
   gnome_canvas_text (45.0, 142.5, "LilyPond-feta-nummer, r 16", "4");
   gnome_canvas_text (10.0, 142.0, "LilyPond-feta, 32", g_clef_utf8);
+  gnome_canvas_text (10.0, 162.0, "LilyPond-feta-din, 32", "fmsrpz");
+  gnome_canvas_text (5.0, 142.0, "LilyPond-feta-braces-f, 32", "AZ");
 
   gtk_main ();
   return 0;