diff options
Diffstat (limited to 'sub/osd_state.h')
-rw-r--r-- | sub/osd_state.h | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/sub/osd_state.h b/sub/osd_state.h index 30f04d8449..0fff668d2d 100644 --- a/sub/osd_state.h +++ b/sub/osd_state.h @@ -7,13 +7,32 @@ #define OSD_CONV_CACHE_MAX 4 +enum mp_osdtype { + OSDTYPE_SUB, + OSDTYPE_SUB2, // IDs must be numerically successive + + OSDTYPE_OSD, + + OSDTYPE_EXTERNAL, + OSDTYPE_EXTERNAL2, + + OSDTYPE_COUNT +}; + +struct ass_state { + struct mp_log *log; + struct ass_track *track; + struct ass_renderer *render; + struct ass_library *library; +}; + struct osd_object { int type; // OSDTYPE_* bool is_sub; bool force_redraw; - // OSDTYPE_SUB/OSDTYPE_SUB2/OSDTYPE_OSD/OSDTYPE_EXTERNAL + // OSDTYPE_OSD char *text; // OSDTYPE_OSD @@ -23,7 +42,8 @@ struct osd_object { struct dec_sub *sub; // OSDTYPE_EXTERNAL - int external_res_x, external_res_y; + struct osd_external *externals; + int num_externals; // OSDTYPE_EXTERNAL2 struct sub_bitmaps *external2; @@ -37,10 +57,15 @@ struct osd_object { struct mp_osd_res vo_res; // Internally used by osd_libass.c - struct sub_bitmap *parts_cache; - struct ass_track *osd_track; - struct ass_renderer *osd_render; - struct ass_library *osd_ass_library; + struct sub_bitmaps parts_cache; + struct ass_state ass; +}; + +struct osd_external { + void *id; + char *text; + int res_x, res_y; + struct ass_state ass; }; struct osd_state { @@ -59,4 +84,6 @@ struct osd_state { struct mp_draw_sub_cache *draw_cache; }; +void osd_changed_unlocked(struct osd_state *osd, int obj); + #endif |