Esempio n. 1
0
// This function handles extended codes (EXT1 + code), from the extended sets
// G2 (20-7F) => Mostly unmapped, except for a few characters.
// G3 (A0-FF) => A0 is the CC symbol, everything else reserved for future expansion in EIA708-B
// C2 (00-1F) => Reserved for future extended misc. control and captions command codes
//! @todo This code is completely untested due to lack of samples. Just following specs!
// Returns number of used bytes, usually 1 (since EXT1 is not counted).
int handle_708_extended_char (cc708_service_decoder *decoder, unsigned char *data, int data_length)
{
  int used;
  unsigned char c=0x20; // Default to space
  unsigned char code=data[0];
  if (/* data[i]>=0x00 && */ code<=0x1F) // Comment to silence warning
  {
    used=handle_708_C2 (decoder, data, data_length);
  }
  // Group G2 - Extended Miscellaneous Characters
  else if (code>=0x20 && code<=0x7F)
  {
    c=get_internal_from_G2 (code);
    used=1;
    process_character (decoder, c);
  }
  // Group C3
  else if (code>=0x80 && code<=0x9F)
  {
    used=handle_708_C3 (decoder, data, data_length);
    //! @todo Something
  }
  // Group G3
  else
  {
    c=get_internal_from_G3 (code);
    used=1;
    process_character (decoder, c);
  }
  return used;
}
Esempio n. 2
0
File: 708.cpp Progetto: MrMdR/julapy
void handle_708_extended_char (cc708_service_decoder *decoder, unsigned char code)
{
    printf ("In handle_708_extended_char: [%c]\n",code);
    unsigned char c=0x20; // Default to space
    if ((code>=0x20 && code<=0x3F) || 
        (code>=0x80 && code<=0x9F))
        c=get_internal_from_G2 (code);
    else if (code==0xa0)
        c=get_internal_from_G3 (code);
    process_character (decoder, c);
}