annotate libmenu/menu.h @ 17982:c28298d1cbf7

Fix passing qdm2 extradata to lavc decoder It was broken in rev 1.142, that code does not behave the same as the old one in some cases
author rtognimp
date Mon, 27 Mar 2006 21:37:18 +0000
parents 98f4e3704a76
children 98eb966a4024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8197
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
1
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
2 struct menu_priv_s;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
3 typedef struct menu_s menu_t;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
4
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
5 struct menu_s {
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
6 void (*draw)(menu_t* menu,mp_image_t* mpi);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
7 void (*read_cmd)(menu_t* menu,int cmd);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
8 void (*read_key)(menu_t* menu,int cmd);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
9 void (*close)(menu_t* menu);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
10 m_struct_t* priv_st;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
11 struct menu_priv_s* priv;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
12 int show; // Draw it ?
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
13 int cl; // Close request (user sent a close cmd or
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
14 menu_t* parent;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
15 };
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
16
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
17 typedef struct menu_info_s {
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
18 const char *info;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
19 const char *name;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
20 const char *author;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
21 const char *comment;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
22 m_struct_t priv_st; // Config struct definition
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
23 // cfg is a config struct as defined in cfg_st, it may be used as a priv struct
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
24 // cfg is filled from the attributs found in the cfg file
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
25 // the args param hold the content of the balise in the cfg file (if any)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
26 int (*open)(menu_t* menu, char* args);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
27 } menu_info_t;
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
28
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
29
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
30 #define MENU_CMD_UP 0
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
31 #define MENU_CMD_DOWN 1
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
32 #define MENU_CMD_OK 2
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
33 #define MENU_CMD_CANCEL 3
17945
98f4e3704a76 Allow 6 ways (up/down/left/right/ok/cancel) navigation.
albeu
parents: 8197
diff changeset
34 #define MENU_CMD_LEFT 4
98f4e3704a76 Allow 6 ways (up/down/left/right/ok/cancel) navigation.
albeu
parents: 8197
diff changeset
35 #define MENU_CMD_RIGHT 5
8197
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
36
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
37 /// Global init/uninit
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
38 int menu_init(char* cfg_file);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
39 void menu_unint(void);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
40
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
41 /// Open a menu defined in the config file
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
42 menu_t* menu_open(char *name);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
43
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
44 void menu_draw(menu_t* menu,mp_image_t* mpi);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
45 void menu_read_cmd(menu_t* menu,int cmd);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
46 void menu_close(menu_t* menu);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
47 void menu_read_key(menu_t* menu,int cmd);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
48
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
49 //// Default implementation
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
50 void menu_dflt_read_key(menu_t* menu,int cmd);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
51
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
52 /////////// Helpers
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
53
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
54 #define MENU_TEXT_TOP (1<<0)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
55 #define MENU_TEXT_VCENTER (1<<1)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
56 #define MENU_TEXT_BOT (1<<2)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
57 #define MENU_TEXT_VMASK (MENU_TEXT_TOP|MENU_TEXT_VCENTER|MENU_TEXT_BOT)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
58 #define MENU_TEXT_LEFT (1<<3)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
59 #define MENU_TEXT_HCENTER (1<<4)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
60 #define MENU_TEXT_RIGHT (1<<5)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
61 #define MENU_TEXT_HMASK (MENU_TEXT_LEFT|MENU_TEXT_HCENTER|MENU_TEXT_RIGHT)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
62 #define MENU_TEXT_CENTER (MENU_TEXT_VCENTER|MENU_TEXT_HCENTER)
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
63
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
64 void menu_draw_text(mp_image_t* mpi, char* txt, int x, int y);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
65 int menu_text_length(char* txt);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
66 int menu_text_num_lines(char* txt, int max_width);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
67
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
68 void menu_text_size(char* txt,int max_width,
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
69 int vspace, int warp,
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
70 int* _w, int* _h);
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
71
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
72 void menu_draw_text_full(mp_image_t* mpi,char* txt,
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
73 int x, int y,int w, int h,
b31caec933e9 OSD menus initial version
albeu
parents:
diff changeset
74 int vspace, int warp, int align, int anchor);