General Information about libcalcconv


  
The libcalcconv library is a part of the CalcForge project and constitutes with the other libraries a complete framework for developing linking and/or TI calculator files oriented applications.

Overview

The libcalcconv library is a library capable of conversions between TI charsets and UTF-8 / UTF-16 charsets but uses UTF-16 natively.
The library provides a complete API which is very easy to use and makes things easier.

The library supports all the currently available calculators:
- TI8x calculators: TI73, 82, 83, TI83+, 85 and 86,
- TI9x calculators: TI89, 92, 92+ and V200PLT,
- built-in USB calculators: TI84+ and Titanium.

Why this library?
We were interested in: This is needed because the name of variable (varname, for short):
- may be tokenized on some calcs (TI8x),
- use a charset dependant of the calculator model,

Some vocabulary:
- GFE : GLib Filename Encoding, the encoding used by GLib for filenames,
- LVE : Linking Varname Encoding, the encoding used by hand-helds in the transfer protocol (also known as 'native'),
- TVE : TI-File Varname Encoding, the encoding used by hand-helds (except built-in USB ones) and TI files (also known as 'raw');
                LVE and TVE are the same except for USB,
- TI8X or TI9X charset: maps of characters internally stored in the hand-held and used usually for varnames,
- TI-UTF-8 charset: the charset used by TI for built-in USB hand-helds. This charset is not a fully compliant UTF-8 charset. Some chars need to be re-mapped to be displayed fine.

The varname need to be converted into:
- valid UTF-8 to be displayed correctly by GTK,
- valid 'GLib Filename Encoding' to be saved correctly,
- raw varname to be used in TI files.

The following charsets are supported for varnames:
- TI8x: raw/TI-8X (may be tokenized),
- TI9x: TI-9x ,
- USB calcs: TI-UTF-8.

To sum up:
              detokenized (TI8x)                      (char maps)
raw varname ----------------------> TI8X charset   --+------------+-> UTF-8 or UTF-16 for display
                                                     |           
                  copied (TI9x)                      |           
raw varname ----------------------> TI9X charset   --+           
                                
                    |           
                  copied (USB)                       |
raw varname ----------------------> TIUTF8 charset --+
                                                     |
  (switch case)
                                                     +----------------> Glib Filename Encoding for filenames


          (char maps)                       tokenized (TI8x)
TI-UTF-8 -------------> TI-8X/9X charset -+------------------+-> TI-file varname encoding for TI files contents
                                          |                  |
                                          | copied (TI9x)    |
                                          +------------------+

If you want to look at the TI charsets, you will find them in the docs/charset folder of the libcalcconv archive or in the TI Link Guide or below :
TI82
TI85
TI86
TI9x
TI73
TI83
TI83+/84+


TI8x images are courtesy of Benjamin Moody. Thanks !

Requirements

This library is dependent on GLib 2.x.

Bug Reports

There may still be some bugs in the library, please report them to our bug tracker.

Copyright

Copyright (C) 2006-2009 the TiLP team
Copyright (C) 2009 the CalcForge team
See AUTHORS for detailed authorship information.

This library is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this library (in the COPYING file); if not, see http://www.gnu.org/licenses/.

Return to the main index