diff libass/ass.h @ 20477:de4a66d99f41

Libass interface reworked: - ass_instance_t renamed to ass_renderer_t - ass_library_t introduced - use of mplayer-specific global variables limited to ass_mp.c
author eugeni
date Sat, 28 Oct 2006 15:07:18 +0000
parents e8adc3778348
children b0814eba65ec
line wrap: on
line diff
--- a/libass/ass.h	Sat Oct 28 14:20:15 2006 +0000
+++ b/libass/ass.h	Sat Oct 28 15:07:18 2006 +0000
@@ -23,8 +23,8 @@
 
 #include "ass_types.h"
 
-/// Libass "library object". Contents are private.
-typedef struct ass_instance_s ass_instance_t;
+/// Libass renderer object. Contents are private.
+typedef struct ass_renderer_s ass_renderer_t;
 
 /// a linked list of images produced by ass renderer
 typedef struct ass_image_s {
@@ -41,20 +41,47 @@
  * \brief initialize the library
  * \return library handle or NULL if failed
  */
-ass_instance_t* ass_init(void);
+ass_library_t* ass_library_init(void);
 
 /**
  * \brief finalize the library
  * \param priv library handle
  */
-void ass_done(ass_instance_t* priv);
+void ass_library_done(ass_library_t*);
+
+/**
+ * \brief set private font directory
+ * It is used for saving embedded fonts and also in font lookup.
+ */
+void ass_set_fonts_dir(ass_library_t* priv, const char* fonts_dir);
+
+void ass_set_extract_fonts(ass_library_t* priv, int extract);
+
+void ass_set_style_overrides(ass_library_t* priv, char** list);
 
-void ass_set_frame_size(ass_instance_t* priv, int w, int h);
-void ass_set_margins(ass_instance_t* priv, int t, int b, int l, int r);
-void ass_set_use_margins(ass_instance_t* priv, int use);
-void ass_set_aspect_ratio(ass_instance_t* priv, double ar);
-void ass_set_font_scale(ass_instance_t* priv, double font_scale);
-int  ass_set_fonts(ass_instance_t* priv, const char* fonts_dir, const char* default_font, const char* default_family);
+/**
+ * \brief initialize the renderer
+ * \param priv library handle
+ * \return renderer handle or NULL if failed
+ */
+ass_renderer_t* ass_renderer_init(ass_library_t*);
+
+/**
+ * \brief finalize the renderer
+ * \param priv renderer handle
+ */
+void ass_renderer_done(ass_renderer_t* priv);
+
+void ass_set_frame_size(ass_renderer_t* priv, int w, int h);
+void ass_set_margins(ass_renderer_t* priv, int t, int b, int l, int r);
+void ass_set_use_margins(ass_renderer_t* priv, int use);
+void ass_set_aspect_ratio(ass_renderer_t* priv, double ar);
+void ass_set_font_scale(ass_renderer_t* priv, double font_scale);
+
+/**
+ * \brief set font lookup defaults
+ */
+int  ass_set_fonts(ass_renderer_t* priv, const char* default_font, const char* default_family);
 
 /**
  * \brief render a frame, producing a list of ass_image_t
@@ -62,16 +89,16 @@
  * \param track subtitle track
  * \param now video timestamp in milliseconds
  */
-ass_image_t* ass_render_frame(ass_instance_t *priv, ass_track_t* track, long long now);
+ass_image_t* ass_render_frame(ass_renderer_t *priv, ass_track_t* track, long long now);
 
 
-// The following functions operate on track objects and do not need an ass_instance //
+// The following functions operate on track objects and do not need an ass_renderer //
 
 /**
  * \brief allocate a new empty track object
  * \return pointer to empty track
  */
-ass_track_t* ass_new_track(void);
+ass_track_t* ass_new_track(ass_library_t*);
 
 /**
  * \brief deallocate track and all its child objects (styles and events)
@@ -132,13 +159,13 @@
  * \param fname file name
  * \return newly allocated track
 */
-ass_track_t* ass_read_file(char* fname);
+ass_track_t* ass_read_file(ass_library_t* library, char* fname, char* codepage);
 
 /**
  * \brief read styles from file into already initialized track
  * \return 0 on success
  */
-int ass_read_styles(ass_track_t* track, char* fname);
+int ass_read_styles(ass_track_t* track, char* fname, char* codepage);
 
 /**
  * \brief Process embedded matroska font. Saves it to ~/.mplayer/fonts.
@@ -146,7 +173,7 @@
  * \param data binary font data
  * \param data_size data size
 */
-void ass_process_font(const char* name, char* data, int data_size);
+void ass_process_font(ass_library_t* library, const char* name, char* data, int data_size);
 
 /**
  * \brief Calculates timeshift from now to the start of some other subtitle event, depending on movement parameter