1/****************************************************************************** 2/ 3/ File: CC.h 4/ 5/ Description: Closed caption module. 6/ 7/ Copyright 2001, Carlos Hasan 8/ 9*******************************************************************************/ 10 11#ifndef __CC_H__ 12#define __CC_H__ 13 14#include "Capture.h" 15 16enum cc_mode { 17 C_RADEON_CC1 = 0, 18 C_RADEON_CC2 = 1, 19 C_RADEON_CC3 = 2, 20 C_RADEON_CC4 = 3 21}; 22 23enum cc_window { 24 C_RADEON_CC_VBI_LINE_WIDTH = 2048, 25 C_RADEON_CC_BLANK_START = 4*112, 26 C_RADEON_CC_VBI_LINE_NUMBER = 19, 27 C_RADEON_CC_BIT_DURATION = 56, 28 C_RADEON_CC_BITS_PER_FIELD = 16, 29 C_RADEON_CC_LEVEL_THRESHOLD = 32, 30 31 C_RADEON_CC_LINE = 21, 32 33 C_RADEON_CC_CHANNELS = 4, 34 C_RADEON_CC_ROWS = 15, 35 C_RADEON_CC_COLUMNS = 32 36}; 37 38class CCaption { 39public: 40 CCaption(CCapture & capture); 41 42 ~CCaption(); 43 44 status_t InitCheck() const; 45 46 void SetMode(cc_mode mode); 47 48 bool Decode(const unsigned char * buffer0, 49 const unsigned char * buffer1); 50 51private: 52 bool DecodeBits(const unsigned char * buffer, int & data); 53 54 void DisplayCaptions() const; 55 56private: 57 CCapture & fCapture; 58 cc_mode fChannel; 59 int fRow; 60 int fColumn; 61 int fColor; 62 int fLastControlCode; 63 short fText[C_RADEON_CC_ROWS][C_RADEON_CC_COLUMNS]; 64 short fDisplayText[C_RADEON_CC_ROWS][C_RADEON_CC_COLUMNS]; 65}; 66 67#endif 68