Mercurial > mplayer.hg
annotate sub/sub.h @ 35490:a5f5f61a7a35
Replace confusing guiInfoMediumClear() by MediumPrepare().
(It has been completely rewritten.)
Now call MediumPrepare() only once for all play events. Check for
current StreamType and clear stuff not being used for this stream
type (and only stuff that need to be cleared).
author | ib |
---|---|
date | Mon, 03 Dec 2012 16:26:39 +0000 |
parents | 732cd2afae10 |
children |
rev | line source |
---|---|
32467 | 1 /* |
2 * This file is part of MPlayer. | |
3 * | |
4 * MPlayer is free software; you can redistribute it and/or modify | |
5 * it under the terms of the GNU General Public License as published by | |
6 * the Free Software Foundation; either version 2 of the License, or | |
7 * (at your option) any later version. | |
8 * | |
9 * MPlayer is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License along | |
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 */ | |
18 | |
19 #ifndef MPLAYER_SUB_H | |
20 #define MPLAYER_SUB_H | |
21 | |
22 typedef struct mp_osd_bbox_s { | |
23 int x1,y1,x2,y2; | |
24 } mp_osd_bbox_t; | |
25 | |
26 #define OSDTYPE_OSD 1 | |
27 #define OSDTYPE_SUBTITLE 2 | |
28 #define OSDTYPE_PROGBAR 3 | |
29 #define OSDTYPE_SPU 4 | |
30 #define OSDTYPE_DVDNAV 5 | |
31 #define OSDTYPE_TELETEXT 6 | |
32 | |
33 #define OSDFLAG_VISIBLE 1 | |
34 #define OSDFLAG_CHANGED 2 | |
35 #define OSDFLAG_BBOX 4 | |
36 #define OSDFLAG_OLD_BBOX 8 | |
37 #define OSDFLAG_FORCE_UPDATE 16 | |
38 | |
39 #define MAX_UCS 1600 | |
40 #define MAX_UCSLINES 16 | |
41 | |
42 typedef struct mp_osd_obj_s { | |
43 struct mp_osd_obj_s* next; | |
44 unsigned char type; | |
45 unsigned char alignment; // 2 bits: x;y percentages, 2 bits: x;y relative to parent; 2 bits: alignment left/right/center | |
46 unsigned short flags; | |
47 int x,y; | |
48 int dxs,dys; | |
49 mp_osd_bbox_t bbox; // bounding box | |
50 mp_osd_bbox_t old_bbox; // the renderer will save bbox here | |
51 union { | |
52 struct { | |
53 void* sub; // value of vo_sub at last update | |
54 int utbl[MAX_UCS+1]; // subtitle text | |
55 int xtbl[MAX_UCSLINES]; // x positions | |
56 int lines; // no. of lines | |
57 } subtitle; | |
58 struct { | |
59 int elems; | |
60 } progbar; | |
61 } params; | |
62 int stride; | |
63 | |
64 int allocated; | |
65 unsigned char *alpha_buffer; | |
66 unsigned char *bitmap_buffer; | |
67 } mp_osd_obj_t; | |
68 | |
69 | |
70 #include "subreader.h" | |
71 | |
72 extern sub_data* subdata; //currently used subtitles | |
73 extern subtitle* vo_sub; | |
74 | |
75 extern unsigned char* vo_osd_text; | |
76 | |
77 extern void* vo_osd_teletext_page; | |
78 extern int vo_osd_teletext_half; | |
79 extern int vo_osd_teletext_mode; | |
80 extern int vo_osd_teletext_format; | |
81 | |
82 extern int vo_osd_progbar_type; | |
83 extern int vo_osd_progbar_value; // 0..255 | |
84 | |
85 extern mp_osd_obj_t *vo_osd_list; | |
86 | |
87 extern void* vo_spudec; | |
88 extern void* vo_vobsub; | |
32724
732cd2afae10
Replace hacky vobsub loading with a new clean one.
cboesch
parents:
32467
diff
changeset
|
89 extern char *vobsub_name; |
32467 | 90 |
91 #define OSD_PLAY 0x01 | |
92 #define OSD_PAUSE 0x02 | |
93 #define OSD_STOP 0x03 | |
94 #define OSD_REW 0x04 | |
95 #define OSD_FFW 0x05 | |
96 #define OSD_CLOCK 0x06 | |
97 #define OSD_CONTRAST 0x07 | |
98 #define OSD_SATURATION 0x08 | |
99 #define OSD_VOLUME 0x09 | |
100 #define OSD_BRIGHTNESS 0x0A | |
101 #define OSD_HUE 0x0B | |
102 #define OSD_BALANCE 0x0C | |
103 #define OSD_PANSCAN 0x50 | |
104 | |
105 #define OSD_PB_START 0x10 | |
106 #define OSD_PB_0 0x11 | |
107 #define OSD_PB_END 0x12 | |
108 #define OSD_PB_1 0x13 | |
109 | |
110 /* now in textform */ | |
111 extern char * sub_osd_names[]; | |
112 extern char * sub_osd_names_short[]; | |
113 | |
114 extern int sub_unicode; | |
115 extern int sub_utf8; | |
116 | |
117 extern int sub_pos; | |
118 extern int sub_width_p; | |
119 extern int sub_alignment; | |
120 extern int sub_justify; | |
121 extern int sub_visibility; | |
122 extern int sub_bg_color; /* subtitles background color */ | |
123 extern int sub_bg_alpha; | |
124 extern int spu_alignment; | |
125 extern int spu_aamode; | |
126 extern float spu_gaussvar; | |
127 | |
128 void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); | |
129 void vo_draw_text_ext(int dxs, int dys, int left_border, int top_border, | |
130 int right_border, int bottom_border, int orig_w, int orig_h, | |
131 void (*draw_alpha)(int x0, int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); | |
132 void vo_remove_text(int dxs,int dys,void (*remove)(int x0,int y0, int w,int h)); | |
133 | |
134 void vo_init_osd(void); | |
135 int vo_update_osd(int dxs,int dys); | |
136 int vo_osd_changed(int new_value); | |
137 int vo_osd_check_range_update(int,int,int,int); | |
138 void free_osd_list(void); | |
139 | |
140 extern int vo_osd_changed_flag; | |
141 | |
142 unsigned utf8_get_char(const char **str); | |
143 | |
144 #ifdef CONFIG_DVDNAV | |
145 #include <inttypes.h> | |
146 void osd_set_nav_box (uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey); | |
147 #endif | |
148 | |
149 #endif /* MPLAYER_SUB_H */ |