00001
00002
00003
00004 #ifndef CC708READER_H
00005 #define CC708READER_H
00006
00007 #include <stdint.h>
00008 #include "format.h"
00009 #include "compat.h"
00010 #include "cc708window.h"
00011
00012 class MythPlayer;
00013
00014 class CC708Reader
00015 {
00016 public:
00017 CC708Reader(MythPlayer *owner);
00018 virtual ~CC708Reader();
00019
00020 void SetCurrentService(int service) { currentservice = service; }
00021 CC708Service* GetCurrentService(void) { return &CC708services[currentservice]; }
00022 void SetEnabled(bool enable) { enabled = enable; }
00023 void SetOSDFontName(const QString osdfonts[22], const QString &prefix);
00024 void SetOSDThemeName(const QString themename);
00025 void ClearBuffers(void);
00026
00027 CC708Service* GetService(uint service_num)
00028 { return &(CC708services[service_num]); }
00029 CC708Window &GetCCWin(uint service_num, uint window_id)
00030 { return CC708services[service_num].windows[window_id]; }
00031 CC708Window &GetCCWin(uint svc_num)
00032 { return GetCCWin(svc_num, CC708services[svc_num].current_window); }
00033
00034
00035 virtual void SetCurrentWindow(uint service_num, int window_id);
00036 virtual void DefineWindow(uint service_num, int window_id,
00037 int priority, int visible,
00038 int anchor_point, int relative_pos,
00039 int anchor_vertical, int anchor_horizontal,
00040 int row_count, int column_count,
00041 int row_lock, int column_lock,
00042 int pen_style, int window_style);
00043 virtual void DeleteWindows( uint service_num, int window_map);
00044 virtual void DisplayWindows(uint service_num, int window_map);
00045 virtual void HideWindows( uint service_num, int window_map);
00046 virtual void ClearWindows( uint service_num, int window_map);
00047 virtual void ToggleWindows( uint service_num, int window_map);
00048 virtual void SetWindowAttributes(uint service_num,
00049 int fill_color, int fill_opacity,
00050 int border_color, int border_type,
00051 int scroll_dir, int print_dir,
00052 int effect_dir,
00053 int display_effect, int effect_speed,
00054 int justify, int word_wrap);
00055
00056
00057 virtual void SetPenAttributes(uint service_num,
00058 int pen_size, int offset,
00059 int text_tag, int font_tag,
00060 int edge_type,
00061 int underline, int italics);
00062 virtual void SetPenColor(uint service_num,
00063 int fg_color, int fg_opacity,
00064 int bg_color, int bg_opacity,
00065 int edge_color);
00066 virtual void SetPenLocation(uint service_num, int row, int column);
00067
00068
00069 virtual void Delay(uint service_num, int tenths_of_seconds);
00070 virtual void DelayCancel(uint service_num);
00071 virtual void Reset(uint service_num);
00072
00073
00074 virtual void TextWrite(uint service_num,
00075 short* unicode_string, short len);
00076
00077
00078 unsigned char* buf[64];
00079 uint buf_alloc[64];
00080 uint buf_size[64];
00081 bool delayed[64];
00082
00083 short* temp_str[64];
00084 int temp_str_alloc[64];
00085 int temp_str_size[64];
00086
00087 int currentservice;
00088 CC708Service CC708services[64];
00089 int CC708DelayedDeletes[64];
00090 QString osdfontname;
00091 QString osdccfontname;
00092 QString osd708fontnames[20];
00093 QString osdprefix;
00094 QString osdtheme;
00095
00096 MythPlayer *parent;
00097 bool enabled;
00098 };
00099 #endif // CC708READER_H