Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
cc_decoder708.cpp File Reference
#include "cc_decoder708.h"
#include "utils/log.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Functions

unsigned char get_internal_from_G0 (unsigned char g0_char)
 
unsigned char get_internal_from_G1 (unsigned char g1_char)
 
unsigned char get_internal_from_G2 (unsigned char g2_char)
 
unsigned char get_internal_from_G3 (unsigned char g3_char)
 
void clearTV (cc708_service_decoder *decoder)
 
void clear_packet (cc708_service_decoder *decoder)
 
void cc708_service_reset (cc708_service_decoder *decoder)
 
void cc708_reset (cc708_service_decoder *decoders)
 
int compWindowsPriorities (const void *a, const void *b)
 
void printTVtoBuf (cc708_service_decoder *decoder)
 
void updateScreen (cc708_service_decoder *decoder)
 
void rollupWindow (cc708_service_decoder *decoder, int window)
 
int handle_708_C2 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
int handle_708_C3 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
int handle_708_extended_char (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
void process_cr (cc708_service_decoder *decoder)
 
int handle_708_C0 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
void process_character (cc708_service_decoder *decoder, unsigned char internal_char)
 
int handle_708_G0 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
int handle_708_G1 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
void handle_708_CWx_SetCurrentWindow (cc708_service_decoder *decoder, int new_window)
 
void clearWindowText (e708Window *window)
 
void clearWindow (cc708_service_decoder *decoder, int window)
 
void handle_708_CLW_ClearWindows (cc708_service_decoder *decoder, int windows_bitmap)
 
void handle_708_DSW_DisplayWindows (cc708_service_decoder *decoder, int windows_bitmap)
 
void handle_708_HDW_HideWindows (cc708_service_decoder *decoder, int windows_bitmap)
 
void handle_708_TGW_ToggleWindows (cc708_service_decoder *decoder, int windows_bitmap)
 
void handle_708_DFx_DefineWindow (cc708_service_decoder *decoder, int window, unsigned char *data)
 
void handle_708_SWA_SetWindowAttributes (cc708_service_decoder *decoder, unsigned char *data)
 
void deleteWindow (cc708_service_decoder *decoder, int window)
 
void handle_708_DLW_DeleteWindows (cc708_service_decoder *decoder, int windows_bitmap)
 
void handle_708_SPA_SetPenAttributes (cc708_service_decoder *decoder, unsigned char *data)
 
void handle_708_SPC_SetPenColor (cc708_service_decoder *decoder, unsigned char *data)
 
void handle_708_SPL_SetPenLocation (cc708_service_decoder *decoder, unsigned char *data)
 
void handle_708_DLY_Delay (cc708_service_decoder *decoder, int tenths_of_sec)
 
void handle_708_DLC_DelayCancel (cc708_service_decoder *decoder)
 
int handle_708_C1 (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
void process_service_block (cc708_service_decoder *decoder, unsigned char *data, int data_length)
 
bool check_current_packet_complete (cc708_service_decoder *decoders)
 
void process_current_packet (cc708_service_decoder *decoders)
 
void decode_708 (const unsigned char *data, int datalength, cc708_service_decoder *decoders)
 
void ccx_decoders_708_init (cc708_service_decoder *decoders, void(*handler)(int service, void *userdata), void *userdata, CDecoderCC708 *parent)
 

Variables

const char * COMMANDS_C0 [32]
 
struct S_COMMANDS_C1 COMMANDS_C1 [32]
 

Function Documentation

◆ cc708_reset()

void cc708_reset ( cc708_service_decoder * decoders)

◆ cc708_service_reset()

void cc708_service_reset ( cc708_service_decoder * decoder)

◆ ccx_decoders_708_init()

void ccx_decoders_708_init ( cc708_service_decoder * decoders,
void(* handler )(int service, void *userdata),
void * userdata,
CDecoderCC708 * parent )

◆ check_current_packet_complete()

bool check_current_packet_complete ( cc708_service_decoder * decoders)

◆ clear_packet()

void clear_packet ( cc708_service_decoder * decoder)

◆ clearTV()

void clearTV ( cc708_service_decoder * decoder)

◆ clearWindow()

void clearWindow ( cc708_service_decoder * decoder,
int window )

◆ clearWindowText()

void clearWindowText ( e708Window * window)

◆ compWindowsPriorities()

int compWindowsPriorities ( const void * a,
const void * b )

◆ decode_708()

void decode_708 ( const unsigned char * data,
int datalength,
cc708_service_decoder * decoders )

◆ deleteWindow()

void deleteWindow ( cc708_service_decoder * decoder,
int window )
Todo
Do the actual deletion (remove from display if needed, etc), mark as

◆ get_internal_from_G0()

unsigned char get_internal_from_G0 ( unsigned char g0_char)

◆ get_internal_from_G1()

unsigned char get_internal_from_G1 ( unsigned char g1_char)

◆ get_internal_from_G2()

unsigned char get_internal_from_G2 ( unsigned char g2_char)
Todo
Probably not right

◆ get_internal_from_G3()

unsigned char get_internal_from_G3 ( unsigned char g3_char)
Todo
Probably not right

◆ handle_708_C0()

int handle_708_C0 ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )
Todo
Process HDR
Todo
Process FF
Todo
Handle PE16
Todo
Do something useful eventually

◆ handle_708_C1()

int handle_708_C1 ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )

