MythTV  master
cc708reader.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 // Copyright (c) 2003-2005, Daniel Kristjansson
3 
4 #ifndef CC708READER_H
5 #define CC708READER_H
6 
7 #include <cstdint>
8 #include "libmythbase/compat.h"
10 
11 class MythPlayer;
12 
13 const uint k708MaxServices = 64;
14 
16 {
17  public:
18  explicit CC708Reader(MythPlayer *owner);
19  virtual ~CC708Reader();
20 
21  void SetCurrentService(int service) { m_currentService = service; }
23  void SetEnabled(bool enable) { m_enabled = enable; }
24  void ClearBuffers(void);
25 
27  { return &(m_cc708services[service_num]); }
28  CC708Window &GetCCWin(uint service_num, uint window_id)
29  { return m_cc708services[service_num].m_windows[window_id]; }
31  { return GetCCWin(svc_num, m_cc708services[svc_num].m_currentWindow); }
32 
33  // Window settings
34  virtual void SetCurrentWindow(uint service_num, int window_id);
35  virtual void DefineWindow(uint service_num, int window_id,
36  int priority, bool visible,
37  int anchor_point, int relative_pos,
38  int anchor_vertical, int anchor_horizontal,
39  int row_count, int column_count,
40  int row_lock, int column_lock,
41  int pen_style, int window_style);
42  virtual void DeleteWindows( uint service_num, int window_map);
43  virtual void DisplayWindows(uint service_num, int window_map);
44  virtual void HideWindows( uint service_num, int window_map);
45  virtual void ClearWindows( uint service_num, int window_map);
46  virtual void ToggleWindows( uint service_num, int window_map);
47  virtual void SetWindowAttributes(uint service_num,
48  int fill_color, int fill_opacity,
49  int border_color, int border_type,
50  int scroll_dir, int print_dir,
51  int effect_dir,
52  int display_effect, int effect_speed,
53  int justify, int word_wrap);
54 
55  // Pen settings
56  virtual void SetPenAttributes(uint service_num,
57  int pen_size, int offset,
58  int text_tag, int font_tag,
59  int edge_type,
60  int underline, int italics);
61  virtual void SetPenColor(uint service_num,
62  int fg_color, int fg_opacity,
63  int bg_color, int bg_opacity,
64  int edge_color);
65  virtual void SetPenLocation(uint service_num, int row, int column);
66 
67  // Display State
68  virtual void Delay(uint service_num, int tenths_of_seconds);
69  virtual void DelayCancel(uint service_num);
70  virtual void Reset(uint service_num);
71 
72  // Text
73  virtual void TextWrite(uint service_num,
74  int16_t* unicode_string, int16_t len);
75 
76  // Data
77  std::array<unsigned char *,k708MaxServices> m_buf {};
78  std::array<uint,k708MaxServices> m_bufAlloc {};
79  std::array<uint,k708MaxServices> m_bufSize {};
80  std::array<bool,k708MaxServices> m_delayed {};
81 
82  std::array<int16_t *,k708MaxServices> m_tempStr {};
83  std::array<int,k708MaxServices> m_tempStrAlloc {};
84  std::array<int,k708MaxServices> m_tempStrSize {};
85 
87  std::array<CC708Service,k708MaxServices> m_cc708services;
88  std::array<int,k708MaxServices> m_cc708DelayedDeletes {};
89 
90  MythPlayer *m_parent {nullptr};
91  bool m_enabled {false};
92 };
93 #endif // CC708READER_H
CC708Reader::SetWindowAttributes
virtual void SetWindowAttributes(uint service_num, int fill_color, int fill_opacity, int border_color, int border_type, int scroll_dir, int print_dir, int effect_dir, int display_effect, int effect_speed, int justify, int word_wrap)
Definition: cc708reader.cpp:183
CC708Reader::CC708Reader
CC708Reader(MythPlayer *owner)
Definition: cc708reader.cpp:15
CC708Reader::m_tempStrSize
std::array< int, k708MaxServices > m_tempStrSize
Definition: cc708reader.h:84
CC708Reader::m_enabled
bool m_enabled
Definition: cc708reader.h:91
CC708Reader::GetCCWin
CC708Window & GetCCWin(uint svc_num)
Definition: cc708reader.h:30
cc708window.h
CC708Reader::m_delayed
std::array< bool, k708MaxServices > m_delayed
Definition: cc708reader.h:80
CC708Reader::ClearBuffers
void ClearBuffers(void)
Definition: cc708reader.cpp:41
k708MaxServices
const uint k708MaxServices
Definition: cc708reader.h:13
CC708Window
Definition: cc708window.h:194
CC708Reader::Delay
virtual void Delay(uint service_num, int tenths_of_seconds)
Definition: cc708reader.cpp:258
CC708Reader::GetCurrentService
CC708Service * GetCurrentService(void)
Definition: cc708reader.h:22
CC708Reader::SetEnabled
void SetEnabled(bool enable)
Definition: cc708reader.h:23
CC708Reader::DelayCancel
virtual void DelayCancel(uint service_num)
Definition: cc708reader.cpp:265
CC708Reader::SetPenColor
virtual void SetPenColor(uint service_num, int fg_color, int fg_opacity, int bg_color, int bg_opacity, int edge_color)
Definition: cc708reader.cpp:229
CC708Reader::SetCurrentWindow
virtual void SetCurrentWindow(uint service_num, int window_id)
Definition: cc708reader.cpp:47
CC708Reader::DefineWindow
virtual void DefineWindow(uint service_num, int window_id, int priority, bool visible, int anchor_point, int relative_pos, int anchor_vertical, int anchor_horizontal, int row_count, int column_count, int row_lock, int column_lock, int pen_style, int window_style)
Definition: cc708reader.cpp:55
CC708Reader::~CC708Reader
virtual ~CC708Reader()
Definition: cc708reader.cpp:32
MythPlayer
Definition: mythplayer.h:83
CC708Reader::ClearWindows
virtual void ClearWindows(uint service_num, int window_map)
Definition: cc708reader.cpp:156
CC708Reader::TextWrite
virtual void TextWrite(uint service_num, int16_t *unicode_string, int16_t len)
Definition: cc708reader.cpp:279
CC708Reader::m_cc708services
std::array< CC708Service, k708MaxServices > m_cc708services
Definition: cc708reader.h:87
CC708Reader::ToggleWindows
virtual void ToggleWindows(uint service_num, int window_map)
Definition: cc708reader.cpp:167
CC708Reader::m_buf
std::array< unsigned char *, k708MaxServices > m_buf
Definition: cc708reader.h:77
CC708Reader::GetCCWin
CC708Window & GetCCWin(uint service_num, uint window_id)
Definition: cc708reader.h:28
compat.h
CC708Service
Definition: cc708window.h:313
CC708Reader::SetPenLocation
virtual void SetPenLocation(uint service_num, int row, int column)
Definition: cc708reader.cpp:250
CC708Reader::HideWindows
virtual void HideWindows(uint service_num, int window_map)
Definition: cc708reader.cpp:140
CC708Reader::SetCurrentService
void SetCurrentService(int service)
Definition: cc708reader.h:21
CC708Reader::m_parent
MythPlayer * m_parent
Definition: cc708reader.h:90
CC708Reader::GetService
CC708Service * GetService(uint service_num)
Definition: cc708reader.h:26
CC708Reader::SetPenAttributes
virtual void SetPenAttributes(uint service_num, int pen_size, int offset, int text_tag, int font_tag, int edge_type, int underline, int italics)
Definition: cc708reader.cpp:211
CC708Reader::Reset
virtual void Reset(uint service_num)
Definition: cc708reader.cpp:271
CC708Reader::m_bufSize
std::array< uint, k708MaxServices > m_bufSize
Definition: cc708reader.h:79
CC708Reader::m_tempStrAlloc
std::array< int, k708MaxServices > m_tempStrAlloc
Definition: cc708reader.h:83
CC708Reader::m_currentService
int m_currentService
Definition: cc708reader.h:86
CC708Reader::m_cc708DelayedDeletes
std::array< int, k708MaxServices > m_cc708DelayedDeletes
Definition: cc708reader.h:88
CC708Reader::m_bufAlloc
std::array< uint, k708MaxServices > m_bufAlloc
Definition: cc708reader.h:78
CC708Reader::DisplayWindows
virtual void DisplayWindows(uint service_num, int window_map)
Definition: cc708reader.cpp:105
CC708Reader::m_tempStr
std::array< int16_t *, k708MaxServices > m_tempStr
Definition: cc708reader.h:82
CC708Reader
Definition: cc708reader.h:15
uint
unsigned int uint
Definition: freesurround.h:24
CC708Reader::DeleteWindows
virtual void DeleteWindows(uint service_num, int window_map)
Definition: cc708reader.cpp:93