00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(_GRAPHICS_CONTROLLER_H_)
00021 #define _GRAPHICS_CONTROLLER_H_
00022
00023 #include <util/attributes.h>
00024
00025 #include <stdint.h>
00026
00027
00028
00029
00030
00031 struct bd_registers_s;
00032 struct bd_overlay_s;
00033
00034
00035
00036
00037
00038 typedef struct graphics_controller_s GRAPHICS_CONTROLLER;
00039
00040 typedef void (*gc_overlay_proc_f)(void *, const struct bd_overlay_s * const);
00041
00042 typedef enum {
00043
00044 GC_CTRL_NOP,
00045 GC_CTRL_RESET,
00046
00047
00048 GC_CTRL_VK_KEY,
00049 GC_CTRL_MOUSE_MOVE,
00050
00051
00052 GC_CTRL_ENABLE_BUTTON,
00053 GC_CTRL_DISABLE_BUTTON,
00054 GC_CTRL_SET_BUTTON_PAGE,
00055 GC_CTRL_POPUP,
00056 GC_CTRL_IG_END,
00057
00058 } gc_ctrl_e;
00059
00060 typedef struct {
00061
00062 int num_nav_cmds;
00063 void *nav_cmds;
00064
00065
00066 int sound_id_ref;
00067 } GC_NAV_CMDS;
00068
00069
00070
00071
00072
00073 BD_PRIVATE GRAPHICS_CONTROLLER *gc_init(struct bd_registers_s *regs,
00074 void *handle, gc_overlay_proc_f func);
00075
00076 BD_PRIVATE void gc_free(GRAPHICS_CONTROLLER **p);
00077
00089 BD_PRIVATE int gc_decode_ts(GRAPHICS_CONTROLLER *p,
00090 uint16_t pid,
00091 uint8_t *block, unsigned num_blocks,
00092 int64_t stc);
00093
00094
00095
00096
00097
00098 BD_PRIVATE int gc_run(GRAPHICS_CONTROLLER *p,
00099 gc_ctrl_e msg, uint32_t param,
00100 GC_NAV_CMDS *cmds);
00101
00102
00103 #endif // _GRAPHICS_CONTROLLER_H_