◆ handle_708_C2()

int handle_708_C2 ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )
Todo
This code is completely untested due to lack of samples. Just following specs!

◆ handle_708_C3()

int handle_708_C3 ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )
Todo
Implement if a sample ever appears

◆ handle_708_CLW_ClearWindows()

void handle_708_CLW_ClearWindows ( cc708_service_decoder * decoder,
int windows_bitmap )

◆ handle_708_CWx_SetCurrentWindow()

void handle_708_CWx_SetCurrentWindow ( cc708_service_decoder * decoder,
int new_window )

◆ handle_708_DFx_DefineWindow()

void handle_708_DFx_DefineWindow ( cc708_service_decoder * decoder,
int window,
unsigned char * data )
Todo
COLORS
Todo
Warn somehow

◆ handle_708_DLC_DelayCancel()

void handle_708_DLC_DelayCancel ( cc708_service_decoder * decoder)
Todo
See above

◆ handle_708_DLW_DeleteWindows()

void handle_708_DLW_DeleteWindows ( cc708_service_decoder * decoder,
int windows_bitmap )

◆ handle_708_DLY_Delay()

void handle_708_DLY_Delay ( cc708_service_decoder * decoder,
int tenths_of_sec )
Todo
Probably ask for the current FTS and wait for this time before resuming -

◆ handle_708_DSW_DisplayWindows()

void handle_708_DSW_DisplayWindows ( cc708_service_decoder * decoder,
int windows_bitmap )

◆ handle_708_extended_char()

int handle_708_extended_char ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )
Todo
This code is completely untested due to lack of samples. Just following specs!
Todo
Something

◆ handle_708_G0()

int handle_708_G0 ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )
Todo
Substitution of the music note character for the ASCII DEL character

◆ handle_708_G1()

int handle_708_G1 ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )

◆ handle_708_HDW_HideWindows()

void handle_708_HDW_HideWindows ( cc708_service_decoder * decoder,
int windows_bitmap )
Todo
Actually Hide Window

◆ handle_708_SPA_SetPenAttributes()

void handle_708_SPA_SetPenAttributes ( cc708_service_decoder * decoder,
unsigned char * data )

◆ handle_708_SPC_SetPenColor()

void handle_708_SPC_SetPenColor ( cc708_service_decoder * decoder,
unsigned char * data )

◆ handle_708_SPL_SetPenLocation()

void handle_708_SPL_SetPenLocation ( cc708_service_decoder * decoder,
unsigned char * data )

◆ handle_708_SWA_SetWindowAttributes()

void handle_708_SWA_SetWindowAttributes ( cc708_service_decoder * decoder,
unsigned char * data )

◆ handle_708_TGW_ToggleWindows()

void handle_708_TGW_ToggleWindows ( cc708_service_decoder * decoder,
int windows_bitmap )

◆ printTVtoBuf()

void printTVtoBuf ( cc708_service_decoder * decoder)

◆ process_character()

void process_character ( cc708_service_decoder * decoder,
unsigned char internal_char )

◆ process_cr()

void process_cr ( cc708_service_decoder * decoder)

◆ process_current_packet()

void process_current_packet ( cc708_service_decoder * decoders)

◆ process_service_block()

void process_service_block ( cc708_service_decoder * decoder,
unsigned char * data,
int data_length )
Todo
Not sure if a local reset is going to be helpful here.

◆ rollupWindow()

void rollupWindow ( cc708_service_decoder * decoder,
int window )

◆ updateScreen()

void updateScreen ( cc708_service_decoder * decoder)

Variable Documentation

◆ COMMANDS_C0

const char* COMMANDS_C0[32]

◆ COMMANDS_C1

struct S_COMMANDS_C1 COMMANDS_C1[32]